Update scripts to better decompiled scripts.

This commit is contained in:
JezuzLizard
2023-10-26 13:13:39 -07:00
parent 26ba037e40
commit d02a9efd43
2879 changed files with 493771 additions and 466190 deletions

View File

@ -0,0 +1,239 @@
// T6 GSC SOURCE
// Decompiled by https://github.com/xensik/gsc-tool
#include clientscripts\mp\_utility;
fxanim_init_dlc( localclientnum )
{
a_fxanims = getentarray( localclientnum, "fxanim_dlc4", "targetname" );
assert( a_fxanims.size <= level.fxanim_max_anims );
for ( i = 0; i < a_fxanims.size; i++ )
{
if ( isdefined( a_fxanims[i].fxanim_parent ) )
{
parent = getent( localclientnum, a_fxanims[i].fxanim_parent, "targetname" );
a_fxanims[a_fxanims.size] = parent;
a_fxanims[i] thread _fxanim_model_link( localclientnum );
continue;
}
a_fxanims[i] thread fxanim_think( localclientnum );
}
if ( isdefined( level.fx_anim_level_dlc_init ) )
level thread [[ level.fx_anim_level_dlc_init ]]( localclientnum );
}
#using_animtree("fxanim_props_dlc4");
fxanim_think( localclientnum, random_wait, random_speed )
{
self waittill_dobj( localclientnum );
self thread _fxanim_hide();
self _fxanim_wait();
self useanimtree( #animtree );
n_anim_count = self _fxanim_get_anim_count();
self notify( "fxanim_start" );
for ( n_current_anim = 0; n_current_anim < n_anim_count; n_current_anim++ )
{
str_scene = self _fxanim_get_scene_name( n_current_anim );
if ( !self _fxanim_modifier( str_scene ) )
{
self _fxanim_animate( str_scene );
self _fxanim_play_fx( localclientnum );
}
self _fxanim_change_anim( n_current_anim );
}
}
_fxanim_hide()
{
if ( isdefined( self.fxanim_hide ) && self.fxanim_hide )
{
self hide();
self waittill( "fxanim_start" );
self show();
}
}
_fxanim_modifier( str_scene )
{
switch ( str_scene )
{
case "delete":
self delete();
break;
case "hide":
self hide();
break;
default:
return false;
break;
}
return true;
}
_fxanim_wait()
{
if ( isdefined( self.fxanim_waittill_1 ) )
{
if ( isdefined( self.fxanim_waittill_1 ) )
_fxanim_change_anim( -1 );
}
if ( isdefined( self.fxanim_wait ) )
wait( self.fxanim_wait );
else if ( isdefined( self.fxanim_wait_min ) && isdefined( self.fxanim_wait_max ) )
{
n_wait_time = randomfloatrange( self.fxanim_wait_min, self.fxanim_wait_max );
wait( n_wait_time );
}
}
_fxanim_change_anim( n_fxanim_id )
{
str_waittill = undefined;
if ( n_fxanim_id == -1 && isdefined( self.fxanim_waittill_1 ) )
str_waittill = self.fxanim_waittill_1;
else if ( n_fxanim_id == 0 && isdefined( self.fxanim_waittill_2 ) )
str_waittill = self.fxanim_waittill_2;
else if ( n_fxanim_id == 1 && isdefined( self.fxanim_waittill_3 ) )
str_waittill = self.fxanim_waittill_3;
if ( !isdefined( str_waittill ) && n_fxanim_id != -1 )
self _fxanim_wait_for_anim_to_end( n_fxanim_id );
else
{
a_changer = strtok( str_waittill, "_" );
level waittill( str_waittill );
}
}
_fxanim_wait_for_anim_to_end( n_fxanim_id )
{
str_scene = _fxanim_get_scene_name( n_fxanim_id );
if ( issubstr( str_scene, "_loop" ) )
self waittillmatch( "looping anim", "end" );
else
self waittillmatch( "single anim", "end" );
}
_fxanim_animate( str_scene )
{
if ( !isdefined( level.scr_anim["fxanim_props_dlc4"][str_scene] ) )
{
/#
if ( isdefined( str_scene ) )
println( "Error: fxanim entity at " + self.origin + " is missing animation: " + str_scene );
else
println( "Error: fxanim entity at " + self.origin + " is missing animation" );
#/
return;
}
self animscripted( level.scr_anim["fxanim_props_dlc4"][str_scene], 1.0, 0.0, 1.0 );
}
_fxanim_play_fx( localclientnum )
{
if ( isdefined( self.fxanim_fx_1 ) )
{
assert( isdefined( self.fxanim_fx_1_tag ), "KVP fxanim_fx_1_tag must be set on fxanim at " + self.origin );
playfxontag( localclientnum, getfx( self.fxanim_fx_1 ), self, self.fxanim_fx_1_tag );
}
if ( isdefined( self.fxanim_fx_2 ) )
{
assert( isdefined( self.fxanim_fx_2_tag ), "KVP fxanim_fx_2_tag must be set on fxanim at " + self.origin );
playfxontag( localclientnum, getfx( self.fxanim_fx_2 ), self, self.fxanim_fx_2_tag );
}
if ( isdefined( self.fxanim_fx_3 ) )
{
assert( isdefined( self.fxanim_fx_3_tag ), "KVP fxanim_fx_3_tag must be set on fxanim at " + self.origin );
playfxontag( localclientnum, getfx( self.fxanim_fx_3 ), self, self.fxanim_fx_3_tag );
}
if ( isdefined( self.fxanim_fx_4 ) )
{
assert( isdefined( self.fxanim_fx_4_tag ), "KVP fxanim_fx_4_tag must be set on fxanim at " + self.origin );
playfxontag( localclientnum, getfx( self.fxanim_fx_4 ), self, self.fxanim_fx_4_tag );
}
if ( isdefined( self.fxanim_fx_5 ) )
{
assert( isdefined( self.fxanim_fx_5_tag ), "KVP fxanim_fx_5_tag must be set on fxanim at " + self.origin );
playfxontag( localclientnum, getfx( self.fxanim_fx_5 ), self, self.fxanim_fx_5_tag );
}
}
_fxanim_get_anim_count()
{
assert( isdefined( self.fxanim_scene_1 ), "fxanim at position " + self.origin + " needs at least one scene defined. Use the KVP fxanim_scene_1" );
n_fx_count = 0;
if ( !isdefined( self.fxanim_scene_2 ) )
n_fx_count = 1;
else if ( !isdefined( self.fxanim_scene_3 ) )
n_fx_count = 2;
else
n_fx_count = 3;
return n_fx_count;
}
_fxanim_get_scene_name( n_anim_id )
{
str_scene_name = undefined;
switch ( n_anim_id )
{
case 0:
str_scene_name = self.fxanim_scene_1;
break;
case 1:
str_scene_name = self.fxanim_scene_2;
break;
case 2:
str_scene_name = self.fxanim_scene_3;
break;
}
return str_scene_name;
}
_fxanim_model_link( localclientnum )
{
self waittill_dobj( localclientnum );
assert( isdefined( self.fxanim_tag ), "Model at origin " + self.origin + " needs an fxanim_tag defined, to show which tag the model will link to" );
m_parent = getent( localclientnum, self.fxanim_parent, "targetname" );
assert( isdefined( m_parent ), "Model at origin " + self.origin + " does not have a proper parent. Make sure the fxanim_parent matches the targetname of the fxanim" );
m_parent waittill_dobj( localclientnum );
self.origin = m_parent gettagorigin( self.fxanim_tag );
self.angles = m_parent gettagangles( self.fxanim_tag );
self linkto( m_parent, self.fxanim_tag );
if ( isdefined( self.fxanim_hide ) )
{
self hide();
m_parent waittill( "fxanim_start" );
self show();
}
}
getfx( fx )
{
assert( isdefined( level._effect[fx] ), "Fx " + fx + " is not defined in level._effect." );
return level._effect[fx];
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,22 @@
// T6 GSC SOURCE
// Decompiled by https://github.com/xensik/gsc-tool
#include clientscripts\mp\_utility;
#include clientscripts\mp\_load;
#include clientscripts\mp\mp_frostbite_fx;
#include clientscripts\mp\_audio;
#include clientscripts\mp\mp_frostbite_amb;
main()
{
clientscripts\mp\_load::main();
clientscripts\mp\mp_frostbite_fx::main();
thread clientscripts\mp\_audio::audio_init( 0 );
thread clientscripts\mp\mp_frostbite_amb::main();
setdvar( "tu7_cg_deathCamAboveWater", "8" );
setsaveddvar( "sm_sunshadowsmall", 1 );
setsaveddvar( "sm_sunsamplesizenear", 0.25 );
waitforclient( 0 );
/#
println( "*** Client : mp_frostbite running..." );
#/
}

View File

@ -0,0 +1,128 @@
// T6 GSC SOURCE
// Decompiled by https://github.com/xensik/gsc-tool
#include clientscripts\mp\_utility;
#include clientscripts\mp\_ambientpackage;
#include clientscripts\mp\_audio;
main()
{
declareambientroom( "frostbite_outdoor", 1 );
setambientroomreverb( "frostbite_outdoor", "frostbite_outdoor", 1, 1 );
setambientroomcontext( "frostbite_outdoor", "ringoff_plr", "outdoor" );
declareambientroom( "frostbite_coffee" );
setambientroomtone( "frostbite_coffee", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_coffee", "frostbite_smallroom", 1, 1 );
setambientroomcontext( "frostbite_coffee", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_stairs" );
setambientroomreverb( "frostbite_stairs", "frostbite_hallroom", 1, 1 );
setambientroomcontext( "frostbite_stairs", "ringoff_plr", "outdoor" );
declareambientroom( "frostbite_bridge_overhang" );
setambientroomreverb( "frostbite_bridge_overhang", "frostbite_partialroom", 1, 1 );
setambientroomcontext( "frostbite_bridge_overhang", "ringoff_plr", "outdoor" );
declareambientroom( "frostbite_small_house" );
setambientroomtone( "frostbite_small_house", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_small_house", "frostbite_smallroom", 1, 1 );
setambientroomcontext( "frostbite_small_house", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_wood_house" );
setambientroomtone( "frostbite_wood_house", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_wood_house", "frostbite_smallroom", 1, 1 );
setambientroomcontext( "frostbite_wood_house", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_watch_house" );
setambientroomtone( "frostbite_watch_house", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_watch_house", "frostbite_smallroom", 1, 1 );
setambientroomcontext( "frostbite_watch_house", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_tunnel" );
setambientroomreverb( "frostbite_tunnel", "frostbite_stoneroom", 1, 1 );
setambientroomcontext( "frostbite_tunnel", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_bar_sml" );
setambientroomtone( "frostbite_bar_sml", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_bar_sml", "frostbite_smallroom", 1, 1 );
setambientroomcontext( "frostbite_bar_sml", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_bar_med" );
setambientroomtone( "frostbite_bar_med", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_bar_med", "frostbite_mediumroom", 1, 1 );
setambientroomcontext( "frostbite_bar_med", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_candy_med" );
setambientroomtone( "frostbite_candy_med", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_candy_med", "frostbite_mediumroom", 1, 1 );
setambientroomcontext( "frostbite_candy_med", "ringoff_plr", "indoor" );
declareambientroom( "frostbite_candy_sml" );
setambientroomtone( "frostbite_candy_sml", "amb_interior_2d", 0.55, 1 );
setambientroomreverb( "frostbite_candy_sml", "frostbite_smallroom", 1, 1 );
setambientroomcontext( "frostbite_candy_sml", "ringoff_plr", "indoor" );
thread snd_start_autofx_audio();
thread snd_play_loopers();
}
snd_start_autofx_audio()
{
snd_play_auto_fx( "fx_mp_frostbite_lamp_post", "amb_street_lights", 0, 0, 0, 0 );
snd_play_auto_fx( "fx_mp_downhill_gust_window", "amb_snow_wind_lp", 0, 0, 0, 0 );
snd_play_auto_fx( "fx_mp_frostbite_snow_flurries", "amb_snow_wind_lp", 0, 0, 0, 0 );
snd_play_auto_fx( "fx_frostbite_circle_light_glare", "amb_inside_lights_sml", 0, 0, 0, 0 );
snd_play_auto_fx( "fx_frostbite_circle_light_glare_flr", "amb_inside_lights_sml", 0, 0, 0, 0 );
snd_play_auto_fx( "fx_mp_frostbite_lamp_int", "amb_bar_light", 0, 0, 0, 0 );
}
snd_play_loopers()
{
playloopat( "amb_tree_wind", ( 753, 1335, 331 ) );
playloopat( "amb_sewer_drain", ( 1468, 905, -4 ) );
playloopat( "amb_sewer_drain", ( -1543, -150, 62 ) );
playloopat( "amb_tree_wind", ( 753, 1335, 331 ) );
playloopat( "amb_tree_wind", ( 574, 1693, 299 ) );
playloopat( "amb_tree_wind", ( 1611, 1278, 471 ) );
playloopat( "amb_tree_wind", ( 2400, 929, 488 ) );
playloopat( "amb_tree_wind", ( 1725, 605, 483 ) );
playloopat( "amb_tree_wind", ( 1820, -391, 434 ) );
playloopat( "amb_tree_wind", ( 2776, -283, 375 ) );
playloopat( "amb_tree_wind", ( 910, 78, 417 ) );
playloopat( "amb_tree_wind", ( 1523, 49, 227 ) );
playloopat( "amb_tree_wind", ( -1708, -291, 337 ) );
playloopat( "amb_tree_wind", ( -1165, -538, 328 ) );
playloopat( "amb_tree_wind", ( -1498, -1451, 245 ) );
playloopat( "amb_tree_wind", ( -1197, -1469, 225 ) );
playloopat( "amb_tree_wind", ( -150, -1456, 268 ) );
playloopat( "amb_tree_wind", ( 142, -1457, 234 ) );
playloopat( "amb_tree_wind", ( 1578, -948, 321 ) );
playloopat( "amb_tree_wind", ( 2216, -789, 435 ) );
playloopat( "amb_tree_wind", ( -1701, 679, 315 ) );
playloopat( "amb_wind_mill", ( -809, 1429, 562 ) );
playloopat( "amb_fridge_hum", ( 2158, -264, 82 ) );
playloopat( "amb_neon_sign", ( -1031, -1044, 122 ) );
playloopat( "amb_neon_sign", ( -2185, -132, 198 ) );
playloopat( "amb_neon_sign", ( -1898, 210, 199 ) );
playloopat( "amb_neon_sign", ( -949, 521, 180 ) );
playloopat( "amb_neon_sign", ( -635, 320, 182 ) );
playloopat( "amb_neon_sign", ( 620, 412, 208 ) );
playloopat( "amb_neon_sign", ( -461, -1016, 176 ) );
playloopat( "amb_neon_sign", ( -444, -524, 208 ) );
playloopat( "amb_clock_tick", ( 1085, 705, 175 ) );
playloopat( "amb_clock_tick", ( 2158, -253, 139 ) );
playloopat( "amb_clock_tick", ( -2370, 147, 176 ) );
playloopat( "amb_clock_tick", ( -401, -206, 172 ) );
playloopat( "amb_clock_tick", ( 581, 146, 172 ) );
playloopat( "amb_curtain_flap", ( 1026, 538, 154 ) );
playloopat( "amb_curtain_flap", ( 2084, 49, 89 ) );
playloopat( "amb_curtain_flap", ( 1996, -350, 130 ) );
playloopat( "amb_curtain_flap", ( 473, 783, 132 ) );
playloopat( "amb_curtain_flap", ( 501, 991, 133 ) );
playloopat( "amb_fireplace", ( 466, 668, 95 ) );
playloopat( "amb_outside_heater", ( -146, 855, 20 ) );
playloopat( "amb_house_radiator_hum", ( 585, 534, 82 ) );
playloopat( "amb_house_radiator_hum", ( 1027, 534, 78 ) );
playloopat( "amb_house_radiator_hum", ( 2185, -432, 51 ) );
playloopat( "amb_house_radiator_hum", ( 349, 257, 100 ) );
playloopat( "amb_house_radiator_hum", ( -171, -342, 99 ) );
playloopat( "amb_house_radiator_hum", ( 433, 502, 95 ) );
playloopat( "amb_house_radiator_hum", ( 2365, -7, 50 ) );
playloopat( "amb_dryer", ( 1104, 674, 86 ) );
playloopat( "amb_dryer", ( 1104, 636, 86 ) );
playloopat( "amb_flag_flap", ( -1274, 378, 199 ) );
playloopat( "amb_flag_flap", ( -1035, 382, 197 ) );
playloopat( "amb_flag_flap", ( -1179, 692, 210 ) );
playloopat( "amb_flag_flap", ( -1178, 815, 207 ) );
playloopat( "amb_flag_flap", ( -1178, 937, 207 ) );
playloopat( "amb_flag_flap", ( -242, 1054, 177 ) );
playloopat( "amb_flag_flap", ( -376, 1056, 174 ) );
}

View File

@ -0,0 +1,143 @@
// T6 GSC SOURCE
// Decompiled by https://github.com/xensik/gsc-tool
#include clientscripts\mp\_utility;
#include clientscripts\mp\_fxanim_dlc4;
#include clientscripts\mp\createfx\mp_frostbite_fx;
#include clientscripts\mp\_fx;
precache_scripted_fx()
{
}
precache_createfx_fx()
{
level._effect["fx_lf_mp_frostbite_sun"] = loadfx( "lens_flares/fx_lf_mp_frostbite_sun" );
level._effect["fx_mp_frostbite_snow_ledge_runner"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_ledge_runner" );
level._effect["fx_mp_frostbite_snow_chunk_runner"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_chunk_runner" );
level._effect["fx_mp_frostbite_snow_gust_runner"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_gust_runner" );
level._effect["fx_mp_frostbite_snow_fog"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_fog" );
level._effect["fx_mp_frostbite_snow_flurries"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_flurries" );
level._effect["fx_mp_frostbite_snow_flurries_fine"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_flurries_fine" );
level._effect["fx_mp_frostbite_snow_flurries_window"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_flurries_window" );
level._effect["fx_mp_frostbite_snow_flurries_vista"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_flurries_vista" );
level._effect["fx_mp_frostbite_snow_gust_sm_runner"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_gust_sm_runner" );
level._effect["fx_mp_frostbite_snow_swirl_runner"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_swirl_runner" );
level._effect["fx_mp_frostbite_ground_blow"] = loadfx( "maps/mp_maps/fx_mp_frostbite_ground_blow" );
level._effect["fx_mp_frostbite_snow_gust_tree"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_gust_tree" );
level._effect["fx_mp_frostbite_snow_gust_roof"] = loadfx( "maps/mp_maps/fx_mp_frostbite_snow_gust_roof" );
level._effect["fx_mp_frostbite_ice_fall_runner"] = loadfx( "maps/mp_maps/fx_mp_frostbite_ice_fall_runner" );
level._effect["fx_mp_frostbite_ice_fall_sm_runner"] = loadfx( "maps/mp_maps/fx_mp_frostbite_ice_fall_sm_runner" );
level._effect["fx_mp_frostbite_lamp_post"] = loadfx( "maps/mp_maps/fx_mp_frostbite_lamp_post" );
level._effect["fx_frostbite_circle_light_glare"] = loadfx( "light/fx_frostbite_circle_light_glare" );
level._effect["fx_frostbite_circle_light_glare_flr"] = loadfx( "light/fx_frostbite_circle_light_glare_flr" );
level._effect["fx_mp_frostbite_lamp_int"] = loadfx( "maps/mp_maps/fx_mp_frostbite_lamp_int" );
level._effect["fx_frostbite_exit_sign"] = loadfx( "light/fx_frostbite_exit_sign" );
level._effect["fx_mp_frostbite_sign_glow"] = loadfx( "maps/mp_maps/fx_mp_frostbite_sign_glow" );
level._effect["fx_mp_frostbite_sign_glow_flick"] = loadfx( "maps/mp_maps/fx_mp_frostbite_sign_glow_flick" );
level._effect["fx_light_track_omni"] = loadfx( "light/fx_light_track_omni" );
level._effect["fx_mp_frostbite_chimney_smk"] = loadfx( "maps/mp_maps/fx_mp_frostbite_chimney_smk" );
level._effect["fx_mp_frostbite_chimney_smk_dark"] = loadfx( "maps/mp_maps/fx_mp_frostbite_chimney_smk_dark" );
level._effect["fx_mp_frostbite_chimney_smk_vista"] = loadfx( "maps/mp_maps/fx_mp_frostbite_chimney_smk_vista" );
level._effect["fx_mp_frostbite_steam"] = loadfx( "maps/mp_maps/fx_mp_frostbite_steam" );
}
#using_animtree("fxanim_props_dlc4");
precache_fxanim_props_dlc4()
{
level.scr_anim["fxanim_props_dlc4"]["pennants_01"] = %fxanim_mp_frost_pennants_01_anim;
level.scr_anim["fxanim_props_dlc4"]["pennants_02"] = %fxanim_mp_frost_pennants_02_anim;
level.scr_anim["fxanim_props_dlc4"]["candy_sign"] = %fxanim_mp_frost_candy_sign_anim;
level.scr_anim["fxanim_props_dlc4"]["crane01"] = %fxanim_mp_frostbite_crane_01_anim;
level.scr_anim["fxanim_props_dlc4"]["crane02"] = %fxanim_mp_frostbite_crane_02_anim;
level.scr_anim["fxanim_props_dlc4"]["crane03"] = %fxanim_mp_frostbite_crane_03_anim;
level.scr_anim["fxanim_props_dlc4"]["crane04"] = %fxanim_mp_frostbite_crane_04_anim;
level.scr_anim["fxanim_props_dlc4"]["crane05"] = %fxanim_mp_frostbite_crane_05_anim;
level.scr_anim["fxanim_props_dlc4"]["river_ice"] = %fxanim_mp_frost_ice_anim;
level.scr_anim["fxanim_props_dlc4"]["river_ice2"] = %fxanim_mp_frost_ice_02_anim;
level.scr_anim["fxanim_props_dlc4"]["gate"] = %fxanim_mp_frost_gate_anim;
}
fxanim_init( localclientnum )
{
level thread clientscripts\mp\_fxanim_dlc4::fxanim_init_dlc( localclientnum );
for (;;)
{
level waittill( "snap_processed", snapshotlocalclientnum );
if ( snapshotlocalclientnum == localclientnum )
break;
}
level thread clientscripts\mp\_fxanim_dlc4::fxanim_init_dlc( localclientnum );
radar = getent( localclientnum, "fxanim_dlc4_crane", "targetname" );
if ( isdefined( radar ) )
{
if ( !isdefined( level.radar_waits ) )
{
level.radar_waits = [];
for ( i = 1; i < 6; i++ )
level.radar_waits[i] = randomfloatrange( 5, 10 );
}
radar thread fxanim_radar_think( localclientnum );
}
}
#using_animtree("fxanim_props");
precache_fx_anims()
{
level.scr_anim["fxanim_props"]["laundry"] = %fxanim_gp_dryer_loop_anim;
level.scr_anim["fxanim_props"]["dock_chain"] = %fxanim_mp_ver_stair_chain_sign_anim;
level.fx_anim_level_init = ::fxanim_init;
}
#using_animtree("fxanim_props_dlc4");
fxanim_radar_think( localclientnum )
{
self endon( "death" );
self endon( "entityshutdown" );
self endon( "delete" );
self waittill_dobj( localclientnum );
self useanimtree( #animtree );
anim_index = 1;
for (;;)
{
self setflaggedanimrestart( "radar_done" + anim_index, level.scr_anim["fxanim_props_dlc4"]["crane0" + anim_index], 1.0, 0.0, 1.0 );
for (;;)
{
self waittill( "radar_done" + anim_index, note );
if ( note == "end" )
break;
}
wait( level.radar_waits[anim_index] );
self clearanim( level.scr_anim["fxanim_props_dlc4"]["crane0" + anim_index], 0 );
anim_index++;
if ( anim_index > 5 )
anim_index = 1;
}
}
main()
{
clientscripts\mp\createfx\mp_frostbite_fx::main();
clientscripts\mp\_fx::reportnumeffects();
precache_createfx_fx();
precache_fx_anims();
precache_fxanim_props_dlc4();
disablefx = getdvarint( _hash_C9B177D6 );
if ( !isdefined( disablefx ) || disablefx <= 0 )
precache_scripted_fx();
}