diff --git a/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm b/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm index cc77afd759fd2820fc7b29e9a66743cb318c4759..0d8357f283d0f2f2e16df7f3d0836786d3bbb218 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm +++ b/L2J_DataPack_BETA/dist/game/data/html/signboards/pvp_signboard.htm @@ -1,3 +1,6 @@ -<html><head><body>Welcome to the <font color="LEVEL">Dueling Area</font>.<br>Fighting and killing does not lead to chaos here. Death does not cause forfeiture of experience points or items. You may fight, kill and die as you please.<br> The area outside the fence is a <font color="LEVEL">Peaceful Zone</font> where violence is not tolerated.<br> +<html><body> +Welcome to the <font color="LEVEL">Dueling Area</font>.<br> +Fighting and killing does not lead to chaos here. Death does not cause forfeiture of experience points or items. You may fight, kill and die as you please.<br> +The area outside the fence is a <font color="LEVEL">Peaceful Zone</font> where violence is not tolerated.<br> *Warning: If a chaotic character whose PK count is 6 or higher dies in a dueling arena, he/she has a chance of dropping an item. </body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm b/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm index 36641eeeed5e99830dbfb05a6db2c940182c318f..7abf042a2ec9b62210d11d87818c9724d3c9e76a 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm +++ b/L2J_DataPack_BETA/dist/game/data/html/signboards/tomb_of_crystalgolem.htm @@ -1 +1,5 @@ -<html><head><body>Tomb of the Crystalline Golem:<br>Faint wavy writings grow clearer and bolder as you read:<br>...Long ago, Balor was gravely injured by the Water Dragon. Since then, he has feared the <font color="LEVEL">Water Dragon's Claw</font>... The claw has been passed down to the Dragon's children in the Chromatic Highlands...</body></html> \ No newline at end of file +<html><body> +Tomb of the Crystalline Golem:<br> +Faint wavy writings grow clearer and bolder as you read:<br> +...Long ago, Balor was gravely injured by the Water Dragon. Since then, he has feared the <font color="LEVEL">Water Dragon's Claw</font>... The claw has been passed down to the Dragon's children in the Chromatic Highlands... +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java index 1de22682d060d96560089324356d0780cee99b3b..f222c6d9e86a8154b7d59948f06084b54d17acbf 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2StaticObjectInstanceAction.java @@ -28,37 +28,38 @@ import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; public class L2StaticObjectInstanceAction implements IActionHandler { @Override - public boolean action(L2PcInstance activeChar, L2Object target, boolean interact) + public boolean action(final L2PcInstance activeChar, final L2Object target, final boolean interact) { - if (((L2StaticObjectInstance) target).getType() < 0) + final L2StaticObjectInstance staticObject = (L2StaticObjectInstance) target; + if (staticObject.getType() < 0) { - _log.info("L2StaticObjectInstance: StaticObject with invalid type! StaticObjectId: " + ((L2StaticObjectInstance) target).getStaticObjectId()); + _log.info("L2StaticObjectInstance: StaticObject with invalid type! StaticObjectId: " + staticObject.getStaticObjectId()); } // Check if the L2PcInstance already target the L2NpcInstance - if (activeChar.getTarget() != target) + if (activeChar.getTarget() != staticObject) { // Set the target of the L2PcInstance activeChar - activeChar.setTarget(target); - activeChar.sendPacket(new MyTargetSelected(target.getObjectId(), 0)); + activeChar.setTarget(staticObject); + activeChar.sendPacket(new MyTargetSelected(staticObject.getObjectId(), 0)); } else if (interact) { - activeChar.sendPacket(new MyTargetSelected(target.getObjectId(), 0)); + activeChar.sendPacket(new MyTargetSelected(staticObject.getObjectId(), 0)); // Calculate the distance between the L2PcInstance and the L2NpcInstance - if (!activeChar.isInsideRadius(target, L2Npc.INTERACTION_DISTANCE, false, false)) + if (!activeChar.isInsideRadius(staticObject, L2Npc.INTERACTION_DISTANCE, false, false)) { // Notify the L2PcInstance AI with AI_INTENTION_INTERACT - activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, target); + activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, staticObject); } else { - if ((((L2StaticObjectInstance) target).getType() == 2) && (((L2StaticObjectInstance) target).getStaticObjectId() == 24230101)) + if (staticObject.getType() == 2) { - String filename = "data/html/signboards/tomb_of_crystalgolem.htm"; - String content = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), filename); - NpcHtmlMessage html = new NpcHtmlMessage(target.getObjectId()); + final String filename = (staticObject.getStaticObjectId() == 24230101) ? "data/html/signboards/pvp_signboard.htm" : "data/html/signboards/tomb_of_crystalgolem.htm"; + final String content = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), filename); + final NpcHtmlMessage html = new NpcHtmlMessage(staticObject.getObjectId()); if (content == null) { @@ -71,26 +72,9 @@ public class L2StaticObjectInstanceAction implements IActionHandler activeChar.sendPacket(html); } - else if ((((L2StaticObjectInstance) target).getType() == 2) && (((L2StaticObjectInstance) target).getStaticObjectId() != 24230101)) + else if (staticObject.getType() == 0) { - String filename = "data/html/signboards/pvp_signboard.htm"; - String content = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), filename); - NpcHtmlMessage html = new NpcHtmlMessage(target.getObjectId()); - - if (content == null) - { - html.setHtml("<html><body>Signboard is missing:<br>" + filename + "</body></html>"); - } - else - { - html.setHtml(content); - } - - activeChar.sendPacket(html); - } - else if (((L2StaticObjectInstance) target).getType() == 0) - { - activeChar.sendPacket(((L2StaticObjectInstance) target).getMap()); + activeChar.sendPacket(staticObject.getMap()); } } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/LightPurpleManedHorse.java b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/DarkmanePacer.java similarity index 63% rename from L2J_DataPack_BETA/dist/game/data/scripts/transformations/LightPurpleManedHorse.java rename to L2J_DataPack_BETA/dist/game/data/scripts/transformations/DarkmanePacer.java index 7e8e8674830d231a5fbd88a4fc5619e3d17b4de2..005c4e2b9f4116ee0490bb11c2530797dcef7c8c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/LightPurpleManedHorse.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/DarkmanePacer.java @@ -4,10 +4,14 @@ import com.l2jserver.gameserver.datatables.SkillTable; import com.l2jserver.gameserver.instancemanager.TransformationManager; import com.l2jserver.gameserver.model.L2Transformation; -public class LightPurpleManedHorse extends L2Transformation +public class DarkmanePacer extends L2Transformation { - private static final int[] SKILLS = {5491,839}; - public LightPurpleManedHorse() + private static final int[] SKILLS = + { + 5437, 839 + }; + + public DarkmanePacer() { // id, colRadius, colHeight super(106, 31, 32.5); @@ -16,16 +20,18 @@ public class LightPurpleManedHorse extends L2Transformation @Override public void onTransform() { - if (getPlayer().getTransformationId() != 106 || getPlayer().isCursedWeaponEquipped()) + if ((getPlayer().getTransformationId() != 106) || getPlayer().isCursedWeaponEquipped()) + { return; + } transformedSkills(); } public void transformedSkills() { - // Decrease Bow/Crossbow Attack Speed - getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false); + // Dissonance + getPlayer().addSkill(SkillTable.getInstance().getInfo(5437, 2), false); // Dismount getPlayer().addSkill(SkillTable.getInstance().getInfo(839, 1), false); @@ -40,8 +46,8 @@ public class LightPurpleManedHorse extends L2Transformation public void removeSkills() { - // Decrease Bow/Crossbow Attack Speed - getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false); + // Dissonance + getPlayer().removeSkill(SkillTable.getInstance().getInfo(5437, 2), false); // Dismount getPlayer().removeSkill(SkillTable.getInstance().getInfo(839, 1), false); @@ -50,6 +56,6 @@ public class LightPurpleManedHorse extends L2Transformation public static void main(String[] args) { - TransformationManager.getInstance().registerTransformation(new LightPurpleManedHorse()); + TransformationManager.getInstance().registerTransformation(new DarkmanePacer()); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java index 4d349d9ad0a0e9cebf5665b071fae0a0c22f9def..2a110ef7169c4db84dc7f81c248d13a55c53e64b 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/transformations/Treykan.java @@ -6,7 +6,10 @@ import com.l2jserver.gameserver.model.L2Transformation; public class Treykan extends L2Transformation { - private static final int[] SKILLS = new int[]{619}; + private static final int[] SKILLS = new int[] + { + 619, 967, 968, 969, 5437 + }; public Treykan() { @@ -17,8 +20,10 @@ public class Treykan extends L2Transformation @Override public void onTransform() { - if (getPlayer().getTransformationId() != 126 || getPlayer().isCursedWeaponEquipped()) + if ((getPlayer().getTransformationId() != 126) || getPlayer().isCursedWeaponEquipped()) + { return; + } transformedSkills(); } @@ -27,6 +32,14 @@ public class Treykan extends L2Transformation { // Transform Dispel getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false); + // Cursed Body + getPlayer().addSkill(SkillTable.getInstance().getInfo(967, 1), false); + // Treykan Claw + getPlayer().addSkill(SkillTable.getInstance().getInfo(968, 1), false); + // Treykan Dash + getPlayer().addSkill(SkillTable.getInstance().getInfo(969, 1), false); + // Dissonance + getPlayer().addSkill(SkillTable.getInstance().getInfo(5437, 1), false); getPlayer().setTransformAllowedSkills(SKILLS); } @@ -41,6 +54,14 @@ public class Treykan extends L2Transformation { // Transform Dispel getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false); + // Cursed Body + getPlayer().removeSkill(SkillTable.getInstance().getInfo(967, 1), false); + // Treykan Claw + getPlayer().removeSkill(SkillTable.getInstance().getInfo(968, 1), false); + // Treykan Dash + getPlayer().removeSkill(SkillTable.getInstance().getInfo(969, 1), false); + // Dissonance + getPlayer().removeSkill(SkillTable.getInstance().getInfo(5437, 1), false); getPlayer().setTransformAllowedSkills(EMPTY_ARRAY); } diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml index 879478b5dee86b31ce763bbcb18dbcebb173c319..915f1f7780b12e8216f5133ff1d0c980ae9133ac 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00900-00999.xml @@ -1257,9 +1257,10 @@ <skill id="967" levels="1" name="Cursed Body"> <!-- Cursed body. Recovery is not possible. --> <set name="magicLvl" val="85" /> - <set name="skillType" val="NOTDONE" /> <set name="operateType" val="OP_PASSIVE" /> - <set name="target" val="TARGET_NONE" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> + <!-- TODO: Implement and use proper effects. --> </skill> <skill id="968" levels="1" name="Treykan Claw"> <!-- Confirmed CT2.5 --> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml index 4a748bac3db2cb5129ce1312baacf146442b4ff4..9f58852ef32bbb948120fdb2e94406bf66fb0e1d 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/05400-05499.xml @@ -403,14 +403,20 @@ <set name="operateType" val="OP_PASSIVE" /> </skill> <skill id="5437" levels="2" name="Dissonance"> - <set name="target" val="TARGET_SELF" /> - <set name="skillType" val="BUFF" /> + <!-- Confirmed CT2.5 --> + <table name="#def"> 0.6 1 </table> + <table name="#avoid"> 50 0 </table> <set name="operateType" val="OP_PASSIVE" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> <for> <mul order="0x30" stat="pAtk" val="0.95" /> <mul order="0x30" stat="mAtk" val="0.95" /> <sub order="0x40" stat="accCombat" val="50" /> <add order="0x40" stat="runSpd" val="5" /> + <mul order="0x30" stat="pDef" val="#def" /> + <mul order="0x30" stat="mDef" val="#def" /> + <sub order="0x40" stat="rEvas" val="#avoid" /> </for> </skill> <skill id="5438" levels="9" name="NPC party 30 Clan Heal">