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();