Files
2023-10-26 13:13:39 -07:00

257 lines
12 KiB
Plaintext

// 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_takeoff_fx;
#include clientscripts\mp\_fx;
precache_scripted_fx()
{
}
precache_createfx_fx()
{
level._effect["fx_light_exit_sign"] = loadfx( "light/fx_light_exit_sign_glow" );
level._effect["fx_light_flour_glow_cool"] = loadfx( "light/fx_tak_light_flour_glow_cool" );
level._effect["fx_tak_light_flour_glow_cool_sm"] = loadfx( "light/fx_tak_light_flour_glow_cool_sm" );
level._effect["fx_light_upl_flour_glow_v_shape_cool"] = loadfx( "light/fx_light_upl_flour_glow_v_shape_cool" );
level._effect["fx_light_recessed_blue"] = loadfx( "light/fx_light_recessed_blue" );
level._effect["fx_light_recessed_cool_sm_soft"] = loadfx( "light/fx_light_recessed_cool_sm_soft" );
level._effect["fx_mp_tak_glow_blue"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_blue" );
level._effect["fx_mp_tak_glow_orange"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_orange" );
level._effect["fx_mp_tak_glow_yellow"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_yellow" );
level._effect["fx_mp_tak_glow_red"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_red" );
level._effect["fx_tak_light_flour_glow_ceiling"] = loadfx( "light/fx_tak_light_flour_glow_ceiling" );
level._effect["fx_tak_light_flour_sqr_lg"] = loadfx( "light/fx_tak_light_flour_sqr_lg" );
level._effect["fx_tak_light_flour_rnd_lg"] = loadfx( "light/fx_tak_light_flour_rnd_lg" );
level._effect["fx_tak_light_tv_glow_blue"] = loadfx( "light/fx_tak_light_tv_glow_blue" );
level._effect["fx_tak_light_tv_glow_blue_flckr"] = loadfx( "light/fx_tak_light_tv_glow_blue_flckr" );
level._effect["fx_drone_light_yellow"] = loadfx( "light/fx_drone_light_yellow" );
level._effect["fx_tak_light_sign_glow_blue"] = loadfx( "light/fx_tak_light_sign_glow_blue" );
level._effect["fx_tak_light_blue_stair"] = loadfx( "light/fx_tak_light_blue_stair" );
level._effect["fx_tak_light_blue_stair_sm"] = loadfx( "light/fx_tak_light_blue_stair_sm" );
level._effect["fx_tak_light_blue"] = loadfx( "light/fx_tak_light_blue" );
level._effect["fx_tak_light_blue_pulse"] = loadfx( "light/fx_tak_light_blue_pulse" );
level._effect["fx_tak_light_blue_pulse_curve"] = loadfx( "light/fx_tak_light_blue_pulse_curve" );
level._effect["fx_light_beacon_yellow"] = loadfx( "light/fx_light_beacon_yellow" );
level._effect["fx_light_beacon_red_blink_fst_sm"] = loadfx( "light/fx_light_beacon_red_blink_fst_sm" );
level._effect["fx_tak_light_modern_sconce"] = loadfx( "light/fx_tak_light_modern_sconce" );
level._effect["fx_tak_light_spotlight"] = loadfx( "light/fx_tak_light_spotlight" );
level._effect["fx_tak_light_wall_ext"] = loadfx( "light/fx_tak_light_wall_ext" );
level._effect["fx_mp_light_dust_motes_md"] = loadfx( "maps/mp_maps/fx_mp_light_dust_motes_md" );
level._effect["fx_mp_tak_dust_ground"] = loadfx( "maps/mp_maps/fx_mp_tak_dust_ground" );
level._effect["fx_tak_water_fountain_pool_sm"] = loadfx( "water/fx_tak_water_fountain_pool_sm" );
level._effect["fx_paper_interior_short_sm"] = loadfx( "debris/fx_paper_interior_short_sm" );
level._effect["fx_paper_exterior_short_sm_fst"] = loadfx( "debris/fx_paper_exterior_short_sm_fst" );
level._effect["fx_insects_swarm_md_light"] = loadfx( "bio/insects/fx_insects_swarm_md_light" );
level._effect["fx_mp_vent_heat_distort"] = loadfx( "maps/mp_maps/fx_mp_vent_heat_distort" );
level._effect["fx_mp_tak_steam_loading_dock"] = loadfx( "maps/mp_maps/fx_mp_tak_steam_loading_dock" );
level._effect["fx_mp_vent_steam_line"] = loadfx( "maps/mp_maps/fx_mp_vent_steam_line" );
level._effect["fx_mp_vent_steam_line_sm"] = loadfx( "maps/mp_maps/fx_mp_vent_steam_line_sm" );
level._effect["fx_mp_vent_steam_line_lg"] = loadfx( "maps/mp_maps/fx_mp_vent_steam_line_lg" );
level._effect["fx_mp_steam_amb_xlg"] = loadfx( "maps/mp_maps/fx_mp_steam_amb_xlg" );
level._effect["fx_mp_tak_steam_hvac"] = loadfx( "maps/mp_maps/fx_mp_tak_steam_hvac" );
level._effect["fx_lf_mp_overflow_sun1"] = loadfx( "lens_flares/fx_lf_mp_overflow_sun1" );
level._effect["fx_lf_mp_takeoff_sun1"] = loadfx( "lens_flares/fx_lf_mp_takeoff_sun1" );
level._effect["fx_mp_tak_shuttle_thruster_lg"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_lg" );
level._effect["fx_mp_tak_shuttle_thruster_md"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_md" );
level._effect["fx_mp_tak_shuttle_thruster_sm"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_sm" );
level._effect["fx_mp_tak_shuttle_thruster_smk_grnd"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_smk_grnd" );
level._effect["fx_mp_tak_shuttle_thruster_steam"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_steam" );
level._effect["fx_mp_tak_shuttle_thruster_steam_w"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_steam_w" );
level._effect["fx_mp_tak_shuttle_frame_light"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_frame_light" );
level._effect["fx_mp_tak_steam_nozzle"] = loadfx( "maps/mp_maps/fx_mp_tak_steam_nozzle" );
}
#using_animtree("fxanim_props_dlc4");
precache_fxanim_props_dlc4()
{
level.scr_anim["fxanim_props_dlc4"]["decont_blasters"] = %fxanim_mp_takeoff_decont_blasters_anim;
level.scr_anim["fxanim_props_dlc4"]["scaffold_wires_01"] = %fxanim_mp_takeoff_scaffold_wires_01_anim;
level.scr_anim["fxanim_props_dlc4"]["crane_hooks"] = %fxanim_mp_takeoff_crane_hooks_anim;
level.scr_anim["fxanim_props_dlc4"]["rattling_sign"] = %fxanim_mp_takeoff_rattling_sign_anim;
level.scr_anim["fxanim_props_dlc4"]["radar01"] = %fxanim_mp_takeoff_satellite_dish_01_anim;
level.scr_anim["fxanim_props_dlc4"]["radar02"] = %fxanim_mp_takeoff_satellite_dish_02_anim;
level.scr_anim["fxanim_props_dlc4"]["radar03"] = %fxanim_mp_takeoff_satellite_dish_03_anim;
level.scr_anim["fxanim_props_dlc4"]["radar04"] = %fxanim_mp_takeoff_satellite_dish_04_anim;
level.scr_anim["fxanim_props_dlc4"]["radar05"] = %fxanim_mp_takeoff_satellite_dish_05_anim;
level.scr_anim["fxanim_props_dlc4"]["banners"] = %fxanim_mp_takeoff_banner_01_anim;
level.scr_anim["fxanim_props_dlc4"]["planets"] = %fxanim_mp_takeoff_planets_anim;
level.scr_anim["fxanim_props_dlc4"]["banners_lrg"] = %fxanim_mp_takeoff_banner_lrg_anim;
}
fxanim_init( 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_radar", "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 );
}
decont_blasters = getent( localclientnum, "fxanim_dlc4_blasters", "targetname" );
if ( isdefined( decont_blasters ) )
decont_blasters thread fxanim_decontamination_think( localclientnum );
planets_candidates = getentarray( localclientnum, "fxanim_dlc4", "targetname" );
if ( isdefined( planets_candidates ) && planets_candidates.size > 0 )
{
foreach ( planets_candidate in planets_candidates )
{
if ( planets_candidate.model == "fxanim_mp_takeoff_planets_mod" )
planets_candidate thread fxanim_planets_think( localclientnum );
}
}
level thread playexploderonstart();
}
#using_animtree("fxanim_props");
precache_fx_anims()
{
level.scr_anim = [];
level.scr_anim["fxanim_props"]["seagull_circle_01"] = %fxanim_gp_seagull_circle_01_anim;
level.scr_anim["fxanim_props"]["seagull_circle_02"] = %fxanim_gp_seagull_circle_02_anim;
level.scr_anim["fxanim_props"]["seagull_circle_03"] = %fxanim_gp_seagull_circle_03_anim;
level.scr_anim["fxanim_props"]["windsock"] = %fxanim_gp_windsock_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"]["radar0" + 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"]["radar0" + anim_index], 0 );
anim_index++;
if ( anim_index > 5 )
anim_index = 1;
}
}
fxanim_decontamination_think( localclientnum )
{
self waittill_dobj( localclientnum );
self useanimtree( #animtree );
self animflaggedscripted( "nozzle", level.scr_anim["fxanim_props_dlc4"]["decont_blasters"], 1.0, 0.0, 1.0 );
self.nozzletags = [];
self.nozzletags["one"] = "nozzle_01_tag_jnt";
self.nozzletags["two"] = "nozzle_02_tag_jnt";
self.nozzletags["three"] = "nozzle_03_tag_jnt";
self.nozzletags["four"] = "nozzle_04_tag_jnt";
self.nozzlefxid = [];
for (;;)
{
self waittill( "nozzle", note );
if ( note == "end" )
continue;
tokens = strtok( note, "_" );
if ( tokens.size != 4 )
continue;
foundchange = 0;
if ( tokens[3] == "off" || tokens[3] == "on" )
{
foundchange = 1;
change = tokens[3];
}
if ( foundchange == 0 || tokens[0] != "nozzles" )
continue;
foreach ( token in tokens )
{
if ( isdefined( self.nozzletags[token] ) )
{
if ( change == "on" )
{
self.nozzlefxid[token] = playfxontag( localclientnum, level._effect["fx_mp_tak_steam_nozzle"], self, self.nozzletags[token] );
continue;
}
stopfx( localclientnum, self.nozzlefxid[token] );
self.nozzlefxid[token] = undefined;
}
}
}
}
main()
{
clientscripts\mp\createfx\mp_takeoff_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();
}
playexploderonstart()
{
clientscripts\mp\_fx::activate_exploder( 2001 );
clientscripts\mp\_fx::activate_exploder( 2002 );
}
fxanim_planets_think( localclientnum )
{
self waittill_dobj( localclientnum );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_blue"], self, "earth_jnt" );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_red"], self, "jupiter_jnt" );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_red"], self, "mars_jnt" );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_yellow"], self, "mercury_jnt" );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_blue"], self, "neptune_jnt" );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_yellow"], self, "saturn_jnt" );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_blue"], self, "uranus_jnt" );
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_yellow"], self, "venus_jnt" );
}