From a0952d07763142843989a911a536db9dd637b26c Mon Sep 17 00:00:00 2001 From: hondacrx Date: Thu, 9 Sep 2021 13:51:36 -0400 Subject: [PATCH] Core/Player: properly clear m_items array when unequipping items from the bag Port From (https://github.com/TrinityCore/TrinityCore/commit/4a386b97d2094a6d67039c7068edbf26000bbf5e) --- Source/Game/Entities/Player/Player.Items.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Source/Game/Entities/Player/Player.Items.cs b/Source/Game/Entities/Player/Player.Items.cs index 42d81ab43..b4de13438 100644 --- a/Source/Game/Entities/Player/Player.Items.cs +++ b/Source/Game/Entities/Player/Player.Items.cs @@ -1897,6 +1897,8 @@ namespace Game.Entities } } } + else + m_items[slot] = null; SetInvSlot(slot, ObjectGuid.Empty); @@ -5438,6 +5440,9 @@ namespace Game.Entities if (pProto != null && pProto.GetItemSet() != 0) Item.RemoveItemsSetItem(this, pProto); + // clear m_items so weapons for example can be registered as unequipped + m_items[slot] = null; + _ApplyItemMods(pItem, slot, false); } @@ -5462,7 +5467,10 @@ namespace Game.Entities // equipment visual show SetVisibleItemSlot(slot, null); } - m_items[slot] = null; + + // clear for rest of items (ie nonequippable) + if (slot >= InventorySlots.BagEnd) + m_items[slot] = null; } else if ((pBag = GetBagByPos(bag)) != null) pBag.RemoveItem(slot, update);