From c0b3c1d39350c6f37d23b8bd0704977ee63aeea1 Mon Sep 17 00:00:00 2001 From: MELERIX <MELERIX@users.noreply.github.com> Date: Sat, 28 Apr 2012 08:03:42 +0000 Subject: [PATCH] BETA: DP-Part for [L5300]. --- .../handlers/skillhandlers/FishingSkill.java | 42 +++++++++++-------- .../data/stats/items/fishing/fishingRods.xml | 1 - .../game/data/stats/skills/01300-01399.xml | 26 ++++++++---- 3 files changed, 42 insertions(+), 27 deletions(-) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/FishingSkill.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/FishingSkill.java index e914d7d7c7..4d281f2647 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/FishingSkill.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/FishingSkill.java @@ -14,11 +14,14 @@ */ package handlers.skillhandlers; +import com.l2jserver.gameserver.datatables.FishingRodsData; +import com.l2jserver.gameserver.datatables.SkillTable; import com.l2jserver.gameserver.handler.ISkillHandler; -import com.l2jserver.gameserver.model.L2Fishing; import com.l2jserver.gameserver.model.L2Object; import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.fishing.L2Fishing; +import com.l2jserver.gameserver.model.fishing.L2FishingRod; import com.l2jserver.gameserver.model.items.L2Weapon; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; import com.l2jserver.gameserver.model.skills.L2Skill; @@ -38,7 +41,9 @@ public class FishingSkill implements ISkillHandler public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets) { if (!(activeChar instanceof L2PcInstance)) + { return; + } L2PcInstance player = (L2PcInstance) activeChar; @@ -47,12 +52,12 @@ public class FishingSkill implements ISkillHandler { if (skill.getSkillType() == L2SkillType.PUMPING) { - //Pumping skill is available only while fishing + // Pumping skill is available only while fishing player.sendPacket(SystemMessageId.CAN_USE_PUMPING_ONLY_WHILE_FISHING); } else if (skill.getSkillType() == L2SkillType.REELING) { - //Reeling skill is available only while fishing + // Reeling skill is available only while fishing player.sendPacket(SystemMessageId.CAN_USE_REELING_ONLY_WHILE_FISHING); } player.sendPacket(ActionFailed.STATIC_PACKET); @@ -60,35 +65,38 @@ public class FishingSkill implements ISkillHandler } L2Weapon weaponItem = player.getActiveWeaponItem(); L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance(); - if (weaponInst == null || weaponItem == null) + if ((weaponInst == null) || (weaponItem == null)) + { return; + } int SS = 1; int pen = 0; if (weaponInst.getChargedFishshot()) + { SS = 2; - double gradebonus = 1 + weaponItem.getCrystalType() * 0.1; - int dmg = (int) (skill.getPower() * gradebonus * SS); - if (player.getSkillLevel(1315) <= skill.getLevel() - 2) //1315 - Fish Expertise - {//Penalty + } + L2FishingRod fishingRod = FishingRodsData.getInstance().getFishingRod(weaponItem.getItemId()); + double gradeBonus = fishingRod.getFishingRodLevel() * 0.1; // TODO: Check this formula (is guessed) + final L2Skill expertiseSkill = SkillTable.getInstance().getInfo(1315, player.getSkillLevel(1315)); + int dmg = (int) ((fishingRod.getFishingRodDamage() + expertiseSkill.getPower() + skill.getPower()) * gradeBonus * SS); + // Penalty 5% less damage dealt + if (player.getSkillLevel(1315) <= (skill.getLevel() - 2)) // 1315 - Fish Expertise + { player.sendPacket(SystemMessageId.REELING_PUMPING_3_LEVELS_HIGHER_THAN_FISHING_PENALTY); - pen = 50; - int penatlydmg = dmg - pen; - if (player.isGM()) - player.sendMessage("Dmg w/o penalty = " + dmg); - dmg = penatlydmg; + pen = (int) (dmg * 0.05); + dmg = dmg - pen; } if (SS > 1) { weaponInst.setChargedFishshot(false); } - if (skill.getSkillType() == L2SkillType.REELING)//Realing + if (skill.getSkillType() == L2SkillType.REELING) { - fish.useRealing(dmg, pen); + fish.useReeling(dmg, pen); } else - //Pumping { - fish.usePomping(dmg, pen); + fish.usePumping(dmg, pen); } } diff --git a/L2J_DataPack_BETA/dist/game/data/stats/items/fishing/fishingRods.xml b/L2J_DataPack_BETA/dist/game/data/stats/items/fishing/fishingRods.xml index e3ef6e3a5e..cbbc8a9110 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/items/fishing/fishingRods.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/items/fishing/fishingRods.xml @@ -1,5 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- TODO: Needs Support --> <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/fishingRods.xsd"> <fishingRod fishingRodId="1" fishingRodItemId="6529" fishingRodLevel="20" fishingRodName="Baby Duck Rod" fishingRodDamage="20.0" /> <fishingRod fishingRodId="2" fishingRodItemId="6530" fishingRodLevel="40" fishingRodName="Albatross Rod" fishingRodDamage="23.0" /> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml index e52ba05edc..9418a397a5 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/01300-01399.xml @@ -354,36 +354,44 @@ <using kind="Rod" /> </cond> </skill> - <skill id="1313" levels="27" name="Pumping"> - <table name="#power"> 24 37 50 62 70 76 82 88 94 100 104 107 110 113 116 119 121 124 127 130 133 136 139 142 145 149 155 </table> + <skill id="1313" levels="27" name="Pumping"> + <!-- Confirmed CT2.5 --> + <table name="#power"> 0.66 0.9375 1.26 1.55 1.7 1.85 2 2.15 2.3 2.45 2.6 2.75 2.9 3.05 3.2 3.35 3.5 3.65 3.8 3.95 4.1 4.25 4.4 4.55 4.7 4.85 5 </table> + <set name="magicLvl" val="1" /> <set name="mpConsume" val="2" /> + <set name="operateType" val="A1" /> <set name="power" val="#power" /> - <set name="target" val="TARGET_SELF" /> <set name="reuseDelay" val="2000" /> <set name="skillType" val="PUMPING" /> - <set name="operateType" val="A1" /> + <set name="target" val="TARGET_SELF" /> <!-- TODO: Missing condition for "op_fishing_pumping" --> <cond msgId="113" addName="1"> <using kind="Rod" /> </cond> </skill> <skill id="1314" levels="27" name="Reeling"> - <table name="#power"> 24 37 50 62 70 76 82 88 94 100 104 107 110 113 116 119 121 124 127 130 133 136 139 142 145 149 155 </table> + <!-- Confirmed CT2.5 --> + <table name="#power"> 0.66 0.9375 1.26 1.55 1.7 1.85 2 2.15 2.3 2.45 2.6 2.75 2.9 3.05 3.2 3.35 3.5 3.65 3.8 3.95 4.1 4.25 4.4 4.55 4.7 4.85 5 </table> + <set name="magicLvl" val="1" /> <set name="mpConsume" val="2" /> + <set name="operateType" val="A1" /> <set name="power" val="#power" /> - <set name="target" val="TARGET_SELF" /> <set name="reuseDelay" val="2000" /> <set name="skillType" val="REELING" /> - <set name="operateType" val="A1" /> + <set name="target" val="TARGET_SELF" /> <!-- TODO: Missing condition for "op_fishing_reeling" --> <cond msgId="113" addName="1"> <using kind="Rod" /> </cond> </skill> <skill id="1315" levels="27" name="Fishing Expertise"> - <set name="target" val="TARGET_SELF" /> - <set name="skillType" val="NOTDONE" /> + <!-- TODO: Require Support --> + <table name="#power"> 0.66 0.9375 1.26 1.55 1.7 1.85 2 2.15 2.3 2.45 2.6 2.75 2.9 3.05 3.2 3.35 3.5 3.65 3.8 3.95 4.1 4.25 4.4 4.55 4.7 4.85 5 </table> + <set name="magicLvl" val="1" /> <set name="operateType" val="P" /> + <set name="power" val="#power" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> </skill> <skill id="1316" levels="1" name="Fishing Expertise: C Grade"> <!-- Confirmed CT2.5 --> -- GitLab