int IGameController::GetAutoTeam(int NotThisID) { // this will force the auto balancer to work overtime aswell if(g_Config.m_DbgStress) return 0; int aNumplayers[2] = {0,0}; for(int i = 0; i < MAX_CLIENTS; i++) { if(GameServer()->m_apPlayers[i] && i != NotThisID) { if(GameServer()->m_apPlayers[i]->GetTeam() >= TEAM_RED && GameServer()->m_apPlayers[i]->GetTeam() <= TEAM_BLUE) aNumplayers[GameServer()->m_apPlayers[i]->GetTeam()]++; } } int Team = 0; if(IsTeamplay()) if(aNumplayers[TEAM_RED] == aNumplayers[TEAM_BLUE]) { if(m_aTeamscore[TEAM_RED] == m_aTeamscore[TEAM_BLUE]) Team = (rand() % 2) ? TEAM_BLUE : TEAM_RED; else Team = m_aTeamscore[TEAM_RED] > m_aTeamscore[TEAM_BLUE] ? TEAM_BLUE : TEAM_RED; } else Team = aNumplayers[TEAM_RED] > aNumplayers[TEAM_BLUE] ? TEAM_BLUE : TEAM_RED; if(CanJoinTeam(Team, NotThisID)) return Team; return -1; }
int IGameController::GetAutoTeam(int Notthisid) { // this will force the auto balancer to work overtime aswell if(g_Config.m_DbgStress) return 0; int aNumplayers[2] = {0,0}; for(int i = 0; i < MAX_CLIENTS; i++) { if(GameServer()->m_apPlayers[i] && i != Notthisid) { if(GameServer()->m_apPlayers[i]->GetTeam() == 0 || GameServer()->m_apPlayers[i]->GetTeam() == 1) aNumplayers[GameServer()->m_apPlayers[i]->GetTeam()]++; } } int Team = 0; if(IsTeamplay()) Team = aNumplayers[0] > aNumplayers[1] ? 1 : 0; if(CanJoinTeam(Team, Notthisid)) return Team; return -1; }