Fixed some issues with item consumption.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user