diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index bfd19ceff5..56f11af58f 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -2594,7 +2594,7 @@ Item* Player::StoreNewItem(ItemPosCountVec const& dest, uint32 item, bool update CharacterDatabase.Execute(stmt); } - sScriptMgr->OnLootItem(this, pItem, count, ObjectGuid::Empty); + sScriptMgr->OnStoreNewItem(this, pItem, count); } return pItem; } diff --git a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp index a8794e8216..8c09e7b606 100644 --- a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp @@ -582,6 +582,14 @@ void ScriptMgr::OnLootItem(Player* player, Item* item, uint32 count, ObjectGuid }); } +void ScriptMgr::OnStoreNewItem(Player* player, Item* item, uint32 count) +{ + ExecuteScript([&](PlayerScript* script) + { + script->OnStoreNewItem(player, item, count); + }); +} + void ScriptMgr::OnCreateItem(Player* player, Item* item, uint32 count) { ExecuteScript([&](PlayerScript* script) diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 986cc6f99e..3adf5264d2 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -1180,6 +1180,9 @@ public: //After looting item virtual void OnLootItem(Player* /*player*/, Item* /*item*/, uint32 /*count*/, ObjectGuid /*lootguid*/) { } + //After looting item (includes master loot). + virtual void OnStoreNewItem(Player* /*player*/, Item* /*item*/, uint32 /*count*/) { } + //After creating item (eg profession item creation) virtual void OnCreateItem(Player* /*player*/, Item* /*item*/, uint32 /*count*/) { } @@ -2275,6 +2278,7 @@ public: /* PlayerScript */ void GetCustomArenaPersonalRating(Player const* player, uint8 slot, uint32& rating) const; void OnGetMaxPersonalArenaRatingRequirement(Player const* player, uint32 minSlot, uint32& maxArenaRating) const; void OnLootItem(Player* player, Item* item, uint32 count, ObjectGuid lootguid); + void OnStoreNewItem(Player* player, Item* item, uint32 count); void OnCreateItem(Player* player, Item* item, uint32 count); void OnQuestRewardItem(Player* player, Item* item, uint32 count); void OnGroupRollRewardItem(Player* player, Item* item, uint32 count, RollVote voteType, Roll* roll);