diff --git a/L2J_Mobius_Helios/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java b/L2J_Mobius_Helios/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java index 2eee3cedff..194bfb67dc 100644 --- a/L2J_Mobius_Helios/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java +++ b/L2J_Mobius_Helios/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java @@ -150,7 +150,7 @@ public class ItemSkillsTemplate implements IItemHandler } } - if (item.isPotion() || item.isElixir() || (successfulUse && checkConsume(item, hasConsumeSkill))) + if (successfulUse && checkConsume(item, hasConsumeSkill)) { if (!playable.destroyItem("Consume", item.getObjectId(), 1, playable, false)) { @@ -172,6 +172,7 @@ public class ItemSkillsTemplate implements IItemHandler switch (item.getItem().getDefaultAction()) { case CAPSULE: + case SKILL_REDUCE: { if (!hasConsumeSkill && item.getItem().hasImmediateEffect()) { @@ -179,7 +180,6 @@ public class ItemSkillsTemplate implements IItemHandler } break; } - case SKILL_REDUCE: case SKILL_REDUCE_ON_SKILL_SUCCESS: { return false; diff --git a/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index 218bd05243..b183377791 100644 --- a/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -454,8 +454,8 @@ public class SkillCaster implements Runnable // On each repeat recharge shots before cast. caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); - // Consume skill reduced item. - if ((_item != null) && ((_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE) || (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS))) + // Consume skill reduced item on success. + if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS)) { caster.destroyItem(_skill.toString(), _item.getObjectId(), _skill.getItemConsumeCount(), target, true); } @@ -891,26 +891,17 @@ public class SkillCaster implements Runnable } } - // Check if the spell consumes an Item - // TODO: combine check and consume - if ((skill.getItemConsumeId() > 0) && (skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + // Check if a summon spell consumes an item. + if (skill.hasEffectType(L2EffectType.SUMMON) && (skill.getItemConsumeId() > 0) && (skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) { // Get the L2ItemInstance consumed by the spell final L2ItemInstance requiredItems = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); if ((requiredItems == null) || (requiredItems.getCount() < skill.getItemConsumeCount())) { - // Checked: when a summon skill failed, server show required consume item count - if (skill.hasEffectType(L2EffectType.SUMMON)) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.SUMMONING_A_SERVITOR_COSTS_S2_S1); - sm.addItemName(skill.getItemConsumeId()); - sm.addInt(skill.getItemConsumeCount()); - caster.sendPacket(sm); - } - else - { - caster.sendPacket(SystemMessageId.THERE_ARE_NOT_ENOUGH_NECESSARY_ITEMS_TO_USE_THE_SKILL); - } + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.SUMMONING_A_SERVITOR_COSTS_S2_S1); + sm.addItemName(skill.getItemConsumeId()); + sm.addInt(skill.getItemConsumeCount()); + caster.sendPacket(sm); return false; } } diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java index 2eee3cedff..194bfb67dc 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/handlers/itemhandlers/ItemSkillsTemplate.java @@ -150,7 +150,7 @@ public class ItemSkillsTemplate implements IItemHandler } } - if (item.isPotion() || item.isElixir() || (successfulUse && checkConsume(item, hasConsumeSkill))) + if (successfulUse && checkConsume(item, hasConsumeSkill)) { if (!playable.destroyItem("Consume", item.getObjectId(), 1, playable, false)) { @@ -172,6 +172,7 @@ public class ItemSkillsTemplate implements IItemHandler switch (item.getItem().getDefaultAction()) { case CAPSULE: + case SKILL_REDUCE: { if (!hasConsumeSkill && item.getItem().hasImmediateEffect()) { @@ -179,7 +180,6 @@ public class ItemSkillsTemplate implements IItemHandler } break; } - case SKILL_REDUCE: case SKILL_REDUCE_ON_SKILL_SUCCESS: { return false; diff --git a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index 218bd05243..b183377791 100644 --- a/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -454,8 +454,8 @@ public class SkillCaster implements Runnable // On each repeat recharge shots before cast. caster.rechargeShots(_skill.useSoulShot(), _skill.useSpiritShot(), false); - // Consume skill reduced item. - if ((_item != null) && ((_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE) || (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS))) + // Consume skill reduced item on success. + if ((_item != null) && (_item.getItem().getDefaultAction() == ActionType.SKILL_REDUCE_ON_SKILL_SUCCESS)) { caster.destroyItem(_skill.toString(), _item.getObjectId(), _skill.getItemConsumeCount(), target, true); } @@ -891,26 +891,17 @@ public class SkillCaster implements Runnable } } - // Check if the spell consumes an Item - // TODO: combine check and consume - if ((skill.getItemConsumeId() > 0) && (skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + // Check if a summon spell consumes an item. + if (skill.hasEffectType(L2EffectType.SUMMON) && (skill.getItemConsumeId() > 0) && (skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) { // Get the L2ItemInstance consumed by the spell final L2ItemInstance requiredItems = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); if ((requiredItems == null) || (requiredItems.getCount() < skill.getItemConsumeCount())) { - // Checked: when a summon skill failed, server show required consume item count - if (skill.hasEffectType(L2EffectType.SUMMON)) - { - final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.SUMMONING_A_SERVITOR_COSTS_S2_S1); - sm.addItemName(skill.getItemConsumeId()); - sm.addInt(skill.getItemConsumeCount()); - caster.sendPacket(sm); - } - else - { - caster.sendPacket(SystemMessageId.THERE_ARE_NOT_ENOUGH_NECESSARY_ITEMS_TO_USE_THE_SKILL); - } + final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.SUMMONING_A_SERVITOR_COSTS_S2_S1); + sm.addItemName(skill.getItemConsumeId()); + sm.addInt(skill.getItemConsumeCount()); + caster.sendPacket(sm); return false; } }