X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fteamplay.qc;h=ff9438e76d84b205679a05982d5b8bc1eb0b57f3;hp=239fb69f0ca8e0e4b20b1da78d8e44897b4e6e5b;hb=e2206feb6fec163ffee9c87d50d8d9580393cd88;hpb=62d736d8c3a51baf5fa3a4265e39a2b773704a91 diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index 239fb69f0..ff9438e76 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); @@ -864,12 +865,10 @@ int TeamBalance_CompareTeams(entity balance, int team_index_a, int team_index_b, void TeamBalance_AutoBalanceBots() { - if (!autocvar_g_balance_teams || - !autocvar_g_balance_teams_prevent_imbalance) - { - return; - } - //PrintToChatAll("TeamBalance_AutoBalanceBots"); + // checks disabled because we always want auto-balanced bots + //if (!(autocvar_g_balance_teams && autocvar_g_balance_teams_prevent_imbalance)) + // return; + entity balance = TeamBalance_CheckAllowedTeams(NULL); TeamBalance_GetTeamCounts(balance, NULL); int smallest_team_index = 0; @@ -1013,7 +1012,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)