From d3023bcc947ae230c40d864d0b431e203cbd4a74 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 31 Aug 2018 22:33:55 +0000 Subject: [PATCH] Fixed consuming skill reagents. --- .../gameserver/model/skills/SkillCaster.java | 19 +++++++++++++++---- .../gameserver/model/skills/SkillCaster.java | 19 +++++++++++++++---- .../gameserver/model/skills/SkillCaster.java | 19 +++++++++++++++---- .../gameserver/model/skills/SkillCaster.java | 19 +++++++++++++++---- .../gameserver/model/skills/SkillCaster.java | 19 +++++++++++++++---- .../gameserver/model/skills/SkillCaster.java | 19 +++++++++++++++---- .../gameserver/model/skills/SkillCaster.java | 19 +++++++++++++++---- 7 files changed, 105 insertions(+), 28 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index 3e86e12b33..e713466cb2 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -335,11 +335,22 @@ public class SkillCaster implements Runnable caster.sendPacket(new SetupGauge(caster.getObjectId(), SetupGauge.BLUE, displayedCastTime)); } + // Consume reagent item. + if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + { + // Get the L2ItemInstance consumed by the spell. + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(_skill.getItemConsumeId()); + if (requiredItem.getItem().getDefaultAction() == ActionType.NONE) // Non reagent items are removed at finishSkill or item handler. + { + caster.destroyItem(_skill.toString(), requiredItem.getObjectId(), _skill.getItemConsumeCount(), caster, false); + } + } + if (caster.isPlayer()) { final L2PcInstance player = caster.getActingPlayer(); - // Consume fame points + // Consume fame points. if (_skill.getFamePointConsume() > 0) { if (player.getFame() < _skill.getFamePointConsume()) @@ -354,7 +365,7 @@ public class SkillCaster implements Runnable player.sendPacket(msg); } - // Consume clan reputation points + // Consume clan reputation points. if (_skill.getClanRepConsume() > 0) { final L2Clan clan = player.getClan(); @@ -997,8 +1008,8 @@ public class SkillCaster implements Runnable if ((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())) + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); + if ((requiredItem == null) || (requiredItem.getCount() < skill.getItemConsumeCount())) { if (skill.hasEffectType(L2EffectType.SUMMON)) { diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index 3e86e12b33..e713466cb2 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -335,11 +335,22 @@ public class SkillCaster implements Runnable caster.sendPacket(new SetupGauge(caster.getObjectId(), SetupGauge.BLUE, displayedCastTime)); } + // Consume reagent item. + if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + { + // Get the L2ItemInstance consumed by the spell. + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(_skill.getItemConsumeId()); + if (requiredItem.getItem().getDefaultAction() == ActionType.NONE) // Non reagent items are removed at finishSkill or item handler. + { + caster.destroyItem(_skill.toString(), requiredItem.getObjectId(), _skill.getItemConsumeCount(), caster, false); + } + } + if (caster.isPlayer()) { final L2PcInstance player = caster.getActingPlayer(); - // Consume fame points + // Consume fame points. if (_skill.getFamePointConsume() > 0) { if (player.getFame() < _skill.getFamePointConsume()) @@ -354,7 +365,7 @@ public class SkillCaster implements Runnable player.sendPacket(msg); } - // Consume clan reputation points + // Consume clan reputation points. if (_skill.getClanRepConsume() > 0) { final L2Clan clan = player.getClan(); @@ -997,8 +1008,8 @@ public class SkillCaster implements Runnable if ((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())) + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); + if ((requiredItem == null) || (requiredItem.getCount() < skill.getItemConsumeCount())) { if (skill.hasEffectType(L2EffectType.SUMMON)) { diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index 3e86e12b33..e713466cb2 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -335,11 +335,22 @@ public class SkillCaster implements Runnable caster.sendPacket(new SetupGauge(caster.getObjectId(), SetupGauge.BLUE, displayedCastTime)); } + // Consume reagent item. + if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + { + // Get the L2ItemInstance consumed by the spell. + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(_skill.getItemConsumeId()); + if (requiredItem.getItem().getDefaultAction() == ActionType.NONE) // Non reagent items are removed at finishSkill or item handler. + { + caster.destroyItem(_skill.toString(), requiredItem.getObjectId(), _skill.getItemConsumeCount(), caster, false); + } + } + if (caster.isPlayer()) { final L2PcInstance player = caster.getActingPlayer(); - // Consume fame points + // Consume fame points. if (_skill.getFamePointConsume() > 0) { if (player.getFame() < _skill.getFamePointConsume()) @@ -354,7 +365,7 @@ public class SkillCaster implements Runnable player.sendPacket(msg); } - // Consume clan reputation points + // Consume clan reputation points. if (_skill.getClanRepConsume() > 0) { final L2Clan clan = player.getClan(); @@ -997,8 +1008,8 @@ public class SkillCaster implements Runnable if ((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())) + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); + if ((requiredItem == null) || (requiredItem.getCount() < skill.getItemConsumeCount())) { if (skill.hasEffectType(L2EffectType.SUMMON)) { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index 3e86e12b33..e713466cb2 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -335,11 +335,22 @@ public class SkillCaster implements Runnable caster.sendPacket(new SetupGauge(caster.getObjectId(), SetupGauge.BLUE, displayedCastTime)); } + // Consume reagent item. + if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + { + // Get the L2ItemInstance consumed by the spell. + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(_skill.getItemConsumeId()); + if (requiredItem.getItem().getDefaultAction() == ActionType.NONE) // Non reagent items are removed at finishSkill or item handler. + { + caster.destroyItem(_skill.toString(), requiredItem.getObjectId(), _skill.getItemConsumeCount(), caster, false); + } + } + if (caster.isPlayer()) { final L2PcInstance player = caster.getActingPlayer(); - // Consume fame points + // Consume fame points. if (_skill.getFamePointConsume() > 0) { if (player.getFame() < _skill.getFamePointConsume()) @@ -354,7 +365,7 @@ public class SkillCaster implements Runnable player.sendPacket(msg); } - // Consume clan reputation points + // Consume clan reputation points. if (_skill.getClanRepConsume() > 0) { final L2Clan clan = player.getClan(); @@ -997,8 +1008,8 @@ public class SkillCaster implements Runnable if ((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())) + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); + if ((requiredItem == null) || (requiredItem.getCount() < skill.getItemConsumeCount())) { if (skill.hasEffectType(L2EffectType.SUMMON)) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index b13a6c04c7..972b5b2594 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -335,11 +335,22 @@ public class SkillCaster implements Runnable caster.sendPacket(new SetupGauge(caster.getObjectId(), SetupGauge.BLUE, displayedCastTime)); } + // Consume reagent item. + if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + { + // Get the L2ItemInstance consumed by the spell. + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(_skill.getItemConsumeId()); + if (requiredItem.getItem().getDefaultAction() == ActionType.NONE) // Non reagent items are removed at finishSkill or item handler. + { + caster.destroyItem(_skill.toString(), requiredItem.getObjectId(), _skill.getItemConsumeCount(), caster, false); + } + } + if (caster.isPlayer()) { final L2PcInstance player = caster.getActingPlayer(); - // Consume fame points + // Consume fame points. if (_skill.getFamePointConsume() > 0) { if (player.getFame() < _skill.getFamePointConsume()) @@ -354,7 +365,7 @@ public class SkillCaster implements Runnable player.sendPacket(msg); } - // Consume clan reputation points + // Consume clan reputation points. if (_skill.getClanRepConsume() > 0) { final L2Clan clan = player.getClan(); @@ -997,8 +1008,8 @@ public class SkillCaster implements Runnable if ((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())) + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); + if ((requiredItem == null) || (requiredItem.getCount() < skill.getItemConsumeCount())) { if (skill.hasEffectType(L2EffectType.SUMMON)) { diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index b13a6c04c7..972b5b2594 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -335,11 +335,22 @@ public class SkillCaster implements Runnable caster.sendPacket(new SetupGauge(caster.getObjectId(), SetupGauge.BLUE, displayedCastTime)); } + // Consume reagent item. + if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + { + // Get the L2ItemInstance consumed by the spell. + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(_skill.getItemConsumeId()); + if (requiredItem.getItem().getDefaultAction() == ActionType.NONE) // Non reagent items are removed at finishSkill or item handler. + { + caster.destroyItem(_skill.toString(), requiredItem.getObjectId(), _skill.getItemConsumeCount(), caster, false); + } + } + if (caster.isPlayer()) { final L2PcInstance player = caster.getActingPlayer(); - // Consume fame points + // Consume fame points. if (_skill.getFamePointConsume() > 0) { if (player.getFame() < _skill.getFamePointConsume()) @@ -354,7 +365,7 @@ public class SkillCaster implements Runnable player.sendPacket(msg); } - // Consume clan reputation points + // Consume clan reputation points. if (_skill.getClanRepConsume() > 0) { final L2Clan clan = player.getClan(); @@ -997,8 +1008,8 @@ public class SkillCaster implements Runnable if ((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())) + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); + if ((requiredItem == null) || (requiredItem.getCount() < skill.getItemConsumeCount())) { if (skill.hasEffectType(L2EffectType.SUMMON)) { diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java index b13a6c04c7..972b5b2594 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/com/l2jmobius/gameserver/model/skills/SkillCaster.java @@ -335,11 +335,22 @@ public class SkillCaster implements Runnable caster.sendPacket(new SetupGauge(caster.getObjectId(), SetupGauge.BLUE, displayedCastTime)); } + // Consume reagent item. + if ((_skill.getItemConsumeId() > 0) && (_skill.getItemConsumeCount() > 0) && (caster.getInventory() != null)) + { + // Get the L2ItemInstance consumed by the spell. + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(_skill.getItemConsumeId()); + if (requiredItem.getItem().getDefaultAction() == ActionType.NONE) // Non reagent items are removed at finishSkill or item handler. + { + caster.destroyItem(_skill.toString(), requiredItem.getObjectId(), _skill.getItemConsumeCount(), caster, false); + } + } + if (caster.isPlayer()) { final L2PcInstance player = caster.getActingPlayer(); - // Consume fame points + // Consume fame points. if (_skill.getFamePointConsume() > 0) { if (player.getFame() < _skill.getFamePointConsume()) @@ -354,7 +365,7 @@ public class SkillCaster implements Runnable player.sendPacket(msg); } - // Consume clan reputation points + // Consume clan reputation points. if (_skill.getClanRepConsume() > 0) { final L2Clan clan = player.getClan(); @@ -997,8 +1008,8 @@ public class SkillCaster implements Runnable if ((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())) + final L2ItemInstance requiredItem = caster.getInventory().getItemByItemId(skill.getItemConsumeId()); + if ((requiredItem == null) || (requiredItem.getCount() < skill.getItemConsumeCount())) { if (skill.hasEffectType(L2EffectType.SUMMON)) {