mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
2922 lines
90 KiB
Plaintext
2922 lines
90 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: crash_crash_site.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 95
|
|
* Decompile Time: 1422 ms
|
|
* Timestamp: 4/22/2024 2:27:07 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
precache_crash_site()
|
|
{
|
|
common_scripts\utility::flag_init("crash_site_done");
|
|
common_scripts\utility::flag_init("white_vo_done");
|
|
common_scripts\utility::flag_init("begin_crash_site_lighting");
|
|
common_scripts\utility::flag_init("crash_dof_fly_in");
|
|
common_scripts\utility::flag_init("zero_view");
|
|
common_scripts\utility::flag_init("unhide_cargo");
|
|
common_scripts\utility::flag_init("go_drop_pods");
|
|
common_scripts\utility::flag_init("crash_lighting_cinema_end");
|
|
common_scripts\utility::flag_init("crash_site_battle_start");
|
|
common_scripts\utility::flag_init("above_hole");
|
|
common_scripts\utility::flag_init("player_returning_to_map");
|
|
common_scripts\utility::flag_init("choose_drop_pod");
|
|
common_scripts\utility::flag_init("wave1_pods_done");
|
|
common_scripts\utility::flag_init("wave2_pods_starting");
|
|
common_scripts\utility::flag_init("wave2_pods_done");
|
|
common_scripts\utility::flag_init("wave3_pods_starting");
|
|
common_scripts\utility::flag_init("wave3_pods_done");
|
|
common_scripts\utility::flag_init("cormack_help_me");
|
|
common_scripts\utility::flag_init("cormack_reached");
|
|
common_scripts\utility::flag_init("rz_pilot_vo");
|
|
common_scripts\utility::flag_init("razorback_start");
|
|
common_scripts\utility::flag_init("player_loading_cargo");
|
|
common_scripts\utility::flag_init("lighting_loading_cargo");
|
|
common_scripts\utility::flag_init("razorback_loaded");
|
|
common_scripts\utility::flag_init("lighting_razorback_loaded");
|
|
common_scripts\utility::flag_init("start_background_elements");
|
|
precachemodel("vehicle_atlas_assault_drone_large");
|
|
precachemodel("vehicle_drop_pod");
|
|
precachemodel("vehicle_drop_pod_base");
|
|
precachemodel("npc_hbra3_nocamo");
|
|
precachemodel("csh_entry_shelf_ice_floor_01_anim");
|
|
precachemodel("npc_exo_armor_rocket_large");
|
|
precachemodel("csh_drone_parachute_01");
|
|
precacheitem("iw5_microdronelauncher_sp");
|
|
precacherumble("warbird_flyby");
|
|
precachestring(&"CRASH_INTROSCREEN_ANTARCTICA");
|
|
precachestring(&"CRASH_DONT_LEAVE");
|
|
precachestring(&"CRASH_FAIL_ALLIES_KILLED");
|
|
precachestring(&"CRASH_FAIL_FALL");
|
|
var_00 = getentarray("drop_pod_clips","script_noteworthy");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02 notsolid();
|
|
}
|
|
|
|
var_04 = getent("crash_site_plane_snow","targetname");
|
|
var_04 hide();
|
|
var_05 = getentarray("crash_site_scorching","targetname");
|
|
foreach(var_07 in var_05)
|
|
{
|
|
var_07 hide();
|
|
}
|
|
|
|
var_09 = getent("crash_site_plane_parachutes","targetname");
|
|
var_09 delete();
|
|
var_0A = getentarray("crash_site_plane_snowpiles","targetname");
|
|
foreach(var_0C in var_0A)
|
|
{
|
|
var_0C hide();
|
|
}
|
|
|
|
var_0E = getentarray("crash_site_debris_models","targetname");
|
|
foreach(var_0C in var_0E)
|
|
{
|
|
var_0C hide();
|
|
}
|
|
|
|
var_11 = getent("player_jetpack","targetname");
|
|
var_11 hide();
|
|
level.drop_pods = getentarray("drop_pod_node","script_noteworthy");
|
|
foreach(var_13 in level.drop_pods)
|
|
{
|
|
var_14 = getent(var_13.target,"targetname");
|
|
var_14 hide();
|
|
var_13 hide();
|
|
}
|
|
|
|
var_16 = [];
|
|
var_16[0] = getent("fake_drop_pod_1","targetname");
|
|
var_16[1] = getent("fake_drop_pod_2","targetname");
|
|
var_16[2] = getent("fake_drop_pod_3","targetname");
|
|
var_16[3] = getent("fake_drop_pod_4","targetname");
|
|
var_16[4] = getent("fake_drop_pod_5","targetname");
|
|
foreach(var_13 in var_16)
|
|
{
|
|
var_13 hide();
|
|
}
|
|
|
|
var_19 = getentarray("drop_pod_background","targetname");
|
|
foreach(var_13 in var_19)
|
|
{
|
|
var_14 = getent(var_13.target,"targetname");
|
|
var_14 hide();
|
|
var_13 hide();
|
|
}
|
|
|
|
var_1C = getentarray("craters","script_noteworthy");
|
|
foreach(var_1E in var_1C)
|
|
{
|
|
var_1E hide();
|
|
}
|
|
|
|
var_20 = getent("drop_pod_mech_1","targetname");
|
|
var_21 = getent(var_20.target,"targetname");
|
|
var_20 hide();
|
|
var_21 hide();
|
|
var_22 = getent("drop_pod_mech_2","targetname");
|
|
var_23 = getent(var_22.target,"targetname");
|
|
var_22 hide();
|
|
var_23 hide();
|
|
var_24 = getent("drop_pod_mech_3","targetname");
|
|
var_25 = getent(var_24.target,"targetname");
|
|
var_24 hide();
|
|
var_25 hide();
|
|
var_26 = getentarray("crash_site_triggers","targetname");
|
|
foreach(var_28 in var_26)
|
|
{
|
|
var_28 common_scripts\utility::trigger_off();
|
|
}
|
|
|
|
var_2A = getent("cargo_trigger","targetname");
|
|
var_2A common_scripts\utility::trigger_off();
|
|
maps\_utility::add_control_based_hint_strings("boost_jump",&"CRASH_HINT_BOOST_JUMP",::should_break_boost_jump_hint);
|
|
maps\_utility::add_control_based_hint_strings("hint_dont_leave_mission",&"CRASH_DONT_LEAVE",::should_break_dont_leave);
|
|
level.crash_site_drones = [];
|
|
}
|
|
|
|
//Function Number: 2
|
|
precache_cave_entry()
|
|
{
|
|
common_scripts\utility::flag_init("cave_entry_done");
|
|
common_scripts\utility::flag_init("cave_entry_anim_start");
|
|
common_scripts\utility::flag_init("player_starting_cave_entry");
|
|
common_scripts\utility::flag_init("player_pre_loading_cargo");
|
|
common_scripts\utility::flag_init("shoot_razorback");
|
|
common_scripts\utility::flag_init("razorback_goliath_done");
|
|
common_scripts\utility::flag_init("tank_firing_missiles");
|
|
common_scripts\utility::flag_init("start_bunker_collapse");
|
|
common_scripts\utility::flag_init("tank_incoming");
|
|
common_scripts\utility::flag_init("flag_m_turret_dead");
|
|
common_scripts\utility::flag_init("fall_debris_exploder");
|
|
common_scripts\utility::flag_init("blur_player_vision");
|
|
precachemodel("npc_resonance_device_base");
|
|
precacheshader("overlay_rain_blur");
|
|
precacheshellshock("crash_ice_cave_entry");
|
|
precachestring(&"CRASH_CARGO_PUSH");
|
|
precachestring(&"CRASH_CARGO_PUSH_KEYBOARD");
|
|
}
|
|
|
|
//Function Number: 3
|
|
debug_start_crash_site()
|
|
{
|
|
maps\crash::set_completed_flags();
|
|
maps\crash_utility::setup_player();
|
|
maps\crash_utility::setup_allies();
|
|
soundscripts\_snd::snd_message("start_crash_site");
|
|
thread maps\crash::objective_init();
|
|
level.player maps\_utility::fog_set_changes("crash_skyjack_heavy_fog",0);
|
|
thread maps\_high_speed_clouds::cloudfastinit("heavy",(0,90,0),5,1);
|
|
level.cormack maps\_utility::gun_remove();
|
|
level.player disableweapons();
|
|
level.player givemaxammo("iw5_hbra3_sp_opticstargetenhancer");
|
|
level.player allowcrouch(0);
|
|
level.player allowjump(0);
|
|
level.player allowsprint(0);
|
|
level.player allowprone(0);
|
|
level.player allowads(0);
|
|
level.player allowmelee(0);
|
|
}
|
|
|
|
//Function Number: 4
|
|
debug_start_cave_entry()
|
|
{
|
|
maps\crash::set_completed_flags();
|
|
maps\crash_utility::setup_player();
|
|
maps\crash_utility::setup_allies();
|
|
soundscripts\_snd::snd_message("start_cave_entry");
|
|
level.crash_site_animnode = common_scripts\utility::getstruct("crash_site_animnode","targetname");
|
|
thread maps\crash::objective_init();
|
|
if(level.nextgen)
|
|
{
|
|
level.allies_bunker = maps\_utility::array_spawn_targetname("bunker_allies",1);
|
|
}
|
|
else
|
|
{
|
|
var_00 = getentarray("bunker_allies","targetname");
|
|
level.allies_bunker = maps\_utility::array_spawn_cg(var_00,1);
|
|
}
|
|
|
|
var_01 = getent("bunker_badplace","targetname");
|
|
badplace_brush("bunker_badplace",-1,var_01,"axis");
|
|
level.pod_enemies = [];
|
|
wait 0.05;
|
|
var_02 = getentarray("runway_shells","targetname");
|
|
foreach(var_04 in var_02)
|
|
{
|
|
var_04 delete();
|
|
}
|
|
|
|
level.player thread maps\crash_utility::exo_temp_outdoor();
|
|
if(level.nextgen)
|
|
{
|
|
level.bunker_guy01 = maps\_utility::get_living_ai("bunker_ally_01","script_noteworthy");
|
|
level.bunker_guy01.animname = "bunker_guy01";
|
|
var_06 = getnode("bunker_ally_01_node","targetname");
|
|
level.bunker_guy01 thread maps\_utility::magic_bullet_shield();
|
|
level.bunker_guy01 forceteleport(var_06.origin,var_06.angles);
|
|
level.bunker_guy01 setgoalnode(var_06);
|
|
level.bunker_guy02 = maps\_utility::get_living_ai("bunker_ally_02","script_noteworthy");
|
|
level.bunker_guy02.animname = "bunker_guy02";
|
|
var_07 = getnode("bunker_ally_02_node","targetname");
|
|
level.bunker_guy02 thread maps\_utility::magic_bullet_shield();
|
|
level.bunker_guy02 forceteleport(var_07.origin,var_07.angles);
|
|
level.bunker_guy02 setgoalnode(var_07);
|
|
}
|
|
|
|
level.bunker_guy03 = maps\_utility::get_living_ai("bunker_ally_03","script_noteworthy");
|
|
level.bunker_guy03.animname = "bunker_guy03";
|
|
var_08 = getnode("bunker_ally_03_node","targetname");
|
|
level.bunker_guy03 forceteleport(var_08.origin,var_08.angles);
|
|
level.bunker_guy03 setgoalnode(var_08);
|
|
level.bunker_guy03 thread maps\_utility::magic_bullet_shield();
|
|
thread razorback_trigger_handler();
|
|
thread razorback_cargo_player();
|
|
thread razorback_razorback();
|
|
thread razorback_cargo();
|
|
common_scripts\utility::flag_set("razorback_start");
|
|
common_scripts\_exploder::exploder(1474);
|
|
level.player lightsetforplayer("crash_crash_site");
|
|
maps\_utility::vision_set_fog_changes("crash_crash_site",0);
|
|
level.player setclutforplayer("clut_crash_crash_site",0);
|
|
setsunflareposition((-10.08,-87.9,0));
|
|
common_scripts\_exploder::exploder(1999);
|
|
thread background_drop_pods();
|
|
thread crash_site_random_bg_explosion();
|
|
}
|
|
|
|
//Function Number: 5
|
|
begin_crash_site()
|
|
{
|
|
if(level.currentgen)
|
|
{
|
|
var_00 = ["crash_mech"];
|
|
thread maps\_cg_encounter_perf_monitor::cg_spawn_perf_monitor("end_crash_perf_monitor",var_00,18,0);
|
|
}
|
|
|
|
if(level.currentgen)
|
|
{
|
|
if(!istransientloaded("crash_site_tr"))
|
|
{
|
|
level.player setgravityoverride(0);
|
|
level notify("tff_pre_sky_to_site");
|
|
unloadtransient("crash_sky_tr");
|
|
loadtransient("crash_site_tr");
|
|
while(!istransientloaded("crash_site_tr"))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
level notify("tff_post_sky_to_site");
|
|
level.player resetgravityoverride();
|
|
}
|
|
}
|
|
|
|
thread maps\_utility::autosave_by_name("crash_site");
|
|
level.crash_site_animnode = common_scripts\utility::getstruct("crash_site_animnode","targetname");
|
|
level.wind_dir = (0,90,0);
|
|
if(level.start_point == "crash_site")
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
common_scripts\utility::flag_set("begin_crash_site_lighting");
|
|
common_scripts\_exploder::exploder(1999);
|
|
var_01 = common_scripts\utility::getstruct("crash_site_cormack","targetname");
|
|
level.cormack forceteleport(var_01.origin,var_01.angles);
|
|
level.ilana = maps\crash_utility::spawn_ally("ilana","crash_site_ilana");
|
|
wait 0.05;
|
|
level.ilana maps\_utility::set_force_color("g");
|
|
level.ilana.canjumppath = 1;
|
|
maps\_utility::array_spawn_function_targetname("plane_allies",::crash_site_plane_allies);
|
|
if(level.nextgen)
|
|
{
|
|
level.allies_plane = maps\_utility::array_spawn_targetname("plane_allies",1);
|
|
}
|
|
else
|
|
{
|
|
var_02 = getentarray("plane_allies","targetname");
|
|
level.allies_plane = maps\_utility::array_spawn_cg(var_02,1);
|
|
}
|
|
|
|
thread crash_site_cormack();
|
|
thread crash_site_ilana();
|
|
thread crash_site_player_gun();
|
|
thread crash_site_bunker_sentinels();
|
|
thread crash_site_intro_killer();
|
|
thread crash_site_intro_killer2();
|
|
thread crash_site_player();
|
|
thread kill_trigger_array();
|
|
thread check_potential_falling_death();
|
|
thread falling_death();
|
|
thread razorback_trigger_handler();
|
|
thread razorback_cargo_player();
|
|
thread crash_site_combat_manager();
|
|
thread crash_site_drop_pod_manager();
|
|
thread crash_site_kill_counter();
|
|
thread crash_site_plane();
|
|
thread crash_site_chutes();
|
|
thread crash_site_runway();
|
|
thread crash_site_drone();
|
|
thread razorback_razorback();
|
|
thread razorback_cargo();
|
|
thread background_drop_pods();
|
|
thread crash_site_random_bg_explosion();
|
|
thread crash_site_random_playspace_explosion();
|
|
common_scripts\utility::flag_set("white_fade_done");
|
|
wait(1);
|
|
maps\_utility::array_spawn_function_targetname("bunker_allies",::crash_site_bunker_allies);
|
|
wait(2);
|
|
level thread maps\_high_speed_clouds::cloudfastnone(2);
|
|
level.player thread maps\crash_exo_temperature::set_external_temperature_over_time(level.temperature_outdoor,12);
|
|
level.player maps\_utility::delaythread(13,::maps\crash_utility::exo_temp_outdoor);
|
|
if(level.nextgen)
|
|
{
|
|
maps\_utility::array_spawn_function_targetname("razorback_allies",::crash_site_razorback_allies);
|
|
maps\_utility::array_spawn_targetname("razorback_allies",1);
|
|
}
|
|
|
|
wait(2);
|
|
if(level.nextgen)
|
|
{
|
|
level.allies_bunker = maps\_utility::array_spawn_targetname("bunker_allies",1);
|
|
}
|
|
else
|
|
{
|
|
var_02 = getentarray("bunker_allies","targetname");
|
|
level.allies_bunker = maps\_utility::array_spawn_cg(var_02,1);
|
|
}
|
|
|
|
thread maps\_utility::center_screen_text(&"CRASH_INTROSCREEN_ANTARCTICA");
|
|
level notify("stop_fast_clouds");
|
|
self notify("fast_cloud_level_change");
|
|
self notify("new_ramp");
|
|
level.player pushplayervector((0,0,0),0);
|
|
wait(0.1);
|
|
thread maps\_utility::autosave_by_name("on_ground");
|
|
thread crash_site_dialogue();
|
|
common_scripts\utility::flag_wait_either("go_drop_pods","drop_pod_failsafe");
|
|
setsaveddvar("cg_cinematicfullscreen","0");
|
|
setsaveddvar("cg_cinematicCanPause","0");
|
|
thread crash_site_dead_razorback_guys();
|
|
wait(3);
|
|
maps\_utility::battlechatter_on("allies");
|
|
maps\_utility::battlechatter_on("axis");
|
|
common_scripts\utility::flag_wait("crash_site_done");
|
|
}
|
|
|
|
//Function Number: 6
|
|
crash_site_player()
|
|
{
|
|
if(level.start_point != "crash_site")
|
|
{
|
|
level.player takeallweapons();
|
|
foreach(var_01 in level.player_weapons)
|
|
{
|
|
level.player giveweapon(var_01);
|
|
}
|
|
|
|
level.player enableweaponswitch();
|
|
level.player switchtoweapon("iw5_hbra3_sp_opticstargetenhancer");
|
|
level.player givemaxammo("iw5_hbra3_sp_opticstargetenhancer");
|
|
}
|
|
|
|
level.player setstance("stand");
|
|
var_03 = maps\_utility::spawn_anim_model("rig");
|
|
var_03 dontcastshadows();
|
|
thread maps\_shg_utility::disable_features_entering_cinema();
|
|
level.player playerlinktodelta(var_03,"tag_player",1,0,0,0,0);
|
|
soundscripts\_snd::snd_message("ambush_events");
|
|
level.crash_site_animnode thread maps\_anim::anim_single_solo(var_03,"crash_atlas_plane_crash_player");
|
|
wait(3);
|
|
level.player lerpviewangleclamp(0.25,0.15,0,10,10,10,7);
|
|
var_03 waittillmatch("player_land","single anim");
|
|
level.player playrumbleonentity("light_2s");
|
|
common_scripts\utility::flag_wait("zero_view");
|
|
level.player lerpviewangleclamp(0.4,0.15,0,0,0,0,0);
|
|
common_scripts\utility::flag_wait("unhide_cargo");
|
|
level.player lerpviewangleclamp(0.25,0.15,0,10,10,10,7);
|
|
var_04 = getent("player_jetpack","targetname");
|
|
var_04 show();
|
|
var_03 waittillmatch("end","single anim");
|
|
var_05 = getentarray("crash_site_triggers","targetname");
|
|
foreach(var_07 in var_05)
|
|
{
|
|
var_07 common_scripts\utility::trigger_on();
|
|
}
|
|
|
|
level.player unlink();
|
|
thread maps\_shg_utility::enable_features_exiting_cinema();
|
|
common_scripts\utility::flag_set("crash_lighting_cinema_end");
|
|
level.player allowcrouch(1);
|
|
level.player allowjump(1);
|
|
level.player allowsprint(1);
|
|
level.player allowprone(1);
|
|
level.player allowads(1);
|
|
level.player allowmelee(1);
|
|
level.player enableweapons();
|
|
thread maps\crash_utility::player_exo_enable();
|
|
var_03 delete();
|
|
}
|
|
|
|
//Function Number: 7
|
|
crash_site_player_gun()
|
|
{
|
|
var_00 = maps\_utility::spawn_anim_model("cs_gun");
|
|
level.crash_site_animnode maps\_anim::anim_first_frame_solo(var_00,"plane_crash_player_gun");
|
|
var_01 = spawn("script_model",var_00 gettagorigin("j_prop_1"));
|
|
var_01 setmodel("npc_hbra3_nocamo");
|
|
var_01.angles = var_00 gettagangles("j_prop_1");
|
|
var_01 linkto(var_00,"j_prop_1");
|
|
common_scripts\utility::flag_wait("white_fade_done");
|
|
level.crash_site_animnode maps\_anim::anim_single_solo(var_00,"plane_crash_player_gun");
|
|
var_01 delete();
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 8
|
|
crash_site_cormack()
|
|
{
|
|
level.cormack endon("death");
|
|
level.cormack.ignoreme = 1;
|
|
level.cormack.lastgroundtype = "snow";
|
|
level.crash_site_animnode thread maps\_anim::anim_single_solo(level.cormack,"atlas_plane_crash");
|
|
playfxontag(common_scripts\utility::getfx("jetpack_skyjack_trail"),level.cormack,"tag_fx_engine_l_exhause");
|
|
wait(0.05);
|
|
playfxontag(common_scripts\utility::getfx("jetpack_skyjack_trail"),level.cormack,"tag_fx_engine_r_exhause");
|
|
wait(0.1);
|
|
playfxontag(common_scripts\utility::getfx("jetpack_exhaust_exhaust_npc"),level.cormack,"tag_fx_engine_l_exhause");
|
|
wait(0.05);
|
|
playfxontag(common_scripts\utility::getfx("jetpack_exhaust_exhaust_npc"),level.cormack,"tag_fx_engine_r_exhause");
|
|
level.cormack waittillmatch("jets_off","single anim");
|
|
stopfxontag(common_scripts\utility::getfx("jetpack_skyjack_trail"),level.cormack,"tag_fx_engine_l_exhause");
|
|
stopfxontag(common_scripts\utility::getfx("jetpack_skyjack_trail"),level.cormack,"tag_fx_engine_r_exhause");
|
|
wait 0.05;
|
|
stopfxontag(common_scripts\utility::getfx("jetpack_exhaust_exhaust_npc"),level.cormack,"tag_fx_engine_l_exhause");
|
|
stopfxontag(common_scripts\utility::getfx("jetpack_exhaust_exhaust_npc"),level.cormack,"tag_fx_engine_r_exhause");
|
|
level.cormack waittillmatch("cormack_land","single anim");
|
|
playfxontag(common_scripts\utility::getfx("boost_dust_impact_ground"),level.cormack,"j_ball_le");
|
|
level.cormack waittillmatch("pods_enter","single anim");
|
|
common_scripts\utility::flag_set("go_drop_pods");
|
|
wait(1);
|
|
maps\_utility::activate_trigger_with_targetname("plane_allies_move");
|
|
level.cormack waittillmatch("end","single anim");
|
|
level.cormack maps\_utility::gun_recall();
|
|
level.cormack maps\_utility::enable_ai_color_dontmove();
|
|
stopfxontag(common_scripts\utility::getfx("boost_dust_impact_ground"),level.cormack,"j_ball_le");
|
|
wait(0.5);
|
|
level.cormack maps\crash_utility::clear_additive_helmet_anim(0);
|
|
maps\_utility::activate_trigger_with_targetname("ambush_start_color");
|
|
common_scripts\utility::flag_set("crash_site_battle_start");
|
|
level.cormack.ignoreme = 0;
|
|
common_scripts\utility::flag_wait_either("razorback_start","player_loading_cargo");
|
|
thread crash_site_bg_warbirds();
|
|
common_scripts\utility::flag_set("crash_site_done");
|
|
}
|
|
|
|
//Function Number: 9
|
|
cormack_jetpack_switch(param_00)
|
|
{
|
|
var_01 = spawn("script_model",level.cormack gettagorigin("tag_jetpack") + (0,0,-16));
|
|
var_01.angles = level.cormack gettagangles("tag_jetpack");
|
|
var_01 setmodel("jetpack_sentinel_halo");
|
|
wait 0.05;
|
|
level.cormack setmodel("body_hero_cormack_sentinel_halo");
|
|
}
|
|
|
|
//Function Number: 10
|
|
crash_site_ilana()
|
|
{
|
|
level.ilana endon("death");
|
|
level.ilana.ignoreme = 1;
|
|
level.crash_site_animnode maps\_anim::anim_first_frame_solo(level.ilana,"atlas_plane_crash");
|
|
common_scripts\utility::flag_wait("white_fade_done");
|
|
level.crash_site_animnode thread maps\_anim::anim_single_solo(level.ilana,"atlas_plane_crash");
|
|
level.ilana waittillmatch("end","single anim");
|
|
level.ilana.ignoreme = 0;
|
|
}
|
|
|
|
//Function Number: 11
|
|
crash_site_plane()
|
|
{
|
|
var_00 = getent("crash_site_plane","targetname");
|
|
var_00.animname = "cargo_plane";
|
|
var_00 maps\_anim::setanimtree();
|
|
level.crashing_plane = var_00;
|
|
var_00 hidepart("J_LT_WING");
|
|
var_00 hidepart("J_RT_WING");
|
|
var_00 hidepart("J_FLAP_L1");
|
|
var_00 hidepart("J_FLAP_L2");
|
|
var_00 hidepart("J_FLAP_R1");
|
|
var_00 hidepart("J_FLAP_R2");
|
|
var_00 hidepart("J_SPOILER_L1");
|
|
var_00 hidepart("J_SPOILER_L2");
|
|
var_00 hidepart("J_SPOILER_L3");
|
|
var_00 hidepart("J_SPOILER_L4");
|
|
var_00 hidepart("J_SPOILER_R1");
|
|
var_00 hidepart("J_SPOILER_R2");
|
|
var_00 hidepart("J_SPOILER_R3");
|
|
var_00 hidepart("J_SPOILER_R4");
|
|
level.crash_site_animnode maps\_anim::anim_first_frame_solo(var_00,"atlas_plane_crash_plane");
|
|
wait 0.05;
|
|
common_scripts\utility::flag_wait("white_fade_done");
|
|
level.crash_site_animnode thread maps\_anim::anim_single_solo(var_00,"atlas_plane_crash_plane");
|
|
wait(0.15);
|
|
playfxontag(level._effect["fire_burning_vtol_left"],var_00,"tag_smoke_lt_body");
|
|
wait(0.1);
|
|
playfxontag(level._effect["fire_burning_vtol"],var_00,"tag_smoke_rt_body");
|
|
common_scripts\_exploder::exploder(8124);
|
|
wait(0.3);
|
|
if(level.start_point != "crash_site")
|
|
{
|
|
playfxontag(level._effect["fx_crash_hud_flare"],var_00,"body_animate_jnt");
|
|
}
|
|
|
|
wait(0.7);
|
|
common_scripts\_exploder::exploder(1100);
|
|
wait(4.95);
|
|
common_scripts\utility::flag_set("crash_dof_fly_in");
|
|
wait(1.55);
|
|
playfxontag(level._effect["crash_vtol_landing_exp"],var_00,"tag_smoke_rt_body");
|
|
wait(6);
|
|
common_scripts\_exploder::exploder(1300);
|
|
var_00 waittillmatch("end","single anim");
|
|
common_scripts\_exploder::kill_exploder(8124);
|
|
if(level.nextgen)
|
|
{
|
|
common_scripts\utility::flag_wait("cave_entry_done");
|
|
}
|
|
else
|
|
{
|
|
level waittill("tff_pre_site_to_caves");
|
|
}
|
|
|
|
stopfxontag(level._effect["fire_burning_vtol"],var_00,"tag_smoke_rt_body");
|
|
stopfxontag(level._effect["fire_burning_vtol_left"],var_00,"tag_smoke_lt_body");
|
|
wait 0.05;
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 12
|
|
crash_site_chutes()
|
|
{
|
|
var_00 = [];
|
|
var_00[0] = maps\_utility::spawn_anim_model("drone_chute1");
|
|
var_00[1] = maps\_utility::spawn_anim_model("drone_chute2");
|
|
var_00[2] = maps\_utility::spawn_anim_model("drone_chute3");
|
|
var_00[3] = maps\_utility::spawn_anim_model("drone_cable");
|
|
level.crash_site_animnode thread maps\_anim::anim_single(var_00,"atlas_plane_crash");
|
|
var_00[0] waittillmatch("switch","single anim");
|
|
common_scripts\utility::array_call(var_00,::hide);
|
|
maps\_utility::array_delete(var_00);
|
|
var_01 = maps\_utility::spawn_anim_model("ground_chute");
|
|
level.crash_site_animnode thread maps\_anim::anim_loop_solo(var_01,"crash_chute_idle","stop_chute");
|
|
common_scripts\utility::flag_wait("crash_site_done");
|
|
level.crash_site_animnode notify("stop_chute");
|
|
wait(0.05);
|
|
var_01 delete();
|
|
}
|
|
|
|
//Function Number: 13
|
|
crash_site_runway()
|
|
{
|
|
var_00 = getent("runway_shell_geo_01","targetname");
|
|
var_01 = getent("runway_shell_geo_02","targetname");
|
|
var_02 = getent("runway_shell_geo_03","targetname");
|
|
var_03 = getent("runway_shell_geo_04","targetname");
|
|
var_04 = getent("runway_shell_geo_05","targetname");
|
|
var_05 = getent("runway_shell_geo_06","targetname");
|
|
var_06 = getent("runway_shell_geo_07","targetname");
|
|
var_07 = getent("runway_shell_geo_08","targetname");
|
|
var_08 = getent("runway_shell_geo_09","targetname");
|
|
var_09 = getent("runway_shell_geo_10","targetname");
|
|
var_0A = getent("runway_shell_geo_11","targetname");
|
|
wait(5.05);
|
|
var_00 connectpaths();
|
|
var_01 connectpaths();
|
|
var_00 delete();
|
|
var_01 delete();
|
|
wait(0.25);
|
|
var_02 connectpaths();
|
|
var_02 delete();
|
|
wait(0.45);
|
|
var_03 connectpaths();
|
|
var_03 delete();
|
|
wait(0.95);
|
|
var_04 connectpaths();
|
|
var_04 delete();
|
|
wait(0.23);
|
|
var_05 connectpaths();
|
|
var_05 delete();
|
|
wait(0.33);
|
|
var_06 connectpaths();
|
|
var_06 delete();
|
|
wait(0.49);
|
|
var_07 connectpaths();
|
|
var_07 delete();
|
|
wait(0.69);
|
|
var_08 connectpaths();
|
|
var_08 delete();
|
|
wait(0.61);
|
|
var_09 connectpaths();
|
|
var_09 delete();
|
|
wait(1.22);
|
|
var_0A connectpaths();
|
|
var_0A delete();
|
|
var_0B = getent("crash_site_plane_snow","targetname");
|
|
var_0B show();
|
|
var_0C = getentarray("crash_site_plane_snowpiles","targetname");
|
|
foreach(var_0E in var_0C)
|
|
{
|
|
var_0E show();
|
|
}
|
|
|
|
wait(3.28);
|
|
var_10 = getentarray("crash_site_scorching","targetname");
|
|
foreach(var_12 in var_10)
|
|
{
|
|
var_12 show();
|
|
}
|
|
|
|
var_14 = getentarray("crash_site_debris_models","targetname");
|
|
foreach(var_0E in var_14)
|
|
{
|
|
var_0E show();
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
crash_site_drone()
|
|
{
|
|
var_00 = maps\_utility::spawn_anim_model("drone_pod");
|
|
level.crash_site_animnode maps\_anim::anim_first_frame_solo(var_00,"atlas_plane_crash_drone");
|
|
common_scripts\utility::flag_wait("white_fade_done");
|
|
level.crash_site_animnode maps\_anim::anim_single_solo(var_00,"atlas_plane_crash_drone");
|
|
}
|
|
|
|
//Function Number: 15
|
|
crash_site_plane_allies()
|
|
{
|
|
self endon("death");
|
|
self.health = 500;
|
|
self.canjumppath = 2.5;
|
|
self.baseaccuracy = self.baseaccuracy * 0.25;
|
|
self.animname = self.script_noteworthy;
|
|
maps\_utility::enable_ai_color_dontmove();
|
|
var_00 = common_scripts\utility::spawn_tag_origin();
|
|
self setgoalpos(var_00.origin);
|
|
self.ignoreall = 1;
|
|
common_scripts\utility::flag_wait("go_drop_pods");
|
|
self.ignoreall = 0;
|
|
var_00 delete();
|
|
self.health = int(self.health * 0.2);
|
|
}
|
|
|
|
//Function Number: 16
|
|
crash_site_razorback_allies()
|
|
{
|
|
self.ignoreall = 1;
|
|
self.canjumppath = 10;
|
|
common_scripts\utility::flag_wait("go_drop_pods");
|
|
if(isdefined(self) && isalive(self))
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
crash_site_intro_killer()
|
|
{
|
|
var_00 = maps\_utility::get_living_ai("sent1","script_noteworthy");
|
|
var_00.animname = "sent1";
|
|
var_00 maps\_utility::disable_ai_color();
|
|
level.crash_site_animnode maps\_anim::anim_single_solo(var_00,"atlas_plane_crash_craig");
|
|
var_01 = getnode("killer_node","targetname");
|
|
var_00 setgoalnode(var_01);
|
|
var_00 waittill("goal");
|
|
var_00 maps\_utility::enable_ai_color_dontmove();
|
|
}
|
|
|
|
//Function Number: 18
|
|
crash_site_intro_killer2()
|
|
{
|
|
var_00 = maps\_utility::get_living_ai("sent2","script_noteworthy");
|
|
var_00.animname = "sent2";
|
|
var_00 maps\_utility::disable_ai_color();
|
|
level.crash_site_animnode maps\_anim::anim_single_solo(var_00,"atlas_plane_crash_tony");
|
|
var_01 = getnode("killer_node2","targetname");
|
|
var_00 setgoalnode(var_01);
|
|
var_00 waittill("goal");
|
|
var_00 maps\_utility::enable_ai_color_dontmove();
|
|
}
|
|
|
|
//Function Number: 19
|
|
crash_site_bunker_allies()
|
|
{
|
|
self.baseaccuracy = self.baseaccuracy * 0.25;
|
|
thread maps\_utility::magic_bullet_shield();
|
|
self.canjumppath = 2.5;
|
|
self.ignoreall = 1;
|
|
self.suppressionthreshold = 0.15;
|
|
self waittill("goal");
|
|
maps\_utility::enable_ai_color_dontmove();
|
|
common_scripts\utility::flag_wait("go_drop_pods");
|
|
self.ignoreall = 0;
|
|
}
|
|
|
|
//Function Number: 20
|
|
crash_site_bunker_sentinels()
|
|
{
|
|
common_scripts\utility::flag_wait("razorback_start");
|
|
if(level.nextgen)
|
|
{
|
|
level.bunker_guy01 = maps\_utility::get_living_ai("bunker_ally_01","script_noteworthy");
|
|
level.bunker_guy01.animname = "bunker_guy01";
|
|
level.bunker_guy01 maps\_utility::disable_ai_color();
|
|
var_00 = getnode("bunker_ally_01_node","targetname");
|
|
level.bunker_guy01 setgoalnode(var_00);
|
|
level.bunker_guy01 thread bunker_settings();
|
|
level.bunker_guy02 = maps\_utility::get_living_ai("bunker_ally_02","script_noteworthy");
|
|
level.bunker_guy02.animname = "bunker_guy02";
|
|
level.bunker_guy02 maps\_utility::disable_ai_color();
|
|
var_01 = getnode("bunker_ally_02_node","targetname");
|
|
level.bunker_guy02 setgoalnode(var_01);
|
|
level.bunker_guy02 thread bunker_settings();
|
|
}
|
|
|
|
level.bunker_guy03 = maps\_utility::get_living_ai("bunker_ally_03","script_noteworthy");
|
|
level.bunker_guy03.animname = "bunker_guy03";
|
|
level.bunker_guy03 maps\_utility::disable_ai_color();
|
|
var_02 = getnode("bunker_ally_03_node","targetname");
|
|
level.bunker_guy03 setgoalnode(var_02);
|
|
level.bunker_guy03 thread bunker_settings();
|
|
}
|
|
|
|
//Function Number: 21
|
|
crash_site_dead_razorback_guys()
|
|
{
|
|
if(level.nextgen)
|
|
{
|
|
maps\_utility::array_spawn_function_targetname("dead_razor_ally",::dead_razorback_spawn);
|
|
level.crash_site_ally_drones = maps\_utility::array_spawn_targetname("dead_razor_ally",1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
dead_razorback_spawn()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct(self.script_noteworthy,"targetname");
|
|
self.animname = "generic";
|
|
thread maps\crash_utility::disable_awareness();
|
|
maps\_utility::set_battlechatter(0);
|
|
maps\_utility::gun_remove();
|
|
self.script_friendname = " ";
|
|
self.name = " ";
|
|
thread maps\_utility::magic_bullet_shield();
|
|
self invisiblenotsolid();
|
|
var_00 thread maps\_anim::anim_loop_solo(self,self.script_animation,"stop_loop");
|
|
}
|
|
|
|
//Function Number: 23
|
|
crash_site_combat_manager()
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
var_00 = getent("bunker_badplace","targetname");
|
|
badplace_brush("bunker_badplace",-1,var_00,"axis");
|
|
common_scripts\utility::flag_wait("wave1_pods_done");
|
|
thread fake_drop_pods();
|
|
level.pod_enemies = common_scripts\utility::array_removeundefined(level.pod_enemies);
|
|
var_01 = 16 - level.pod_enemies.size;
|
|
var_02 = 6 - var_01;
|
|
var_02 = clamp(var_02,0,6);
|
|
var_02 = int(var_02);
|
|
thread maps\crash_utility::ai_array_killcount_flag_set(level.pod_enemies,var_02,"drop_pod_failsafe");
|
|
common_scripts\utility::flag_wait("drop_pod_failsafe");
|
|
level.pod_enemies = common_scripts\utility::array_removeundefined(level.pod_enemies);
|
|
var_03 = level.pod_enemies.size;
|
|
var_04 = getent("cs_advance_1","script_noteworthy");
|
|
if(isdefined(var_04))
|
|
{
|
|
maps\_utility::activate_trigger("cs_advance_1","script_noteworthy",level.player);
|
|
}
|
|
|
|
wait 0.05;
|
|
if(isdefined(var_04))
|
|
{
|
|
var_04 delete();
|
|
}
|
|
|
|
common_scripts\utility::flag_set("wave2_pods_starting");
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_0_n","vol_ambush_combat_1_n",0.05,0.25);
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_0_s","vol_ambush_combat_1_s",0.05,0.25);
|
|
common_scripts\utility::flag_wait("wave2_pods_done");
|
|
if(!common_scripts\utility::flag("cs_pre_fail_state") && !common_scripts\utility::flag("above_hole"))
|
|
{
|
|
thread maps\_utility::autosave_by_name("cs_combat_1");
|
|
}
|
|
|
|
level.pod_enemies = common_scripts\utility::array_removeundefined(level.pod_enemies);
|
|
var_03 = level.pod_enemies.size;
|
|
var_01 = 12 - level.pod_enemies.size;
|
|
if(var_01 < 0)
|
|
{
|
|
var_01 = 0;
|
|
}
|
|
|
|
var_02 = 5 - var_01;
|
|
var_02 = clamp(var_02,0,5);
|
|
var_02 = int(var_02);
|
|
thread maps\crash_utility::ai_array_killcount_flag_set(level.pod_enemies,var_02,"fallback_vol_2");
|
|
common_scripts\utility::flag_wait("fallback_vol_2");
|
|
level.pod_enemies = common_scripts\utility::array_removeundefined(level.pod_enemies);
|
|
var_03 = level.pod_enemies.size;
|
|
var_04 = getent("cs_advance_2","script_noteworthy");
|
|
if(isdefined(var_04))
|
|
{
|
|
maps\_utility::activate_trigger("cs_advance_2","script_noteworthy",level.player);
|
|
}
|
|
|
|
wait 0.05;
|
|
if(isdefined(var_04))
|
|
{
|
|
var_04 delete();
|
|
}
|
|
|
|
common_scripts\utility::flag_set("wave3_pods_starting");
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_1_n","vol_ambush_combat_2_n",0.05,0.25);
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_1_s","vol_ambush_combat_2_s",0.05,0.25);
|
|
wait(12.2);
|
|
level.pod_enemies = common_scripts\utility::array_removeundefined(level.pod_enemies);
|
|
var_03 = level.pod_enemies.size;
|
|
var_01 = 16 - level.pod_enemies.size;
|
|
if(var_01 < 0)
|
|
{
|
|
var_01 = 0;
|
|
}
|
|
|
|
var_02 = 8 - var_01;
|
|
var_02 = clamp(var_02,0,8);
|
|
var_02 = int(var_02);
|
|
var_04 = getent("cs_advance_3","script_noteworthy");
|
|
if(isdefined(var_04))
|
|
{
|
|
maps\_utility::activate_trigger("cs_advance_3","script_noteworthy",level.player);
|
|
}
|
|
|
|
wait 0.05;
|
|
if(isdefined(var_04))
|
|
{
|
|
var_04 delete();
|
|
}
|
|
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_2_n","vol_ambush_combat_3_n",0.05,0.25);
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_2_s","vol_ambush_combat_3_s",0.05,0.25);
|
|
common_scripts\utility::flag_wait("wave3_pods_done");
|
|
if(!common_scripts\utility::flag("cs_pre_fail_state") && !common_scripts\utility::flag("above_hole"))
|
|
{
|
|
thread maps\_utility::autosave_by_name("cs_combat_2");
|
|
}
|
|
|
|
level.pod_enemies = common_scripts\utility::array_removeundefined(level.pod_enemies);
|
|
var_03 = level.pod_enemies.size;
|
|
var_01 = 16 - level.pod_enemies.size;
|
|
if(var_01 < 0)
|
|
{
|
|
var_01 = 0;
|
|
}
|
|
|
|
var_02 = 8 - var_01;
|
|
var_02 = clamp(var_02,0,8);
|
|
var_02 = int(var_02);
|
|
thread maps\crash_utility::ai_array_killcount_flag_set(level.pod_enemies,var_02,"fallback_vol_3");
|
|
common_scripts\utility::flag_wait("fallback_vol_3");
|
|
var_04 = getent("cs_advance_4","script_noteworthy");
|
|
if(isdefined(var_04))
|
|
{
|
|
maps\_utility::activate_trigger("cs_advance_4","script_noteworthy",level.player);
|
|
}
|
|
|
|
wait 0.05;
|
|
if(isdefined(var_04))
|
|
{
|
|
var_04 delete();
|
|
}
|
|
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_3_n","vol_ambush_combat_4_n",0.05,0.15);
|
|
thread retreat_from_vol_to_vol("vol_ambush_combat_3_s","bg_ai_volume",0.05,0.15);
|
|
level.pod_enemies = common_scripts\utility::array_removeundefined(level.pod_enemies);
|
|
var_03 = level.pod_enemies.size;
|
|
var_02 = level.pod_enemies.size - 8;
|
|
var_02 = clamp(var_02,0,10);
|
|
var_02 = int(var_02);
|
|
thread maps\crash_utility::ai_array_killcount_flag_set(level.pod_enemies,var_02,"razorback_start");
|
|
common_scripts\utility::flag_wait("razorback_start");
|
|
common_scripts\utility::flag_set("start_background_elements");
|
|
var_04 = getent("cs_advance_5","script_noteworthy");
|
|
if(isdefined(var_04))
|
|
{
|
|
var_04 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
crash_site_kill_counter()
|
|
{
|
|
var_00 = 0;
|
|
while(!isdefined(level.pod_enemies))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
while(level.pod_enemies.size < 1)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
while(var_00 < 10)
|
|
{
|
|
maps\_utility::waittill_dead_or_dying(level.pod_enemies,1);
|
|
var_00 = var_00 + 1;
|
|
}
|
|
|
|
common_scripts\utility::flag_set("keep_pushing");
|
|
while(var_00 < 25)
|
|
{
|
|
maps\_utility::waittill_dead_or_dying(level.pod_enemies,1);
|
|
var_00 = var_00 + 1;
|
|
}
|
|
|
|
common_scripts\utility::flag_set("rz_pilot_vo");
|
|
common_scripts\utility::flag_set("obj_move_dot_razorback");
|
|
}
|
|
|
|
//Function Number: 25
|
|
retreat_from_vol_to_vol(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = getent(param_00,"targetname");
|
|
var_05 = var_04 maps\_utility::get_ai_touching_volume("axis");
|
|
var_06 = getent(param_01,"targetname");
|
|
var_07 = getnode(var_06.target,"targetname");
|
|
foreach(var_09 in var_05)
|
|
{
|
|
if(isdefined(var_09) && isalive(var_09))
|
|
{
|
|
if(issubstr(var_09.model,"shotgun"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_09.ignoresuppression = 1;
|
|
var_09.forcegoal = 0;
|
|
var_09.fixednode = 0;
|
|
var_09.pathrandompercent = randomintrange(75,100);
|
|
var_09 setgoalvolumeauto(var_06);
|
|
wait(5);
|
|
if(isdefined(var_09) && isalive(var_09))
|
|
{
|
|
var_09.ignoresuppression = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
fake_drop_pods()
|
|
{
|
|
level endon("crash_site_done");
|
|
var_00 = [];
|
|
var_00[0] = getent("fake_drop_pod_1","targetname");
|
|
var_00[1] = getent("fake_drop_pod_2","targetname");
|
|
var_00[2] = getent("fake_drop_pod_3","targetname");
|
|
var_00[3] = getent("fake_drop_pod_4","targetname");
|
|
var_00[4] = getent("fake_drop_pod_5","targetname");
|
|
for(var_01 = 0;var_01 < var_00.size;var_01++)
|
|
{
|
|
var_02 = getent(var_00[var_01].target,"targetname");
|
|
wait(randomintrange(5,10));
|
|
while(!level.player worldpointinreticle_circle(var_02.origin,65,400))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
var_00[var_01] thread drop_pod_fall();
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
crash_site_drop_pod_manager()
|
|
{
|
|
level endon("crash_site_done");
|
|
level endon("stop_drop_pods");
|
|
level.pod_enemies = [];
|
|
common_scripts\utility::flag_wait("go_drop_pods");
|
|
var_00 = getentarray("drop_pod_0_clip","targetname");
|
|
var_01 = getent("drop_pod_0","targetname");
|
|
var_02 = getentarray("drop_pod_0_crater","targetname");
|
|
var_01 thread drop_pod_fall("enemy",var_02);
|
|
var_03 = getent("drop_pod_1","targetname");
|
|
var_04 = getentarray("drop_pod_1_crater","targetname");
|
|
var_05 = getent("drop_pod_2","targetname");
|
|
var_06 = getentarray("drop_pod_2_crater","targetname");
|
|
var_07 = getent("drop_pod_3","targetname");
|
|
var_08 = getentarray("drop_pod_3_crater","targetname");
|
|
wait(0.75);
|
|
var_03 thread drop_pod_fall("enemy",var_04);
|
|
wait(randomfloatrange(1.25,2.25));
|
|
maps\_utility::array_spawn_function_targetname("cs_first_response",::first_response);
|
|
if(level.nextgen)
|
|
{
|
|
maps\_utility::array_spawn_targetname("cs_first_response",1);
|
|
}
|
|
else
|
|
{
|
|
var_09 = getentarray("cs_first_response","targetname");
|
|
maps\_utility::array_spawn_cg(var_09,1);
|
|
}
|
|
|
|
var_05 thread drop_pod_fall("enemy",var_06);
|
|
wait(randomfloatrange(4,5.5));
|
|
var_07 thread drop_pod_fall("enemy",var_08);
|
|
wait(3.6);
|
|
common_scripts\utility::flag_set("wave1_pods_done");
|
|
common_scripts\utility::flag_wait("wave2_pods_starting");
|
|
var_0A = getent("drop_pod_4","targetname");
|
|
var_0B = getent("drop_pod_5","targetname");
|
|
var_0C = getent("drop_pod_6","targetname");
|
|
var_0D = getent(var_0A.target,"targetname");
|
|
var_0E = getent(var_0B.target,"targetname");
|
|
var_0F = getent(var_0C.target,"targetname");
|
|
var_10 = getentarray("drop_pod_4_crater","targetname");
|
|
var_11 = getentarray("drop_pod_5_crater","targetname");
|
|
var_12 = getentarray("drop_pod_6_crater","targetname");
|
|
wait(randomfloatrange(0.75,1.75));
|
|
thread drop_pod_chooser(var_0A,var_0D,var_10,var_0B,var_0E,var_11,var_0C,var_0F,var_12);
|
|
wait(randomfloatrange(2.75,5));
|
|
common_scripts\utility::flag_set("choose_drop_pod");
|
|
wait(randomfloatrange(4,5.5));
|
|
common_scripts\utility::flag_set("choose_drop_pod");
|
|
wait(3.6);
|
|
level notify("done_choosing_drop_pods");
|
|
common_scripts\utility::flag_set("wave2_pods_done");
|
|
common_scripts\utility::flag_wait("wave3_pods_starting");
|
|
var_13 = getent("drop_pod_7","targetname");
|
|
var_14 = getent("drop_pod_8","targetname");
|
|
var_15 = getent("drop_pod_9","targetname");
|
|
var_16 = getent(var_13.target,"targetname");
|
|
var_17 = getent(var_14.target,"targetname");
|
|
var_18 = getent(var_15.target,"targetname");
|
|
var_19 = getentarray("drop_pod_7_crater","targetname");
|
|
var_1A = getentarray("drop_pod_8_crater","targetname");
|
|
var_1B = getentarray("drop_pod_9_crater","targetname");
|
|
var_1C = getent("drop_pod_10","targetname");
|
|
var_1D = getentarray("drop_pod_10_crater","targetname");
|
|
thread drop_pod_chooser(var_13,var_16,var_19,var_14,var_17,var_1A,var_15,var_18,var_1B);
|
|
wait(3.6);
|
|
common_scripts\utility::flag_set("choose_drop_pod");
|
|
wait(randomfloatrange(2.75,5));
|
|
common_scripts\utility::flag_set("choose_drop_pod");
|
|
wait(3.6);
|
|
level notify("done_choosing_drop_pods");
|
|
common_scripts\utility::flag_set("wave3_pods_done");
|
|
}
|
|
|
|
//Function Number: 28
|
|
drop_pod_chooser(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
level endon("done_choosing_drop_pods");
|
|
param_00.valid = 1;
|
|
param_03.valid = 1;
|
|
param_06.valid = 1;
|
|
for(;;)
|
|
{
|
|
if(isdefined(param_00) && level.player worldpointinreticle_circle(param_01.origin,65,200) && param_00.valid == 1)
|
|
{
|
|
param_00 thread drop_pod_fall("enemy",param_02);
|
|
param_00.valid = 0;
|
|
}
|
|
else if(isdefined(param_03) && level.player worldpointinreticle_circle(param_04.origin,65,200) && param_03.valid == 1)
|
|
{
|
|
param_03 thread drop_pod_fall("enemy",param_05);
|
|
param_03.valid = 0;
|
|
}
|
|
else if(isdefined(param_06) && level.player worldpointinreticle_circle(param_07.origin,65,200) && param_06.valid == 1)
|
|
{
|
|
param_06 thread drop_pod_fall("enemy",param_08);
|
|
param_06.valid = 0;
|
|
}
|
|
else if(isdefined(param_00) && param_00.valid == 1)
|
|
{
|
|
param_00 thread drop_pod_fall("enemy",param_02);
|
|
param_00.valid = 0;
|
|
}
|
|
else if(isdefined(param_03) && param_03.valid == 1)
|
|
{
|
|
param_03 thread drop_pod_fall("enemy",param_05);
|
|
param_03.valid = 0;
|
|
}
|
|
else if(isdefined(param_06) && param_06.valid == 1)
|
|
{
|
|
param_06 thread drop_pod_fall("enemy",param_08);
|
|
param_06.valid = 0;
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
common_scripts\utility::flag_clear("choose_drop_pod");
|
|
common_scripts\utility::flag_wait("choose_drop_pod");
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
first_response()
|
|
{
|
|
self.canjumppath = 1;
|
|
maps\_utility::magic_bullet_shield();
|
|
wait(3);
|
|
maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
//Function Number: 30
|
|
crash_site_dialogue()
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
common_scripts\utility::flag_wait("crash_site_battle_start");
|
|
common_scripts\utility::flag_set("obj_start_goto_razorback");
|
|
wait(1);
|
|
thread player_boost_hint();
|
|
thread crash_site_battle_chatter_manager();
|
|
common_scripts\utility::flag_wait("keep_pushing");
|
|
if(!common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
maps\_utility::smart_radio_dialogue("crsh_ss1_heavylosses");
|
|
wait(0.25);
|
|
maps\_utility::smart_radio_dialogue("crsh_iln_makeit");
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_pushthrough3");
|
|
wait(0.75);
|
|
if(!common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
maps\_utility::smart_radio_dialogue("crsh_ss1_mandown");
|
|
}
|
|
|
|
wait(1.5);
|
|
if(!common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_gettocargo");
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_wait("rz_pilot_vo");
|
|
if(!common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
maps\_utility::smart_radio_dialogue("crsh_grdn5_liftingoff");
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_yourass");
|
|
}
|
|
|
|
var_00 = maps\_utility::make_array("crsh_crmk_cargoahead","crsh_crmk_pushtocargo");
|
|
thread maps\crash_utility::nag_until_flag(var_00,"razorback_start",15,20,5);
|
|
}
|
|
|
|
//Function Number: 31
|
|
crash_site_battle_chatter_manager()
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
thread crash_site_battle_chatter_chooser("crsh_iln_hostileswest","razorback_start",0.75);
|
|
thread crash_site_battle_chatter_chooser("crsh_ss1_southridge","pod4_5_spawned",0.35);
|
|
thread crash_site_battle_chatter_chooser("crsh_ss1_mnorthridge","pod7_spawned",0.35);
|
|
thread crash_site_battle_chatter_north();
|
|
thread crash_site_battle_chatter_south();
|
|
thread crash_site_bg_battle_chatter_north();
|
|
thread crash_site_bg_battle_chatter_south();
|
|
}
|
|
|
|
//Function Number: 32
|
|
crash_site_battle_chatter_north()
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
level endon("right_flank_called");
|
|
level endon("player_pre_loading_cargo");
|
|
var_00 = getent("vol_ambush_combat_north","targetname");
|
|
for(;;)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = maps\_utility::get_living_ai_array("pod_enemies","script_noteworthy");
|
|
foreach(var_04 in var_02)
|
|
{
|
|
if(var_04 istouching(var_00))
|
|
{
|
|
var_01 = var_01 + 1;
|
|
}
|
|
}
|
|
|
|
if(var_01 > 12)
|
|
{
|
|
thread crash_site_battle_chatter_chooser("crsh_ss2_supressright");
|
|
level notify("right_flank_called");
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
crash_site_battle_chatter_south()
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
level endon("left_flank_called");
|
|
level endon("player_pre_loading_cargo");
|
|
level.player endon("death");
|
|
var_00 = getent("vol_ambush_combat_south","targetname");
|
|
for(;;)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = maps\_utility::get_living_ai_array("pod_enemies","script_noteworthy");
|
|
foreach(var_04 in var_02)
|
|
{
|
|
if(var_04 istouching(var_00))
|
|
{
|
|
var_01 = var_01 + 1;
|
|
}
|
|
}
|
|
|
|
if(var_01 > 12)
|
|
{
|
|
thread crash_site_battle_chatter_chooser("crsh_crmk_moremen");
|
|
level notify("left_flank_called");
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
crash_site_bg_battle_chatter_north()
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
level endon("bg_right_flank_called");
|
|
level endon("player_pre_loading_cargo");
|
|
var_00 = getent("vol_bg_combat_north","targetname");
|
|
for(;;)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = maps\_utility::get_living_ai_array("pod_enemies","script_noteworthy");
|
|
var_03 = maps\_utility::get_living_ai_array("background_atlas","script_noteworthy");
|
|
var_02 = common_scripts\utility::array_combine(var_02,var_03);
|
|
foreach(var_05 in var_02)
|
|
{
|
|
if(var_05 istouching(var_00))
|
|
{
|
|
var_01 = var_01 + 1;
|
|
}
|
|
}
|
|
|
|
if(var_01 > 6)
|
|
{
|
|
thread crash_site_battle_chatter_chooser("crsh_ss3_hostilesnorth");
|
|
level notify("bg_right_flank_called");
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
crash_site_bg_battle_chatter_south()
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
level endon("bg_left_flank_called");
|
|
level endon("player_pre_loading_cargo");
|
|
var_00 = getent("vol_bg_combat_south","targetname");
|
|
for(;;)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = maps\_utility::get_living_ai_array("pod_enemies","script_noteworthy");
|
|
var_03 = maps\_utility::get_living_ai_array("background_atlas","script_noteworthy");
|
|
var_02 = common_scripts\utility::array_combine(var_02,var_03);
|
|
foreach(var_05 in var_02)
|
|
{
|
|
if(var_05 istouching(var_00))
|
|
{
|
|
var_01 = var_01 + 1;
|
|
}
|
|
}
|
|
|
|
if(var_01 > 6)
|
|
{
|
|
thread crash_site_battle_chatter_chooser("crsh_ss3_hostilesouth");
|
|
level notify("bg_left_flank_called");
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 36
|
|
crash_site_battle_chatter_chooser(param_00,param_01,param_02)
|
|
{
|
|
level endon("crash_site_failed");
|
|
level.player endon("death");
|
|
level endon("stop_drone_respawn");
|
|
if(isdefined(param_01))
|
|
{
|
|
common_scripts\utility::flag_wait(param_01);
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
wait(param_02);
|
|
}
|
|
|
|
switch(param_00)
|
|
{
|
|
case "crsh_iln_tangoseast":
|
|
maps\_utility::smart_radio_dialogue("crsh_iln_hostileseast");
|
|
break;
|
|
|
|
case "crsh_iln_tangoswest":
|
|
maps\_utility::smart_radio_dialogue("crsh_iln_hostileswest");
|
|
break;
|
|
|
|
case "crsh_crmk_leftflank":
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_moremen");
|
|
break;
|
|
|
|
case "crsh_ss1_podssouth":
|
|
maps\_utility::smart_radio_dialogue("crsh_ss1_southridge");
|
|
break;
|
|
|
|
case "crsh_ss1_podsnorth":
|
|
maps\_utility::smart_radio_dialogue("crsh_ss1_mnorthridge");
|
|
break;
|
|
|
|
case "crsh_ss2_rightflank1":
|
|
maps\_utility::smart_radio_dialogue("crsh_ss2_supressright");
|
|
break;
|
|
|
|
case "crsh_ss3_hostilesouth1":
|
|
maps\_utility::smart_radio_dialogue("crsh_ss3_hostilesouth");
|
|
break;
|
|
|
|
case "crsh_ss3_hostilesnorth1":
|
|
maps\_utility::smart_radio_dialogue("crsh_ss3_hostilesnorth");
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
player_boost_hint()
|
|
{
|
|
level.player maps\_utility::hintdisplayhandler("boost_jump",4);
|
|
}
|
|
|
|
//Function Number: 38
|
|
should_break_boost_jump_hint()
|
|
{
|
|
return level.player ishighjumping();
|
|
}
|
|
|
|
//Function Number: 39
|
|
crash_site_bg_warbirds()
|
|
{
|
|
thread crash_site_bg_warbird_2();
|
|
wait(5);
|
|
thread crash_site_bg_warbird_1();
|
|
wait(5);
|
|
thread crash_site_bg_warbird_3();
|
|
}
|
|
|
|
//Function Number: 40
|
|
crash_site_bg_warbird_1()
|
|
{
|
|
var_00 = maps\_vehicle::spawn_vehicle_from_targetname("bg_warbird_1");
|
|
var_00 maps\_vehicle::godon();
|
|
var_01 = getent("bg_warbird_1_cables","targetname");
|
|
var_02 = getent("bg_warbird_1_walker","targetname");
|
|
var_01 linkto(var_00);
|
|
var_02 linkto(var_00);
|
|
wait 0.05;
|
|
var_00 maps\_utility::vehicle_detachfrompath();
|
|
var_00 vehicle_setspeed(25,15,5);
|
|
var_03 = common_scripts\utility::getstruct("bg_warbird_1_path","targetname");
|
|
var_00 thread maps\_utility::vehicle_dynamicpath(var_03,0);
|
|
common_scripts\utility::flag_wait_any("bg_warbird1_done","player_loading_cargo");
|
|
var_01 delete();
|
|
var_02 delete();
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 41
|
|
crash_site_bg_warbird_2()
|
|
{
|
|
var_00 = maps\_vehicle::spawn_vehicle_from_targetname("bg_warbird_2");
|
|
var_00 maps\_vehicle::godon();
|
|
var_01 = getent("bg_warbird_2_cables","targetname");
|
|
var_02 = getent("bg_warbird_2_walker","targetname");
|
|
var_01 linkto(var_00);
|
|
var_02 linkto(var_00);
|
|
wait 0.05;
|
|
var_00 maps\_utility::vehicle_detachfrompath();
|
|
var_00 vehicle_setspeed(25,15,5);
|
|
var_03 = common_scripts\utility::getstruct("bg_warbird_2_path","targetname");
|
|
var_00 thread maps\_utility::vehicle_dynamicpath(var_03,0);
|
|
common_scripts\utility::flag_wait_any("bg_warbird2_done","player_loading_cargo");
|
|
var_01 delete();
|
|
var_02 delete();
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 42
|
|
crash_site_bg_warbird_3()
|
|
{
|
|
var_00 = maps\_vehicle::spawn_vehicle_from_targetname("bg_warbird_3");
|
|
var_00 maps\_vehicle::godon();
|
|
var_01 = getent("bg_warbird_3_cables","targetname");
|
|
var_02 = getent("bg_warbird_3_walker","targetname");
|
|
var_01 linkto(var_00);
|
|
var_02 linkto(var_00);
|
|
wait 0.05;
|
|
var_00 maps\_utility::vehicle_detachfrompath();
|
|
var_00 vehicle_setspeed(25,15,5);
|
|
var_03 = common_scripts\utility::getstruct("bg_warbird_3_path","targetname");
|
|
var_00 thread maps\_utility::vehicle_dynamicpath(var_03,0);
|
|
common_scripts\utility::flag_wait_any("bg_warbird3_done","player_loading_cargo");
|
|
var_01 delete();
|
|
var_02 delete();
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 43
|
|
drop_pod_fall(param_00,param_01)
|
|
{
|
|
self show();
|
|
var_02 = getent(self.target,"targetname");
|
|
var_03 = common_scripts\utility::spawn_tag_origin();
|
|
var_03 linkto(self);
|
|
playfxontag(common_scripts\utility::getfx("orbital_pod_trail_crsh"),var_03,"tag_origin");
|
|
playfxontag(common_scripts\utility::getfx("smoketrail_groundtoair"),var_03,"tag_origin");
|
|
soundscripts\_snd::snd_message("drop_pod",self);
|
|
self moveto(var_02.origin,2.5);
|
|
wait(2.5);
|
|
stopfxontag(common_scripts\utility::getfx("orbital_pod_trail_crsh"),var_03,"tag_origin");
|
|
stopfxontag(common_scripts\utility::getfx("smoketrail_groundtoair"),var_03,"tag_origin");
|
|
var_04 = common_scripts\utility::spawn_tag_origin();
|
|
var_04.origin = var_04.origin + (0,0,24);
|
|
playfxontag(common_scripts\utility::getfx("drop_pod_landing_impact_snow"),var_04,"tag_origin");
|
|
level.player playrumbleonentity("heavy_1s");
|
|
if(isdefined(param_01))
|
|
{
|
|
foreach(var_06 in param_01)
|
|
{
|
|
var_06 show();
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.script_noteworthy) && self.script_noteworthy == "drop_pod_node")
|
|
{
|
|
thread drop_pod_clip();
|
|
}
|
|
|
|
wait(0.75);
|
|
level endon("stop_drone_respawn");
|
|
if(!isdefined(param_00))
|
|
{
|
|
var_02 delete();
|
|
}
|
|
else
|
|
{
|
|
var_02 show();
|
|
}
|
|
|
|
self delete();
|
|
wait(0.25);
|
|
if(isdefined(param_00) && param_00 == "enemy")
|
|
{
|
|
var_08 = undefined;
|
|
if(isdefined(var_02.script_parameters) && var_02.script_parameters == "no_microwave")
|
|
{
|
|
var_08 = 0;
|
|
}
|
|
else
|
|
{
|
|
var_08 = 1;
|
|
}
|
|
|
|
var_02 thread crash_site_drop_pod_enemies(var_08);
|
|
}
|
|
else if(isdefined(param_00) && param_00 == "drone")
|
|
{
|
|
var_09 = getentarray(var_02.target,"targetname");
|
|
foreach(var_0B in var_09)
|
|
{
|
|
if(isdefined(var_0B.script_parameters) && var_0B.script_parameters == "first")
|
|
{
|
|
level thread bunker_respawn_handler(var_0B);
|
|
}
|
|
}
|
|
}
|
|
else if(isdefined(param_00) && param_00 == "mech")
|
|
{
|
|
var_02 thread cave_entry_goliath_spawn();
|
|
}
|
|
|
|
wait(0.4);
|
|
stopfxontag(common_scripts\utility::getfx("drop_pod_landing_impact_snow"),var_04,"tag_origin");
|
|
var_03 delete();
|
|
var_04 delete();
|
|
}
|
|
|
|
//Function Number: 44
|
|
drop_pod_clip()
|
|
{
|
|
var_00 = getent(self.targetname + "_clip","targetname");
|
|
var_00 maps\_utility::ent_flag_init("touching_clip");
|
|
while(!var_00 maps\_utility::ent_flag("touching_clip"))
|
|
{
|
|
if(!level.player istouching(var_00))
|
|
{
|
|
var_00 solid();
|
|
var_00 maps\_utility::ent_flag_set("touching_clip");
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 45
|
|
crash_site_drop_pod_enemies(param_00)
|
|
{
|
|
level endon("crash_site_done");
|
|
var_01 = getentarray("pod_spawners","targetname");
|
|
var_02 = common_scripts\utility::getstructarray(self.target,"targetname");
|
|
var_03 = [];
|
|
if(isdefined(var_01[0]) && isdefined(var_02[0]))
|
|
{
|
|
for(var_04 = 0;var_04 < var_01.size;var_04++)
|
|
{
|
|
var_01[var_04].origin = var_02[var_04].origin;
|
|
if(isdefined(var_02[var_04].angles))
|
|
{
|
|
var_01[var_04].angles = var_02[var_04].angles;
|
|
}
|
|
|
|
var_03[var_04] = var_01[var_04] maps\_utility::spawn_ai(1);
|
|
common_scripts\utility::add_to_array(var_03,var_03[var_04]);
|
|
if(isdefined(param_00) && param_00 == 1)
|
|
{
|
|
if(randomint(100) < 25)
|
|
{
|
|
var_03[var_04] maps\crash_utility::equip_microwave_grenade();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_03[var_04].grenadeammo = 1;
|
|
}
|
|
|
|
var_03[var_04] thread crash_site_jump_node_usage_scale(10,1,5);
|
|
if(var_02[var_04].script_noteworthy == "node")
|
|
{
|
|
var_05 = getnode(var_02[var_04].target,"targetname");
|
|
var_03[var_04].goalradius = 32;
|
|
var_03[var_04] setgoalnode(var_05);
|
|
continue;
|
|
}
|
|
|
|
if(var_02[var_04].script_noteworthy == "volume")
|
|
{
|
|
var_06 = getent(var_02[var_04].target,"targetname");
|
|
var_03[var_04] setgoalvolumeauto(var_06);
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
level.pod_enemies = maps\_utility::array_merge(level.pod_enemies,var_03);
|
|
}
|
|
|
|
//Function Number: 46
|
|
crash_site_jump_node_usage_scale(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
self.canjumppath = param_00;
|
|
wait(param_02);
|
|
self.canjumppath = param_01;
|
|
}
|
|
|
|
//Function Number: 47
|
|
background_drop_pods()
|
|
{
|
|
level endon("stop_drone_respawn");
|
|
level.bg_guys = getentarray("background_atlas","script_noteworthy");
|
|
var_00 = getentarray("drop_pod_background","targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
common_scripts\utility::flag_wait("start_background_elements");
|
|
if(level.start_point == "cave_entry")
|
|
{
|
|
wait(randomfloatrange(0,0.5));
|
|
}
|
|
else
|
|
{
|
|
wait(randomfloatrange(0,7));
|
|
}
|
|
|
|
var_02 thread drop_pod_fall("drone");
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
bunker_respawn_handler(param_00)
|
|
{
|
|
level endon("cave_entry_done");
|
|
wait(randomfloatrange(0.5,3));
|
|
var_01 = param_00 maps\_utility::try_forever_spawn();
|
|
var_01.baseaccuracy = var_01.baseaccuracy * 0.9;
|
|
var_01.grenadeammo = 0;
|
|
var_02 = getent(param_00.script_linkto,"script_linkname");
|
|
for(;;)
|
|
{
|
|
level.crash_site_drones = common_scripts\utility::add_to_array(level.crash_site_drones,var_01);
|
|
var_03[0] = var_01;
|
|
maps\_utility::waittill_dead_or_dying(var_03);
|
|
level endon("stop_drone_respawn");
|
|
wait(randomfloatrange(0.5,3));
|
|
if(common_scripts\utility::cointoss())
|
|
{
|
|
var_01 = param_00 maps\_utility::try_forever_spawn();
|
|
var_01.baseaccuracy = var_01.baseaccuracy * 0.9;
|
|
var_01.grenadeammo = 0;
|
|
continue;
|
|
}
|
|
|
|
var_01 = var_02 maps\_utility::try_forever_spawn();
|
|
var_01.baseaccuracy = var_01.baseaccuracy * 0.9;
|
|
var_01.grenadeammo = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 49
|
|
crash_site_random_bg_explosion()
|
|
{
|
|
level endon("cave_entry_done");
|
|
var_00 = common_scripts\utility::getstructarray("ambient_snow_explosion","targetname");
|
|
common_scripts\utility::flag_wait("fallback_vol_3");
|
|
for(;;)
|
|
{
|
|
var_00 = common_scripts\utility::array_randomize(var_00);
|
|
var_01 = var_00[0] common_scripts\utility::spawn_tag_origin();
|
|
var_01.angles = (-90,0,0);
|
|
level.background_org = var_01;
|
|
playfxontag(common_scripts\utility::getfx("ambient_explosion_snow_01"),var_01,"tag_origin");
|
|
soundscripts\_snd::snd_message("background_explosion",var_01.origin);
|
|
wait(2);
|
|
stopfxontag(common_scripts\utility::getfx("ambient_explosion_snow_01"),var_01,"tag_origin");
|
|
wait(randomintrange(1,6));
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
crash_site_random_playspace_explosion()
|
|
{
|
|
level endon("cave_entry_done");
|
|
var_00 = common_scripts\utility::getstructarray("ambient_snow_explosion_playspace","targetname");
|
|
common_scripts\utility::flag_wait("crash_site_battle_start");
|
|
wait(10);
|
|
for(;;)
|
|
{
|
|
var_00 = common_scripts\utility::array_randomize(var_00);
|
|
var_01 = var_00[0] common_scripts\utility::spawn_tag_origin();
|
|
var_01.angles = (-90,0,0);
|
|
level.playspace_org = var_01;
|
|
var_02 = distance2d(level.player.origin,var_01.origin);
|
|
if(var_02 > 448)
|
|
{
|
|
playfxontag(common_scripts\utility::getfx("ambient_exp_snow_playspace"),var_01,"tag_origin");
|
|
soundscripts\_snd::snd_message("playspace_explosion",var_01.origin,var_02);
|
|
}
|
|
|
|
wait(randomfloatrange(2,5.5));
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
kill_trigger_array()
|
|
{
|
|
level endon("cave_entry_done");
|
|
var_00 = getentarray("crash_site_fail","targetname");
|
|
var_01 = 0;
|
|
common_scripts\utility::flag_wait("crash_site_battle_start");
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::flag_wait("cs_pre_fail_state");
|
|
common_scripts\utility::flag_clear("player_returning_to_map");
|
|
thread maps\_utility::smart_radio_dialogue("crsh_crmk_staywithus");
|
|
maps\_utility::hintdisplayhandler("hint_dont_leave_mission");
|
|
wait(2.5);
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(level.player istouching(var_03))
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
}
|
|
|
|
if(var_01)
|
|
{
|
|
thread maps\_utility::smart_radio_dialogue("crsh_crmk_getback");
|
|
wait(2.75);
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(level.player istouching(var_03))
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
}
|
|
|
|
if(var_01)
|
|
{
|
|
level.cormack maps\_utility::stop_magic_bullet_shield();
|
|
level.ilana maps\_utility::stop_magic_bullet_shield();
|
|
level.cormack kill();
|
|
level.ilana kill();
|
|
level notify("crash_site_failed");
|
|
wait(0.15);
|
|
setdvar("ui_deadquote",&"CRASH_FAIL_ALLIES_KILLED");
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_clear("cs_pre_fail_state");
|
|
common_scripts\utility::flag_set("player_returning_to_map");
|
|
var_01 = 0;
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
should_break_dont_leave()
|
|
{
|
|
if(common_scripts\utility::flag("missionfailed"))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(common_scripts\utility::flag("player_returning_to_map"))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 53
|
|
check_potential_falling_death()
|
|
{
|
|
level endon("cave_entry_done");
|
|
var_00 = getent("crash_site_above_hole","targetname");
|
|
for(;;)
|
|
{
|
|
if(level.player istouching(var_00))
|
|
{
|
|
common_scripts\utility::flag_set("above_hole");
|
|
}
|
|
|
|
if(!level.player istouching(var_00))
|
|
{
|
|
common_scripts\utility::flag_clear("above_hole");
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 54
|
|
falling_death()
|
|
{
|
|
level endon("cave_entry_done");
|
|
var_00 = getent("crash_site_fall_death","targetname");
|
|
for(;;)
|
|
{
|
|
if(level.player istouching(var_00))
|
|
{
|
|
wait(0.5);
|
|
setdvar("ui_deadquote",&"CRASH_FAIL_FALL");
|
|
maps\_utility::missionfailedwrapper();
|
|
level.player thread maps\_player_exo::player_exo_deactivate();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
begin_cave_entry()
|
|
{
|
|
level.player endon("death");
|
|
level.cave_entry_animnode = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
createthreatbiasgroup("player");
|
|
createthreatbiasgroup("mech");
|
|
createthreatbiasgroup("heroes");
|
|
level.player setthreatbiasgroup("player");
|
|
level.cormack setthreatbiasgroup("heroes");
|
|
level.ilana setthreatbiasgroup("heroes");
|
|
thread razorback_cormack();
|
|
thread razorback_ilana();
|
|
thread razorback_dialogue();
|
|
common_scripts\utility::flag_wait("razorback_loaded");
|
|
wait(4);
|
|
thread cave_entry_goliaths();
|
|
wait(0.25);
|
|
thread cave_entry_sentinel();
|
|
wait(1);
|
|
wait(10);
|
|
wait(1.5);
|
|
common_scripts\utility::flag_set("tank_incoming");
|
|
thread cave_entry_dialogue();
|
|
thread cave_entry_walker_tank();
|
|
common_scripts\utility::flag_wait("tank_firing_missiles");
|
|
level.cormack thread tank_missile_react();
|
|
level.ilana thread tank_missile_react();
|
|
common_scripts\utility::flag_wait("start_bunker_collapse");
|
|
soundscripts\_snd::snd_message("cave_entry");
|
|
common_scripts\utility::flag_set("obj_update_goto_razorback");
|
|
common_scripts\utility::flag_set("obj_end_goto_razorback");
|
|
if(level.currentgen)
|
|
{
|
|
level notify("end_crash_perf_monitor");
|
|
}
|
|
|
|
thread cave_entry_scene();
|
|
thread cave_entry_slide_exploders();
|
|
common_scripts\utility::flag_wait("cave_entry_done");
|
|
maps\_utility::battlechatter_off("allies");
|
|
maps\_utility::battlechatter_off("axis");
|
|
level.cormack clearenemy();
|
|
level.ilana clearenemy();
|
|
level.cormack maps\_utility::set_ignoresuppression(0);
|
|
level.cormack maps\_utility::set_ignoreall(0);
|
|
level.ilana maps\_utility::set_ignoresuppression(0);
|
|
level.ilana maps\_utility::set_ignoreall(0);
|
|
level.player setthreatbiasgroup();
|
|
level.cormack setthreatbiasgroup();
|
|
level.ilana setthreatbiasgroup();
|
|
}
|
|
|
|
//Function Number: 56
|
|
tank_missile_react()
|
|
{
|
|
level endon("start_bunker_collapse");
|
|
maps\_utility::anim_stopanimscripted();
|
|
self allowedstances("stand","crouch");
|
|
var_00 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
maps\_utility::set_ignoresuppression(1);
|
|
maps\_utility::set_ignoreall(1);
|
|
var_00 maps\_anim::anim_reach_solo(self,"bunker_spot_missiles");
|
|
var_00 thread maps\_anim::anim_single_solo(self,"bunker_spot_missiles");
|
|
}
|
|
|
|
//Function Number: 57
|
|
cave_entry_dialogue()
|
|
{
|
|
wait(5);
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_onhorizon");
|
|
common_scripts\utility::flag_wait("tank_firing_missiles");
|
|
wait(0.2);
|
|
maps\_utility::smart_radio_dialogue("crsh_ss1_incoming");
|
|
}
|
|
|
|
//Function Number: 58
|
|
razorback_razorback()
|
|
{
|
|
var_00 = maps\_vehicle::spawn_vehicle_from_targetname("crash_site_razorback");
|
|
var_00.animname = "razorback";
|
|
var_00 maps\_anim::setanimtree();
|
|
var_00 maps\_vehicle::godon();
|
|
var_00 vehicle_removebrushmodelcollision();
|
|
level.razorback = var_00;
|
|
wait 0.05;
|
|
var_00 thread vehicle_scripts\_razorback_fx::vfx_red_lights_on();
|
|
var_01 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
var_01 maps\_anim::anim_first_frame_solo(var_00,"prebunker_intro_razorback");
|
|
common_scripts\utility::flag_wait("razorback_start");
|
|
var_01 maps\_anim::anim_single_solo(var_00,"prebunker_intro_razorback");
|
|
if(!common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
var_01 thread maps\_anim::anim_loop_solo(var_00,"prebunker_loop_razorback","stop_loop");
|
|
}
|
|
|
|
common_scripts\utility::flag_wait("player_loading_cargo");
|
|
var_01 notify("stop_loop");
|
|
var_01 thread maps\_anim::anim_single_solo(var_00,"prebunker_end_razorback");
|
|
var_02 = getent("cs_razorback_clip","targetname");
|
|
var_02 delete();
|
|
wait(6.65);
|
|
wait(7.1);
|
|
var_00 thread vehicle_scripts\_razorback_fx::vfx_rb_thruster_front_light_on(var_00);
|
|
var_00 thread vehicle_scripts\_razorback_fx::vfx_rb_thruster_front_on(var_00);
|
|
playfxontag(common_scripts\utility::getfx("razorback_exhaust_strong"),var_00,"thrusterCenter_BL_FX");
|
|
playfxontag(common_scripts\utility::getfx("razorback_exhaust_strong"),var_00,"thrusterCenter_BR_FX");
|
|
maps\_utility::delaythread(0.1,::vehicle_scripts\_razorback_fx::play_regular_tread_back_rz,var_00);
|
|
maps\_utility::delaythread(0.3,::vehicle_scripts\_razorback_fx::stop_idle_back_thruster_rz,var_00);
|
|
maps\_utility::delaythread(0.05,::vehicle_scripts\_razorback_fx::vfx_razorback_jets_on,var_00);
|
|
var_00 waittillmatch("cargo_hit","single anim");
|
|
common_scripts\utility::flag_set("shoot_razorback");
|
|
wait(2);
|
|
playfxontag(common_scripts\utility::getfx("helicopter_explosion_secondary_small"),var_00,"landinggearcover_kl");
|
|
wait(0.75);
|
|
playfxontag(common_scripts\utility::getfx("smoke_trail_black_heli_emitter"),var_00,"thrustercenter_tl_fx");
|
|
maps\_utility::smart_radio_dialogue_overlap("crsh_grdn5_werehit2");
|
|
wait(1.5);
|
|
maps\_utility::smart_radio_dialogue_overlap("crsh_grdn5_lostread");
|
|
var_00 waittillmatch("end","single anim");
|
|
stopfxontag(common_scripts\utility::getfx("smoke_trail_black_heli_emitter"),var_00,"thrustercenter_tl_fx");
|
|
var_00 notify("death");
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 59
|
|
razorback_cargo()
|
|
{
|
|
var_00 = maps\_utility::spawn_anim_model("razor_cargo");
|
|
if(level.start_point != "cave_entry")
|
|
{
|
|
var_00 hide();
|
|
}
|
|
|
|
var_01 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
var_01 maps\_anim::anim_first_frame_solo(var_00,"prebunker_intro_crate");
|
|
var_02 = getent("cargo_objective","targetname");
|
|
level.razorback_org = var_02;
|
|
common_scripts\utility::flag_wait("unhide_cargo");
|
|
var_00 show();
|
|
common_scripts\utility::flag_wait("player_loading_cargo");
|
|
var_03 = getent("razorback_crate_clip","targetname");
|
|
var_03 delete();
|
|
var_01 maps\_anim::anim_single_solo(var_00,"prebunker_end_crate");
|
|
wait(1.5);
|
|
}
|
|
|
|
//Function Number: 60
|
|
razorback_cargo_player()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
var_01 = maps\_utility::spawn_anim_model("rig");
|
|
var_00 maps\_anim::anim_first_frame_solo(var_01,"prebunker_end_player");
|
|
var_01 hide();
|
|
common_scripts\utility::flag_wait("player_pre_loading_cargo");
|
|
level.player maps\_utility::set_ignoreme(1);
|
|
level.player playerlinktoblend(var_01,"tag_player",0.6);
|
|
level.player enableinvulnerability();
|
|
level.player maps\_shg_utility::setup_player_for_scene(1);
|
|
thread maps\_shg_utility::disable_features_entering_cinema(1);
|
|
var_00 thread maps\_anim::anim_single_solo(var_01,"prebunker_end_player");
|
|
common_scripts\utility::flag_set("player_loading_cargo");
|
|
common_scripts\utility::flag_set("lighting_loading_cargo");
|
|
var_02 = getent("blocking_cargo","targetname");
|
|
var_02 delete();
|
|
level.walkers = [];
|
|
thread mobile_turret_dropoff("warbird_deploy_2_animnode","bunker_warbird_2","bunker_walker_2","deploy_warbird_2_done","warbird2_path_after_turret_deploy");
|
|
wait(0.6);
|
|
var_01 show();
|
|
level.player playerlinktodelta(var_01,"tag_player",1,17,20,20,20);
|
|
var_03 = maps\_utility::get_living_ai_array("pod_enemies","script_noteworthy");
|
|
foreach(var_05 in var_03)
|
|
{
|
|
if(isdefined(var_05) && isalive(var_05) && !level.player islookingat(var_05))
|
|
{
|
|
var_05 kill();
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_05) && isalive(var_05))
|
|
{
|
|
var_05.grenadeammo = 0;
|
|
}
|
|
}
|
|
|
|
var_07 = getent("bunker_badplace_extra","targetname");
|
|
badplace_brush("bunker_badplace2",-1,var_07,"axis");
|
|
wait(2.5);
|
|
thread cave_entry_bunker_battle();
|
|
wait(4.2);
|
|
thread mobile_turret_dropoff("warbird_deploy_1_animnode","bunker_warbird_1","bunker_walker_1","deploy_warbird_1_done","warbird_path_after_turret_deploy");
|
|
var_01 waittillmatch("end","single anim");
|
|
thread maps\_utility::autosave_by_name("razorback2");
|
|
level.player disableinvulnerability();
|
|
level.player unlink();
|
|
var_01 delete();
|
|
level.player allowsprint(1);
|
|
level.player allowprone(1);
|
|
level.player allowcrouch(1);
|
|
level.player allowstand(1);
|
|
thread maps\_shg_utility::enable_features_exiting_cinema(1);
|
|
thread check_player_bunker_position();
|
|
}
|
|
|
|
//Function Number: 61
|
|
razorback_rumble(param_00)
|
|
{
|
|
var_01 = level.player maps\_utility::get_rumble_ent();
|
|
var_01 maps\_utility::rumble_ramp_to(1,0.75);
|
|
param_00 waittillmatch("releasing_crate","single anim");
|
|
var_01 maps\_utility::set_rumble_intensity(0);
|
|
wait 0.05;
|
|
var_01 delete();
|
|
}
|
|
|
|
//Function Number: 62
|
|
razorback_trigger_handler()
|
|
{
|
|
var_00 = getent("cargo_trigger","targetname");
|
|
common_scripts\utility::flag_wait_either("cormack_reached","obj_move_dot_razorback");
|
|
var_00 common_scripts\utility::trigger_on();
|
|
var_00 maps\_utility::addhinttrigger(&"CRASH_CARGO_PUSH",&"CRASH_CARGO_PUSH_KEYBOARD");
|
|
var_01 = getent("cargo_objective","targetname");
|
|
maps\player_scripted_anim_util::waittill_trigger_activate_looking_at(var_00,var_01,cos(40),0,1);
|
|
common_scripts\utility::flag_set("player_pre_loading_cargo");
|
|
}
|
|
|
|
//Function Number: 63
|
|
check_player_bunker_position()
|
|
{
|
|
level endon("cave_entry_done");
|
|
wait(5);
|
|
level.player maps\_utility::set_ignoreme(0);
|
|
setignoremegroup("player","mech");
|
|
var_00 = getent("bunker_badplace","targetname");
|
|
while(!common_scripts\utility::flag("obj_update_goto_razorback"))
|
|
{
|
|
if(!level.player istouching(var_00))
|
|
{
|
|
common_scripts\utility::flag_set("obj_update_goto_razorback");
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_getoverhere2");
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
while(!level.player istouching(var_00))
|
|
{
|
|
wait(0.05);
|
|
foreach(var_02 in level.walkers)
|
|
{
|
|
self.ai_target_force = level.player;
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
while(level.player istouching(var_00))
|
|
{
|
|
wait(0.05);
|
|
foreach(var_02 in level.walkers)
|
|
{
|
|
self.ai_target_force = undefined;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 64
|
|
razorback_gun_enable(param_00)
|
|
{
|
|
setsaveddvar("ammoCounterHide",0);
|
|
level.player enableoffhandweapons();
|
|
level.player enableweapons();
|
|
level.player allowmelee(1);
|
|
}
|
|
|
|
//Function Number: 65
|
|
cormack_reached()
|
|
{
|
|
level.cormack endon("death");
|
|
wait 0.05;
|
|
var_00 = getnode("cormack_razor_node","targetname");
|
|
level.cormack.goalradius = 64;
|
|
level.cormack setgoalnode(var_00);
|
|
level.cormack waittill("goal");
|
|
if(!common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
var_01 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
var_01 maps\_anim::anim_reach_solo(level.cormack,"prebunker_intro_cormack",undefined,1);
|
|
}
|
|
|
|
common_scripts\utility::flag_set("cormack_reached");
|
|
}
|
|
|
|
//Function Number: 66
|
|
razorback_cormack()
|
|
{
|
|
level.cormack endon("death");
|
|
var_00 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
level.cormack.animname = "cormack";
|
|
level.cormack maps\_utility::disable_ai_color();
|
|
level.cormack maps\_utility::set_ignoresuppression(1);
|
|
level.cormack maps\_utility::set_ignoreme(1);
|
|
level.cormack maps\_utility::set_ignoreall(1);
|
|
level.cormack maps\_utility::disable_pain();
|
|
level.cormack thread cormack_reached();
|
|
var_01 = getent("razorback_crate_clip","targetname");
|
|
common_scripts\utility::flag_wait_either("cormack_reached","player_loading_cargo");
|
|
if(common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
var_00 maps\_anim::anim_single_solo(level.cormack,"prebunker_start_push_fast_cormack");
|
|
}
|
|
else
|
|
{
|
|
level.cormack bunker_intro_anim(var_00);
|
|
if(!common_scripts\utility::flag("player_loading_cargo"))
|
|
{
|
|
var_00 thread maps\_anim::anim_loop_solo(level.cormack,"prebunker_loop_cormack","stop_loop");
|
|
thread maps\_utility::smart_radio_dialogue("crsh_crmk_givehand");
|
|
var_02 = maps\_utility::make_array("crsh_crmk_helpme","crsh_crmk_overhere2");
|
|
thread maps\crash_utility::nag_until_flag(var_02,"player_pre_loading_cargo",15,20,5);
|
|
}
|
|
|
|
common_scripts\utility::flag_wait("player_loading_cargo");
|
|
var_00 notify("stop_loop");
|
|
var_00 maps\_anim::anim_single_solo(level.cormack,"prebunker_start_push_slow_cormack");
|
|
}
|
|
|
|
var_03 = getnode("cormack_jump_start","targetname");
|
|
level.cormack.goalradius = 64;
|
|
level.cormack setgoalnode(var_03);
|
|
var_00 maps\_anim::anim_single_solo(level.cormack,"prebunker_end_cormack");
|
|
common_scripts\utility::flag_set("razorback_loaded");
|
|
common_scripts\utility::flag_set("lighting_razorback_loaded");
|
|
wait(1);
|
|
level.cormack waittill("goal");
|
|
level.cormack maps\_utility::set_ignoresuppression(0);
|
|
level.cormack maps\_utility::set_ignoreme(0);
|
|
level.cormack maps\_utility::set_ignoreall(0);
|
|
level.cormack maps\_utility::enable_pain();
|
|
common_scripts\utility::flag_wait("tank_firing_missiles");
|
|
level.cormack maps\_utility::disable_pain();
|
|
}
|
|
|
|
//Function Number: 67
|
|
bunker_intro_anim(param_00)
|
|
{
|
|
level endon("player_loading_cargo");
|
|
param_00 thread maps\_anim::anim_single_solo(level.cormack,"prebunker_intro_cormack");
|
|
level.cormack waittillmatch("end","single anim");
|
|
}
|
|
|
|
//Function Number: 68
|
|
razorback_ilana()
|
|
{
|
|
level.ilana endon("death");
|
|
level.ilana maps\_utility::disable_ai_color();
|
|
var_00 = getnode("ilana_jump_start","targetname");
|
|
level.ilana.goalradius = 16;
|
|
level.ilana setgoalnode(var_00);
|
|
level.ilana maps\_utility::set_fixednode_true();
|
|
common_scripts\utility::flag_wait("tank_firing_missiles");
|
|
level.ilana maps\_utility::disable_pain();
|
|
}
|
|
|
|
//Function Number: 69
|
|
razorback_dialogue()
|
|
{
|
|
level.cormack maps\_utility::set_battlechatter(0);
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_holdtight");
|
|
common_scripts\utility::flag_wait("razorback_loaded");
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_cargosecured3");
|
|
maps\_utility::smart_radio_dialogue("crsh_grdn5_liftoff2");
|
|
wait(0.75);
|
|
maps\_utility::smart_radio_dialogue("crsh_crmk_drawfire");
|
|
wait(4);
|
|
level.cormack maps\_utility::smart_dialogue("crsh_crmk_astsincoming");
|
|
level.cormack maps\_utility::set_battlechatter(1);
|
|
}
|
|
|
|
//Function Number: 70
|
|
razorback_mech(param_00)
|
|
{
|
|
var_01 = getent("razorback_goliath","targetname");
|
|
var_02 = common_scripts\utility::getstruct(var_01.target,"targetname");
|
|
var_01 maps\_utility::add_spawn_function(::razorback_mech_behavior,var_02);
|
|
var_03 = var_01 maps\_utility::spawn_ai(1);
|
|
var_03 maps\_utility::magic_bullet_shield(1);
|
|
var_03.ignoreme = 1;
|
|
var_03.ignoreall = 1;
|
|
thread razorback_mech_missiles(var_03);
|
|
var_03.animname = "goliath";
|
|
level.crash_mechs = common_scripts\utility::add_to_array(level.crash_mechs,var_03);
|
|
var_04 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
var_04 maps\_anim::anim_single_solo(var_03,"prebunker_end_mech");
|
|
common_scripts\utility::flag_set("razorback_goliath_done");
|
|
}
|
|
|
|
//Function Number: 71
|
|
razorback_mech_missiles(param_00)
|
|
{
|
|
var_01 = common_scripts\utility::getstruct("cave_entry_animnode","targetname");
|
|
var_02 = maps\_utility::spawn_anim_model("razor_missiles");
|
|
var_01 maps\_anim::anim_first_frame_solo(var_02,"prebunker_end_missiles");
|
|
var_03 = spawn("script_model",var_02 gettagorigin("j_prop_1"));
|
|
var_03.angles = var_02 gettagangles("j_prop_1");
|
|
var_03 setmodel("npc_exo_armor_rocket_large");
|
|
var_03 linkto(var_02,"j_prop_1");
|
|
var_03 hide();
|
|
var_04 = spawn("script_model",var_02 gettagorigin("j_prop_2"));
|
|
var_04.angles = var_02 gettagangles("j_prop_2");
|
|
var_04 setmodel("npc_exo_armor_rocket_large");
|
|
var_04 linkto(var_02,"j_prop_2");
|
|
var_04 hide();
|
|
var_05 = spawn("script_model",var_02 gettagorigin("j_prop_3"));
|
|
var_05.angles = var_02 gettagangles("j_prop_3");
|
|
var_05 setmodel("npc_exo_armor_rocket_large");
|
|
var_05 linkto(var_02,"j_prop_3");
|
|
var_05 hide();
|
|
var_06 = spawn("script_model",var_02 gettagorigin("j_prop_4"));
|
|
var_06.angles = var_02 gettagangles("j_prop_4");
|
|
var_06 setmodel("npc_exo_armor_rocket_large");
|
|
var_06 linkto(var_02,"j_prop_4");
|
|
var_06 hide();
|
|
var_07 = spawn("script_model",var_02 gettagorigin("j_prop_5"));
|
|
var_07.angles = var_02 gettagangles("j_prop_5");
|
|
var_07 setmodel("npc_exo_armor_rocket_large");
|
|
var_07 linkto(var_02,"j_prop_5");
|
|
var_07 hide();
|
|
var_01 thread maps\_anim::anim_single_solo(var_02,"prebunker_end_missiles");
|
|
var_02 waittillmatch("missile_1_launched","single anim");
|
|
playfx(common_scripts\utility::getfx("javelin_ignition"),var_03.origin);
|
|
playfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_03,"tag_origin");
|
|
var_03 show();
|
|
soundscripts\_snd::snd_message("mech_fire_missile_first",var_03,param_00);
|
|
var_02 waittillmatch("missile_2_launched","single anim");
|
|
playfx(common_scripts\utility::getfx("javelin_ignition"),var_04.origin);
|
|
playfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_04,"tag_origin");
|
|
var_04 show();
|
|
soundscripts\_snd::snd_message("mech_fire_missile",var_04,param_00);
|
|
var_02 waittillmatch("missile_3_launched","single anim");
|
|
playfx(common_scripts\utility::getfx("javelin_ignition"),var_05.origin);
|
|
playfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_05,"tag_origin");
|
|
var_05 show();
|
|
soundscripts\_snd::snd_message("mech_fire_missile",var_05,param_00);
|
|
var_02 waittillmatch("missile_4_launched","single anim");
|
|
playfx(common_scripts\utility::getfx("javelin_ignition"),var_06.origin);
|
|
playfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_06,"tag_origin");
|
|
var_06 show();
|
|
soundscripts\_snd::snd_message("mech_fire_missile",var_06,param_00);
|
|
var_02 waittillmatch("missile_5_launched","single anim");
|
|
playfx(common_scripts\utility::getfx("javelin_ignition"),var_07.origin);
|
|
playfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_07,"tag_origin");
|
|
var_07 show();
|
|
soundscripts\_snd::snd_message("mech_fire_missile",var_07,param_00);
|
|
var_02 waittillmatch("missile_1_impact","single anim");
|
|
stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_03,"tag_origin");
|
|
playfxontag(common_scripts\utility::getfx("crash_rocket_explosion_default"),level.razorback,"TAG_MISSILE_1");
|
|
var_03 delete();
|
|
var_02 waittillmatch("missile_2_impact","single anim");
|
|
stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_04,"tag_origin");
|
|
playfxontag(common_scripts\utility::getfx("helicopter_explosion_secondary_small"),level.razorback,"TAG_MISSILE_2");
|
|
var_04 delete();
|
|
var_02 waittillmatch("missile_3_impact","single anim");
|
|
stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_05,"tag_origin");
|
|
playfxontag(common_scripts\utility::getfx("helicopter_explosion_secondary_small"),level.razorback,"TAG_MISSILE_3");
|
|
var_05 delete();
|
|
var_02 waittillmatch("missile_4_impact","single anim");
|
|
stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_06,"tag_origin");
|
|
playfxontag(common_scripts\utility::getfx("helicopter_explosion_secondary_small"),level.razorback,"TAG_MISSILE_4");
|
|
var_06 delete();
|
|
var_02 waittillmatch("missile_5_impact","single anim");
|
|
stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_07,"tag_origin");
|
|
playfxontag(common_scripts\utility::getfx("helicopter_explosion_secondary_small"),level.razorback,"TAG_MISSILE_5");
|
|
var_07 delete();
|
|
}
|
|
|
|
//Function Number: 72
|
|
razorback_mech_behavior(param_00)
|
|
{
|
|
common_scripts\utility::flag_wait("razorback_goliath_done");
|
|
self setthreatbiasgroup("mech");
|
|
thread maps\_utility::stop_magic_bullet_shield();
|
|
self.ignoreme = 0;
|
|
self.ignoreall = 0;
|
|
self.usechokepoints = 0;
|
|
self.goalradius = 24;
|
|
self setgoalpos(param_00.origin);
|
|
self waittill("goal");
|
|
var_01 = common_scripts\utility::getstruct(param_00.target,"targetname");
|
|
self setgoalpos(var_01.origin);
|
|
self waittill("goal");
|
|
var_02 = common_scripts\utility::getstruct(var_01.target,"targetname");
|
|
self setgoalpos(var_02.origin);
|
|
self waittill("goal");
|
|
}
|
|
|
|
//Function Number: 73
|
|
razorback_mech_shoot()
|
|
{
|
|
common_scripts\utility::flag_wait("shoot_razorback");
|
|
maps\crash_utility::mech_fire_rockets_special(level.razorback);
|
|
}
|
|
|
|
//Function Number: 74
|
|
cave_entry_bunker_battle()
|
|
{
|
|
maps\_utility::array_spawn_function_targetname("bunker_enemies",::no_grenades);
|
|
maps\_utility::array_spawn_function_targetname("extra_bunker_allies",::no_grenades);
|
|
maps\_utility::array_spawn_function_targetname("extra_bunker_allies",::bunker_settings);
|
|
if(level.nextgen)
|
|
{
|
|
var_00 = maps\_utility::array_spawn_targetname("bunker_enemies",1);
|
|
}
|
|
else
|
|
{
|
|
var_01 = getentarray("bunker_enemies","targetname");
|
|
var_00 = maps\_utility::array_spawn_cg(var_01,1);
|
|
}
|
|
|
|
wait(0.5);
|
|
if(level.nextgen)
|
|
{
|
|
var_02 = maps\_utility::array_spawn_targetname("extra_bunker_allies",1);
|
|
return;
|
|
}
|
|
|
|
var_01 = getentarray("extra_bunker_allies","targetname");
|
|
var_02 = maps\_utility::array_spawn_cg(var_01,1);
|
|
}
|
|
|
|
//Function Number: 75
|
|
no_grenades()
|
|
{
|
|
self.grenadeammo = 0;
|
|
}
|
|
|
|
//Function Number: 76
|
|
bunker_settings()
|
|
{
|
|
self.goalradius = 16;
|
|
self.script_forcegoal = 1;
|
|
self.script_fixednode = 1;
|
|
}
|
|
|
|
//Function Number: 77
|
|
cave_entry_scene()
|
|
{
|
|
level.player endon("death");
|
|
level.cormack endon("death");
|
|
level.ilana endon("death");
|
|
var_00 = getent("bunker_badplace","targetname");
|
|
var_01 = getent("left_mech_rocket","targetname");
|
|
var_02 = getent("right_mech_rocket","targetname");
|
|
var_03 = getent("cheat_mech_rocket","targetname");
|
|
var_04 = undefined;
|
|
level.player playrumbleonentity("heavy_2s");
|
|
level.player thread play_fullscreen_mist(4,0,2.5,0.75,0,0);
|
|
level.player thread play_fullscreen_mist(4,0,2.5,0.75,50,70);
|
|
common_scripts\utility::flag_set("cave_entry_anim_start");
|
|
level notify("stop_drone_respawn");
|
|
thread cave_entry_player();
|
|
var_05 = [];
|
|
var_05[0] = level.cormack;
|
|
var_05[1] = level.ilana;
|
|
var_05[3] = maps\_utility::spawn_targetname("shock_goliath",1);
|
|
var_05[3].animname = "goliath";
|
|
var_05[3].ignoreall = 1;
|
|
var_05[3].ignoreme = 1;
|
|
var_05[3] hide();
|
|
var_05[5] = maps\_utility::spawn_anim_model("ice_floor");
|
|
var_06 = getent("cave_entry_floor","targetname");
|
|
var_06 delete();
|
|
level.cormack maps\_utility::anim_stopanimscripted();
|
|
level.ilana maps\_utility::anim_stopanimscripted();
|
|
level.cave_entry_animnode thread maps\_anim::anim_single(var_05,"icecave_enter");
|
|
level.cormack maps\_utility::set_battlechatter(0);
|
|
level.ilana maps\_utility::set_battlechatter(0);
|
|
level.cormack waittillmatch("end","single anim");
|
|
if(level.currentgen)
|
|
{
|
|
maps\_utility::tff_sync();
|
|
}
|
|
|
|
level.ilana maps\_utility::set_fixednode_false();
|
|
level.ilana maps\_utility::enable_pain();
|
|
level.cormack maps\_utility::set_fixednode_false();
|
|
level.cormack maps\_utility::enable_pain();
|
|
common_scripts\utility::flag_set("cave_entry_done");
|
|
level notify("moved_indoors");
|
|
thread cave_entry_surface_cleanup();
|
|
}
|
|
|
|
//Function Number: 78
|
|
cave_entry_player()
|
|
{
|
|
level.player endon("death");
|
|
var_00 = common_scripts\utility::getstruct("cave_entry_teleport_animnode","targetname");
|
|
level.player allowjump(0);
|
|
level.player maps\_shg_utility::setup_player_for_scene();
|
|
var_01 = maps\_utility::spawn_anim_model("rig");
|
|
var_02 = maps\_utility::spawn_anim_model("rig");
|
|
var_01 hide();
|
|
level.cave_entry_animnode thread maps\_anim::anim_single_solo(var_01,"icecave_enter");
|
|
var_00 thread maps\_anim::anim_single_solo(var_02,"icecave_enter");
|
|
thread maps\_shg_utility::disable_features_entering_cinema(1);
|
|
var_03 = level.player getplayerweaponviewmodel();
|
|
var_04 = spawn("script_model",var_02 gettagorigin("tag_sync"));
|
|
var_04.angles = var_02 gettagangles("tag_sync");
|
|
var_04 linkto(var_02,"tag_sync");
|
|
var_04 setmodel(var_03);
|
|
level.player enableinvulnerability();
|
|
level.player playerlinktoblend(var_01,"tag_player",0.5);
|
|
level.player setstance("stand");
|
|
wait(0.5);
|
|
var_01 show();
|
|
var_01 waittillmatch("ice_break","single anim");
|
|
common_scripts\_exploder::exploder(5347);
|
|
common_scripts\_exploder::exploder(2238);
|
|
var_01 waittillmatch("no_control","single anim");
|
|
level.player disableinvulnerability();
|
|
level.player enabledeathshield(1);
|
|
var_01 waittillmatch("player_land","single anim");
|
|
var_05 = newclienthudelem(level.player);
|
|
var_05 setshader("black",1280,720);
|
|
var_05.horzalign = "fullscreen";
|
|
var_05.vertalign = "fullscreen";
|
|
var_05.alpha = 1;
|
|
var_05.foreground = 0;
|
|
level.player playerlinktoabsolute(var_02,"tag_player");
|
|
common_scripts\utility::flag_set("blur_player_vision");
|
|
level.player dodamage(150,level.player.origin);
|
|
wait 0.05;
|
|
level.player playerlinktodelta(var_02,"tag_player",1,20,20,20,15,1);
|
|
wait(0.1);
|
|
var_05.alpha = 0;
|
|
var_05 destroy();
|
|
var_01 waittillmatch("gun_up","single anim");
|
|
var_04 delete();
|
|
level.player_weapons = level.player getweaponslistall();
|
|
foreach(var_07 in level.player_weapons)
|
|
{
|
|
level.player givemaxammo(var_07);
|
|
}
|
|
|
|
setsaveddvar("r_gunSightColorEntityScale",0);
|
|
setsaveddvar("r_gunSightColorNoneScale",0);
|
|
setsaveddvar("ammoCounterHide",0);
|
|
level.player enableoffhandweapons();
|
|
level.player enableweapons();
|
|
level.player allowmelee(1);
|
|
var_01 waittillmatch("end","single anim");
|
|
level.player unlink();
|
|
var_01 delete();
|
|
var_02 delete();
|
|
level.player enabledeathshield(0);
|
|
level.player allowjump(1);
|
|
level.player allowsprint(1);
|
|
level.player allowprone(1);
|
|
level.player allowcrouch(1);
|
|
level.player allowstand(1);
|
|
thread maps\_shg_utility::enable_features_exiting_cinema(1);
|
|
}
|
|
|
|
//Function Number: 79
|
|
cave_entry_goliath_show(param_00)
|
|
{
|
|
param_00 show();
|
|
}
|
|
|
|
//Function Number: 80
|
|
play_fullscreen_mist(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
level.player endon("death");
|
|
var_06 = newclienthudelem(self);
|
|
var_06.x = param_04;
|
|
var_06.y = param_05;
|
|
var_06 setshader("overlay_rain_blur",640,480);
|
|
var_06.splatter = 1;
|
|
var_06.alignx = "left";
|
|
var_06.aligny = "top";
|
|
var_06.sort = 1;
|
|
var_06.foreground = 0;
|
|
var_06.horzalign = "fullscreen";
|
|
var_06.vertalign = "fullscreen";
|
|
var_06.alpha = 0;
|
|
var_07 = 0;
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = 1;
|
|
}
|
|
|
|
var_08 = 0.05;
|
|
if(param_01 > 0)
|
|
{
|
|
var_09 = 0;
|
|
var_0A = param_03 / param_01 / var_08;
|
|
while(var_09 < param_03)
|
|
{
|
|
var_06.alpha = var_09;
|
|
var_09 = var_09 + var_0A;
|
|
wait(var_08);
|
|
}
|
|
}
|
|
|
|
var_06.alpha = param_03;
|
|
wait(param_00 - param_01 + param_02);
|
|
if(param_02 > 0)
|
|
{
|
|
var_09 = param_03;
|
|
var_0B = param_03 / param_02 / var_08;
|
|
while(var_09 > 0)
|
|
{
|
|
var_06.alpha = var_09;
|
|
var_09 = var_09 - var_0B;
|
|
wait(var_08);
|
|
}
|
|
}
|
|
|
|
var_06.alpha = 0;
|
|
var_06 destroy();
|
|
}
|
|
|
|
//Function Number: 81
|
|
cave_entry_sentinel()
|
|
{
|
|
level.bunker_guy03.animname = "bunker_guy03";
|
|
if(level.nextgen)
|
|
{
|
|
level.bunker_guy01.ignoreme = 0;
|
|
level.bunker_guy01.grenadeammo = 0;
|
|
level.bunker_guy02.ignoreme = 0;
|
|
level.bunker_guy02.grenadeammo = 0;
|
|
}
|
|
|
|
level.bunker_guy03.ignoreme = 0;
|
|
level.bunker_guy03.grenadeammo = 0;
|
|
createthreatbiasgroup("bunker_guys");
|
|
if(level.nextgen)
|
|
{
|
|
level.bunker_guy01 setthreatbiasgroup("bunker_guys");
|
|
level.bunker_guy02 setthreatbiasgroup("bunker_guys");
|
|
}
|
|
|
|
level.bunker_guy03 setthreatbiasgroup("bunker_guys");
|
|
if(level.nextgen)
|
|
{
|
|
if(isdefined(level.bunker_guy01.magic_bullet_shield))
|
|
{
|
|
level.bunker_guy01 maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
if(isdefined(level.bunker_guy02.magic_bullet_shield))
|
|
{
|
|
level.bunker_guy02 maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.bunker_guy03.magic_bullet_shield))
|
|
{
|
|
level.bunker_guy03 maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
}
|
|
|
|
//Function Number: 82
|
|
cave_entry_goliaths()
|
|
{
|
|
level.player endon("death");
|
|
level.crash_mechs = [];
|
|
level.player setthreatbiasgroup("player");
|
|
var_00 = getent("drop_pod_mech_1","targetname");
|
|
var_00 thread drop_pod_fall("mech");
|
|
wait(3.25);
|
|
var_01 = getent("drop_pod_mech_2","targetname");
|
|
var_01 thread drop_pod_fall("mech");
|
|
wait(randomfloatrange(4.5,6.5));
|
|
var_02 = getent("drop_pod_mech_3","targetname");
|
|
var_02 thread drop_pod_fall("mech");
|
|
}
|
|
|
|
//Function Number: 83
|
|
cave_entry_goliath_spawn()
|
|
{
|
|
var_00 = getent(self.target,"targetname");
|
|
var_01 = common_scripts\utility::getstruct(var_00.target,"targetname");
|
|
var_00 maps\_utility::add_spawn_function(::cave_entry_goliath_behavior,var_01);
|
|
var_02 = var_00 maps\_utility::spawn_ai(1);
|
|
level.crash_mechs = common_scripts\utility::add_to_array(level.crash_mechs,var_02);
|
|
}
|
|
|
|
//Function Number: 84
|
|
cave_entry_goliath_behavior(param_00)
|
|
{
|
|
self setthreatbiasgroup("mech");
|
|
self.baseaccuracy = self.baseaccuracy * 0.5;
|
|
thread cave_entry_goliath_movement(param_00);
|
|
}
|
|
|
|
//Function Number: 85
|
|
cave_entry_goliath_movement(param_00)
|
|
{
|
|
self endon("death");
|
|
wait(2);
|
|
setthreatbias("bunker_guys","mech",900000);
|
|
setthreatbias("player","mech",0);
|
|
self.usechokepoints = 0;
|
|
self.goalradius = 72;
|
|
self setgoalpos(param_00.origin);
|
|
self waittill("goal");
|
|
thread cave_entry_goliath_attack();
|
|
common_scripts\utility::flag_wait("tank_incoming");
|
|
self notify("stop_hunting");
|
|
var_01 = common_scripts\utility::getstruct(param_00.target,"targetname");
|
|
self setgoalpos(var_01.origin);
|
|
self waittill("goal");
|
|
setthreatbias("bunker_guys","mech",0);
|
|
setthreatbias("player","mech",0);
|
|
setthreatbias("heroes","mech",90000);
|
|
}
|
|
|
|
//Function Number: 86
|
|
cave_entry_goliath_attack()
|
|
{
|
|
self endon("death");
|
|
self endon("stop_hunting");
|
|
var_00 = maps\_utility::get_living_ai_array("bunker_allies","targetname");
|
|
var_01 = maps\_utility::get_living_ai_array("extra_bunker_allies","script_noteworthy");
|
|
for(var_02 = common_scripts\utility::array_combine(var_00,var_01);var_02.size > 0;var_02 = common_scripts\utility::array_removeundefined(var_02))
|
|
{
|
|
if(!isdefined(self.enemy))
|
|
{
|
|
var_02 = maps\_utility::array_removedead_or_dying(var_02);
|
|
var_02 = common_scripts\utility::array_removeundefined(var_02);
|
|
var_02 = sortbydistance(var_02,self.origin);
|
|
self.favoriteenemy = var_02[0];
|
|
}
|
|
|
|
if(isdefined(self.enemy))
|
|
{
|
|
self setgoalpos(self.enemy.origin);
|
|
self.goalradius = 1250;
|
|
self.goalheight = 81;
|
|
}
|
|
|
|
wait(2);
|
|
var_02 = maps\_utility::array_removedead_or_dying(var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 87
|
|
cave_entry_surface_cleanup()
|
|
{
|
|
foreach(var_01 in level.crash_mechs)
|
|
{
|
|
if(isdefined(var_01) && isalive(var_01))
|
|
{
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
var_03 = maps\_utility::get_living_ai_array("extra_bunker_allies","script_noteworthy");
|
|
foreach(var_01 in var_03)
|
|
{
|
|
if(isdefined(var_01) && isalive(var_01))
|
|
{
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_wait("cave_entry_done");
|
|
wait(0.25);
|
|
foreach(var_01 in level.crash_site_drones)
|
|
{
|
|
if(isdefined(var_01))
|
|
{
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
wait 0.05;
|
|
foreach(var_01 in level.bg_guys)
|
|
{
|
|
if(isdefined(var_01))
|
|
{
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
var_0A = getaiarray("axis");
|
|
foreach(var_01 in var_0A)
|
|
{
|
|
if(isdefined(var_01) && isalive(var_01))
|
|
{
|
|
var_01 delete();
|
|
}
|
|
}
|
|
|
|
if(level.nextgen)
|
|
{
|
|
if(isdefined(level.bunker_guy01) && isalive(level.bunker_guy01))
|
|
{
|
|
if(isdefined(level.bunker_guy01.magic_bullet_shield))
|
|
{
|
|
level.bunker_guy01 thread maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
wait 0.05;
|
|
level.bunker_guy01 delete();
|
|
}
|
|
|
|
if(isdefined(level.bunker_guy02) && isalive(level.bunker_guy02))
|
|
{
|
|
if(isdefined(level.bunker_guy02.magic_bullet_shield))
|
|
{
|
|
level.bunker_guy02 thread maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
wait 0.05;
|
|
level.bunker_guy02 delete();
|
|
}
|
|
}
|
|
|
|
if(isdefined(level.bunker_guy03) && isalive(level.bunker_guy03))
|
|
{
|
|
if(isdefined(level.bunker_guy03.magic_bullet_shield))
|
|
{
|
|
level.bunker_guy03 thread maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
wait 0.05;
|
|
level.bunker_guy03 delete();
|
|
}
|
|
|
|
var_0D = getentarray("drop_pod_bases","script_noteworthy");
|
|
maps\_utility::array_delete(var_0D);
|
|
var_0E = getentarray("crash_site_volumes","script_noteworthy");
|
|
maps\_utility::array_delete(var_0E);
|
|
maps\_utility::stop_exploder(1474);
|
|
maps\_utility::stop_exploder(1066);
|
|
var_0F = getent("player_jetpack","targetname");
|
|
var_0F delete();
|
|
clearallcorpses();
|
|
}
|
|
|
|
//Function Number: 88
|
|
cave_entry_slide_exploders()
|
|
{
|
|
common_scripts\utility::flag_wait("fall_debris_exploder");
|
|
common_scripts\_exploder::exploder(1190);
|
|
}
|
|
|
|
//Function Number: 89
|
|
cave_entry_walker_tank()
|
|
{
|
|
level.player endon("death");
|
|
var_00 = maps\_vehicle::spawn_vehicle_from_targetname("cave_walker_tank");
|
|
var_00.animname = "walker_tank";
|
|
var_01 = common_scripts\utility::getstruct("walker_tank_animnode_new","targetname");
|
|
var_02 = var_01 common_scripts\utility::spawn_tag_origin();
|
|
var_00 thread walker_tank_fx();
|
|
var_02 maps\_anim::anim_single_solo(var_00,"fusion_walker_tank_enter");
|
|
var_02 thread maps\_anim::anim_loop_solo(var_00,"fusion_walker_tank_fwd_idle","walker_stop_idle");
|
|
var_00 vehicle_scripts\_walker_tank::enable_firing(0);
|
|
var_00 vehicle_scripts\_walker_tank::disable_firing(-1);
|
|
var_00 vehicle_scripts\_walker_tank::enable_firing(1);
|
|
var_00 vehicle_scripts\_walker_tank::enable_firing(2);
|
|
var_03 = getentarray("walker_cave_target","targetname");
|
|
foreach(var_05 in var_03)
|
|
{
|
|
var_05 setcandamage(1);
|
|
var_05 setcanradiusdamage(1);
|
|
}
|
|
|
|
var_07 = 0;
|
|
var_08 = getent("bunker_badplace","targetname");
|
|
while(!level.player istouching(var_08))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
while(!level.player worldpointinreticle_circle(var_00.origin,65,250) && var_07 < 5)
|
|
{
|
|
wait(0.05);
|
|
var_07 = var_07 + 0.05;
|
|
}
|
|
|
|
var_00 vehicle_scripts\_walker_tank::disable_firing(0);
|
|
var_00 vehicle_scripts\_walker_tank::disable_firing(-1);
|
|
var_00 vehicle_scripts\_walker_tank::disable_firing(1);
|
|
var_00 vehicle_scripts\_walker_tank::disable_firing(2);
|
|
var_00.missile_auto_reload = 1;
|
|
level.vehicle_missile_launcher[var_00.classname][0].post_fire_function = undefined;
|
|
common_scripts\utility::flag_set("tank_firing_missiles");
|
|
soundscripts\_snd::snd_message("cave_entry_tank_missile",var_03);
|
|
var_00 vehicle_scripts\_walker_tank::fire_missles_at_target_array(var_03,1);
|
|
wait(1);
|
|
common_scripts\utility::flag_set("start_bunker_collapse");
|
|
var_09 = getentarray("walker_cave_target2","targetname");
|
|
wait(0.15);
|
|
var_00 vehicle_scripts\_walker_tank::fire_missles_at_target_array(var_09,1);
|
|
common_scripts\utility::flag_wait("cave_entry_done");
|
|
var_00 notify("stop_vehicle_turret_ai");
|
|
wait(5);
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 90
|
|
walker_tank_fx()
|
|
{
|
|
wait(6.47);
|
|
playfxontag(common_scripts\utility::getfx("walker_footstep_snow"),self,"tag_wheel_front_left");
|
|
wait(0.46);
|
|
playfxontag(common_scripts\utility::getfx("walker_footstep_snow"),self,"tag_wheel_front_right");
|
|
}
|
|
|
|
//Function Number: 91
|
|
mobile_turret_dropoff(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
level.player endon("death");
|
|
var_05 = common_scripts\utility::getstruct(param_00,"targetname");
|
|
var_06 = maps\_vehicle::spawn_vehicle_from_targetname(param_01);
|
|
var_06.animname = "warbird_deploy";
|
|
var_06 maps\_vehicle::godon();
|
|
var_06 maps\_vehicle::vehicle_lights_on("running");
|
|
var_06 vehicle_turnengineoff();
|
|
soundscripts\_snd::snd_message("warbird_crash_site",param_01,var_06);
|
|
var_07 = maps\_utility::spawn_anim_model("walker_deploy");
|
|
var_07.animname = "walker_deploy";
|
|
var_08 = maps\_utility::spawn_anim_model("pulley_deploy");
|
|
var_08.animname = "pulley_deploy";
|
|
var_05 maps\_anim::anim_first_frame([var_06,var_08,var_07],"mobile_turret_deploy");
|
|
var_05 thread play_warbird_mobile_turret_dropoff(var_06,var_08,param_03,param_04);
|
|
var_05 maps\_anim::anim_single_solo(var_07,"mobile_turret_deploy");
|
|
var_09 = getent(param_02,"targetname");
|
|
var_09.origin = var_07.origin;
|
|
var_09.angles = var_07.angles;
|
|
var_0A = maps\_vehicle::spawn_vehicle_from_targetname_and_drive(param_02);
|
|
var_0A setvehicleteam("axis");
|
|
var_0A.makemobileturretunusable = 1;
|
|
var_0A maps\_vehicle::godon();
|
|
level.walkers = common_scripts\utility::array_add(level.walkers,var_0A);
|
|
var_07 delete();
|
|
var_0A thread monitor_turret_2_death();
|
|
var_0A thread kill_path_on_death();
|
|
common_scripts\utility::flag_wait("start_bunker_collapse");
|
|
var_0A notify("stop_vehicle_turret_ai");
|
|
common_scripts\utility::flag_wait("cave_entry_done");
|
|
var_0A maps\_vehicle::godoff();
|
|
wait(1.75);
|
|
var_0A dodamage(var_0A.health + 500,var_0A.origin,var_0A);
|
|
}
|
|
|
|
//Function Number: 92
|
|
play_warbird_mobile_turret_dropoff(param_00,param_01,param_02,param_03)
|
|
{
|
|
maps\_anim::anim_single([param_00,param_01],"mobile_turret_deploy");
|
|
param_01 linkto(param_00);
|
|
param_00 maps\_utility::vehicle_detachfrompath();
|
|
param_00 vehicle_setspeed(60,15,5);
|
|
var_04 = common_scripts\utility::getstruct(param_03,"targetname");
|
|
param_00 thread maps\_utility::vehicle_dynamicpath(var_04,0);
|
|
common_scripts\utility::flag_wait(param_02);
|
|
param_01 delete();
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 93
|
|
monitor_turret_2_death()
|
|
{
|
|
self waittill("death");
|
|
common_scripts\utility::flag_set("flag_m_turret_dead");
|
|
}
|
|
|
|
//Function Number: 94
|
|
kill_path_on_death()
|
|
{
|
|
wait_to_kill_path();
|
|
self notify("newpath");
|
|
}
|
|
|
|
//Function Number: 95
|
|
wait_to_kill_path()
|
|
{
|
|
self endon("death");
|
|
self endon("driver dead");
|
|
level waittill("eternity");
|
|
} |