r4352 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Sep 5 05:52:52 EDT 2008


Author: div0
Date: 2008-09-05 05:52:52 -0400 (Fri, 05 Sep 2008)
New Revision: 4352

Modified:
   trunk/data/qcsrc/server/portals.qc
   trunk/data/qcsrc/server/race.qc
Log:
fix more bugs with race + portals


Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc	2008-09-05 09:03:44 UTC (rev 4351)
+++ trunk/data/qcsrc/server/portals.qc	2008-09-05 09:52:52 UTC (rev 4352)
@@ -184,6 +184,10 @@
 			self.portal_activatetime = time + 0.1;
 			return;
 		}
+	if(other != self.owner)
+		if(other.classname == "player")
+			if(IS_INDEPENDENT_PLAYER(other) || IS_INDEPENDENT_PLAYER(self.owner))
+				return; // cannot go through someone else's portal
 	fixedmakevectors(self.angles);
 	if((other.origin - self.origin) * v_forward < 0)
 		return;
@@ -346,6 +350,9 @@
 		if(time < self.portal_activatetime)
 			if(e == o)
 				continue;
+		if(e != o)
+			if(IS_INDEPENDENT_PLAYER(e) || IS_INDEPENDENT_PLAYER(o))
+				continue; // cannot go through someone else's portal
 		// if e would hit the portal in a frame...
 		// already teleport him
 		tracebox(e.origin, e.mins, e.maxs, e.origin + e.velocity * 2 * frametime, MOVE_NORMAL, e);

Modified: trunk/data/qcsrc/server/race.qc
===================================================================
--- trunk/data/qcsrc/server/race.qc	2008-09-05 09:03:44 UTC (rev 4351)
+++ trunk/data/qcsrc/server/race.qc	2008-09-05 09:52:52 UTC (rev 4352)
@@ -339,7 +339,7 @@
 		oldself = self;
 		self = other.porto_current;
 		W_Porto_Fail(1);
-		self = other;
+		self = oldself;
 	}
 
 	if(other.race_checkpoint == -1 || other.race_checkpoint == self.race_checkpoint)




More information about the nexuiz-commits mailing list