From bd2e5b1be83f82732839287ea25a81923c400088 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 25 Nov 2012 10:34:59 +0100 Subject: Core/Battlegrounds: Fixed GameMasters logging out in arena counting as player killed for any teams. Closes #7429 --- src/server/game/Battlegrounds/Battleground.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index b54efad18f0..22f960ceaef 100755 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -411,7 +411,7 @@ uint32 Battleground::GetPrematureWinner() winner = ALLIANCE; else if (GetPlayersCountByTeam(HORDE) >= GetMinPlayersPerTeam()) winner = HORDE; - + return winner; } @@ -1265,6 +1265,9 @@ void Battleground::EventPlayerLoggedIn(Player* player) void Battleground::EventPlayerLoggedOut(Player* player) { uint64 guid = player->GetGUID(); + if (!IsPlayerInBattleground(guid)) // Check if this player really is in battleground (might be a GM who teleported inside) + return; + // player is correct pointer, it is checked in WorldSession::LogoutPlayer() m_OfflineQueue.push_back(player->GetGUID()); m_Players[guid].OfflineRemoveTime = sWorld->GetGameTime() + MAX_OFFLINE_TIME; -- cgit v1.2.3