From 495ca766283e0734def7d54ed6f135e8cddcae54 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Mon, 4 Oct 2021 15:48:51 +0200 Subject: [PATCH] fix(Core/LFG): Properly teleport players to new instance if queued within the same dungeon. (#8174) - Closes #8121 --- src/server/game/DungeonFinding/LFGMgr.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 48f45f6b8..b62dde189 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -1651,8 +1651,10 @@ namespace lfg } bool randomDungeon = false; + std::vector playersTeleported; // Teleport Player for (GuidUnorderedSet::const_iterator it = playersToTeleport.begin(); it != playersToTeleport.end(); ++it) + { if (Player* player = ObjectAccessor::FindPlayer(*it)) { if (player->GetGroup() != grp) // pussywizard: could not add because group was full (some shitness happened) @@ -1689,8 +1691,14 @@ namespace lfg sInstanceSaveMgr->PlayerUnbindInstance(player->GetGUID(), dungeon->map, player->GetDungeonDifficulty(), true); } - TeleportPlayer(player, false, teleportLocation); + playersTeleported.push_back(player); } + } + + for (Player* player : playersTeleported) + { + TeleportPlayer(player, false, teleportLocation); + } if (randomDungeon) grp->AddLfgRandomInstanceFlag();