r3183 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Jan 19 04:45:54 EST 2008


Author: div0
Date: 2008-01-19 04:45:38 -0500 (Sat, 19 Jan 2008)
New Revision: 3183

Modified:
   trunk/data/qcsrc/server/ctf.qc
   trunk/data/qcsrc/server/defs.qh
   trunk/data/qcsrc/server/g_world.qc
Log:
Persistent CTF capture time records!


Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc	2008-01-19 09:09:19 UTC (rev 3182)
+++ trunk/data/qcsrc/server/ctf.qc	2008-01-19 09:45:38 UTC (rev 3183)
@@ -227,7 +227,7 @@
 	local float t;
 	local entity head;
 	local entity player;
-	local string s, s0;
+	local string s, s0, h0;
 	if (other.classname != "player")
 		return;
 	if (other.health < 1) // ignore dead players
@@ -248,19 +248,28 @@
 		t = time - other.flagcarried.flagpickuptime;
 		s = ftos_decimals(t, 2);
 		s0 = ftos_decimals(flagcaptimerecord, 2);
+		h0 = db_get(ServerProgsDB, strcat(GetMapname(), "/captimerecord/netname"));
+		if(h0 == other.netname)
+			h0 = "his";
+		else
+			h0 = strcat(h0, "^7's"); 
 		if (flagcaptimerecord == 0)
 		{
 			bprint(other.netname, "^7 captured the ", other.flagcarried.netname, " in ", s, " seconds\n");
 			flagcaptimerecord = t;
+			db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/time"), ftos(t));
+			db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/netname"), other.netname);
 		}
 		else if (t < flagcaptimerecord)
 		{
-			bprint(other.netname, "^7 captured the ", other.flagcarried.netname, " in ", s, ", breaking the previous record of ", s0, " seconds\n");
+			bprint(other.netname, "^7 captured the ", other.flagcarried.netname, " in ", s, ", breaking ", strcat(h0, " previous record of ", s0, " seconds\n"));
 			flagcaptimerecord = t;
+			db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/time"), ftos(t));
+			db_put(ServerProgsDB, strcat(GetMapname(), "/captimerecord/netname"), other.netname);
 		}
 		else
 		{
-			bprint(other.netname, "^7 captured the ", other.flagcarried.netname, " in ", s, ", failing to break the previous record of ", s0, " seconds\n");
+			bprint(other.netname, "^7 captured the ", other.flagcarried.netname, " in ", s, ", failing to break ", strcat(h0, " record of ", s0, " seconds\n"));
 		}
 
 		LogCTF("capture", other.flagcarried.team, other);
@@ -614,6 +623,7 @@
 	e = spawn();
 	e.think = ctf_delayedinit;
 	e.nextthink = time + 0.1;
+	flagcaptimerecord = stof(db_get(ServerProgsDB, strcat(GetMapname(), "/captimerecord/time")));
 };
 
 void(entity flag) ctf_setstatus2 =

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2008-01-19 09:09:19 UTC (rev 3182)
+++ trunk/data/qcsrc/server/defs.qh	2008-01-19 09:45:38 UTC (rev 3183)
@@ -381,3 +381,6 @@
 .float notfree;
 .float notq3a;
 float q3acompat_machineshotgunswap;
+
+// database
+float ServerProgsDB;

Modified: trunk/data/qcsrc/server/g_world.qc
===================================================================
--- trunk/data/qcsrc/server/g_world.qc	2008-01-19 09:09:19 UTC (rev 3182)
+++ trunk/data/qcsrc/server/g_world.qc	2008-01-19 09:45:38 UTC (rev 3183)
@@ -94,6 +94,8 @@
 	MapInfo_LoadMapSettings(mapname);
 #endif
 
+	ServerProgsDB = db_load("server.db");
+
 	/*
 	TODO sound pack system
 	// initialize sound pack system
@@ -458,6 +460,7 @@
 #endif
 
 	Ban_SaveBans();
+	db_save(ServerProgsDB, "server.db");
 };
 
 void() Map_Goto =
@@ -626,6 +629,7 @@
 float() DoNextMapOverride =
 {
 	Ban_SaveBans();
+	db_save(ServerProgsDB, "server.db");
 
 	if(cvar("g_campaign"))
 	{
@@ -926,6 +930,9 @@
 
 	gameover = TRUE;
 
+	Ban_SaveBans();
+	db_save(ServerProgsDB, "server.db");
+
 	intermission_running = 1;
 
 // enforce a wait time before allowing changelevel




More information about the nexuiz-commits mailing list