From a6249b1f8211fb95dc1ce54470aebfada724c67c Mon Sep 17 00:00:00 2001 From: kadaverjack Date: Sun, 18 Dec 2005 18:01:55 +0000 Subject: [PATCH] ops, i messed up kill-on-teamchange... git-svn-id: svn://svn.icculus.org/nexuiz/trunk@677 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/gamec/teamplay.c | 56 +++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/data/qcsrc/gamec/teamplay.c b/data/qcsrc/gamec/teamplay.c index 4c21f2d09..f6553da32 100644 --- a/data/qcsrc/gamec/teamplay.c +++ b/data/qcsrc/gamec/teamplay.c @@ -313,25 +313,7 @@ void SetPlayerColors(entity pl, float _color) void SetPlayerTeam(entity pl, float t, float s, float noprint) { float _color; - - // remap invalid teams in dom & ctf - if(cvar("g_ctf") && t == 3) - t = 2; - else if(cvar("g_ctf") && t == 4) - t = 1; - else if(cvar("g_domination") && cvar("g_domination_default_teams") < 3) - { - if(t == 3) - t = 2; - else if(t == 4) - t = 1; - } - else if(cvar("g_domination") && cvar("g_domination_default_teams") < 4) - { - if(t == 4) - t = 1; - } - + if(t == 4) _color = COLOR_TEAM4 - 1; else if(t == 3) @@ -341,10 +323,6 @@ void SetPlayerTeam(entity pl, float t, float s, float noprint) else _color = COLOR_TEAM1 - 1; - // kill player when changing teams - if(teams_matter && pl.classname == "player" && pl.deadflag == DEAD_NO && pl.team != (_color + 1)) - Damage(pl, pl, pl, 100000, DEATH_KILL, pl.origin, '0 0 0'); - SetPlayerColors(pl,_color); if(!noprint && t != s) @@ -678,6 +656,24 @@ void SV_ChangeTeam(float _color) else if(dcolor == COLOR_TEAM4 - 1) dteam = 4; + // remap invalid teams in dom & ctf + if(cvar("g_ctf") && dteam == 3) + dteam = 2; + else if(cvar("g_ctf") && dteam == 4) + dteam = 1; + else if(cvar("g_domination") && cvar("g_domination_default_teams") < 3) + { + if(dteam == 3) + dteam = 2; + else if(dteam == 4) + dteam = 1; + } + else if(cvar("g_domination") && cvar("g_domination_default_teams") < 4) + { + if(dteam == 4) + dteam = 1; + } + // not changing teams if(scolor == dcolor) { @@ -688,6 +684,16 @@ void SV_ChangeTeam(float _color) if(cvar("teamplay")) { + if(self.classname == "player" && steam != dteam) + { + // kill player when changing teams + if(self.deadflag == DEAD_NO) + self.event_damage(self, self, 10000, DEATH_KILL, self.origin, '0 0 0'); + + // reduce frags during a team change + self.frags = floor(self.frags * (cvar("g_changeteam_fragtransfer") / 100)); + } + if(cvar("g_changeteam_banned")) { sprint(self, "Team changes not allowed\n"); @@ -753,10 +759,6 @@ void SV_ChangeTeam(float _color) } } - // reduce frags during a team change - if(teamplay && self.classname == "player" && self.team != (dcolor + 1)) - self.frags = floor(self.frags * (cvar("g_changeteam_fragtransfer") / 100)); - // bprint(strcat("allow change teams from ", ftos(steam), " to ", ftos(dteam), "\n")); SetPlayerTeam(self, dteam, steam, FALSE); -- 2.39.2