X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fteamplay.qc;h=f2e24a7a57a0722d69af094465d76cb7f8118505;hb=44e71cdf3fb00920d80900ddccc7f36ae6ca84ac;hp=abc5df1d726a0e730e2c55402690112ad2cd9fc4;hpb=2cabbcd1e3acb48f45f56f976a94b7c8d48addee;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index abc5df1d7..f2e24a7a5 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -181,7 +181,7 @@ bool Player_SetTeamIndex(entity player, int index) { // This is important when players join the game and one of their // color matches the team color while other doesn't. For example - // [BOT]Lion. + // [BOT]Lion: color 0 4. SetPlayerColors(player, new_team - 1); } return true; @@ -227,10 +227,6 @@ bool SetPlayerTeam(entity player, int team_index, int type) Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_QUIT_SPECTATE, player.netname); } - else - { - CS(player).just_joined = false; - } } KillPlayerForTeamChange(player); if (!IS_BOT_CLIENT(player)) @@ -238,6 +234,11 @@ bool SetPlayerTeam(entity player, int team_index, int type) TeamBalance_AutoBalanceBots(); } } + else if (team_index == -1) + { + if (!CS(player).just_joined && player.frags != FRAGS_SPECTATOR) + Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_QUIT_SPECTATE, player.netname); + } return true; } @@ -463,8 +464,8 @@ entity TeamBalance_CheckAllowedTeams(entity for_whom) team_ent.m_num_bots = 0; } setthink(balance, TeamBalance_Destroy); - - int teams_mask = 0; + + int teams_mask = 0; string teament_name = string_null; bool mutator_returnvalue = MUTATOR_CALLHOOK(TeamBalance_CheckAllowedTeams, teams_mask, teament_name, for_whom); @@ -585,8 +586,8 @@ entity TeamBalance_CheckAllowedTeams(entity for_whom) TeamBalance_IsTeamAllowedInternal(balance, i)) { TeamBalance_BanTeamsExcept(balance, i); + break; } - break; } balance.m_team_balance_state = TEAM_BALANCE_TEAMS_CHECKED; return balance; @@ -881,16 +882,16 @@ void TeamBalance_AutoBalanceBots() { continue; } - int player_count = TeamBalanceTeam_GetNumberOfPlayers(team_); + int playercount = TeamBalanceTeam_GetNumberOfPlayers(team_); if (smallest_team_index == 0) { smallest_team_index = i; - smallest_team_player_count = player_count; + smallest_team_player_count = playercount; } - else if (player_count < smallest_team_player_count) + else if (playercount < smallest_team_player_count) { smallest_team_index = i; - smallest_team_player_count = player_count; + smallest_team_player_count = playercount; } } //PrintToChatAll(sprintf("Smallest team: %f", smallest_team_index)); @@ -949,16 +950,16 @@ int TeamBalance_GetLargestTeamIndex(entity balance, int teams) { continue; } - int player_count = TeamBalanceTeam_GetNumberOfPlayers(team_); + int playercount = TeamBalanceTeam_GetNumberOfPlayers(team_); if (largest_team_index == 0) { largest_team_index = i; - largest_team_player_count = player_count; + largest_team_player_count = playercount; } - else if (player_count > largest_team_player_count) + else if (playercount > largest_team_player_count) { largest_team_index = i; - largest_team_player_count = player_count; + largest_team_player_count = playercount; } } return largest_team_index; @@ -1013,7 +1014,7 @@ void LogTeamChange(float player_id, float team_number, int type) { return; } - GameLogEcho(sprintf(":team:%f:%f:%f", player_id, team_number, type)); + GameLogEcho(sprintf(":team:%d:%d:%d", player_id, team_number, type)); } void KillPlayerForTeamChange(entity player)