r2050 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Dec 17 11:50:50 EST 2006
Author: div0
Date: 2006-12-17 11:50:50 -0500 (Sun, 17 Dec 2006)
New Revision: 2050
Modified:
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/defs.qh
trunk/data/qcsrc/server/miscfunctions.qc
Log:
version nag feature - non-SVN clients get a message about different version
between server and client once per game. No further action is taken as long
as the versions are compatible.
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2006-12-15 13:37:21 UTC (rev 2049)
+++ trunk/data/qcsrc/server/cl_client.qc 2006-12-17 16:50:50 UTC (rev 2050)
@@ -667,6 +667,7 @@
self.classname = "player_joining";
self.flags = self.flags | FL_CLIENT;
+ self.version_nagtime = time + 10 + random() * 10;
if(player_count<0) player_count = 0;
@@ -846,6 +847,9 @@
Spawnqueue_Unmark(self);
Spawnqueue_Remove(self);
}
+
+ // free cvars
+ GetCvars(-1);
}
.float buttonchat;
@@ -1300,6 +1304,20 @@
void() ctf_setstatus;
void PlayerPreThink (void)
{
+ // version nagging
+ if(self.version_nagtime)
+ if(self.cvar_g_nexuizversion)
+ if(time > self.version_nagtime)
+ {
+ if(strstr(self.cvar_g_nexuizversion, "svn", 0) < 0)
+ if(self.cvar_g_nexuizversion != cvar_string("g_nexuizversion"))
+ {
+ dprint("^1NOTE^7 to ", self.netname, "^7 - the server is running ^3Nexuiz ", cvar_string("g_nexuizversion"), "^7, you have ^3Nexuiz ", self.cvar_g_nexuizversion, "\n");
+ sprint(self, strcat("\{1}^1NOTE: ^7the server is running ^3Nexuiz ", cvar_string("g_nexuizversion"), "^7, you have ^3Nexuiz ", self.cvar_g_nexuizversion, "\n"));
+ }
+ self.version_nagtime = 0;
+ }
+
if(self.classname == "player") {
local vector m1, m2;
Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh 2006-12-15 13:37:21 UTC (rev 2049)
+++ trunk/data/qcsrc/server/defs.qh 2006-12-17 16:50:50 UTC (rev 2050)
@@ -258,7 +258,10 @@
.float cvar_cl_nogibs;
.float cvar_scr_centertime;
.float cvar_cl_shownames;
+.string cvar_g_nexuizversion;
+.float version_nagtime;
+
#ifdef ALLOW_VARIABLE_LOD
.float modelindex_lod0;
.float modelindex_lod1;
Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc 2006-12-15 13:37:21 UTC (rev 2049)
+++ trunk/data/qcsrc/server/miscfunctions.qc 2006-12-17 16:50:50 UTC (rev 2050)
@@ -378,18 +378,30 @@
*/
void GetCvars_handleString(float f, .string field, string name)
{
- if(f)
+ if(f < 0)
{
+ if(self.field)
+ strunzone(self.field);
+ }
+ else if(f > 0)
+ {
if(argv(f) == name)
- self.field = argv(f + 1);
+ {
+ if(self.field)
+ strunzone(self.field);
+ self.field = strzone(argv(f + 1));
+ }
}
else
stuffcmd(self, strcat("cmd reportcvar ", name, " $", name, "\n"));
}
void GetCvars_handleFloat(float f, .float field, string name)
{
- if(f)
+ if(f < 0)
{
+ }
+ else if(f > 0)
+ {
if(argv(f) == name)
self.field = stof(argv(f + 1));
}
@@ -402,6 +414,7 @@
GetCvars_handleFloat(f, cvar_cl_nogibs, "cl_nogibs");
GetCvars_handleFloat(f, cvar_scr_centertime, "scr_centertime");
GetCvars_handleFloat(f, cvar_cl_shownames, "cl_shownames");
+ GetCvars_handleString(f, cvar_g_nexuizversion, "g_nexuizversion");
}
float fexists(string f)
More information about the nexuiz-commits
mailing list