[nexuiz-commits] r7666 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Sep 6 14:35:22 EDT 2009
Author: div0
Date: 2009-09-06 14:35:21 -0400 (Sun, 06 Sep 2009)
New Revision: 7666
Modified:
trunk/data/qcsrc/server/w_fireball.qc
Log:
fireball: also hurt turrets
Modified: trunk/data/qcsrc/server/w_fireball.qc
===================================================================
--- trunk/data/qcsrc/server/w_fireball.qc 2009-09-06 15:30:10 UTC (rev 7665)
+++ trunk/data/qcsrc/server/w_fireball.qc 2009-09-06 18:35:21 UTC (rev 7666)
@@ -20,16 +20,17 @@
modeleffect_spawn("models/sphere/sphere.md3", 0, 0, self.origin, '0 0 0', '0 0 0', '0 0 0', 0, cvar("g_balance_fireball_secondary_bfgradius"), 0.2, 0.05, 0.25);
// 2. bfg effect
- FOR_EACH_PLAYER(e) if(e != self.owner) if(e.takedamage) if(!self.owner || IsDifferentTeam(e, self))
+ for(e = findradius(self.origin, cvar("g_balance_fireball_secondary_bfgradius")); e; e = e.chain)
+ if(e != self.owner) if(e.takedamage == DAMAGE_AIM) if(e.classname != "player" || !self.owner || IsDifferentTeam(e, self))
{
// can we see fireball?
traceline(e.origin + e.view_ofs, self.origin, MOVE_NORMAL, e);
- if(trace_startsolid || trace_fraction != 1)
+ if(/* trace_startsolid || */ trace_fraction != 1) // startsolid should be never happening anyway
continue;
// can we see player who shot fireball?
traceline(e.origin + e.view_ofs, self.realowner.origin + self.realowner.view_ofs, MOVE_NORMAL, e);
if(trace_ent != self.realowner)
- if(trace_startsolid || trace_fraction != 1)
+ if(/* trace_startsolid || */ trace_fraction != 1)
continue;
dist = vlen(self.origin - e.origin - e.view_ofs);
points = (1 - sqrt(dist / cvar("g_balance_fireball_secondary_bfgradius")));
@@ -59,7 +60,8 @@
vector p;
RandomSelection_Init();
- FOR_EACH_PLAYER(e) if(e != self.owner) if(e.takedamage) if(!self.owner || IsDifferentTeam(e, self))
+ for(e = findradius(self.origin, dist); e; e = e.chain)
+ if(e != self.owner) if(e.takedamage == DAMAGE_AIM) if(e.classname != "player" || !self.owner || IsDifferentTeam(e, self))
{
p = e.origin;
p_x += e.mins_x + random() * (e.maxs_x - e.mins_x);
@@ -69,7 +71,7 @@
if(d < dist)
{
traceline(p, self.origin, MOVE_NORMAL, e);
- if(trace_startsolid || trace_fraction != 1)
+ if(/* trace_startsolid || */ trace_fraction != 1)
continue;
e.fireball_impactvec = p;
RandomSelection_Add(e, 0, string_null, 1 / (1 + d), !Fire_IsBurning(e));
More information about the nexuiz-commits
mailing list