r5920 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sun Feb 22 07:45:42 EST 2009


Author: div0
Date: 2009-02-22 07:45:42 -0500 (Sun, 22 Feb 2009)
New Revision: 5920

Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/server/ctf.qc
   trunk/data/qcsrc/server/miscfunctions.qc
   trunk/data/qcsrc/server/race.qc
Log:
also write a record marker for CTF (so one can extract record runs from demos)


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2009-02-21 23:10:29 UTC (rev 5919)
+++ trunk/data/defaultNexuiz.cfg	2009-02-22 12:45:42 UTC (rev 5920)
@@ -530,6 +530,7 @@
 // fun for server admins
 set g_ctf_flag_mdl_red "models/ctf/flags.md3"
 set g_ctf_flag_mdl_blue "models/ctf/flags.md3"
+set g_ctf_captimerecord_allow_assisted 0 "if enabled, assisted CTF records (with other players on the server) are recorded too"
 
 exec ctfscoring-div0.cfg
 

Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc	2009-02-21 23:10:29 UTC (rev 5919)
+++ trunk/data/qcsrc/server/ctf.qc	2009-02-22 12:45:42 UTC (rev 5920)
@@ -427,7 +427,7 @@
 		{
 			return;
 		}
-		if(player_count - currentbots <= 1) // at most one human
+		if(cvar("g_ctf_captimerecord_allow_assisted") || player_count - currentbots <= 1) // at most one human
 		{
 			t = time - other.flagcarried.flagpickuptime;
 			s = ftos_decimals(t, 2);
@@ -444,7 +444,7 @@
 				flagcaptimerecord = t;
 				db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/time"), ftos(t));
 				db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/netname"), h1);
-				GameLogEcho(strcat(":recordset:", ftos(other.playerid), ":", ftos(t)));
+				write_recordmarker(other, time - t, t);
 			}
 			else if (t < flagcaptimerecord)
 			{
@@ -452,7 +452,7 @@
 				flagcaptimerecord = t;
 				db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/time"), ftos(t));
 				db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/netname"), h1);
-				GameLogEcho(strcat(":recordset:", ftos(other.playerid), ":", ftos(t)));
+				write_recordmarker(other, time - t, t);
 			}
 			else
 			{

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2009-02-21 23:10:29 UTC (rev 5919)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2009-02-22 12:45:42 UTC (rev 5920)
@@ -2004,3 +2004,15 @@
 	end_dz = vlen(vecxy) / vlen(velxy) * vel_z - (end_z - start_z);
 	zcurveparticles(effectno, start, end, end_dz, vlen(vel));
 }
+
+string GetGametype(); // g_world.qc
+void write_recordmarker(entity pl, float tstart, float dt)
+{
+	GameLogEcho(strcat(":recordset:", ftos(pl.playerid), ":", ftos(dt / 10)));
+
+	// also write a marker into demo files for demotc-race-record-extractor to find
+	stuffcmd(pl,
+		strcat(
+			strcat("//", strconv(2, 0, 0, GetGametype()), " RECORD SET ", mmsss(dt * 10)),
+			" ", ftos(tstart), " ", ftos(dt), "\n"));
+}

Modified: trunk/data/qcsrc/server/race.qc
===================================================================
--- trunk/data/qcsrc/server/race.qc	2009-02-21 23:10:29 UTC (rev 5919)
+++ trunk/data/qcsrc/server/race.qc	2009-02-22 12:45:42 UTC (rev 5920)
@@ -152,8 +152,7 @@
 						bprint(e.netname, "^7 set the all-time fastest lap record with ", mmsss(t), "\n");
 						db_put(ServerProgsDB, strcat(GetMapname(), "/racerecord/time"), ftos(t));
 						db_put(ServerProgsDB, strcat(GetMapname(), "/racerecord/netname"), e.netname);
-						GameLogEcho(strcat(":recordset:", ftos(e.playerid), ":", ftos(t / 10)));
-						stuffcmd(e, strcat("//RACE RECORD SET ", mmsss(t), "\n"));
+						write_recordmarker(e, time - t/10, t/10);
 					}
 					else if(t < grecordtime)
 					{
@@ -163,8 +162,7 @@
 							bprint(e.netname, "^7 broke ", grecordholder, "^7's all-time fastest lap record with ", mmsss(t), "\n");
 						db_put(ServerProgsDB, strcat(GetMapname(), "/racerecord/time"), ftos(t));
 						db_put(ServerProgsDB, strcat(GetMapname(), "/racerecord/netname"), e.netname);
-						GameLogEcho(strcat(":recordset:", ftos(e.playerid), ":", ftos(t / 10)));
-						stuffcmd(e, strcat("//RACE RECORD SET ", mmsss(t), "\n"));
+						write_recordmarker(e, time - t/10, t/10);
 					}
 					else
 					{




More information about the nexuiz-commits mailing list