Core/LFG: Change InstanceScript::UpdateLfgEncounterState to only pass valid dungeon encounter ids to LFGMgr

Port From (https://github.com/TrinityCore/TrinityCore/commit/db4af7ca4cd105b5a1dd1493fb1740cdd27329bb)
This commit is contained in:
Hondacrx
2025-08-18 20:52:49 -04:00
parent 61f3ae2885
commit 8b82e1c494
2 changed files with 9 additions and 9 deletions
+6 -6
View File
@@ -138,8 +138,9 @@ namespace Game.Maps
void LoadDungeonEncounterData(uint bossId, uint[] dungeonEncounterIds)
{
if (bossId < bosses.Count)
for (int i = 0; i < dungeonEncounterIds.Length && i < MapConst.MaxDungeonEncountersPerBoss; ++i)
bosses[bossId].DungeonEncounters[i] = CliDB.DungeonEncounterStorage.LookupByKey(dungeonEncounterIds[i]);
for (int i = 0, j = 0; i < dungeonEncounterIds.Length && i < MapConst.MaxDungeonEncountersPerBoss; ++i)
if (dungeonEncounterIds[i] != 0)
bosses[bossId].DungeonEncounters[j++] = CliDB.DungeonEncounterStorage.LookupByKey(dungeonEncounterIds[i]);
}
public virtual void UpdateDoorState(GameObject door)
@@ -724,10 +725,9 @@ namespace Game.Maps
public bool IsEncounterCompleted(uint dungeonEncounterId)
{
for (uint i = 0; i < bosses.Count; ++i)
for (var j = 0; j < bosses[i].DungeonEncounters.Length; ++j)
if (bosses[i].DungeonEncounters[j] != null && bosses[i].DungeonEncounters[j].Id == dungeonEncounterId)
return bosses[i].state == EncounterState.Done;
foreach (var (_, boss) in bosses)
if (boss.DungeonEncounters.Any(p => p.Id == dungeonEncounterId))
return boss.state == EncounterState.Done;
return false;
}