set g_rc_respawn_waves 0
set g_rc_respawn_delay 0
set g_cts_respawn_waves 0
-set g_cts_respawn_delay 0.25
+set g_cts_respawn_delay 0
set g_cts_selfdamage 1 "0 = disable all selfdamage and falldamage in cts"
set g_cts_finish_kill_delay 10 "prevent cheating by running back to the start line, and starting out with more speed than otherwise possible"
set g_freezetag_respawn_waves 0
if(g_cts) // allow an instant kill in CTS
{
- ClientKill_Now();
+ if(self.killcnt < 5) // 5 kills in 5 seconds allowed
+ {
+ self.killcnt += 1;
+ ClientKill_Now();
+ }
return;
}
if(g_nexball)
nexball_setstatus();
+ if(g_cts)
+ self.killcnt = max(0, self.killcount - sys_frametime);
+
self.dmg_team = max(0, self.dmg_team - autocvar_g_teamdamage_resetspeed * frametime);
//self.angles_y=self.v_angle_y + 90; // temp
waves = 0;
sdelay = cvar(strcat("g_", GetGametype(), "_respawn_delay"));
if(!sdelay)
- sdelay = autocvar_g_respawn_delay;
+ {
+ if(g_cts)
+ sdelay = 0; // no respawn delay in CTS
+ else
+ sdelay = autocvar_g_respawn_delay;
+ }
waves = cvar(strcat("g_", GetGametype(), "_respawn_waves"));
if(!waves)
waves = autocvar_g_respawn_waves;
.float freezetag_frozen;
.float freezetag_beginrevive_time;
.float freezetag_revive_progress;
+
+.float killcnt; // keep track of how many times a player has suicided during the previous 5 seconds
{
if (deathtype == DEATH_TEAMCHANGE || deathtype == DEATH_AUTOTEAMCHANGE)
msg = ColoredTeamName(targ.team); // TODO: check if needed?
- Send_CSQC_Centerprint(targ, msg, "", deathtype, MSG_SUICIDE);
+ if(!g_cts) // no "killed your own dumb self" message in CTS
+ Send_CSQC_Centerprint(targ, msg, "", deathtype, MSG_SUICIDE);
if(deathtype != DEATH_TEAMCHANGE && deathtype != DEATH_QUIET)
{