#include "../common/constants.qh"
#include "../common/deathtypes.qh"
+#include "../common/effects.qh"
#include "../common/util.qh"
#include "../common/monsters/all.qh"
self.angles = self.personal.v_angle;
self.fixangle = true;
- MUTATOR_CALLHOOK(AbortSpeedrun);
+ MUTATOR_CALLHOOK(AbortSpeedrun, self);
}
self.ammo_rockets = self.personal.ammo_rockets;
else
e = self;
- pointparticles(particleeffectnum("rocket_explode"), e.origin, '0 0 0', 1);
- sound(e, CH_SHOTS, "weapons/rocket_impact.wav", VOL_BASE, ATTEN_NORM);
+ Send_Effect(EFFECT_ROCKET_EXPLODE, e.origin, '0 0 0', 1);
+ sound(e, CH_SHOTS, W_Sound("rocket_impact"), VOL_BASE, ATTEN_NORM);
e2 = spawn();
setorigin(e2, e.origin);
RadiusDamage(e2, self, 1000, 0, 128, world, world, 500, DEATH_CHEAT, e);
remove(e2);
- print("404 Sportsmanship not found.\n");
+ LOG_INFO("404 Sportsmanship not found.\n");
DID_CHEAT();
break;
}
// origin (0..1, on crosshair line)
// velocity
// howmany
- effectnum = particleeffectnum(argv(1));
f = stof(argv(2));
crosshair_trace(self);
start = (1-f) * self.origin + f * trace_endpos;
end = stov(argv(3));
f = stof(argv(4));
- pointparticles(effectnum, start, end, f);
+ Send_Effect_(argv(1), start, end, f);
DID_CHEAT();
break;
}
{
// arguments:
// effectname
- effectnum = particleeffectnum(argv(1));
+ effectnum = _particleeffectnum(argv(1));
W_SetupShot(self, false, false, "", CH_WEAPON_A, 0);
traceline(w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, MOVE_NORMAL, self);
trailparticles(self, effectnum, w_shotorg, trace_endpos);
draggee.ltime = max(servertime + serverframetime, draggee.ltime); // fixes func_train breakage
- te_lightning1(dragger, dragger.origin + dragger.view_ofs, curorigin);
+ vector vecs = '0 0 0';
+ if(dragger.weaponentity.movedir_x > 0)
+ vecs = dragger.weaponentity.movedir;
+
+ vector dv = v_right * -vecs_y + v_up * vecs_z;
+
+ te_lightning1(draggee, dragger.origin + dragger.view_ofs + dv, curorigin);
}
float Drag_CanDrag(entity dragger)