From 088d678a9f7688b11ed84be38dca1e02df963efe Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 26 Nov 2017 23:34:20 +0100 Subject: [PATCH] Core/Items: Fixed sending unlocked items by mail Closes #20976 --- src/server/game/Handlers/MailHandler.cpp | 3 ++- src/server/game/Spells/SpellEffects.cpp | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp index bed8ecde9d2..378d57ae6fd 100644 --- a/src/server/game/Handlers/MailHandler.cpp +++ b/src/server/game/Handlers/MailHandler.cpp @@ -354,6 +354,7 @@ void WorldSession::HandleSendMail(WorldPacket& recvData) item->DeleteFromInventoryDB(trans); // deletes item from character's inventory item->SetOwnerGUID(receiverGuid); + item->SetState(ITEM_CHANGED); item->SaveToDB(trans); // recursive and not have transaction guard into self, item not in inventory and can be save standalone draft.AddItem(item); @@ -752,7 +753,7 @@ void WorldSession::HandleGetMailList(WorldPacket& recvData) // durability data << uint32((item ? item->GetUInt32Value(ITEM_FIELD_DURABILITY) : 0)); // unknown wotlk - data << uint8(0); + data << uint8((item && !item->IsLocked() ? 1 : 0)); } ++realCount; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index a01358b4493..38a204f354d 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1807,7 +1807,10 @@ void Spell::EffectOpenLock(SpellEffIndex effIndex) SendLoot(guid, LOOT_SKINNING); } else if (itemTarget) + { itemTarget->SetFlag(ITEM_FIELD_FLAGS, ITEM_FIELD_FLAG_UNLOCKED); + itemTarget->SetState(ITEM_CHANGED, itemTarget->GetOwner()); + } // not allow use skill grow at item base open if (!m_CastItem && skillId != SKILL_NONE)