aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeader <keader.android@gmail.com>2017-09-14 11:15:28 -0300
committerKeader <keader.android@gmail.com>2017-09-14 11:15:28 -0300
commit42be04898c6fd001160ee4fdf00fc2ba5c5c1ee3 (patch)
tree97fd90f790cecf67a2abc8461013e0e248969274
parent4505a4a30d8fee0c262a3a17253d50f8c86c9a4f (diff)
Core/Handlers: Fixed changing equipment while charmed with equipament manager
Closes #20209 Followup: a1a12ec755e4aa5e2e8475d6a6158bac94f0977a
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 9bdf294c9b3..ba0eecb0b35 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1560,6 +1560,9 @@ void WorldSession::HandleEquipmentSetUse(WorldPacket& recvData)
InventoryResult msg = _player->CanStoreItem(NULL_BAG, NULL_SLOT, sDest, uItem, false);
if (msg == EQUIP_ERR_OK)
{
+ if (_player->CanEquipItem(NULL_SLOT, dstpos, uItem, false) != EQUIP_ERR_OK)
+ continue;
+
_player->RemoveItem(INVENTORY_SLOT_BAG_0, i, true);
_player->StoreItem(sDest, uItem, true);
}
@@ -1572,6 +1575,9 @@ void WorldSession::HandleEquipmentSetUse(WorldPacket& recvData)
if (item->GetPos() == dstpos)
continue;
+ if (_player->CanUnequipItem(dstpos, true) != EQUIP_ERR_OK)
+ continue;
+
_player->SwapItem(item->GetPos(), dstpos);
}