diff options
| author | Shauren <shauren.trinity@gmail.com> | 2021-03-28 14:18:34 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-03-28 14:18:34 +0200 |
| commit | 0461826689dad8f318e86395ce1060c8f29f7920 (patch) | |
| tree | c81676ae211a33334c9fdacf4d2cd049fc2fe6ee /src/server/game/Handlers/LootHandler.cpp | |
| parent | 1c852af7f2c820e429eaf8389822e8c910f961a1 (diff) | |
Core/Loot: Properly clear tracked looted objects with item loot
Closes #22538
Diffstat (limited to 'src/server/game/Handlers/LootHandler.cpp')
| -rw-r--r-- | src/server/game/Handlers/LootHandler.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index 111cfd892a8..c9404dc1be2 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -314,7 +314,9 @@ void WorldSession::DoLootRelease(ObjectGuid lguid) if (player->GetLootGUID() == lguid) player->SetLootGUID(ObjectGuid::Empty); + player->SendLootRelease(lguid); + player->RemoveAELootedWorldObject(lguid); player->RemoveUnitFlag(UNIT_FLAG_LOOTING); @@ -384,7 +386,7 @@ void WorldSession::DoLootRelease(ObjectGuid lguid) ItemTemplate const* proto = pItem->GetTemplate(); // destroy only 5 items from stack in case prospecting and milling - if (proto->GetFlags() & (ITEM_FLAG_IS_PROSPECTABLE | ITEM_FLAG_IS_MILLABLE)) + if (pItem->loot.loot_type == LOOT_PROSPECTING || pItem->loot.loot_type == LOOT_MILLING) { pItem->m_lootGenerated = false; pItem->loot.clear(); @@ -441,7 +443,6 @@ void WorldSession::DoLootRelease(ObjectGuid lguid) //Player is not looking at loot list, he doesn't need to see updates on the loot list loot->RemoveLooter(player->GetGUID()); - player->RemoveAELootedObject(loot->GetGUID()); } void WorldSession::DoLootReleaseAll() |
