From 744631a1bd69af43335ef4629ff06414724dc3a5 Mon Sep 17 00:00:00 2001
From: Zoey76 <zoey_76@msn.com>
Date: Tue, 4 Mar 2014 16:11:00 +0000
Subject: [PATCH] BETA: Fix for extractable items not being consumed.

Patch by: Sdw
Reviewed by: Nos, Zoey76, jurchiks
Reported by: Conteur, CostyKiller, d!g0, snacks
---
 .../scripts/handlers/itemhandlers/ItemSkillsTemplate.java   | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

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 2cc07e6de2..356f135bff 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
@@ -25,6 +25,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.TvTEvent;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.items.type.L2ActionType;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -102,9 +103,10 @@ public class ItemSkillsTemplate implements IItemHandler
 					return false;
 				}
 				
-				if ((itemSkill.getItemConsumeId() == 0) && (itemSkill.getItemConsume() > 0) && (item.isPotion() || item.isElixir() || itemSkill.isSimultaneousCast()))
+				final boolean isCapsuleItem = item.getItem().getDefaultAction() == L2ActionType.capsule;
+				if (isCapsuleItem || ((itemSkill.getItemConsumeId() == 0) && (itemSkill.getItemConsume() > 0) && (item.isPotion() || item.isElixir() || itemSkill.isSimultaneousCast())))
 				{
-					if (!playable.destroyItem("Consume", item.getObjectId(), itemSkill.getItemConsume(), playable, false))
+					if (!playable.destroyItem("Consume", item.getObjectId(), isCapsuleItem && (itemSkill.getItemConsume() == 0) ? 1 : itemSkill.getItemConsume(), playable, false))
 					{
 						playable.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS);
 						return false;
-- 
GitLab