r4905 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Mon Oct 27 04:10:32 EDT 2008
Author: div0
Date: 2008-10-27 04:10:22 -0400 (Mon, 27 Oct 2008)
New Revision: 4905
Modified:
trunk/data/qcsrc/server/g_world.qc
trunk/data/qcsrc/server/miscfunctions.qc
trunk/data/qcsrc/server/w_seeker.qc
Log:
make removing entities safer by clearing ALL their fields before removing (can't the engine do this?);
fix TAG Seeker aiming at respawning players
Modified: trunk/data/qcsrc/server/g_world.qc
===================================================================
--- trunk/data/qcsrc/server/g_world.qc 2008-10-27 07:47:56 UTC (rev 4904)
+++ trunk/data/qcsrc/server/g_world.qc 2008-10-27 08:10:22 UTC (rev 4905)
@@ -209,6 +209,7 @@
world_already_spawned = TRUE;
remove = remove_safely; // during spawning, watch what you remove!
+ remove_empty_template = spawn(); // make an empty entity
compressShortVector_init();
Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc 2008-10-27 07:47:56 UTC (rev 4904)
+++ trunk/data/qcsrc/server/miscfunctions.qc 2008-10-27 08:10:22 UTC (rev 4905)
@@ -1293,9 +1293,10 @@
objerror_builtin(s);
}
+entity remove_empty_template;
void remove_unsafely(entity e)
-{
- e.classname = "";
+{
+ copyentity(remove_empty_template, e); // zero all fields
remove_builtin(e);
}
Modified: trunk/data/qcsrc/server/w_seeker.qc
===================================================================
--- trunk/data/qcsrc/server/w_seeker.qc 2008-10-27 07:47:56 UTC (rev 4904)
+++ trunk/data/qcsrc/server/w_seeker.qc 2008-10-27 08:10:22 UTC (rev 4905)
@@ -51,6 +51,10 @@
self.switchweapon = self.switchweapon * cvar("g_balance_seeker_missile_decel");
if (self.enemy != world)
+ if (self.enemy.takedamage != DAMAGE_AIM || self.enemy.deadflag != DEAD_NO)
+ self.enemy = world;
+
+ if (self.enemy != world)
{
e = self.enemy;
turnrate = cvar("g_balance_seeker_missile_turnrate"); // how fast to turn
@@ -144,8 +148,13 @@
self.frame = self.frame +1;
self.nextthink = time + 0.05;
+ if (self.enemy != world)
+ if (self.enemy.takedamage != DAMAGE_AIM || self.enemy.deadflag != DEAD_NO)
+ self.enemy = world;
+
if(self.frame == 5)
- { self.think = Seeker_Missile_Think;
+ {
+ self.think = Seeker_Missile_Think;
self.nextthink = time + cvar("g_balance_seeker_missile_activate_delay");
self.effects = EF_LOWPRECISION | EF_NOSHADOW | EF_ROCKET;
@@ -153,7 +162,6 @@
self.movetype = MOVETYPE_BOUNCEMISSILE;
else
self.movetype = MOVETYPE_FLYMISSILE;
-
}
}
@@ -295,9 +303,8 @@
self.event_damage = SUB_Null;
sound (self, CHAN_PROJECTILE, "weapons/laserimpact.wav", 1, ATTN_NORM);
- if (other.classname == "player")
+ if (other.takedamage && other.deadflag == DEAD_NO)
{
-
entity e;
e = spawn();
e.cnt = cvar("g_balance_seeker_missile_count");
More information about the nexuiz-commits
mailing list