Index: /trunk/Archid-Game/src/com/l2jarchid/gameserver/network/clientpackets/UseItem.java
===================================================================
--- /trunk/Archid-Game/src/com/l2jarchid/gameserver/network/clientpackets/UseItem.java (revision 1203)
+++ /trunk/Archid-Game/src/com/l2jarchid/gameserver/network/clientpackets/UseItem.java (revision 1227)
@@ -277,8 +277,4 @@
activeChar.sendPacket(sm);
- // Remove augementation boni on unequip
- if (item.isAugmented())
- item.getAugmentation().removeBoni(activeChar);
-
int slot = activeChar.getInventory().getSlotFromItem(item);
items = activeChar.getInventory()
@@ -287,21 +283,5 @@
{
int tempBodyPart = item.getItem().getBodyPart();
- L2ItemInstance tempItem = activeChar.getInventory()
- .getPaperdollItemByL2ItemId(tempBodyPart);
-
- // remove augmentation stats for replaced items
- // currently weapons only..
- if (tempItem != null && tempItem.isAugmented())
- tempItem.getAugmentation().removeBoni(activeChar);
- else if (tempBodyPart == 0x4000)
- {
- L2ItemInstance tempItem2 = activeChar.getInventory()
- .getPaperdollItem(7);
- if (tempItem2 != null && tempItem2.isAugmented())
- tempItem2.getAugmentation().removeBoni(activeChar);
- tempItem2 = activeChar.getInventory().getPaperdollItem(8);
- if (tempItem2 != null && tempItem2.isAugmented())
- tempItem2.getAugmentation().removeBoni(activeChar);
- }
+ L2ItemInstance tempItem = activeChar.getInventory().getPaperdollItemByL2ItemId(tempBodyPart);
// check if the item replaces a wear-item
@@ -343,8 +323,4 @@
}
activeChar.sendPacket(sm);
-
- // Apply augementation boni on equip
- if (item.isAugmented())
- item.getAugmentation().applyBoni(activeChar);
items = activeChar.getInventory().equipItemAndRecord(item);
Index: /trunk/Archid-Game/src/com/l2jarchid/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /trunk/Archid-Game/src/com/l2jarchid/gameserver/model/actor/instance/L2PcInstance.java (revision 1208)
+++ /trunk/Archid-Game/src/com/l2jarchid/gameserver/model/actor/instance/L2PcInstance.java (revision 1227)
@@ -8631,4 +8631,6 @@
* 10.Unsummon any active servitor from the player.
*/
+ for (L2ItemInstance temp : getInventory().getAugmentedItems())
+ if (temp != null && temp.isEquipped()) temp.getAugmentation().removeBoni(this);
if (getPet() != null && getPet() instanceof L2SummonInstance)
Index: /trunk/Archid-Game/src/com/l2jarchid/gameserver/model/Inventory.java
===================================================================
--- /trunk/Archid-Game/src/com/l2jarchid/gameserver/model/Inventory.java (revision 1203)
+++ /trunk/Archid-Game/src/com/l2jarchid/gameserver/model/Inventory.java (revision 1227)
@@ -49,5 +49,6 @@
//protected static final Logger _log = Logger.getLogger(Inventory.class.getName());
- public interface PaperdollListener {
+ public interface PaperdollListener
+ {
public void notifyEquiped(int slot, L2ItemInstance inst);
public void notifyUnequiped(int slot, L2ItemInstance inst);
@@ -89,6 +90,5 @@
public void notifyUnequiped(int slot, L2ItemInstance item)
{
- if (!(getOwner() != null
- && getOwner() instanceof L2PcInstance))
+ if (!(getOwner() != null && getOwner() instanceof L2PcInstance))
return;
@@ -98,8 +98,8 @@
owner.setIsWearingFormalWear(false);
}
+
public void notifyEquiped(int slot, L2ItemInstance item)
{
- if (!(getOwner() != null
- && getOwner() instanceof L2PcInstance))
+ if (!(getOwner() != null && getOwner() instanceof L2PcInstance))
return;
@@ -140,5 +140,4 @@
* Add alteration in inventory when item equiped
*/
- @SuppressWarnings("unused")
public void notifyEquiped(int slot, L2ItemInstance item) {
if (!_changed.contains(item))
@@ -149,5 +148,4 @@
* Add alteration in inventory when item unequiped
*/
- @SuppressWarnings("unused")
public void notifyUnequiped(int slot, L2ItemInstance item) {
if (!_changed.contains(item))
@@ -245,4 +243,5 @@
}
}
+
public void notifyEquiped(int slot, L2ItemInstance item)
{
@@ -284,4 +283,35 @@
}
}
+
+ final class ItemAugmentationSkillsListener implements PaperdollListener
+ {
+ /**
+ * @see com.l2jarchid.gameserver.model.Inventory.PaperdollListener#notifyEquiped(int, com.l2jarchid.gameserver.model.L2ItemInstance)
+ */
+ public void notifyEquiped(int slot, L2ItemInstance item)
+ {
+ if(getOwner() instanceof L2PcInstance)
+ {
+ L2PcInstance activeChar = (L2PcInstance)getOwner();
+ // Apply augementation boni on equip
+ if (item.isAugmented())
+ item.getAugmentation().applyBoni(activeChar);
+ }
+ }
+
+ /**
+ * @see com.l2jarchid.gameserver.model.Inventory.PaperdollListener#notifyUnequiped(int, com.l2jarchid.gameserver.model.L2ItemInstance)
+ */
+ public void notifyUnequiped(int slot, L2ItemInstance item)
+ {
+ if(getOwner() instanceof L2PcInstance)
+ {
+ L2PcInstance activeChar = (L2PcInstance)getOwner();
+ if (item.isAugmented())
+ item.getAugmentation().removeBoni(activeChar);
+ }
+ }
+ }
+
final class ArmorSetListener implements PaperdollListener
{
@@ -498,4 +528,5 @@
addPaperdollListener(new BowListener());
addPaperdollListener(new ItemPassiveSkillsListener());
+ addPaperdollListener(new ItemAugmentationSkillsListener());
addPaperdollListener(new StatsListener());
//addPaperdollListener(new FormalWearListener());
Give me hugs and money now.