diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-06-26 01:19:14 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-06-26 01:19:14 +0200 |
commit | 9247723c0721207dcaea22141861855f4e0a173f (patch) | |
tree | 6cc24801d6226d188f2f392f6c33caf00b719b4e /src/server/game/Instances/InstanceScript.cpp | |
parent | 17cb655e144b42d1ad5aa5b039edf3552128fa35 (diff) |
Core/LFG Fix crash on lfg boss kills
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rw-r--r-- | src/server/game/Instances/InstanceScript.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 6399bd29399..26cbfd86a21 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -908,20 +908,17 @@ void InstanceScript::SendBossKillCredit(uint32 encounterId) void InstanceScript::UpdateLfgEncounterState(BossInfo const* bossInfo) { - for (auto const& ref : instance->GetPlayers()) + for (MapReference const& ref : instance->GetPlayers()) { - if (Player* player = ref.GetSource()) + if (Group* grp = ref.GetSource()->GetGroup()) { - if (Group* grp = player->GetGroup()) + if (grp->isLFGGroup()) { - if (grp->isLFGGroup()) - { - std::array<uint32, MAX_DUNGEON_ENCOUNTERS_PER_BOSS> dungeonEncounterIds; - std::transform(bossInfo->DungeonEncounters.begin(), bossInfo->DungeonEncounters.end(), dungeonEncounterIds.begin(), - [](DungeonEncounterEntry const* entry) { return entry->ID; }); - sLFGMgr->OnDungeonEncounterDone(grp->GetGUID(), dungeonEncounterIds, instance); - break; - } + std::array<uint32, MAX_DUNGEON_ENCOUNTERS_PER_BOSS> dungeonEncounterIds; + std::ranges::transform(bossInfo->DungeonEncounters, dungeonEncounterIds.begin(), + [](DungeonEncounterEntry const* entry) { return entry ? entry->ID : 0u; }); + sLFGMgr->OnDungeonEncounterDone(grp->GetGUID(), dungeonEncounterIds, instance); + break; } } } |