1 #using scripts\shared\callbacks_shared;
2 #using scripts\shared\exploder_shared;
3 #using scripts\shared\system_shared;
4 #using scripts\shared\util_shared;
6 #insert scripts\shared\shared.gsh;
18 self.v[
"up"] = anglestoup(
self.v[
"angles"]);
19 self.v[
"forward"] = anglestoforward(
self.v[
"angles"]);
24 assert( isdefined( level._effect[ fx ] ),
"Fx " + fx +
" is not defined in level._effect." );
25 return level._effect[ fx ];
33 if (!isdefined(level.createFXent))
35 level.createFXent = [];
37 if(type ==
"exploder")
43 if(!isdefined(level._fake_createfx_struct))
45 level._fake_createfx_struct = SpawnStruct();
48 ent = level._fake_createfx_struct;
51 level.createFXent[level.createFXent.size] = ent;
55 ent.v[
"angles"] = (0,0,0);
56 ent.v[
"origin"] = (0,0,0);
64 ent.v[
"delay" ] = 0.5;
71 ent.v[
"delay" ] = -15;
92 function play( str_fx, v_origin = ( 0, 0, 0 ), v_angles = ( 0, 0, 0 ), time_to_delete_or_notify, b_link_to_self =
false, str_tag, b_no_cull, b_ignore_pause_world )
94 self notify( str_fx );
96 if ( ( !isdefined( time_to_delete_or_notify ) || ( !IsString( time_to_delete_or_notify ) && time_to_delete_or_notify == -1 ) )
97 &&
IS_TRUE( b_link_to_self ) && isdefined( str_tag ) )
99 PlayFXOnTag(
get( str_fx ),
self, str_tag, b_ignore_pause_world );
104 if ( isdefined( time_to_delete_or_notify ) )
110 if ( isdefined( str_tag ) )
112 m_fx LinkTo(
self, str_tag, (0, 0, 0), (0, 0, 0) );
122 m_fx SetForceNoCull();
125 PlayFXOnTag(
get( str_fx ), m_fx,
"tag_origin", b_ignore_pause_world );
131 PlayFX(
get( str_fx ), v_origin, AnglesToForward( v_angles ), AnglesToUp( v_angles ), b_ignore_pause_world );
138 if ( IsString( time_to_delete_or_notify ) )
142 else if ( time_to_delete_or_notify > 0 )
148 ent waittill(
"death" );
151 if ( isdefined(
self ) )