From 95d8eb91bf156f2ef7c4608f1de4a31ba6883b34 Mon Sep 17 00:00:00 2001 From: kadaverjack Date: Fri, 3 Mar 2006 07:35:37 +0000 Subject: [PATCH] - resized strength texture to 1x1 pixel (512x512 for a monochrome texture is insane :P) - eliminated possible command injection with printstats - fixed the ctf bug that Dave reported (the flag couldn't be picked up after the flagcarrier left the game) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1132 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/default.cfg | 1 + data/qcsrc/server/gamec/cl_client.c | 5 +++++ data/qcsrc/server/gamec/clientcommands.c | 1 + data/qcsrc/server/gamec/ctf.c | 1 - data/qcsrc/server/gamec/defs.h | 1 + data/qcsrc/server/gamec/g_world.c | 24 ++++++++++++++++++----- data/textures/strength.jpg | Bin 1848 -> 312 bytes data/textures/strength_glow.jpg | Bin 1851 -> 312 bytes 8 files changed, 27 insertions(+), 6 deletions(-) diff --git a/data/default.cfg b/data/default.cfg index 3777b3c50..dd2903b7c 100644 --- a/data/default.cfg +++ b/data/default.cfg @@ -113,6 +113,7 @@ set g_navnodeedit 0 pausable 0 set mauvebots 0 set bot_number 0 // number of bots in server +set g_antilag 0 set g_start_weapon_laser 1 set g_start_weapon_shotgun 1 set g_start_weapon_uzi 0 diff --git a/data/qcsrc/server/gamec/cl_client.c b/data/qcsrc/server/gamec/cl_client.c index 3fb5133eb..4e19eefab 100644 --- a/data/qcsrc/server/gamec/cl_client.c +++ b/data/qcsrc/server/gamec/cl_client.c @@ -581,6 +581,7 @@ ClientDisconnect Called when a client disconnects from the server ============= */ +void(entity e) DropFlag; .entity chatbubbleentity; .entity teambubbleentity; void ClientDisconnect (void) @@ -601,6 +602,10 @@ void ClientDisconnect (void) } DropAllRunes(self); + + if(self.flagcarried) + DropFlag(self.flagcarried); + // decrease player count for lms player_count -= 1; // player was dead, decrease dead count diff --git a/data/qcsrc/server/gamec/clientcommands.c b/data/qcsrc/server/gamec/clientcommands.c index 28c1f4195..122a50f05 100644 --- a/data/qcsrc/server/gamec/clientcommands.c +++ b/data/qcsrc/server/gamec/clientcommands.c @@ -263,6 +263,7 @@ string VoteParse() { local string badchar; badchar = substring(vote, index, 1); if(badchar == ";" + || badchar == "\r" || badchar == "\n") { found = TRUE; diff --git a/data/qcsrc/server/gamec/ctf.c b/data/qcsrc/server/gamec/ctf.c index 9e6e857b5..83a3cbd6c 100644 --- a/data/qcsrc/server/gamec/ctf.c +++ b/data/qcsrc/server/gamec/ctf.c @@ -1,5 +1,4 @@ -.entity flagcarried; .float next_take_time; // the next time a player can pick up a flag (time + blah) /// I used this, in part, to fix the looping score bug. - avirox diff --git a/data/qcsrc/server/gamec/defs.h b/data/qcsrc/server/gamec/defs.h index 397009a56..3cfb59c83 100644 --- a/data/qcsrc/server/gamec/defs.h +++ b/data/qcsrc/server/gamec/defs.h @@ -244,3 +244,4 @@ float GRAPHOOK_RELEASE = 21; .float lms_nextcheck; .float lms_traveled_distance; +.entity flagcarried; diff --git a/data/qcsrc/server/gamec/g_world.c b/data/qcsrc/server/gamec/g_world.c index 38b08d87f..0ce877195 100644 --- a/data/qcsrc/server/gamec/g_world.c +++ b/data/qcsrc/server/gamec/g_world.c @@ -544,14 +544,14 @@ void() DumpStats = else s = ":status:"; - s = strcat(s, gametype, "_", mapname, ":", ftos(rint(now)), "\n"); + s = strcat(s, gametype, "_", mapname, ":", ftos(rint(now))); if(cvar("sv_logscores_console")) - localcmd(strcat("echo ", s)); + localcmd(strcat("echo \"", s, "\"\n")); if(cvar("sv_logscores_file")) { file = fopen(cvar_string("sv_logscores_filename"), FILE_APPEND); - fputs(file, s); + fputs(file, strcat(s, "\n")); } other = findchain(classname, "player"); @@ -562,10 +562,24 @@ void() DumpStats = s = strcat(":player:", ftos(other.frags), ":"); s = strcat(s, ftos(other.deaths), ":"); s = strcat(s, ftos(rint(now - other.jointime)), ":"); - s = strcat(s, ftos(other.team), ":", other.netname, "\n"); + s = strcat(s, ftos(other.team), ":"); if(cvar("sv_logscores_console")) - localcmd(strcat("echo ", s)); + + { + local string scopy, ch; + local float i; + + scopy = ""; + for(i = 0; i < strlen(other.netname); ++i) + { + ch = substring(other.netname, i, 1); + if(ch != "\"" && ch != "\r" && ch != "\n") + scopy = strcat(scopy, ch); + } + localcmd(strcat("echo \"", s, scopy, "\"\n")); + } + s = strcat(s, other.netname, "\n"); if(cvar("sv_logscores_file")) fputs(file, s); } diff --git a/data/textures/strength.jpg b/data/textures/strength.jpg index 286623076d3a638a778e5f3b5ebed2e7a90b55ec..77adcb9de56bb720cd10a2a168eba560fb14a534 100644 GIT binary patch delta 25 hcmdnNw}WZIZWabc2F8i|tr$fo{Yd6h$&B=cS$Jwy^alB%@&v_KfM-lvDd}xC7XD z@Sv!K$E29t5kooQru1Ho&{?0FJiXPt(2f3}?oYYF%H@BE6v-yVSmGPo_pkek_R%`< TAP!UyqNA13I`HHU?A`Abd;KYx -- 2.39.2