mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
fix(Core): fix chests not despawning when opened in group (#5371)
This commit is contained in:
@@ -60,6 +60,7 @@ GameObject::GameObject() : WorldObject(false), MovableMapObject(),
|
||||
m_lootGenerationTime = 0;
|
||||
|
||||
ResetLootMode(); // restore default loot mode
|
||||
loot.sourceGameObject = this;
|
||||
m_stationaryPosition.Relocate(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
|
||||
@@ -1494,6 +1494,15 @@ void Group::CountTheRoll(Rolls::iterator rollI, Map* allowedMap)
|
||||
item->is_blocked = false;
|
||||
}
|
||||
|
||||
{
|
||||
Loot* loot = roll->getLoot();
|
||||
if (loot->isLooted() && loot->sourceGameObject != nullptr && loot->sourceGameObject->GetGOInfo()->type == GAMEOBJECT_TYPE_CHEST)
|
||||
{
|
||||
// Deactivate chest if the last item was rolled in group
|
||||
loot->sourceGameObject->SetLootState(GO_JUST_DEACTIVATED);
|
||||
}
|
||||
}
|
||||
|
||||
RollId.erase(rollI);
|
||||
delete roll;
|
||||
}
|
||||
|
||||
@@ -109,6 +109,7 @@ enum LootSlotType
|
||||
class Player;
|
||||
class LootStore;
|
||||
class ConditionMgr;
|
||||
class GameObject;
|
||||
struct Loot;
|
||||
|
||||
struct LootStoreItem
|
||||
@@ -311,6 +312,7 @@ struct Loot
|
||||
|
||||
// GUIDLow of container that holds this loot (item_instance.entry), set for items that can be looted
|
||||
uint32 containerId{0};
|
||||
GameObject* sourceGameObject;
|
||||
|
||||
Loot(uint32 _gold = 0) : gold(_gold) { }
|
||||
~Loot() { clear(); }
|
||||
|
||||
Reference in New Issue
Block a user