r2062 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Dec 21 10:31:28 EST 2006


Author: div0
Date: 2006-12-21 10:31:28 -0500 (Thu, 21 Dec 2006)
New Revision: 2062

Modified:
   trunk/data/qcsrc/server/cl_client.qc
   trunk/data/qcsrc/server/cl_player.qc
   trunk/data/qcsrc/server/ctf.qc
   trunk/data/qcsrc/server/defs.qh
Log:
no more flag fallthrough


Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc	2006-12-21 15:31:08 UTC (rev 2061)
+++ trunk/data/qcsrc/server/cl_client.qc	2006-12-21 15:31:28 UTC (rev 2062)
@@ -287,9 +287,11 @@
 		WriteEntity(MSG_ONE, self);
 	}
 
-	if (cvar("g_runematch"))
-		DropAllRunes(self);
+	DropAllRunes(self);
 
+	if(self.flagcarried)
+		DropFlag(self.flagcarried);
+
 	DistributeFragsAmongTeam(self, self.team, 1);
 
 	if(self.frags <= 0 && self.frags > -666 && cvar("g_lms") && self.killcount != -666)

Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc	2006-12-21 15:31:08 UTC (rev 2061)
+++ trunk/data/qcsrc/server/cl_player.qc	2006-12-21 15:31:28 UTC (rev 2062)
@@ -203,9 +203,6 @@
 	}
 }
 
-void DropAllRunes(entity pl);
-
-
 void PlayerDamage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
 {
 	local float take, save;
@@ -297,6 +294,8 @@
 		// print an obituary message
 		Obituary (attacker, self, deathtype);
 		DropAllRunes(self);
+		if(self.flagcarried)
+			DropFlag(self.flagcarried);
 		// make the corpse upright (not tilted)
 		self.angles_x = 0;
 		self.angles_z = 0;

Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc	2006-12-21 15:31:08 UTC (rev 2061)
+++ trunk/data/qcsrc/server/ctf.qc	2006-12-21 15:31:28 UTC (rev 2062)
@@ -92,6 +92,7 @@
 		return;
 	}
 	bprint(strcat(p.netname, "^7 lost the ", e.netname, "\n"));
+	LogCTF("dropped", p.team, p.flagcarried);
 
 	setattachment(e, world, "");
 
@@ -103,10 +104,15 @@
 	e.solid = SOLID_TRIGGER;
 	e.movetype = MOVETYPE_TOSS;
 	// setsize(e, '-16 -16 0', '16 16 74');
-	setorigin(e, p.origin - '0 0 24');
+	setorigin(e, p.origin - '0 0 24' + '0 0 37');
 	e.cnt = FLAG_DROPPED;
 	e.velocity = '0 0 300';
 	e.pain_finished = time + cvar("g_ctf_flag_returntime");//30;
+
+	trace_startsolid = FALSE;
+	tracebox(e.origin, e.mins, e.maxs, e.origin, TRUE, e);
+	if(trace_startsolid)
+		dprint("FLAG FALLTHROUGH will happen SOON\n");
 };
 
 void AnimateFlag()
@@ -135,6 +141,12 @@
 
 	if (self.cnt == FLAG_DROPPED)
 	{
+		// flag fallthrough? FIXME remove this if bug is really fixed now
+		if(self.origin_z < -32768)
+		{
+			dprint("FLAG FALLTHROUGH just happened\n");
+			self.pain_finished = 0;
+		}
 		setattachment(self, world, "");
 		if (time > self.pain_finished)
 		{
@@ -149,8 +161,8 @@
 	e = self.owner;
 	if (e.classname != "player" || (e.deadflag) || (e.flagcarried != self))
 	{
+		dprint("CANNOT HAPPEN - player dead and STILL had a flag!\n");
 		DropFlag(self);
-		LogCTF("dropped", self.team, e);
 		return;
 	}
 };

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2006-12-21 15:31:08 UTC (rev 2061)
+++ trunk/data/qcsrc/server/defs.qh	2006-12-21 15:31:28 UTC (rev 2062)
@@ -278,6 +278,8 @@
 
 float startitem_failed;
 
+void DropFlag(entity flag);
+void DropAllRunes(entity pl);
 
 
 typedef .float floatfield;




More information about the nexuiz-commits mailing list