From 235566b3f7a4dd53cad35ad89ae17e99c56b00f0 Mon Sep 17 00:00:00 2001 From: Rumen Nikiforov <unafraid89@gmail.com> Date: Mon, 21 May 2012 21:19:43 +0000 Subject: [PATCH] BETA: DP-Part for [L5373] --- .../itemhandlers/BlessedSpiritShot.java | 94 ++++------------ .../handlers/itemhandlers/SoulShots.java | 102 +++--------------- .../handlers/itemhandlers/SpiritShot.java | 101 ++++------------- 3 files changed, 57 insertions(+), 240 deletions(-) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/BlessedSpiritShot.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/BlessedSpiritShot.java index d2375d8383..b31c95e7c5 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/BlessedSpiritShot.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/BlessedSpiritShot.java @@ -14,12 +14,15 @@ */ package handlers.itemhandlers; +import java.util.logging.Level; + import com.l2jserver.gameserver.handler.IItemHandler; import com.l2jserver.gameserver.model.actor.L2Playable; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; -import com.l2jserver.gameserver.model.items.L2Item; +import com.l2jserver.gameserver.model.holders.SkillHolder; import com.l2jserver.gameserver.model.items.L2Weapon; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; +import com.l2jserver.gameserver.model.items.type.L2ActionType; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse; import com.l2jserver.gameserver.util.Broadcast; @@ -27,16 +30,26 @@ import com.l2jserver.gameserver.util.Broadcast; public class BlessedSpiritShot implements IItemHandler { @Override - public synchronized boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) + public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) { - if (!(playable instanceof L2PcInstance)) + if (!playable.isPlayer()) + { return false; + } L2PcInstance activeChar = (L2PcInstance) playable; L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance(); L2Weapon weaponItem = activeChar.getActiveWeaponItem(); + final SkillHolder[] skills = item.getItem().getSkills(); + int itemId = item.getItemId(); + if (skills == null) + { + _log.log(Level.WARNING, getClass().getSimpleName() + ": is missing skills!"); + return false; + } + // Check if Blessed SpiritShot can be used if (weaponInst == null || weaponItem == null || weaponItem.getSpiritShotCount() == 0) { @@ -50,39 +63,7 @@ public class BlessedSpiritShot implements IItemHandler return false; // Check for correct grade - final int weaponGrade = weaponItem.getCrystalType(); - - boolean gradeCheck = true; - - switch (weaponGrade) - { - case L2Item.CRYSTAL_NONE: - if (itemId != 3947) - gradeCheck = false; - break; - case L2Item.CRYSTAL_D: - if (itemId != 3948 && itemId != 22072) - gradeCheck = false; - break; - case L2Item.CRYSTAL_C: - if (itemId != 3949 && itemId != 22073) - gradeCheck = false; - break; - case L2Item.CRYSTAL_B: - if (itemId != 3950 && itemId != 22074) - gradeCheck = false; - break; - case L2Item.CRYSTAL_A: - if (itemId != 3951 && itemId != 22075) - gradeCheck = false; - break; - case L2Item.CRYSTAL_S: - case L2Item.CRYSTAL_S80: - case L2Item.CRYSTAL_S84: - if (itemId != 3952 && itemId != 22076) - gradeCheck = false; - break; - } + boolean gradeCheck = item.isEtcItem() && item.getEtcItem().getDefaultAction() == L2ActionType.spiritshot && weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus(); if (!gradeCheck) { @@ -92,7 +73,6 @@ public class BlessedSpiritShot implements IItemHandler return false; } - // Consume Blessed SpiritShot if player has enough of them if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false)) { @@ -106,45 +86,7 @@ public class BlessedSpiritShot implements IItemHandler // Send message to client activeChar.sendPacket(SystemMessageId.ENABLED_SPIRITSHOT); - int skillId = 0; - switch (itemId) - { - case 3947: - skillId=2061; - break; - case 3948: - skillId=2160; - break; - case 3949: - skillId=2161; - break; - case 3950: - skillId=2162; - break; - case 3951: - skillId=2163; - break; - case 3952: - skillId=2164; - break; - case 22072: - skillId=26050; - break; - case 22073: - skillId=26051; - break; - case 22074: - skillId=26052; - break; - case 22075: - skillId=26053; - break; - case 22076: - skillId=26054; - break; - - } - Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skillId, 1, 0, 0), 360000); + Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 360000); return true; } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SoulShots.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SoulShots.java index 5d016d0271..e2c2330c82 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SoulShots.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SoulShots.java @@ -14,12 +14,15 @@ */ package handlers.itemhandlers; +import java.util.logging.Level; + import com.l2jserver.gameserver.handler.IItemHandler; import com.l2jserver.gameserver.model.actor.L2Playable; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; -import com.l2jserver.gameserver.model.items.L2Item; +import com.l2jserver.gameserver.model.holders.SkillHolder; import com.l2jserver.gameserver.model.items.L2Weapon; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; +import com.l2jserver.gameserver.model.items.type.L2ActionType; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse; import com.l2jserver.gameserver.util.Broadcast; @@ -30,7 +33,7 @@ public class SoulShots implements IItemHandler @Override public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) { - if (!(playable instanceof L2PcInstance)) + if (!playable.isPlayer()) { return false; } @@ -38,7 +41,15 @@ public class SoulShots implements IItemHandler final L2PcInstance activeChar = playable.getActingPlayer(); final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance(); final L2Weapon weaponItem = activeChar.getActiveWeaponItem(); - final int itemId = item.getItemId(); + final SkillHolder[] skills = item.getItem().getSkills(); + + int itemId = item.getItemId(); + + if (skills == null) + { + _log.log(Level.WARNING, getClass().getSimpleName() + ": is missing skills!"); + return false; + } // Check if Soul shot can be used if ((weaponInst == null) || (weaponItem.getSoulShotCount() == 0)) @@ -50,49 +61,7 @@ public class SoulShots implements IItemHandler return false; } - boolean gradeCheck = true; - final int weaponGrade = weaponItem.getCrystalType(); - switch (weaponGrade) - { - case L2Item.CRYSTAL_NONE: - if ((itemId != 5789) && (itemId != 1835)) - { - gradeCheck = false; - } - break; - case L2Item.CRYSTAL_D: - if ((itemId != 1463) && (itemId != 22082)) - { - gradeCheck = false; - } - break; - case L2Item.CRYSTAL_C: - if ((itemId != 1464) && (itemId != 22083)) - { - gradeCheck = false; - } - break; - case L2Item.CRYSTAL_B: - if ((itemId != 1465) && (itemId != 22084)) - { - gradeCheck = false; - } - break; - case L2Item.CRYSTAL_A: - if ((itemId != 1466) && (itemId != 22085)) - { - gradeCheck = false; - } - break; - case L2Item.CRYSTAL_S: - case L2Item.CRYSTAL_S80: - case L2Item.CRYSTAL_S84: - if ((itemId != 1467) && (itemId != 22086)) - { - gradeCheck = false; - } - break; - } + boolean gradeCheck = item.isEtcItem() && item.getEtcItem().getDefaultAction() == L2ActionType.soulshot && weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus(); if (!gradeCheck) { @@ -134,47 +103,10 @@ public class SoulShots implements IItemHandler { activeChar.soulShotLock.unlock(); } - int skillId = 0; - switch (itemId) - { - case 1835: - case 5789: - skillId = 2039; - break; - case 1463: - skillId = 2150; - break; - case 1464: - skillId = 2151; - break; - case 1465: - skillId = 2152; - break; - case 1466: - skillId = 2153; - break; - case 1467: - skillId = 2154; - break; - case 22082: - skillId = 26060; - break; - case 22083: - skillId = 26061; - break; - case 22084: - skillId = 26062; - break; - case 22085: - skillId = 26063; - break; - case 22086: - skillId = 26064; - break; - } + // Send message to client activeChar.sendPacket(SystemMessageId.ENABLED_SOULSHOT); - Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skillId, 1, 0, 0), 360000); + Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 360000); return true; } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SpiritShot.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SpiritShot.java index 6dabbdd353..377037ae9c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SpiritShot.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SpiritShot.java @@ -14,12 +14,15 @@ */ package handlers.itemhandlers; +import java.util.logging.Level; + import com.l2jserver.gameserver.handler.IItemHandler; import com.l2jserver.gameserver.model.actor.L2Playable; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; -import com.l2jserver.gameserver.model.items.L2Item; +import com.l2jserver.gameserver.model.holders.SkillHolder; import com.l2jserver.gameserver.model.items.L2Weapon; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; +import com.l2jserver.gameserver.model.items.type.L2ActionType; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse; import com.l2jserver.gameserver.util.Broadcast; @@ -27,16 +30,26 @@ import com.l2jserver.gameserver.util.Broadcast; public class SpiritShot implements IItemHandler { @Override - public synchronized boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) + public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) { - if (!(playable instanceof L2PcInstance)) + if (!playable.isPlayer()) + { return false; + } + + final L2PcInstance activeChar = (L2PcInstance) playable; + final L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance(); + final L2Weapon weaponItem = activeChar.getActiveWeaponItem(); + final SkillHolder[] skills = item.getItem().getSkills(); - L2PcInstance activeChar = (L2PcInstance) playable; - L2ItemInstance weaponInst = activeChar.getActiveWeaponInstance(); - L2Weapon weaponItem = activeChar.getActiveWeaponItem(); int itemId = item.getItemId(); + if (skills == null) + { + _log.log(Level.WARNING, getClass().getSimpleName() + ": is missing skills!"); + return false; + } + // Check if Spirit shot can be used if (weaponInst == null || weaponItem.getSpiritShotCount() == 0) { @@ -49,39 +62,7 @@ public class SpiritShot implements IItemHandler if (weaponInst.getChargedSpiritshot() != L2ItemInstance.CHARGED_NONE) return false; - final int weaponGrade = weaponItem.getCrystalType(); - - boolean gradeCheck = true; - - switch (weaponGrade) - { - case L2Item.CRYSTAL_NONE: - if (itemId != 5790 && itemId != 2509) - gradeCheck = false; - break; - case L2Item.CRYSTAL_D: - if (itemId != 2510 && itemId != 22077) - gradeCheck = false; - break; - case L2Item.CRYSTAL_C: - if (itemId != 2511 && itemId != 22078) - gradeCheck = false; - break; - case L2Item.CRYSTAL_B: - if (itemId != 2512 && itemId != 22079) - gradeCheck = false; - break; - case L2Item.CRYSTAL_A: - if (itemId != 2513 && itemId != 22080) - gradeCheck = false; - break; - case L2Item.CRYSTAL_S: - case L2Item.CRYSTAL_S80: - case L2Item.CRYSTAL_S84: - if (itemId != 2514 && itemId != 22081) - gradeCheck = false; - break; - } + boolean gradeCheck = item.isEtcItem() && item.getEtcItem().getDefaultAction() == L2ActionType.spiritshot && weaponInst.getItem().getItemGradeSPlus() == item.getItem().getItemGradeSPlus(); if (!gradeCheck) { @@ -101,48 +82,10 @@ public class SpiritShot implements IItemHandler // Charge Spirit shot weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_SPIRITSHOT); - int skillId = 0; - switch (itemId) - { - case 2509: - case 5790: - skillId=2061; - break; - case 2510: - skillId=2155; - break; - case 2511: - skillId=2156; - break; - case 2512: - skillId=2157; - break; - case 2513: - skillId=2158; - break; - case 2514: - skillId=2159; - break; - case 22077: - skillId=26055; - break; - case 22078: - skillId=26056; - break; - case 22079: - skillId=26057; - break; - case 22080: - skillId=26058; - break; - case 22081: - skillId=26059; - break; - - } + // Send message to client activeChar.sendPacket(SystemMessageId.ENABLED_SPIRITSHOT); - Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skillId, 1, 0, 0), 360000); + Broadcast.toSelfAndKnownPlayersInRadius(activeChar, new MagicSkillUse(activeChar, activeChar, skills[0].getSkillId(), skills[0].getSkillLvl(), 0, 0), 360000); return true; } } -- GitLab