1 #insert scripts\shared\shared.gsh;
2 #insert scripts\shared\version.gsh;
3 #using scripts\codescripts\struct;
5 #using scripts\shared\clientfield_shared;
6 #using scripts\shared\system_shared;
7 #using scripts\shared\vehicle_shared;
19 end = origin + side_dir * fxlength;
20 trace = BulletTrace( origin,
end,
false,
self,
true );
22 if (
trace[
"fraction"] < 1.0 )
24 new_side_dir = VectorNormalize( side_dir + up_dir );
25 end = origin + new_side_dir * fxlength;
26 new_trace = BulletTrace( origin,
end,
false,
self,
true );
27 if ( new_trace[
"fraction"] >
trace[
"fraction"] )
29 side_dir = new_side_dir;
36 function do_side_death_fx(localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump)
38 self endon(
"entityshutdown" );
46 if( newVal && !bInitialSnap )
48 if(!isdefined(
self.settings))
53 forward_direction = AnglesToForward(
self.angles );
54 up_direction = AnglesToUp(
self.angles );
56 origin =
self GetTagOrigin( fxtag );
57 if ( !isdefined( origin ) )
59 origin =
self.origin + (0,0,15);
62 right_direction = VectorCross(forward_direction, up_direction);
63 right_direction = VectorNormalize(right_direction);
64 right_start = origin + right_direction * radius;
67 left_direction = -right_direction;
68 left_start = origin + left_direction * radius;
71 if( isdefined(
self.settings.sideExplosionFx ) )
73 playfx(localClientNum,
self.settings.sideExplosionFx, right_start, right_direction );
74 playfx(localClientNum,
self.settings.sideExplosionFx, left_start, left_direction );
77 if( isdefined(
self.settings.killedexplosionfx ) )
79 playfx(localClientNum,
self.settings.killedexplosionfx, origin, (0,0,1) );
82 self PlaySound( localClientNum,
self.deathfxsound );
84 if ( isdefined(
self.deathquakescale ) &&
self.deathquakescale > 0 )
86 self Earthquake(
self.deathquakescale,
self.deathquakeduration, origin,
self.deathquakeradius );