685 lines
31 KiB
Plaintext
685 lines
31 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
main()
|
|
{
|
|
level._effect["vfx_carrier_rearwake"] = loadfx( "vfx/moments/carrier/vfx_carrier_rearwake" );
|
|
level._effect["vfx_ac130_25mm_tracer"] = loadfx( "vfx/moments/carrier/vfx_ac130_25mm_tracer" );
|
|
level._effect["vfx_ac130_25mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_25mm_impact" );
|
|
level._effect["vfx_ac130_40mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_40mm_impact" );
|
|
level._effect["vfx_intro_antenna_lights_close"] = loadfx( "vfx/moments/carrier/vfx_intro_antenna_lights_close" );
|
|
level._effect["vfx_intro_antenna_lights"] = loadfx( "vfx/moments/carrier/vfx_intro_antenna_lights" );
|
|
level._effect["vfx_ac130_105mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_105mm_impact" );
|
|
level._effect["fx/muzzleflashes/ak47_flash_wv"] = loadfx( "fx/muzzleflashes/ak47_flash_wv" );
|
|
level._effect["aircraft_light_cockpit_white_300"] = loadfx( "fx/misc/aircraft_light_cockpit_white_300" );
|
|
level._effect["vfx_sunflare_carrier"] = loadfx( "vfx/ambient/atmospheric/vfx_sunflare_carrier" );
|
|
level._effect["vfx_jetscrape_point_runner"] = loadfx( "vfx/moments/carrier/vfx_jetscrape_point_runner" );
|
|
level._effect["vfx_intro_chopper_cloudbank"] = loadfx( "vfx/moments/carrier/vfx_intro_chopper_cloudbank" );
|
|
level._effect["vfx_intro_elevator_light"] = loadfx( "vfx/moments/carrier/vfx_intro_elevator_light" );
|
|
level._effect["vfx_intro_runway_lights"] = loadfx( "vfx/moments/carrier/vfx_intro_runway_lights" );
|
|
level._effect["vfx_antenna_deck_impact"] = loadfx( "vfx/moments/carrier/vfx_antenna_deck_impact" );
|
|
level._effect["vfx_firerain_large"] = loadfx( "vfx/moments/carrier/vfx_firerain_large" );
|
|
level._effect["vfx_carrier_shock_particulates"] = loadfx( "vfx/moments/carrier/vfx_carrier_shock_particulates" );
|
|
level._effect["vfx_crackpoof"] = loadfx( "vfx/moments/carrier/vfx_crackpoof" );
|
|
level._effect["vfx_firerain"] = loadfx( "vfx/moments/carrier/vfx_firerain" );
|
|
level._effect["vfx_deck_damage_fire"] = loadfx( "vfx/moments/carrier/vfx_deck_damage_fire" );
|
|
level._effect["vfx_zodiac_water_splash"] = loadfx( "vfx/moments/carrier/vfx_zodiac_water_splash" );
|
|
level._effect["vfx_zodiac_propeller_fast"] = loadfx( "vfx/moments/carrier/vfx_zodiac_propeller_fast" );
|
|
level._effect["vfx_missile_death_deck"] = loadfx( "vfx/moments/carrier/vfx_missile_death_deck" );
|
|
level._effect["vfx_exp_silenthawk_deck_trail"] = loadfx( "vfx/moments/carrier/vfx_exp_silenthawk_deck_trail" );
|
|
level._effect["vfx_exp_silenthawk_deck"] = loadfx( "vfx/moments/carrier/vfx_exp_silenthawk_deck" );
|
|
level._effect["vfx_exp_silenthawk_end"] = loadfx( "vfx/gameplay/explosions/vfx_exp_silenthawk_end" );
|
|
level._effect["vfx_tower_glass_shatter"] = loadfx( "vfx/moments/carrier/vfx_tower_glass_shatter" );
|
|
level._effect["vfx_lrg_air_exp"] = loadfx( "vfx/moments/carrier/vfx_lrg_air_exp_low_tendrils" );
|
|
level._effect["vfx_missile_death_air"] = loadfx( "vfx/moments/carrier/vfx_missile_death_air" );
|
|
level._effect["vfx_perif_smk_war_vista_fog_dark"] = loadfx( "vfx/ambient/skybox/vfx_perif_smk_war_vista_fog_dark" );
|
|
level._effect["vfx_vehicle_explosion_mig29"] = loadfx( "vfx/gameplay/explosions/vfx_vehicle_explosion_mig29" );
|
|
level._effect["vfx_zodiac_splash_idle"] = loadfx( "vfx/gameplay/vehicles/zodiac/vfx_zodiac_splash_idle" );
|
|
level._effect["vfx_zodiac_splash_sink"] = loadfx( "vfx/gameplay/vehicles/zodiac/vfx_zodiac_splash_sink" );
|
|
level._effect["vfx_f18_engine_afterburner"] = loadfx( "vfx/gameplay/vehicles/f18/vfx_f18_engine_afterburner" );
|
|
level._effect["vfx_f18_engine"] = loadfx( "vfx/gameplay/vehicles/f18/vfx_f18_engine" );
|
|
level._effect["vfx_f18_idle"] = loadfx( "vfx/gameplay/vehicles/f18/vfx_f18_idle" );
|
|
level._effect["vfx_debris_fire_tiny"] = loadfx( "vfx/moments/mp_chasm/vfx_debris_fire_tiny" );
|
|
level._effect["vfx_plume_med_light"] = loadfx( "vfx/ambient/smoke/vfx_plume_med_light" );
|
|
level._effect["vfx_plume_med_dense"] = loadfx( "vfx/ambient/smoke/vfx_plume_med_dense" );
|
|
level._effect["vfx_blowing_sparks_small"] = loadfx( "vfx/moments/carrier/vfx_blowing_sparks_small" );
|
|
level._effect["vfx_debris_fire_nosmk"] = loadfx( "vfx/moments/carrier/vfx_debris_fire_nolight_nosmk" );
|
|
level._effect["vfx_fire_grounded_xtralarge_nxglight"] = loadfx( "vfx/ambient/fire/vfx_fire_grounded_xtralarge_nxglight" );
|
|
level._effect["vfx_fire_grounded_large_nxglight"] = loadfx( "vfx/ambient/fire/vfx_fire_grounded_large_nxglight" );
|
|
level._effect["vfx_fire_wall_lg"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_wall_lg" );
|
|
level._effect["vfx_fire_wall_small"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_wall_small" );
|
|
level._effect["vfx_fire_crawling"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_crawling" );
|
|
level._effect["vfx_fire_wall_medium"] = loadfx( "vfx/ambient/fire/wall/vfx_fire_wall_medium" );
|
|
level._effect["vfx_post_impact_debris"] = loadfx( "vfx/moments/carrier/vfx_post_impact_debris" );
|
|
level._effect["vfx_antiair_runner"] = loadfx( "vfx/ambient/atmospheric/vfx_antiair_runner" );
|
|
level._effect["vfx_fire_lrg_plume"] = loadfx( "vfx/ambient/fire/vfx_fire_lrg_plume" );
|
|
level._effect["vfx_jetscrape_runner"] = loadfx( "vfx/moments/carrier/vfx_jetscrape_runner" );
|
|
level._effect["vfx_destroyer_5in_muzzleflash"] = loadfx( "vfx/moments/carrier/vfx_destroyer_5in_muzzleflash" );
|
|
level._effect["vfx_destroyer_vert_missile_impact"] = loadfx( "vfx/moments/carrier/vfx_destroyer_vert_missile_impact" );
|
|
level._effect["vfx_destroyer_vert_missile_trail"] = loadfx( "vfx/moments/carrier/vfx_destroyer_vert_missile_trail" );
|
|
level._effect["electrical_sparks_runner"] = loadfx( "vfx/ambient/sparks/electrical_sparks_runner" );
|
|
level._effect["vfx_tower_blowingpaper"] = loadfx( "vfx/moments/carrier/vfx_tower_blowingpaper" );
|
|
level._effect["vfx_carrier_fuel_fire_nosmoke"] = loadfx( "vfx/moments/carrier/vfx_carrier_fuel_fire_nosmoke" );
|
|
level._effect["vfx_carrier_fuel_fire"] = loadfx( "vfx/moments/carrier/vfx_carrier_fuel_fire" );
|
|
level._effect["vfx_blowing_debris_small"] = loadfx( "vfx/moments/carrier/vfx_blowing_debris_small" );
|
|
level._effect["vfx_debris_fire"] = loadfx( "vfx/moments/carrier/vfx_debris_fire_nolight" );
|
|
level._effect["vfx_rog_trail"] = loadfx( "vfx/moments/carrier/vfx_rog_trail" );
|
|
level._effect["vfx_rog_water_impact_close"] = loadfx( "vfx/moments/carrier/vfx_rog_water_impact_close" );
|
|
level._effect["vfx_deck_impact"] = loadfx( "vfx/moments/carrier/vfx_deck_impact" );
|
|
level._effect["vfx_deck_heatdistortion_runner"] = loadfx( "vfx/moments/carrier/vfx_deck_heatdistortion_runner" );
|
|
level._effect["vfx_battlesmoke_large_directional"] = loadfx( "vfx/moments/carrier/vfx_battlesmoke_large_directional" );
|
|
level._effect["vfx_rog_tower_impact"] = loadfx( "vfx/moments/carrier/vfx_rog_tower_impact" );
|
|
level._effect["vfx_phalanx_missile_impact"] = loadfx( "vfx/moments/carrier/vfx_phalanx_missile_impact" );
|
|
level._effect["flesh_hit"] = loadfx( "fx/impacts/flesh_hit" );
|
|
level._effect["zodiac_wake_geotrail"] = loadfx( "vfx/moments/carrier/vfx_zodiac_wake_cheap" );
|
|
level._effect["body_splash"] = loadfx( "fx/water/body_splash" );
|
|
level._effect["blank"] = loadfx( "fx/misc/blank" );
|
|
level._effect["FX_mig29_on_fire"] = loadfx( "fx/fire/jet_on_fire" );
|
|
level._effect["aerial_explosion_hind_woodland"] = loadfx( "fx/explosions/aerial_explosion_hind_woodland" );
|
|
level._effect["battleship_flash_large_withmissile"] = loadfx( "fx/maps/ny_harbor/battleship_flash_large_withmissile" );
|
|
level._effect["vfx_f18_catapult_launch"] = loadfx( "vfx/moments/carrier/vfx_f18_catapult_launch" );
|
|
level._effect["vfx_exp_heli_primary"] = loadfx( "vfx/gameplay/explosions/vehicle/heli/vfx_exp_heli_primary" );
|
|
level._effect["vfx_x_mphnd_primary"] = loadfx( "vfx/gameplay/explosions/vehicle/hind_mp/vfx_x_mphnd_primary" );
|
|
level._effect["ac130_25mm_impact_water"] = loadfx( "fx/impacts/ac130_25mm_impact_water" );
|
|
level._effect["ac130_40mm_impact_water"] = loadfx( "fx/impacts/ac130_40mm_impact_water" );
|
|
level._effect["ac130_105mm_impact"] = loadfx( "vfx/moments/carrier/vfx_ac130_105mm_impact" );
|
|
level._effect["angel_flare_geotrail"] = loadfx( "fx/smoke/angel_flare_geotrail" );
|
|
level._effect["angel_flare_swirl"] = loadfx( "fx/smoke/angel_flare_swirl_runner" );
|
|
level._effect["chopper_flare_explosion"] = loadfx( "fx/_requests/apache/apache_trophy_explosion_ai" );
|
|
level._effect["ac130_105mm_muzzle"] = loadfx( "fx/muzzleflashes/ac130_105mm" );
|
|
level._effect["ac130_40mm_muzzle"] = loadfx( "fx/muzzleflashes/ac130_40mm" );
|
|
level._effect["vfx_ac130_engine_fire"] = loadfx( "vfx/moments/carrier/vfx_ac130_engine_fire" );
|
|
level._effect["rog_maintrail_01"] = loadfx( "vfx/moments/carrier/vfx_rog_carrier_bg_runner" );
|
|
level._effect["depth_charge_impact"] = loadfx( "fx/water/body_splash" );
|
|
level._effect["depth_charge_explosion"] = loadfx( "vfx/moments/carrier/vfx_depthcharge_explode" );
|
|
level._effect["sw_rog_strike_big_tail"] = loadfx( "vfx/moments/skyway/sw_rog_strike_big_tail" );
|
|
level._effect["vfx_heli_dust_default_cheap"] = loadfx( "vfx/gameplay/tread_fx/vfx_heli_dust_default_cheap" );
|
|
level._effect["vfx_heli_dust_default_cheap_bank"] = loadfx( "vfx/gameplay/tread_fx/vfx_heli_dust_default_cheap_bank" );
|
|
level._effect["vfx_heli_dust_default_cheap_bank_lg"] = loadfx( "vfx/gameplay/tread_fx/vfx_heli_dust_default_cheap_bank_lg" );
|
|
level._effect["fx_splash_carrier_side_xlg"] = loadfx( "fx/maps/carrier/fx_splash_carrier_side_xlg" );
|
|
level._effect["drone_tracer"] = loadfx( "fx/_requests/homecoming/drone_tracer" );
|
|
common_scripts\utility::flag_init( "exterior_effects_on" );
|
|
common_scripts\utility::flag_init( "exterior_effects_off" );
|
|
common_scripts\utility::flag_init( "vista_effects_on" );
|
|
|
|
if ( !getdvarint( "r_reflectionProbeGenerate" ) )
|
|
{
|
|
maps\createfx\carrier_fx::main();
|
|
maps\createfx\carrier_sound::main();
|
|
}
|
|
|
|
thread exterior_effects();
|
|
thread interior_effects();
|
|
thread ally_ships();
|
|
thread land_aa();
|
|
thread enemy_land_missile();
|
|
thread treadfx_override_aas();
|
|
thread treadfx_override_nh90();
|
|
thread treadfx_override_y_8_gunship();
|
|
thread treadfx_override_silenthawk();
|
|
}
|
|
|
|
treadfx_override_aas()
|
|
{
|
|
level._vehicle_effect["script_vehicle_aas72x"]["default"] = level._effect["vfx_heli_dust_default_cheap"];
|
|
level._vehicle_effect["script_vehicle_aas72x"]["default_bank"] = level._effect["vfx_heli_dust_default_cheap_bank"];
|
|
level._vehicle_effect["script_vehicle_aas72x"]["default_bank_lg"] = level._effect["vfx_heli_dust_default_cheap_bank_lg"];
|
|
}
|
|
|
|
treadfx_override_nh90()
|
|
{
|
|
var_0 = "fx/misc/blank";
|
|
maps\_treadfx::setallvehiclefx( "script_vehicle_nh90", var_0 );
|
|
}
|
|
|
|
treadfx_override_y_8_gunship()
|
|
{
|
|
var_0 = "fx/misc/blank";
|
|
maps\_treadfx::setallvehiclefx( "script_vehicle_y_8_gunship", var_0 );
|
|
}
|
|
|
|
treadfx_override_silenthawk()
|
|
{
|
|
level._vehicle_effect["script_vehicle_silenthawk"]["default"] = level._effect["vfx_heli_dust_default"];
|
|
level._vehicle_effect["script_vehicle_silenthawk"]["default_bank"] = level._effect["vfx_heli_dust_default_bank"];
|
|
level._vehicle_effect["script_vehicle_silenthawk"]["default_bank_lg"] = level._effect["vfx_heli_dust_default_bank_lg"];
|
|
}
|
|
|
|
fx_init()
|
|
{
|
|
setsaveddvar( "fx_alphathreshold", 9 );
|
|
thread defend_zodiac_fx();
|
|
thread defend_sparrow_fx();
|
|
}
|
|
|
|
exterior_effects()
|
|
{
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::flag_wait( "exterior_effects_on" );
|
|
common_scripts\utility::exploder( 5501 );
|
|
common_scripts\utility::flag_clear( "exterior_effects_on" );
|
|
common_scripts\utility::flag_wait( "exterior_effects_off" );
|
|
maps\_utility::stop_exploder( 5501 );
|
|
common_scripts\utility::flag_clear( "exterior_effects_off" );
|
|
}
|
|
}
|
|
|
|
interior_effects()
|
|
{
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::flag_wait( "exterior_effects_off" );
|
|
common_scripts\utility::exploder( 5502 );
|
|
common_scripts\utility::flag_clear( "exterior_effects_off" );
|
|
common_scripts\utility::flag_wait( "exterior_effects_on" );
|
|
maps\_utility::stop_exploder( 5502 );
|
|
common_scripts\utility::flag_clear( "exterior_effects_on" );
|
|
}
|
|
}
|
|
|
|
ally_ships()
|
|
{
|
|
common_scripts\utility::flag_wait( "vista_effects_on" );
|
|
level.vert_missile_wait_min = 6;
|
|
level.vert_missile_wait_max = 10;
|
|
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_01", "defend_sparrow_platform" );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_02", "defend_sparrow_platform" );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_03", "defend_sparrow_platform" );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_04", "defend_sparrow_platform" );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_loop, "fx_ship_gun_05", "defend_sparrow_platform" );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_01", "fx_ship_missile_vert_01_dest", "defend_sparrow_platform", 11000, 6 );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_02", "fx_ship_missile_vert_02_dest", "defend_sparrow_platform" );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_03", "fx_ship_missile_vert_03_dest", "defend_sparrow_platform" );
|
|
maps\_utility::delaythread( 0, ::ship_shoot_vert_missile_loop, "fx_ship_missile_vert_04", "fx_ship_missile_vert_04_dest", "defend_sparrow_platform" );
|
|
common_scripts\utility::flag_wait( "defend_zodiac" );
|
|
level.vert_missile_wait_min = 16;
|
|
level.vert_missile_wait_max = 24;
|
|
}
|
|
|
|
ship_shoot_loop( var_0, var_1 )
|
|
{
|
|
level endon( var_1 );
|
|
var_2 = common_scripts\utility::getstruct( var_0, "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
var_2 thread ship_shoot();
|
|
wait( randomfloatrange( 5, 15 ) );
|
|
}
|
|
}
|
|
|
|
ship_shoot()
|
|
{
|
|
var_0 = common_scripts\utility::spawn_tag_origin();
|
|
var_0.origin = self.origin;
|
|
var_0.angles = self.angles + ( 0, -90, 0 );
|
|
playfxontag( common_scripts\utility::getfx( "vfx_destroyer_5in_muzzleflash" ), var_0, "tag_origin" );
|
|
wait 3;
|
|
maps\_utility::deleteent( var_0 );
|
|
}
|
|
|
|
cleanup_missile_fx( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
level waittill( var_0 );
|
|
|
|
if ( isdefined( self ) )
|
|
{
|
|
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_5in_muzzleflash" ), self, "tag_origin" );
|
|
maps\_utility::deleteent( self );
|
|
}
|
|
}
|
|
|
|
ship_shoot_vert_missile_loop( var_0, var_1, var_2, var_3, var_4, var_5 )
|
|
{
|
|
level endon( var_2 );
|
|
|
|
if ( isdefined( var_5 ) )
|
|
level endon( var_5 );
|
|
|
|
var_6 = common_scripts\utility::getstruct( var_0, "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
if ( randomint( 100 ) > 75 )
|
|
{
|
|
var_6 thread ship_shoot_vert_missile( var_1, var_2, var_3, var_4 );
|
|
wait 1;
|
|
var_6 thread ship_shoot_vert_missile( var_1, var_2, var_3, var_4 );
|
|
}
|
|
else
|
|
var_6 thread ship_shoot_vert_missile( var_1, var_2, var_3, var_4 );
|
|
|
|
wait( randomfloatrange( level.vert_missile_wait_min, level.vert_missile_wait_max ) );
|
|
}
|
|
}
|
|
|
|
ship_shoot_vert_missile( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = common_scripts\utility::spawn_tag_origin();
|
|
var_4.origin = self.origin;
|
|
var_4.angles = self.angles;
|
|
var_5 = common_scripts\utility::getstructarray( var_0, "targetname" );
|
|
var_6 = var_5[randomint( var_5.size )];
|
|
var_7 = randomintrange( 15000, 18000 );
|
|
var_8 = randomintrange( 13, 15 );
|
|
|
|
if ( isdefined( var_2 ) )
|
|
var_7 = var_2;
|
|
|
|
if ( isdefined( var_3 ) )
|
|
var_8 = var_3;
|
|
|
|
if ( var_5.size == 0 )
|
|
return;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
var_4 thread cleanup_vert_missile_fx( var_1 );
|
|
|
|
playfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
|
|
var_4 maps\carrier_code::move_arc( var_4.origin, var_6.origin, var_7, var_8, ( 180, 0, 0 ) );
|
|
|
|
if ( isdefined( var_4 ) )
|
|
{
|
|
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
|
|
var_4.angles = ( 0, 0, 0 );
|
|
playfx( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_impact" ), var_4.origin );
|
|
maps\_utility::deleteent( var_4 );
|
|
}
|
|
}
|
|
|
|
cleanup_vert_missile_fx( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
level waittill( var_0 );
|
|
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), self, "tag_origin" );
|
|
|
|
if ( isdefined( self ) )
|
|
maps\_utility::deleteent( self );
|
|
}
|
|
|
|
land_aa()
|
|
{
|
|
common_scripts\utility::flag_wait( "vista_effects_on" );
|
|
thread playfx_targetname_endon( "fx_land_aa", "vfx_antiair_runner", "defend_zodiac_finished" );
|
|
}
|
|
|
|
enemy_land_missile()
|
|
{
|
|
common_scripts\utility::flag_wait( "vista_effects_on" );
|
|
level.land_vert_missile_wait_min = 30;
|
|
level.land_vert_missile_wait_max = 50;
|
|
|
|
if ( !isdefined( level.land_missiles ) )
|
|
level.land_missiles = [];
|
|
|
|
maps\_utility::delaythread( 0, ::land_shoot_vert_missile_loop, "fx_shore_missile_vert_01", "fx_shore_missile_vert_01_dest", "defend_sparrow_platform", 11000 );
|
|
maps\_utility::delaythread( 0, ::land_shoot_vert_missile_loop, "fx_shore_missile_vert_02", "fx_shore_missile_vert_02_dest", "defend_sparrow_platform", 11000 );
|
|
maps\_utility::delaythread( 0, ::land_shoot_vert_missile_loop, "fx_shore_missile_vert_03", "fx_shore_missile_vert_03_dest", "defend_sparrow_platform", 11000 );
|
|
}
|
|
|
|
land_shoot_vert_missile_loop( var_0, var_1, var_2, var_3, var_4, var_5 )
|
|
{
|
|
level endon( var_2 );
|
|
|
|
if ( isdefined( var_5 ) )
|
|
level endon( var_5 );
|
|
|
|
var_6 = common_scripts\utility::getstruct( var_0, "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
if ( isdefined( level.player.using_depth_charge ) && level.player.using_depth_charge )
|
|
level.player waittill( "depth_charge_exit" );
|
|
|
|
if ( randomint( 100 ) > 75 )
|
|
{
|
|
var_6 thread land_shoot_vert_missile( var_1, var_2, var_3, var_4 );
|
|
wait 2;
|
|
var_6 thread land_shoot_vert_missile( var_1, var_2, var_3, var_4 );
|
|
}
|
|
else
|
|
var_6 thread land_shoot_vert_missile( var_1, var_2, var_3, var_4 );
|
|
|
|
wait( randomfloatrange( level.land_vert_missile_wait_min, level.land_vert_missile_wait_max ) );
|
|
}
|
|
}
|
|
|
|
land_shoot_vert_missile( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = common_scripts\utility::spawn_tag_origin();
|
|
var_4.origin = self.origin;
|
|
var_4.angles = self.angles;
|
|
level.land_missiles[level.land_missiles.size] = var_4;
|
|
var_5 = common_scripts\utility::getstructarray( var_0, "targetname" );
|
|
var_6 = var_5[randomint( var_5.size )];
|
|
var_7 = randomintrange( 15000, 18000 );
|
|
var_8 = randomintrange( 13, 15 );
|
|
|
|
if ( isdefined( var_2 ) )
|
|
var_7 = var_2;
|
|
|
|
if ( isdefined( var_3 ) )
|
|
var_8 = var_3;
|
|
|
|
if ( var_5.size == 0 )
|
|
return;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
var_4 thread cleanup_land_vert_missile_fx( var_1 );
|
|
|
|
playfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
|
|
var_4 maps\carrier_code::move_arc( var_4.origin, var_6.origin, var_7, var_8, ( 180, 0, 0 ) );
|
|
|
|
if ( isdefined( var_4 ) )
|
|
{
|
|
level.land_missiles = common_scripts\utility::array_remove( level.land_missiles, var_4 );
|
|
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), var_4, "tag_origin" );
|
|
var_4.angles = ( 0, 0, 0 );
|
|
playfx( common_scripts\utility::getfx( "vfx_lrg_air_exp" ), var_4.origin );
|
|
maps\_utility::deleteent( var_4 );
|
|
}
|
|
}
|
|
|
|
cleanup_land_vert_missile_fx( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
level waittill( var_0 );
|
|
level.land_missiles = common_scripts\utility::array_remove( level.land_missiles, self );
|
|
stopfxontag( common_scripts\utility::getfx( "vfx_destroyer_vert_missile_trail" ), self, "tag_origin" );
|
|
|
|
if ( isdefined( self ) )
|
|
maps\_utility::deleteent( self );
|
|
}
|
|
|
|
defend_zodiac_fx()
|
|
{
|
|
thread dz_enemy_destroyer_mortars();
|
|
thread dz_osprey_missiles();
|
|
thread dz_osprey_fed_destroyer();
|
|
}
|
|
|
|
dz_enemy_destroyer_mortars()
|
|
{
|
|
common_scripts\utility::flag_wait( "defend_zodiac_wave_01" );
|
|
var_0 = "defend_zodiac_finished";
|
|
level endon( var_0 );
|
|
var_1 = [ "dz_enemy_mortar_01_dest_01", "dz_enemy_mortar_01_dest_02", "dz_enemy_mortar_01_dest_03", "dz_enemy_mortar_01_dest_04" ];
|
|
var_2 = common_scripts\utility::getstruct( "dz_enemy_mortar_01", "targetname" );
|
|
var_3 = common_scripts\utility::getstructarray( "dz_enemy_mortar_01_dest", "targetname" );
|
|
|
|
for (;;)
|
|
{
|
|
var_4 = var_1[randomint( var_1.size )];
|
|
var_5 = common_scripts\utility::getstruct( var_4, "targetname" );
|
|
screenshake( var_5.origin, 3.5, 2, 2.5, 2, 0, 2, 10000, 5, 2, 7, 2.6 );
|
|
level.player playrumbleonentity( "heavy_1s" );
|
|
thread common_scripts\utility::play_sound_in_space( "exp_armor_vehicle", var_5.origin );
|
|
wait( randomfloatrange( 8, 14 ) );
|
|
}
|
|
}
|
|
|
|
dz_osprey_missiles()
|
|
{
|
|
|
|
}
|
|
|
|
dz_osprey_fed_destroyer()
|
|
{
|
|
level.player waittill( "using_depth_charge" );
|
|
|
|
foreach ( var_1 in level.fed_destroyer_fx_guns )
|
|
var_1 thread fed_destroyer_gun();
|
|
}
|
|
|
|
fed_destroyer_gun()
|
|
{
|
|
level.player endon( "depth_charge_exit" );
|
|
level endon( "stop_fed_destroyer_guns" );
|
|
|
|
for (;;)
|
|
{
|
|
playfx( common_scripts\utility::getfx( "vfx_destroyer_5in_muzzleflash" ), self.origin, anglestoforward( self.angles ) );
|
|
wait( randomfloatrange( 1, 3 ) );
|
|
}
|
|
}
|
|
|
|
defend_sparrow_fx()
|
|
{
|
|
thread defend_sparrow_ships();
|
|
}
|
|
|
|
defend_sparrow_ships()
|
|
{
|
|
level endon( "defend_sparrow_finished" );
|
|
common_scripts\utility::flag_wait( "defend_sparrow_start" );
|
|
|
|
for (;;)
|
|
{
|
|
var_0 = common_scripts\utility::getstructarray( "defend_sparrow_ship_missiles", "targetname" );
|
|
|
|
foreach ( var_2 in var_0 )
|
|
{
|
|
playfx( common_scripts\utility::getfx( "battleship_flash_large_withmissile" ), var_2.origin, anglestoforward( var_2.angles ) );
|
|
wait( randomfloatrange( 2, 4 ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
playfx_targetname_endon( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = common_scripts\utility::getstructarray( var_0, "targetname" );
|
|
|
|
foreach ( var_6 in var_4 )
|
|
{
|
|
var_7 = var_6.angles;
|
|
|
|
if ( isdefined( var_3 ) )
|
|
var_7 = var_3;
|
|
|
|
if ( !isdefined( var_7 ) )
|
|
var_7 = ( 0, 0, 0 );
|
|
|
|
thread playfx_endon( common_scripts\utility::getfx( var_1 ), var_6.origin, var_7, var_2 );
|
|
}
|
|
}
|
|
|
|
playfx_endon( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = common_scripts\utility::spawn_tag_origin();
|
|
var_4.origin = var_1;
|
|
var_4.angles = var_2;
|
|
playfxontag( var_0, var_4, "tag_origin" );
|
|
common_scripts\utility::flag_wait( var_3 );
|
|
stopfxontag( var_0, var_4, "tag_origin" );
|
|
var_4 delete();
|
|
}
|
|
|
|
handle_jet1_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
self waittillmatch( "single anim", "fx_body_1_skid_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
self waittillmatch( "single anim", "fx_wing_left_skid1_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
self waittillmatch( "single anim", "fx_wing_tip_left_skid_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
|
|
self waittillmatch( "single anim", "fx_body_2_skid_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
|
|
self waittillmatch( "single anim", "fx_body_1_skid_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
self waittillmatch( "single anim", "fx_body_3_skid_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
|
|
self waittillmatch( "single anim", "fx_wing_left_skid1_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
self waittillmatch( "single anim", "fx_wing_left_skid2_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
self waittillmatch( "single anim", "fx_wing_tip_left_skid_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
|
|
self waittillmatch( "single anim", "fx_wing_left_skid2_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
self waittillmatch( "single anim", "fx_body_2_skid_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
|
|
self waittillmatch( "single anim", "fx_body_3_skid_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
|
|
}
|
|
|
|
handle_jet2_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
self waittillmatch( "single anim", "fx_body_1_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
self waittillmatch( "single anim", "fx_wing_left_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
self waittillmatch( "single anim", "fx_body_2_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
|
|
self waittillmatch( "single anim", "fx_wing_tip_left_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
|
|
self waittillmatch( "single anim", "fx_body_3_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
|
|
self waittillmatch( "single anim", "slow_down" );
|
|
self waittillmatch( "single anim", "fx_wing_tip_left_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
|
|
self waittillmatch( "single anim", "fx_wing_left_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
self waittillmatch( "single anim", "fx_body_1_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
self waittillmatch( "single anim", "fx_body_2_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
|
|
self waittillmatch( "single anim", "fx_body_3_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_3" );
|
|
}
|
|
|
|
handle_jet3_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
}
|
|
|
|
handle_jet11_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
self waittillmatch( "single anim", "fx_body_1_contact" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
self waittillmatch( "single anim", "fx_body_2_contact" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
|
|
self waittillmatch( "single anim", "fx_wing_tip_left_contact" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
|
|
self waittillmatch( "single anim", "fx_body_2_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_2" );
|
|
self waittillmatch( "single anim", "fx_wing_tip_left_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_tip_left" );
|
|
self waittillmatch( "single anim", "fx_wing_left_contact" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
self waittillmatch( "single anim", "fx_body_1_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
self waittillmatch( "single anim", "fx_wing_left_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_wing_left" );
|
|
}
|
|
|
|
handle_jet12_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
self waittillmatch( "single anim", "fx_body_1_contact" );
|
|
playfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
self waittillmatch( "single anim", "fx_body_1_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_runner"], self, "tag_fx_body_1" );
|
|
}
|
|
|
|
handle_jet20_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
}
|
|
|
|
handle_radar_dish_fx()
|
|
{
|
|
self waittillmatch( "single anim", "skid_start" );
|
|
playfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_3" );
|
|
playfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_2" );
|
|
self waittillmatch( "single anim", "skid_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_3" );
|
|
stopfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_fx_base_2" );
|
|
}
|
|
|
|
handle_antenna_fx()
|
|
{
|
|
self waittillmatch( "single anim", "impact_deck2" );
|
|
common_scripts\utility::exploder( 8001 );
|
|
}
|
|
|
|
handle_exploding_heli_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
playfxontag( level._effect["vfx_exp_silenthawk_deck"], self, "tag_fx_body_1" );
|
|
playfxontag( level._effect["vfx_exp_silenthawk_deck_trail"], self, "tag_fx_nose_1" );
|
|
common_scripts\utility::exploder( 7001 );
|
|
}
|
|
|
|
handle_onplayer_debris()
|
|
{
|
|
var_0 = spawn( "script_model", self.origin );
|
|
var_0 setmodel( "tag_origin" );
|
|
var_0 linkto( self );
|
|
playfxontag( common_scripts\utility::getfx( "vfx_post_impact_debris" ), var_0, "tag_origin" );
|
|
level.antenna waittillmatch( "single anim", "impact_deck2" );
|
|
stopfxontag( common_scripts\utility::getfx( "vfx_post_impact_debris" ), var_0, "tag_origin" );
|
|
}
|
|
|
|
handle_jet_launch_fx()
|
|
{
|
|
self waittillmatch( "single anim", "engine_on" );
|
|
playfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_left" );
|
|
playfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_right" );
|
|
self waittillmatch( "single anim", "engine_launch" );
|
|
playfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_left" );
|
|
playfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_right" );
|
|
playfxontag( level._effect["vfx_f18_catapult_launch"], self, "tag_origin" );
|
|
self waittillmatch( "single anim", "engine_off" );
|
|
|
|
if ( isdefined( self ) )
|
|
{
|
|
stopfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_left" );
|
|
stopfxontag( level._effect["vfx_f18_engine"], self, "tag_engine_right" );
|
|
stopfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_left" );
|
|
stopfxontag( level._effect["vfx_f18_engine_afterburner"], self, "tag_engine_right" );
|
|
}
|
|
}
|
|
|
|
handle_zodiac_propeller()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "reached_dynamic_path_end" );
|
|
thread handle_zodiac_propeller_end();
|
|
playfxontag( level._effect["vfx_zodiac_propeller_fast"], self, "TAG_FX_LF" );
|
|
}
|
|
|
|
handle_zodiac_splash()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "reached_dynamic_path_end" );
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "impact_front_both" );
|
|
playfxontag( level._effect["vfx_zodiac_water_splash"], self, "TAG_WHEEL_FRONT_RIGHT" );
|
|
playfxontag( level._effect["vfx_zodiac_water_splash"], self, "TAG_WHEEL_FRONT_LEFT" );
|
|
}
|
|
}
|
|
|
|
handle_zodiac_propeller_end()
|
|
{
|
|
common_scripts\utility::waittill_any( "death", "reached_dynamic_path_end" );
|
|
|
|
if ( isdefined( self ) )
|
|
stopfxontag( level._effect["vfx_zodiac_propeller_fast"], self, "TAG_FX_LF" );
|
|
}
|
|
|
|
handle_sliding_osprey_fx( var_0 )
|
|
{
|
|
common_scripts\utility::flag_wait( var_0 );
|
|
self waittillmatch( "single anim", "front_fx1_contact" );
|
|
playfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_front_fx1" );
|
|
self waittillmatch( "single anim", "front_fx1_stop" );
|
|
stopfxontag( level._effect["vfx_jetscrape_point_runner"], self, "tag_front_fx1" );
|
|
}
|