Core/Loot: Prevent looting bosses by players that have already completed that encounter

Port From (https://github.com/TrinityCore/TrinityCore/commit/9ce47e6809eecc891904e272b368596fdc55e6a4)
This commit is contained in:
hondacrx
2022-10-06 20:50:10 -04:00
parent 2bba8aeb99
commit 39e9e73277
6 changed files with 57 additions and 14 deletions
+13
View File
@@ -558,6 +558,19 @@ namespace Game.Entities
SendPacket(transferAborted);
}
public bool IsLockedToDungeonEncounter(uint dungeonEncounterId)
{
DungeonEncounterRecord dungeonEncounter = CliDB.DungeonEncounterStorage.LookupByKey(dungeonEncounterId);
if (dungeonEncounter == null)
return false;
InstanceLock instanceLock = Global.InstanceLockMgr.FindActiveInstanceLock(GetGUID(), new MapDb2Entries(GetMap().GetEntry(), GetMap().GetMapDifficulty()));
if (instanceLock == null)
return false;
return (instanceLock.GetData().CompletedEncountersMask & (1u << dungeonEncounter.Bit)) != 0;
}
public override void ProcessTerrainStatusUpdate(ZLiquidStatus oldLiquidStatus, LiquidData newLiquidData)
{
// process liquid auras using generic unit code