@@ -129,17 +129,16 @@ void Battlefield::HandlePlayerLeaveZone(Player* player, uint32 /*zone*/)
129129 for (BfCapturePoint* cp : CapturePoints)
130130 cp->HandlePlayerLeave (player);
131131
132- InvitedPlayers[player->GetTeamId ()].erase (player->GetGUID ());
133- PlayersInQueue[player->GetTeamId ()].erase (player->GetGUID ());
134- PlayersWillBeKick[player->GetTeamId ()].erase (player->GetGUID ());
135- Players[player->GetTeamId ()].erase (player->GetGUID ());
132+ for (uint8 i = 0 ; i < PVP_TEAMS_COUNT; ++i)
133+ {
134+ InvitedPlayers[i].erase (player->GetGUID ());
135+ PlayersInQueue[i].erase (player->GetGUID ());
136+ PlayersWillBeKick[i].erase (player->GetGUID ());
137+ Players[i].erase (player->GetGUID ());
138+ }
136139 SendRemoveWorldStates (player);
137140 RemovePlayerFromResurrectQueue (player->GetGUID ());
138141 OnPlayerLeaveZone (player);
139- // Scripts must restore player->GetTeamId() here (e.g. ClearFakePlayer).
140- // All Battlefield data-structure cleanup above has already completed using
141- // the assigned team, so it is safe to restore the real team now.
142- sScriptMgr ->OnBattlefieldPlayerLeaveZone (this , player);
143142}
144143
145144bool Battlefield::Update (uint32 diff)
@@ -379,7 +378,10 @@ void Battlefield::DoPlaySoundToAll(uint32 soundId)
379378
380379bool Battlefield::HasPlayer (Player* player) const
381380{
382- return Players[player->GetTeamId ()].find (player->GetGUID ()) != Players[player->GetTeamId ()].end ();
381+ for (uint8 i = 0 ; i < PVP_TEAMS_COUNT; ++i)
382+ if (Players[i].count (player->GetGUID ()))
383+ return true ;
384+ return false ;
383385}
384386
385387// Called in WorldSession::HandleBfQueueInviteResponse
0 commit comments