r4278 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Sep 2 03:44:38 EDT 2008


Author: div0
Date: 2008-09-02 03:44:34 -0400 (Tue, 02 Sep 2008)
New Revision: 4278

Modified:
   trunk/data/qcsrc/server/portals.qc
   trunk/data/qcsrc/server/t_teleporters.qc
Log:
fix portar


Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc	2008-09-02 07:29:52 UTC (rev 4277)
+++ trunk/data/qcsrc/server/portals.qc	2008-09-02 07:44:34 UTC (rev 4278)
@@ -95,11 +95,15 @@
 	makevectors(teleporter.enemy.angles);
 	safe = teleporter.enemy.portal_safe_origin; // a valid player origin
 	step = to + ((safe - to) * v_forward) * v_forward;
-	tracebox(safe, PL_MIN, PL_MAX, step, MOVE_NOMONSTERS, player);
+	tracebox(safe, PL_MIN, PL_MAX, step, MOVE_WORLDONLY, player);
 	if(trace_startsolid)
-		error("'safe' teleport location is not safe!");
+	{
+		bprint("'safe' teleport location is not safe!\n");
+		// FAIL TODO why does this happen?
+		return;
+	}
 	safe = trace_endpos;
-	tracebox(safe, PL_MIN, PL_MAX, to, MOVE_NOMONSTERS, player);
+	tracebox(safe, PL_MIN, PL_MAX, to, MOVE_WORLDONLY, player);
 	if(trace_startsolid)
 		error("trace_endpos in solid!");
 	to = trace_endpos;
@@ -255,6 +259,13 @@
 
 float Portal_SpawnInPortalAtTrace(entity own, vector dir, float portal_id_val)
 {
+	if(trace_ent.classname == "player")
+	{
+		print("hit a player, adjusting...\n");
+		trace_endpos = trace_ent.origin + '0 0 1' * PL_MIN_z;
+		trace_plane_normal = '0 0 1';
+	}
+
 	if(own.portal_in)
 	{
 		if(own.portal_out)
@@ -288,6 +299,13 @@
 
 float Portal_SpawnOutPortalAtTrace(entity own, vector dir, float portal_id_val)
 {
+	if(trace_ent.classname == "player")
+	{
+		print("hit a player, adjusting...\n");
+		trace_endpos = trace_ent.origin + '0 0 1' * PL_MIN_z;
+		trace_plane_normal = '0 0 1';
+	}
+
 	if(!own.portal_in)
 		return 0; // sorry
 

Modified: trunk/data/qcsrc/server/t_teleporters.qc
===================================================================
--- trunk/data/qcsrc/server/t_teleporters.qc	2008-09-02 07:29:52 UTC (rev 4277)
+++ trunk/data/qcsrc/server/t_teleporters.qc	2008-09-02 07:44:34 UTC (rev 4278)
@@ -22,7 +22,7 @@
 		RemoveGrapplingHook(player);
 
 		// Kill anyone else in the teleporter box (NO MORE TDEATH)
-		if(player.takedamage && !g_race)
+		if(player.takedamage && player.deadflag == DEAD_NO && !g_race)
 		{
 			vector deathmin;
 			vector deathmax;




More information about the nexuiz-commits mailing list