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