From: Rudolf Polzer Date: Sat, 13 Nov 2010 21:29:40 +0000 (+0100) Subject: fixed for forced team X-Git-Tag: xonotic-v0.1.0preview~145 X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=0370f82ad420827a6df92dc387ef3068a3dcdf7f fixed for forced team --- diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index bb3e4774a9..97bffaacc4 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -2388,7 +2388,7 @@ void ShowRespawnCountdown() void LeaveSpectatorMode() { if(isJoinAllowed()) { - if(!teams_matter || cvar("g_campaign") || cvar("g_balance_teams") || (self.wasplayer && cvar("g_changeteam_banned"))) { + if(!teams_matter || cvar("g_campaign") || cvar("g_balance_teams") || (self.wasplayer && cvar("g_changeteam_banned")) || self.team_forced > 0) { self.classname = "player"; if(cvar("g_campaign") || cvar("g_balance_teams") || cvar("g_balance_teams_force")) diff --git a/qcsrc/server/clientcommands.qc b/qcsrc/server/clientcommands.qc index df19ab592f..0cbe3017ea 100644 --- a/qcsrc/server/clientcommands.qc +++ b/qcsrc/server/clientcommands.qc @@ -171,7 +171,7 @@ void SV_ParseClientCommand(string s) { PutClientInServer(); } else if(cvar("g_campaign") || cvar("g_balance_teams") || cvar("g_balance_teams_force")) { //JoinBestTeam(self, FALSE, TRUE); - } else if(teams_matter && !cvar("sv_spectate")) { + } else if(teams_matter && !cvar("sv_spectate") && !(self.team_forced > 0)) { self.classname = "observer"; stuffcmd(self,"menu_showteamselect\n"); } @@ -249,9 +249,11 @@ void SV_ParseClientCommand(string s) { if not(self.flags & FL_CLIENT) return; if( !teams_matter ) { - sprint( self, "selecteam can only be used in teamgames\n"); + sprint( self, "selectteam can only be used in teamgames\n"); } else if(cvar("g_campaign")) { //JoinBestTeam(self, 0); + } else if(self.team_forced > 0) { + sprint( self, "selectteam can not be used as your team is forced\n"); } else if(lockteams) { sprint( self, "^7The game has already begun, you must wait until the next map to be able to join a team.\n"); } else if( argv(1) == "red" ) { diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index d784c72d8f..b9064c783b 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -803,7 +803,7 @@ float FindSmallestTeam(entity pl, float ignore_pl) if(c4 >= 0) totalteams = totalteams + 1; - if(cvar("bot_vs_human") && totalteams == 1) + if((cvar("bot_vs_human") || pl.team_forced > 0) && totalteams == 1) totalteams += 1; if(totalteams <= 1)