diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2PcInstanceAction.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2PcInstanceAction.java index deed6ac0f85869f80a91a2880e9dfee9ed8e322d..241d74c4da3f8bb65be949941b65865aad5c4dc3 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2PcInstanceAction.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/actionhandlers/L2PcInstanceAction.java @@ -53,7 +53,7 @@ public class L2PcInstanceAction implements IActionHandler public boolean action(L2PcInstance activeChar, L2Object target, boolean interact) { // See description in TvTEvent.java - if (!TvTEvent.onAction( activeChar, target.getObjectId())) + if (!TvTEvent.onAction(activeChar, target.getObjectId())) return false; // Check if the L2PcInstance is confused @@ -82,7 +82,7 @@ public class L2PcInstanceAction implements IActionHandler { if (activeChar != target) activeChar.sendPacket(new ValidateLocation((L2Character)target)); // Check if this L2PcInstance has a Private Store - if (((L2PcInstance)target).getPrivateStoreType() != 0) + if (((L2PcInstance) target).getPrivateStoreType() != L2PcInstance.STORE_PRIVATE_NONE) { activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, target); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java index 4d98139298f6a9af5aa92e7160c2fdda47252eb7..6a3ea8a10711d1ae2e177b33b753dc5ef3613ee1 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java @@ -18,7 +18,6 @@ import com.l2jserver.gameserver.ai.CtrlIntention; 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.actor.instance.L2ServitorInstance; import com.l2jserver.gameserver.model.entity.TvTEvent; import com.l2jserver.gameserver.model.holders.SkillHolder; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; @@ -29,16 +28,15 @@ import com.l2jserver.gameserver.network.serverpackets.ActionFailed; import com.l2jserver.gameserver.network.serverpackets.SystemMessage; /** - * Template for item skills handler.<br> - * Only minimum of checks. + * Template for item skills handler. + * @author Zoey76 */ public class ItemSkillsTemplate implements IItemHandler { @Override public boolean useItem(L2Playable playable, L2ItemInstance item, boolean forceUse) { - final L2PcInstance activeChar = playable.getActingPlayer(); - if (!playable.isPet() && !playable.isPlayer()) + if (!playable.isPlayer() && !playable.isPet()) { return false; } @@ -52,19 +50,16 @@ public class ItemSkillsTemplate implements IItemHandler // Pets can use items only when they are tradable. if (playable.isPet() && !item.isTradeable()) { - activeChar.sendPacket(SystemMessageId.ITEM_NOT_FOR_PETS); + playable.sendPacket(SystemMessageId.ITEM_NOT_FOR_PETS); return false; } // Verify that item is not under reuse. - if (!checkReuse(activeChar, null, item)) + if (!checkReuse(playable, null, item)) { return false; } - int skillId; - int skillLvl; - final SkillHolder[] skills = item.getEtcItem().getSkills(); if (skills == null) { @@ -72,6 +67,9 @@ public class ItemSkillsTemplate implements IItemHandler return false; } + int skillId; + int skillLvl; + final L2PcInstance activeChar = playable.getActingPlayer(); for (SkillHolder skillInfo : skills) { if (skillInfo == null) @@ -79,10 +77,7 @@ public class ItemSkillsTemplate implements IItemHandler continue; } - skillId = skillInfo.getSkillId(); - skillLvl = skillInfo.getSkillLvl(); L2Skill itemSkill = skillInfo.getSkill(); - if (itemSkill != null) { if (!itemSkill.checkCondition(playable, playable.getTarget(), false)) @@ -96,7 +91,7 @@ public class ItemSkillsTemplate implements IItemHandler } // Verify that skill is not under reuse. - if (!checkReuse(activeChar, itemSkill, item)) + if (!checkReuse(playable, itemSkill, item)) { return false; } @@ -110,29 +105,31 @@ public class ItemSkillsTemplate implements IItemHandler { if (!playable.destroyItem("Consume", item.getObjectId(), itemSkill.getItemConsume(), playable, false)) { - activeChar.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS); + playable.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS); return false; } } - // send message to owner + // Send message to the master. if (playable.isPet()) { SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.PET_USES_S1); - sm.addString(itemSkill.getName()); - activeChar.sendPacket(sm); + sm.addSkillName(itemSkill); + playable.sendPacket(sm); } else { + skillId = skillInfo.getSkillId(); + skillLvl = skillInfo.getSkillLvl(); + // Short buff icon for healing potions. switch (skillId) { - // short buff icon for healing potions case 2031: case 2032: case 2037: case 26025: case 26026: - final int buffId = activeChar._shortBuffTaskSkillId; + final int buffId = activeChar.getShortBuffTaskSkillId(); if ((skillId == 2037) || (skillId == 26025)) { activeChar.shortBuffStatusUpdate(skillId, skillLvl, itemSkill.getBuffDuration() / 1000); @@ -152,11 +149,11 @@ public class ItemSkillsTemplate implements IItemHandler } } - if (item.isPotion() || item.isElixir() || itemSkill.isSimultaneousCast()) + if (item.isPotion() || item.isElixir() || (item.getItemType() == L2EtcItemType.HERB) || itemSkill.isSimultaneousCast()) { playable.doSimultaneousCast(itemSkill); // Summons should be affected by herbs too, self time effect is handled at L2Effect constructor - if (!playable.isPet() && (item.getItemType() == L2EtcItemType.HERB) && (activeChar.getPet() != null) && (activeChar.getPet() instanceof L2ServitorInstance)) + if (!playable.isSummon() && (activeChar.getPet() != null)) { activeChar.getPet().doSimultaneousCast(itemSkill); } @@ -174,7 +171,7 @@ public class ItemSkillsTemplate implements IItemHandler { if (!playable.destroyItem("Consume", item.getObjectId(), itemSkill.getItemConsume(), null, false)) { - activeChar.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS); + playable.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS); return false; } } @@ -182,7 +179,7 @@ public class ItemSkillsTemplate implements IItemHandler if (itemSkill.getReuseDelay() > 0) { - activeChar.addTimeStamp(itemSkill, itemSkill.getReuseDelay()); + playable.addTimeStamp(itemSkill, itemSkill.getReuseDelay()); } } } @@ -190,70 +187,65 @@ public class ItemSkillsTemplate implements IItemHandler } /** - * @param player the player using the item or skill + * @param playable the character using the item or skill * @param skill the skill being used, can be null * @param item the item being used * @return {@code true} if the the item or skill to check is available, {@code false} otherwise */ - private boolean checkReuse(L2PcInstance player, L2Skill skill, L2ItemInstance item) + private boolean checkReuse(L2Playable playable, L2Skill skill, L2ItemInstance item) { - SystemMessage sm = null; - final long remainingTime = (skill != null) ? player.getSkillRemainingReuseTime(skill.getReuseHashCode()) : player.getItemRemainingReuseTime(item.getObjectId()); + final long remainingTime = (skill != null) ? playable.getSkillRemainingReuseTime(skill.getReuseHashCode()) : playable.getItemRemainingReuseTime(item.getObjectId()); final boolean isAvailable = remainingTime <= 0; - if (!isAvailable) + if (playable.isPlayer()) { - final int hours = (int) (remainingTime / 3600000L); - final int minutes = (int) (remainingTime % 3600000L) / 60000; - final int seconds = (int) ((remainingTime / 1000) % 60); - if (hours > 0) + if (!isAvailable) { - sm = SystemMessage.getSystemMessage(SystemMessageId.S2_HOURS_S3_MINUTES_S4_SECONDS_REMAINING_FOR_REUSE_S1); - if ((skill == null) || skill.isStatic()) - { - sm.addItemName(item); - } - else - { - sm.addSkillName(skill); - } - sm.addNumber(hours); - sm.addNumber(minutes); - } - else if (minutes > 0) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.S2_MINUTES_S3_SECONDS_REMAINING_FOR_REUSE_S1); - if ((skill == null) || skill.isStatic()) - { - sm.addItemName(item); - } - else - { - sm.addSkillName(skill); + final int hours = (int) (remainingTime / 3600000L); + final int minutes = (int) (remainingTime % 3600000L) / 60000; + final int seconds = (int) ((remainingTime / 1000) % 60); + SystemMessage sm = null; + if (hours > 0) + { + sm = SystemMessage.getSystemMessage(SystemMessageId.S2_HOURS_S3_MINUTES_S4_SECONDS_REMAINING_FOR_REUSE_S1); + if ((skill == null) || skill.isStatic()) + { + sm.addItemName(item); + } + else + { + sm.addSkillName(skill); + } + sm.addNumber(hours); + sm.addNumber(minutes); } - sm.addNumber(minutes); - } - else - { - sm = SystemMessage.getSystemMessage(SystemMessageId.S2_SECONDS_REMAINING_FOR_REUSE_S1); - if ((skill == null) || skill.isStatic()) + else if (minutes > 0) { - sm.addItemName(item); + sm = SystemMessage.getSystemMessage(SystemMessageId.S2_MINUTES_S3_SECONDS_REMAINING_FOR_REUSE_S1); + if ((skill == null) || skill.isStatic()) + { + sm.addItemName(item); + } + else + { + sm.addSkillName(skill); + } + sm.addNumber(minutes); } else { - sm.addSkillName(skill); + sm = SystemMessage.getSystemMessage(SystemMessageId.S2_SECONDS_REMAINING_FOR_REUSE_S1); + if ((skill == null) || skill.isStatic()) + { + sm.addItemName(item); + } + else + { + sm.addSkillName(skill); + } } + sm.addNumber(seconds); + playable.sendPacket(sm); } - sm.addNumber(seconds); - } - else if (skill == null) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.S1_PREPARED_FOR_REUSE); - sm.addItemName(item); - } - if (sm != null) - { - player.sendPacket(sm); } return isAvailable; } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Craft.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Craft.java index 4734d7730d78cf354d3b95a24415eb80cf9fa86e..e755f5de76caf9cc261928880e647056802a87c3 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Craft.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Craft.java @@ -42,7 +42,7 @@ public class Craft implements ISkillHandler L2PcInstance player = activeChar.getActingPlayer(); - if (player.getPrivateStoreType() != 0) + if (player.getPrivateStoreType() != L2PcInstance.STORE_PRIVATE_NONE) { player.sendPacket(SystemMessageId.CANNOT_CREATED_WHILE_ENGAGED_IN_TRADING); return;