#define RACER_MIN '-120 -120 -40'
#define RACER_MAX '120 120 40'
-#define RACER_ENGINE "sound/vehicles/racer.wav"
#ifdef SVQC
void racer_exit(float eject);
vector df;
float ftmp;
- player = self;
- racer = self.vehicle;
+ if(intermission_running)
+ return 1;
+ player = self;
+ racer = self.vehicle;
+ self = racer;
+
player.BUTTON_ZOOM = player.BUTTON_CROUCH = 0;
-
- self = racer;
-
- /*
- if(player.BUTTON_USE)
- {
- vehicles_exit(VHEF_NORMAL);
- self = player;
- return 0;
- }
- */
+
+ vehicles_painframe();
if(racer.deadflag != DEAD_NO)
{
{
self.sounds = 1;
self.sound_nexttime = time + 10.922667; //soundlength("vehicles/racer_move.wav");
- sound (self, CHAN_TRIGGER, "vehicles/racer_move.wav", VOL_VEHICLEENGINE, ATTN_NORM);
+ sound (self, CH_TRIGGER_SINGLE, "vehicles/racer_move.wav", VOL_VEHICLEENGINE, ATTN_NORM);
}
}
else
{
self.sounds = 0;
self.sound_nexttime = time + 11.888604; //soundlength("vehicles/racer_idle.wav");
- sound (self, CHAN_TRIGGER, "vehicles/racer_idle.wav", VOL_VEHICLEENGINE, ATTN_NORM);
+ sound (self, CH_TRIGGER_SINGLE, "vehicles/racer_idle.wav", VOL_VEHICLEENGINE, ATTN_NORM);
}
}
// Afterburn
if (player.BUTTON_JUMP && racer.vehicle_energy >= (autocvar_g_vehicle_racer_afterburn_cost * frametime))
{
+ if(time - racer.wait > 0.2)
+ pointparticles(particleeffectnum("wakizashi_booster_smoke"), self.origin, '0 0 0', 1);
+
racer.wait = time;
racer.vehicle_energy -= autocvar_g_vehicle_racer_afterburn_cost * frametime;
df += (v_forward * autocvar_g_vehicle_racer_speed_afterburn);
+ if(self.invincible_finished < time)
+ {
+ traceline(self.origin, self.origin - '0 0 256', MOVE_NORMAL, self);
+ if(trace_fraction != 1.0)
+ pointparticles(particleeffectnum("smoke_small"), trace_endpos, '0 0 0', 1);
+
+ self.invincible_finished = time + 0.1 + (random() * 0.1);
+ }
+
if(self.strength_finished < time)
{
//self.sounds = 2;
self.strength_finished = time + 10.922667; //soundlength("vehicles/racer_boost.wav");
- sound (self, CHAN_PAIN, "vehicles/racer_boost.wav", VOL_VEHICLEENGINE, ATTN_NORM);
+ sound (self.tur_head, CH_TRIGGER_SINGLE, "vehicles/racer_boost.wav", VOL_VEHICLEENGINE, ATTN_NORM);
}
}
else
{
self.strength_finished = 0;
- sound (self, CHAN_PAIN, "misc/null.wav", VOL_VEHICLEENGINE, ATTN_NORM);
+ sound (self.tur_head, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_VEHICLEENGINE, ATTN_NORM);
}
self.movetype = MOVETYPE_BOUNCE;
self.owner.vehicle_health = (self.vehicle_health / autocvar_g_vehicle_racer_health);
self.owner.vehicle_shield = (self.vehicle_shield / autocvar_g_vehicle_racer_shield);
+
+ if(self.owner.flagcarried)
+ setorigin(self.owner.flagcarried, '-190 0 96');
}
void racer_exit(float eject)
self.think = racer_think;
self.nextthink = time;
self.movetype = MOVETYPE_TOSS;
-
+ sound (self.tur_head, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_VEHICLEENGINE, ATTN_NORM);
+
if not (self.owner)
return;
void racer_blowup()
{
- sound (self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
- pointparticles(particleeffectnum("explosion_big"), self.origin, '0 0 0', 1);
-
self.deadflag = DEAD_DEAD;
self.vehicle_exit(VHEF_NORMAL);
autocvar_g_vehicle_racer_blowup_forceintensity,
DEATH_WAKIBLOWUP, world);
- self.alpha = -1;
self.nextthink = time + autocvar_g_vehicle_racer_respawntime;
self.think = racer_spawn;
self.movetype = MOVETYPE_NONE;
void racer_deadtouch()
{
- dprint("Boink!\n");
self.avelocity_x *= 0.7;
self.cnt -= 1;
if(self.cnt <= 0)
{
self.health = 0;
self.event_damage = SUB_Null;
- self.iscreature = FALSE;
self.solid = SOLID_CORPSE;
self.takedamage = DAMAGE_NO;
self.deadflag = DEAD_DYING;
if not (vehicle_initialize(
"Wakizashi",
"models/vehicles/wakizashi.dpm",
- "",
+ "null", // we need this so tur_head is networked and usable for sounds
"models/vehicles/wakizashi_cockpit.dpm",
"", "", "tag_viewport",
HUD_WAKIZASHI,
void spawnfunc_vehicle_racer()
{
+ self.vehicle_flags |= VHF_DMGSHAKE;
+ self.vehicle_flags |= VHF_DMGROLL;
- precache_sound ("weapons/laserimpact.wav");
precache_sound ("weapons/lasergun_fire.wav");
precache_sound ("weapons/rocket_fire.wav");
- precache_sound ("weapons/rocket_impact.wav");
precache_sound ("vehicles/racer_idle.wav");
precache_sound ("vehicles/racer_move.wav");