set g_cts_selfdamage 1 "0 = disable all selfdamage and falldamage in cts"
set g_cts_finish_kill_delay 2 "kill player this many seconds after stage completion to prevent cheating by starting out with more speed than otherwise possible; set it to 0 to not kill or to -1 to kill instantly"
set g_cts_send_rankings_cnt 15 "send this number of map records to clients"
+set g_cts_cptimes_onlyself 0 "tournament mode: only show player's own checkpoint times"
set g_cts_removeprojectiles 0 "remove projectiles when the player dies, to prevent using weapons earlier in the stage than intended"
set g_cts_drop_monster_items 0 "allow killed monsters to drop their items"
return;
int cp = e.race_checkpoint;
- float recordtime = race_checkpoint_records[cp];
+ float recordtime;
float myrecordtime = e.race_checkpoint_record[cp];
- string recordholder = race_checkpoint_recordholders[cp];
- if(recordholder == e.netname)
+ string recordholder;
+ if (g_cts && autocvar_g_cts_cptimes_onlyself) {
+ recordtime = myrecordtime;
recordholder = "";
+ } else {
+ recordtime = race_checkpoint_records[cp];
+ recordholder = race_checkpoint_recordholders[cp];
+
+ if(recordholder == e.netname)
+ recordholder = "";
+ }
if(!IS_REAL_CLIENT(e))
return;
if(tvalid)
{
- recordtime = race_checkpoint_records[cp];
float myrecordtime = e.race_checkpoint_record[cp];
- recordholder = strcat(race_checkpoint_recordholders[cp]); // make a tempstring copy, as we'll possibly strunzone it!
- if(recordholder == e.netname)
+ if (g_cts && autocvar_g_cts_cptimes_onlyself) {
+ recordtime = myrecordtime;
recordholder = "";
+ } else {
+ recordtime = race_checkpoint_records[cp];
+ // make a tempstring copy, as we'll possibly strunzone it
+ recordholder = strcat(race_checkpoint_recordholders[cp]);
+ if(recordholder == e.netname)
+ recordholder = "";
+ }
if(t != 0)
{
if(cp == race_timed_checkpoint)