diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnsoulData.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnsoulData.java index e991407326..314e42594d 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnsoulData.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnsoulData.java @@ -28,10 +28,12 @@ import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.l2jmobius.commons.util.IXmlReader; +import org.l2jmobius.gameserver.data.ItemTable; import org.l2jmobius.gameserver.model.ensoul.EnsoulFee; import org.l2jmobius.gameserver.model.ensoul.EnsoulOption; import org.l2jmobius.gameserver.model.ensoul.EnsoulStone; import org.l2jmobius.gameserver.model.holders.ItemHolder; +import org.l2jmobius.gameserver.model.item.EtcItem; /** * @author UnAfraid @@ -175,6 +177,7 @@ public class EnsoulData implements IXmlReader final EnsoulStone stone = new EnsoulStone(id, slotType); forEach(ensoulNode, "option", optionNode -> stone.addOption(parseInteger(optionNode.getAttributes(), "id"))); _ensoulStones.put(stone.getId(), stone); + ((EtcItem) ItemTable.getInstance().getTemplate(stone.getId())).setEnsoulStone(); } public ItemHolder getEnsoulFee(int stoneId, int index) diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/EtcItem.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/EtcItem.java index 54f7d76a5e..17b1849a9c 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/EtcItem.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/EtcItem.java @@ -36,6 +36,7 @@ public class EtcItem extends ItemTemplate private int _extractableCountMax; private boolean _isInfinite; private boolean _isMineral = false; + private boolean _isEnsoulStone = false; /** * Constructor for EtcItem. @@ -164,4 +165,14 @@ public class EtcItem extends ItemTemplate { _isMineral = true; } + + public boolean isEnsoulStone() + { + return _isEnsoulStone; + } + + public void setEnsoulStone() + { + _isEnsoulStone = true; + } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java index 3594f0aff3..118f10d3dc 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/UseItem.java @@ -54,6 +54,7 @@ import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.ExUseSharedGroupItem; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulWindow; import org.l2jmobius.gameserver.network.serverpackets.variation.ExShowVariationMakeWindow; public class UseItem implements IClientIncomingPacket @@ -327,9 +328,16 @@ public class UseItem implements IClientIncomingPacket } } - if ((etcItem != null) && etcItem.isMineral()) + if (etcItem != null) { - player.sendPacket(ExShowVariationMakeWindow.STATIC_PACKET); + if (etcItem.isMineral()) + { + player.sendPacket(ExShowVariationMakeWindow.STATIC_PACKET); + } + else if (etcItem.isEnsoulStone()) + { + player.sendPacket(ExShowEnsoulWindow.STATIC_PACKET); + } } } }