rendered paste bodyIndex: C:/dev/workspace/L2_GameServer_CT1/src/main/java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java
===================================================================
--- C:/dev/workspace/L2_GameServer_CT1/src/main/java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java (revision 2671)
+++ C:/dev/workspace/L2_GameServer_CT1/src/main/java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java (working copy)
@@ -262,6 +262,14 @@
L2ItemInstance ae = activeChar.getInventory().getPaperdollItemByL2ItemId(bodyPart);
if(ae != null)
{
+ //Find Arrows if arrows are equipped in LHand:
+ if (activeChar.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND) ==
+ activeChar.getInventory().findArrowForBow(ae.getItem()))
+ {
+ //Remove arrows if they're equipped:
+ activeChar.getInventory().unEquipItemInBodySlotAndRecord(Inventory.PAPERDOLL_LHAND);
+ activeChar.getInventory().setPaperdollItem(Inventory.PAPERDOLL_LHAND, null);
+ }
activeChar.getInventory().unEquipItemInBodySlotAndRecord(bodyPart);
activeChar.checkSSMatch(item, ae);
if (ae.getEnchantLevel() > 0)
@@ -292,21 +300,28 @@
{
if(item.isWear())
return;
+
+ if (bodyPart == L2Item.SLOT_L_EAR || bodyPart == L2Item.SLOT_LR_EAR ||
+ bodyPart == L2Item.SLOT_L_FINGER || bodyPart == L2Item.SLOT_LR_FINGER)
+ activeChar.getInventory().setPaperdollItem(item.getEquipSlot(), null);
+
activeChar.getInventory().unEquipItemInBodySlotAndRecord(bodyPart);
if (item.getEnchantLevel() > 0)
{
- sm = new SystemMessage(SystemMessageId.S1_S2_EQUIPPED);
+ sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item);
}
else
{
- sm = new SystemMessage(SystemMessageId.S1_EQUIPPED);
+ sm = new SystemMessage(SystemMessageId.S1_DISARMED);
sm.addItemName(item);
}
if(item.isAugmented())
item.getAugmentation().removeBoni(activeChar);
+
+ activeChar.sendPacket(sm);
}
item.decreaseMana(false);