/******************************************************************* * Decompiled By: Bog * Decompiled File: crash_exfil.gsc * Game: Call of Duty: Advanced Warfare * Platform: PC * Function Count: 32 * Decompile Time: 480 ms * Timestamp: 4/22/2024 2:27:08 AM *******************************************************************/ //Function Number: 1 precache_vtol_takedown() { thread maps\crash_warbird_missile_defense::missile_defense_precache(); common_scripts\utility::flag_init("vtol_takedown_done"); common_scripts\utility::flag_init("start_gideon_wave_anim"); common_scripts\utility::flag_init("ready_for_vtol"); common_scripts\utility::flag_init("gideon_intro_done"); common_scripts\utility::flag_init("cormack_start_vtol"); common_scripts\utility::flag_init("cormack_fires_stinger"); common_scripts\utility::flag_init("cormack_fires_stinger_failsafe"); common_scripts\utility::flag_init("vtol_can_lock_on"); common_scripts\utility::flag_init("vtol_hit_early"); common_scripts\utility::flag_init("vtol_hit_mid"); common_scripts\utility::flag_init("vtol_hit_late"); common_scripts\utility::flag_init("start_gideons_animation"); common_scripts\utility::flag_init("cormack_missile_1_hit"); common_scripts\utility::flag_init("missiles_hit_vtol"); common_scripts\utility::flag_init("end_vtol_dying"); common_scripts\utility::flag_init("player_stinger_fired"); common_scripts\utility::flag_init("player_stinger_hit"); common_scripts\utility::flag_init("vo_heat_line"); common_scripts\utility::flag_init("vo_bringitdown_line"); common_scripts\utility::flag_init("vtol_hit_mountain"); common_scripts\utility::flag_init("player_bottom_of_hill"); common_scripts\utility::flag_init("vtol_done_sliding"); common_scripts\utility::flag_init("cargo_trigger"); common_scripts\utility::flag_init("kill_sliding_anims"); common_scripts\utility::flag_init("start_exfil"); common_scripts\utility::flag_init("start_gideon_exfil"); common_scripts\utility::flag_init("start_vtol_exfil"); common_scripts\utility::flag_init("player_getting_in_end_chopper"); common_scripts\utility::flag_init("vo_cormack_exfil1"); common_scripts\utility::flag_init("vo_cormack_exfil2"); common_scripts\utility::flag_init("vo_kingpin_exfil"); common_scripts\utility::flag_init("failed_cargo_grab"); common_scripts\utility::flag_init("gideon_boost_jump"); common_scripts\utility::flag_init("player_exfil_success"); common_scripts\utility::flag_init("exfil_fail"); precacherumble("hijack_plane_medium"); precacheitem("iw5_stingerm7fastprojectile_sp"); precacheitem("turretheadmg_sp"); precachemodel("genericprop_x5"); precachemodel("atlas_stabilize_vial_static"); precachemodel("atlas_stabilize_crate"); precachemodel("vehicle_xh9_warbird_pulley"); precachemodel("projectile_stinger_missile"); precacheshader("m/mtl_xh9_warbird_main_destroy"); precacheshader("m/mtl_xh9_warbird_main_02_destroy"); precacheshader("m/mtl_xh9_warbird_windows_out_destroy"); precachestring(&"CRASH_HINT_STINGER"); precachestring(&"CRASH_HINT_STINGER_KEYBOARD"); precachestring(&"CRASH_CARGO_GRAB"); precachestring(&"CRASH_CARGO_GRAB_KEYBOARD"); precachestring(&"CRASH_HINT_EXFIL_JUMP"); maps\_utility::add_control_based_hint_strings("end_jump",&"CRASH_HINT_BOOST_JUMP",::should_break_end_jump_hint); var_00 = getentarray("vtol_fail_triggers","targetname"); foreach(var_02 in var_00) { var_02 common_scripts\utility::trigger_off(); } level.end_crate = getent("end_vtol_crate","targetname"); level.end_crate hide(); level.end_crate_clip = getent("end_vtol_crate_clip","targetname"); level.end_crate_clip hide(); level.end_cables = getent("end_vtol_cables","targetname"); level.end_cables hide(); } //Function Number: 2 debug_start_vtol_takedown() { maps\crash::set_completed_flags(); maps\crash_utility::setup_player(); maps\crash_utility::setup_allies(); soundscripts\_snd::snd_message("start_vtol_takedown"); setsunflareposition((-10.39,-112.7,0)); level.player lightsetforplayer("crash_avalanche",0); level.player setclutforplayer("clut_crash_crash_site",2); maps\_utility::vision_set_fog_changes("crash_avalanche",0); setsaveddvar("r_dof_physical_enable",1); setsaveddvar("r_dof_physical_bokehenable",1); setsaveddvar("r_dof_physical_hipenable",1); setsaveddvar("r_dof_physical_hipFstop",3.2); setsaveddvar("r_dof_physical_hipSharpCocDiameter",0.07); thread dead_stinger_guy(); thread vtol_takedown_gideon(); thread vtol_takedown_cormack(); thread vtol_takedown_cormack_stinger(); thread vtol_takedown_ilona(); thread maps\crash::objective_init(); maps\_utility::battlechatter_off("allies"); maps\_utility::battlechatter_off("axis"); level.cormack maps\_utility::disable_ai_color(); level.cormack.ignoreall = 1; level.cormack.ignoreme = 1; thread maps\crash_utility::cormack_helmet_open(level.cormack); level.ilana maps\_utility::disable_ai_color(); level.ilana.ignoreall = 1; level.ilana.ignoreme = 1; level.gideon maps\_utility::disable_ai_color(); level.gideon.ignoreall = 1; level.gideon.ignoreme = 1; common_scripts\_exploder::exploder(1999); } //Function Number: 3 begin_vtol_takedown() { thread vtol_takedown_gun_pickup(); wait 0.05; thread vtol_takedown_dialogue(); thread vtol_takedown_failure(); thread vtol_takedown_chopper(); level.player thread maps\crash_utility::exo_temp_outdoor(); thread avalanche_falling_death(); common_scripts\utility::flag_wait("vtol_takedown_done"); level.player thread maps\_hud_util::fade_out(3); wait(5); maps\_utility::nextmission(); } //Function Number: 4 dead_stinger_guy() { var_00 = common_scripts\utility::getstruct("vtol_dead_guy","targetname"); var_01 = maps\_utility::spawn_targetname("vtol_dead_sentinel",1); var_01.animname = "generic"; var_01 maps\_utility::set_ignoreall(1); var_01 maps\_utility::set_ignoreme(1); var_01 maps\_utility::set_battlechatter(0); var_01 maps\_utility::gun_remove(); var_01.script_friendname = " "; var_01.name = " "; var_01 invisiblenotsolid(); var_00 thread maps\_anim::anim_loop_solo(var_01,"npc_deadbody_01","stop_loop"); } //Function Number: 5 vtol_takedown_gun_pickup() { level.slide_dampening = 0.09; var_00 = getent("heli_weapon_trigger","targetname"); var_00 maps\_utility::addhinttrigger(&"CRASH_HINT_STINGER",&"CRASH_HINT_STINGER_KEYBOARD"); var_01 = getent("player_heli_weapon","targetname"); maps\player_scripted_anim_util::waittill_trigger_activate_looking_at(var_00,var_01,cos(40),0,1); common_scripts\utility::flag_set("obj_update_get_gun"); soundscripts\_snd::snd_message("pickup_stinger"); var_01 delete(); level.player_weapons = level.player maps\_utility::get_storable_weapons_list_all(); level.player takeallweapons(); level.player giveweapon("iw5_stingerm7fastprojectile_sp"); level.player setweaponammostock("iw5_stingerm7fastprojectile_sp",0); level.player switchtoweapon("iw5_stingerm7fastprojectile_sp"); level.player disableweaponswitch(); thread vtol_player_fired(); common_scripts\utility::flag_wait("gideon_intro_done"); thread vtol_takedown_vtol(); thread vtol_takedown_cargo_and_cables(); thread maps\_utility::autosave_now(); var_02 = getentarray("vtol_takedown_hide_spot","targetname"); foreach(var_04 in var_02) { var_04 thread vtol_takedown_hide_check(); } maps\_utility::delaythread(5,::common_scripts\utility::flag_set,"obj_end_get_gun"); common_scripts\utility::flag_wait_or_timeout("obj_end_get_gun",5); common_scripts\utility::flag_wait("vtol_swap_player_weapon"); level.player disableweapons(); level.player takeallweapons(); level.player giveweapon("s1_unarmed"); level.player switchtoweapon("s1_unarmed"); while(level.player maps\_utility::issliding()) { wait(0.05); } level.player setstance("stand"); level.player enableweapons(); common_scripts\utility::flag_set("player_bottom_of_hill"); } //Function Number: 6 vtol_player_fired() { level waittill("stinger_fired",var_00,var_01); common_scripts\utility::flag_set("player_stinger_fired"); wait(0.1); setsaveddvar("objectiveHide",1); wait(0.2); common_scripts\utility::flag_set("cormack_fires_stinger"); common_scripts\utility::flag_wait("obj_end_exfil"); setsaveddvar("objectiveHide",0); } //Function Number: 7 vtol_takedown_hide_check() { level endon("ready_for_vtol"); for(;;) { if(level.player istouching(self)) { common_scripts\utility::flag_set("obj_end_get_gun"); common_scripts\utility::flag_set("ready_for_vtol"); } wait(0.05); } } //Function Number: 8 vtol_takedown_gideon() { level.vtol_animnode = common_scripts\utility::getstruct("avalanche_animnode","targetname"); var_00 = level.player; level.gideon pushplayer(1); level.vtol_animnode maps\_anim::anim_single_solo(level.gideon,"vtol_ambush_intro"); common_scripts\utility::flag_set("gideon_intro_done"); if(!common_scripts\utility::flag("obj_update_get_gun")) { level.vtol_animnode thread maps\_anim::anim_loop_solo(level.gideon,"vtol_ambush_stinger_loop","stop_gideon_loop"); } common_scripts\utility::flag_wait("obj_update_get_gun"); level.vtol_animnode notify("stop_gideon_loop"); level.vtol_animnode maps\_anim::anim_single_solo(level.gideon,"vtol_ambush_vtol_talk"); level.vtol_animnode thread maps\_anim::anim_loop_solo(level.gideon,"vtol_ambush_stinger_loop","stop_gideon_loop"); common_scripts\utility::flag_wait("start_gideon_wave_anim"); level.vtol_animnode notify("stop_gideon_loop"); level.vtol_animnode maps\_anim::anim_single_solo(level.gideon,"vtol_ambush_wave_gideon"); level.vtol_animnode thread maps\_anim::anim_loop_solo(level.gideon,"vtol_ambush_stinger_loop","stop_gideon_loop"); common_scripts\utility::flag_wait("start_gideons_animation"); level.vtol_animnode notify("stop_gideon_loop"); level.vtol_animnode maps\_anim::anim_single_solo(level.gideon,"vtol_ambush_exit_cover"); level.gideon thread vtol_takedown_gideon_slide_fx(); level.vtol_animnode thread maps\_anim::anim_single_solo(level.gideon,"vtol_sliding_off_cliff_gideon"); soundscripts\_snd::snd_music_message("end_sequence"); wait(2); var_01 = getent("block_vtol_slide","targetname"); var_01 delete(); while(level.gideon getanimtime(level.gideon maps\_utility::getanim("vtol_sliding_off_cliff_gideon")) < 1 && !common_scripts\utility::flag("start_exfil")) { wait(0.05); } thread maps\crash_fx::gideon_boost_jump(); if(common_scripts\utility::flag("start_exfil")) { common_scripts\utility::flag_wait("start_gideon_exfil"); level.exfil_animnode maps\_anim::anim_single_solo(level.gideon,"avalanche_exit"); return; } thread cargo_recover_fail(); common_scripts\utility::flag_set("failed_cargo_grab"); var_02 = getent("end_cargo_trigger","targetname"); var_02 notify("valid_trigger"); level.vtol_animnode maps\_anim::anim_single_solo(level.gideon,"vtol_falls_off_cliff_failure_gideon"); } //Function Number: 9 vtol_takedown_gideon_slide_fx() { self waittillmatch("bodyfall large","single anim"); playfxontag(common_scripts\utility::getfx("crash_ai_slide_snow_short"),self,"j_ball_le"); self waittillmatch("bodyfall large","single anim"); playfxontag(common_scripts\utility::getfx("crash_ai_slide_snow_short"),self,"j_ball_le"); } //Function Number: 10 vtol_takedown_cormack() { var_00 = common_scripts\utility::getstruct("avalanche_animnode","targetname"); var_00 maps\_anim::anim_single_solo(level.cormack,"vtol_ambush_intro"); var_00 thread maps\_anim::anim_loop_solo(level.cormack,"vtol_ambush_cover_loop","stop_cormack_loop"); common_scripts\utility::flag_wait_any("cormack_fires_stinger","cormack_fires_stinger_failsafe"); var_00 notify("stop_cormack_loop"); var_00 maps\_anim::anim_single_solo(level.cormack,"vtol_ambush_fire_stinger"); var_00 thread maps\_anim::anim_loop_solo(level.cormack,"vtol_ambush_call_evac_loop","stop_cormack_loop"); common_scripts\utility::flag_wait("start_exfil"); var_00 notify("stop_cormack_loop"); level.cormack maps\_utility::gun_remove(); level.exfil_animnode maps\_anim::anim_single_solo(level.cormack,"avalanche_exit"); } //Function Number: 11 vtol_takedown_cormack_stinger() { var_00 = common_scripts\utility::getstruct("avalanche_animnode","targetname"); var_01 = maps\_utility::spawn_anim_model("vtol_launcher"); var_02 = maps\_utility::spawn_anim_model("vtol_stinger"); var_00 maps\_anim::anim_first_frame_solo(var_02,"vtol_ambush_fire_stinger_missiles"); var_00 maps\_anim::anim_first_frame_solo(var_01,"vtol_ambush_intro"); var_03 = spawn("script_model",var_01 gettagorigin("j_prop_1")); var_03.angles = var_01 gettagangles("j_prop_1"); var_03 setmodel("npc_stingerm7_nocamo"); var_03 linkto(var_01,"j_prop_1"); var_04 = spawn("script_model",var_02 gettagorigin("j_prop_1")); var_04.angles = var_02 gettagangles("j_prop_1"); var_04 setmodel("projectile_stinger_missile"); var_04 linkto(var_02,"j_prop_1"); var_04 hide(); var_05 = spawn("script_model",var_02 gettagorigin("j_prop_2")); var_05.angles = var_02 gettagangles("j_prop_2"); var_05 setmodel("projectile_stinger_missile"); var_05 linkto(var_02,"j_prop_2"); var_05 hide(); var_06 = spawn("script_model",var_02 gettagorigin("j_prop_3")); var_06.angles = var_02 gettagangles("j_prop_3"); var_06 setmodel("projectile_stinger_missile"); var_06 linkto(var_02,"j_prop_3"); var_06 hide(); var_07 = spawn("script_model",var_02 gettagorigin("j_prop_4")); var_07.angles = var_02 gettagangles("j_prop_4"); var_07 setmodel("projectile_stinger_missile"); var_07 linkto(var_02,"j_prop_4"); var_07 hide(); common_scripts\utility::flag_wait("cormack_start_vtol"); var_00 maps\_anim::anim_single_solo(var_01,"vtol_ambush_intro"); var_00 thread maps\_anim::anim_loop_solo(var_01,"vtol_ambush_cover_loop","stop_launcher_loop"); common_scripts\utility::flag_wait_any("cormack_fires_stinger","cormack_fires_stinger_failsafe"); var_00 notify("stop_launcher_loop"); var_00 thread maps\_anim::anim_single_solo(var_01,"vtol_ambush_fire_stinger"); var_04 show(); var_04 thread cormack_missile_fx(0.2); soundscripts\_snd::snd_message("cormack_missile",var_04); var_05 show(); var_05 thread cormack_missile_fx(0.23); soundscripts\_snd::snd_message("cormack_missile",var_05); var_06 show(); var_06 thread cormack_missile_fx(0.2); soundscripts\_snd::snd_message("cormack_missile",var_06); var_07 show(); var_07 thread cormack_missile_fx(0.25,1); soundscripts\_snd::snd_message("cormack_missile",var_07); var_00 thread maps\_anim::anim_single_solo(var_02,"vtol_ambush_fire_stinger_missiles"); var_02 waittillmatch("missile1_hit","single anim"); common_scripts\utility::flag_set("cormack_missile_1_hit"); stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_04,"tag_origin"); playfxontag(common_scripts\utility::getfx("crash_rocket_explosion_default"),var_04,"tag_origin"); stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_05,"tag_origin"); playfxontag(common_scripts\utility::getfx("crash_rocket_explosion_default"),var_05,"tag_origin"); wait 0.05; var_04 delete(); var_05 delete(); var_02 waittillmatch("missile3_hit","single anim"); stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_06,"tag_origin"); playfxontag(common_scripts\utility::getfx("ambient_explosion_midair_runner_single"),var_06,"tag_origin"); var_02 waittillmatch("missile4_hit","single anim"); stopfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),var_07,"tag_origin"); playfxontag(common_scripts\utility::getfx("ambient_explosion_midair_runner_single"),var_07,"tag_origin"); var_02 waittillmatch("end","single anim"); var_06 delete(); var_07 delete(); var_02 delete(); common_scripts\_exploder::exploder(3122); wait(0.2); common_scripts\_exploder::exploder(3111); } //Function Number: 12 cormack_missile_fx(param_00,param_01) { common_scripts\utility::flag_wait_any("cormack_fires_stinger","cormack_fires_stinger_failsafe"); playfx(common_scripts\utility::getfx("javelin_ignition"),self.origin); wait(param_00); playfxontag(common_scripts\utility::getfx("smoketrail_rpg_sp"),self,"tag_origin"); } //Function Number: 13 vtol_takedown_ilona() { var_00 = common_scripts\utility::getstruct("avalanche_animnode","targetname"); var_00 maps\_anim::anim_single_solo(level.ilana,"vtol_ambush_intro"); var_00 thread maps\_anim::anim_loop_solo(level.ilana,"vtol_ambush_cover_loop","stop_ilana_loop"); common_scripts\utility::flag_wait_any("cormack_fires_stinger","cormack_fires_stinger_failsafe"); var_00 notify("stop_ilana_loop"); var_00 maps\_anim::anim_single_solo(level.ilana,"vtol_ambush_exit_cover"); var_00 thread maps\_anim::anim_loop_solo(level.ilana,"vtol_ambush_call_evac_loop","stop_ilana_loop"); common_scripts\utility::flag_wait("start_exfil"); var_00 notify("stop_cormack_loop"); level.ilana maps\_utility::gun_remove(); level.exfil_animnode maps\_anim::anim_single_solo(level.ilana,"avalanche_exit"); } //Function Number: 14 cargo_recover_fail() { setdvar("ui_deadquote",&"CRASH_FAIL_CARGO"); maps\_utility::missionfailedwrapper(); } //Function Number: 15 vtol_takedown_vtol() { level.stingerm7_lock_range = 10000; level.end_vtol = maps\_vehicle::spawn_vehicle_from_targetname("end_vtol"); soundscripts\_snd::snd_message("vtol_flyin"); level.end_vtol.animname = "crashed_vtol"; level.end_vtol maps\_anim::setanimtree(); level.end_vtol maps\_vehicle::godon(); level.end_vtol setvehicleteam("axis"); level.end_vtol hide(); level.end_vtol.stinger_override_tags = ["tag_driver","tag_grapple_fl","tag_grapple_br","TAG_STATIC_TAIL_ROTOR"]; level.end_vtol thread maps\crash_warbird_missile_defense::heli_flares_monitor(); level.end_vtol thread vtol_damage_monitor(); var_00 = getent("end_vtol_clip","targetname"); if(isdefined(var_00)) { var_00 linkto(level.end_vtol); var_00 notsolid(); } common_scripts\utility::flag_wait("obj_end_get_gun"); level.end_vtol show(); level.vtol_animnode thread maps\_anim::anim_single_solo(level.end_vtol,"vtol_ambush_fly_intro"); while(!common_scripts\utility::flag("cormack_fires_stinger_failsafe") && !common_scripts\utility::flag("player_stinger_hit")) { wait(0.05); } level notify("vtol_takedown_vtol_hit"); level.end_vtol thread stinger_add_hit(); level.end_vtol thread vtol_delayed_stinger_ignore(5); thread maps\_utility::autosave_now(); if(common_scripts\utility::flag("vtol_can_lock_on") && !common_scripts\utility::flag("vtol_hit_early")) { common_scripts\utility::flag_wait("vtol_hit_early"); level.vtol_animnode thread maps\_anim::anim_single_solo(level.end_vtol,"vtol_ambush_stinger_hit_early"); } else if(common_scripts\utility::flag("vtol_hit_early") && !common_scripts\utility::flag("vtol_hit_mid")) { common_scripts\utility::flag_wait("vtol_hit_mid"); level.vtol_animnode thread maps\_anim::anim_single_solo(level.end_vtol,"vtol_ambush_stinger_hit_mid"); } else if(common_scripts\utility::flag("vtol_hit_mid")) { common_scripts\utility::flag_wait("missiles_hit_vtol"); level.vtol_animnode thread maps\_anim::anim_single_solo(level.end_vtol,"vtol_ambush_stinger_hit_late"); } else { } level.end_vtol notify("warbird_stop_firing"); level.end_vtol notify("end_vtol_start_dying"); level notify("vtol_downed"); playfxontag(common_scripts\utility::getfx("helicopter_explosion_secondary_small"),level.end_vtol,"jnt_wingsocket_l"); playfxontag(common_scripts\utility::getfx("smoke_trail_black_heli_emitter"),level.end_vtol,"jnt_wingsocket_l"); level.end_vtol waittillmatch("end","single anim"); common_scripts\utility::flag_set("end_vtol_dying"); common_scripts\utility::flag_set("obj_end_exfil"); common_scripts\_exploder::exploder(3131); stopfxontag(common_scripts\utility::getfx("helicopter_explosion_secondary_small"),level.end_vtol,"jnt_wingsocket_l"); stopfxontag(common_scripts\utility::getfx("smoke_trail_black_heli_emitter"),level.end_vtol,"jnt_wingsocket_l"); maps\_utility::delaythread(4,::common_scripts\utility::flag_set,"obj_final_recover_cargo"); if(isdefined(var_00)) { var_00 solid(); } thread vtol_takedown_terrain(); thread vtol_takedown_vtol_slide_fx(); if(level.nextgen) { level.end_vtol overridematerial("mtl_xh9_warbird_main","m/mtl_xh9_warbird_main_destroy"); level.end_vtol overridematerial("mtl_xh9_warbird_main_02","m/mtl_xh9_warbird_main_02_destroy"); level.end_vtol overridematerial("mtl_xh9_warbird_windows_out","m/mtl_xh9_warbird_windows_out_destroy"); } else { level.end_vtol overridematerial("mtl_xh9_warbird_main","mq/mtl_xh9_warbird_main_destroy"); level.end_vtol overridematerial("mtl_xh9_warbird_main_02","mq/mtl_xh9_warbird_main_02_destroy"); level.end_vtol overridematerial("mtl_xh9_warbird_windows_out","mq/mtl_xh9_warbird_windows_out_destroy"); } level.end_vtol showpart("TAG_STATIC_MAIN_ROTOR_L"); level.end_vtol showpart("TAG_STATIC_MAIN_ROTOR_R"); level.end_vtol showpart("TAG_STATIC_TAIL_ROTOR"); level.end_vtol hidepart("TAG_SPIN_MAIN_ROTOR_L"); level.end_vtol hidepart("TAG_SPIN_MAIN_ROTOR_R"); level.end_vtol hidepart("TAG_SPIN_TAIL_ROTOR"); level.vtol_animnode maps\_anim::anim_single_solo(level.end_vtol,"vtol_ambush_crash"); thread avalanche_environment(); thread vtol_takedown_player_grabs_cargo(); common_scripts\utility::flag_set("vtol_done_sliding"); level.vtol_animnode thread maps\_anim::anim_single_solo(level.end_vtol,"vtol_sliding_off_cliff"); while(level.end_vtol getanimtime(level.end_vtol maps\_utility::getanim("vtol_sliding_off_cliff")) < 1 && !common_scripts\utility::flag("kill_sliding_anims")) { wait(0.05); } if(common_scripts\utility::flag("kill_sliding_anims")) { level.end_vtol setanimrate(level.end_vtol maps\_utility::getanim("vtol_sliding_off_cliff"),0); common_scripts\utility::flag_wait("start_vtol_exfil"); level.vtol_animnode thread maps\_anim::anim_single_solo(level.end_vtol,"avalanche_exit_fail"); } else { level.vtol_animnode thread maps\_anim::anim_single_solo(level.end_vtol,"vtol_falls_off_cliff"); } playfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_maindoor_LR"); wait(0.05); playfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_launcherDoor02_R"); wait(0.05); playfxontag(common_scripts\utility::getfx("crate_crash_slide_snow"),level.end_crate,"TAG_FX_SLIDE_BL"); playfxontag(common_scripts\utility::getfx("crate_crash_slide_snow"),level.end_crate,"TAG_FX_SLIDE_FL"); } //Function Number: 16 stinger_add_hit() { level endon("missiles_hit_vtol"); common_scripts\utility::flag_wait("player_stinger_hit"); level.end_vtol setanim(level.end_vtol maps\_utility::getanim("ambush_hit_add"),0.5); level.end_cables setanim(level.end_cables maps\_utility::getanim("ambush_hit_add"),0.5); level.end_crate setanim(level.end_crate maps\_utility::getanim("ambush_hit_add"),0.5); } //Function Number: 17 vtol_takedown_vtol_slide_fx() { playfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_maindoor_LL"); playfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_maindoor_LR"); wait(0.05); playfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_launcherDoor02_L"); playfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_launcherDoor02_R"); wait(0.05); playfxontag(common_scripts\utility::getfx("crate_crash_slide_snow"),level.end_crate,"TAG_FX_SLIDE_BL"); playfxontag(common_scripts\utility::getfx("crate_crash_slide_snow"),level.end_crate,"TAG_FX_SLIDE_FL"); playfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"Tag_light_l_wing"); common_scripts\utility::flag_wait("vtol_done_sliding"); stopfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_maindoor_LL"); stopfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_maindoor_LR"); wait(0.05); stopfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_launcherDoor02_L"); stopfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"jnt_launcherDoor02_R"); wait(0.05); stopfxontag(common_scripts\utility::getfx("crate_crash_slide_snow"),level.end_crate,"TAG_FX_SLIDE_BL"); stopfxontag(common_scripts\utility::getfx("crate_crash_slide_snow"),level.end_crate,"TAG_FX_SLIDE_FL"); stopfxontag(common_scripts\utility::getfx("vtol_crash_slide_snow"),level.end_vtol,"Tag_light_l_wing"); } //Function Number: 18 vtol_delayed_stinger_ignore(param_00) { wait(param_00); if(isdefined(self)) { maps\_stingerm7::stinger_ignore(); } } //Function Number: 19 vtol_damage_monitor() { level endon("vtol_takedown_vtol_hit"); level.end_vtol setcandamage(1); level.end_vtol setcanradiusdamage(1); for(;;) { level waittill("stinger_fired",var_00,var_01); foreach(var_03 in var_01) { if(isdefined(var_03)) { var_03 thread projectile_alive(); } } } level notify("vtol_downed"); var_05 = getentarray("vtol_fail_triggers","targetname"); maps\_utility::array_delete(var_05); } //Function Number: 20 projectile_alive() { level endon("player_stinger_hit"); while(isdefined(self)) { wait(0.05); } common_scripts\utility::flag_set("player_stinger_hit"); } //Function Number: 21 vtol_takedown_shoot_monitor() { self endon("end_vtol_start_dying"); level.player.ignoreme = 0; wait(0.25); thread maps\crash_utility::warbird_shooting_think(0,0.5,2.5,1); wait(0.05); self notify("warbird_fire"); } //Function Number: 22 vtol_takedown_cargo_and_cables() { level.end_cables notsolid(); level.end_crate.origin = level.end_cables gettagorigin("tag_attach"); level.end_crate.angles = level.end_cables gettagangles("tag_attach"); level.end_crate notsolid(); level.end_crate_clip.origin = level.end_crate.origin; level.end_crate_clip.angles = level.end_crate.angles; level.end_crate_clip linkto(level.end_crate); level.end_crate_clip notsolid(); var_00 = getent("end_cargo_trigger","targetname"); var_00 enablelinkto(); var_00 linkto(level.end_crate,"tag_origin",(64,0,48),(0,0,0)); var_00 common_scripts\utility::trigger_off(); level.final_loc = level.end_crate common_scripts\utility::spawn_tag_origin(); level.final_loc.origin = level.end_crate gettagorigin("j_casing_lid"); level.final_loc linkto(level.end_crate,"j_casing_lid"); level.final_use_struct = level.end_crate common_scripts\utility::spawn_tag_origin(); level.final_use_struct.origin = level.end_crate gettagorigin("j_casing_lid"); level.final_use_struct linkto(level.end_crate,"j_casing_lid"); var_01 = []; var_01[0] = level.end_crate; var_01[1] = level.end_cables; level.end_crate.animname = "vtol_cargo"; level.end_crate maps\_anim::setanimtree(); level.end_cables.animname = "vtol_cables"; level.end_cables maps\_anim::setanimtree(); common_scripts\utility::flag_wait("obj_end_get_gun"); level.end_cables show(); level.end_crate show(); level.end_crate_clip show(); level.vtol_animnode thread maps\_anim::anim_single(var_01,"vtol_ambush_fly_intro"); while(!common_scripts\utility::flag("cormack_fires_stinger_failsafe") && !common_scripts\utility::flag("player_stinger_hit")) { wait(0.05); } if(common_scripts\utility::flag("vtol_can_lock_on") && !common_scripts\utility::flag("vtol_hit_early")) { common_scripts\utility::flag_wait("vtol_hit_early"); level.vtol_animnode maps\_anim::anim_single(var_01,"vtol_ambush_stinger_hit_early"); } else if(common_scripts\utility::flag("vtol_hit_early") && !common_scripts\utility::flag("vtol_hit_mid")) { common_scripts\utility::flag_wait("vtol_hit_mid"); level.vtol_animnode maps\_anim::anim_single(var_01,"vtol_ambush_stinger_hit_mid"); } else if(common_scripts\utility::flag("vtol_hit_mid")) { common_scripts\utility::flag_wait("missiles_hit_vtol"); level.vtol_animnode maps\_anim::anim_single(var_01,"vtol_ambush_stinger_hit_late"); } else { } level.end_cables solid(); level.end_crate solid(); level.end_crate_clip solid(); level.vtol_animnode maps\_anim::anim_single(var_01,"vtol_ambush_crash"); var_00 common_scripts\utility::trigger_on(); level.vtol_animnode thread maps\_anim::anim_single(var_01,"vtol_sliding_off_cliff"); while(level.end_vtol getanimtime(level.end_vtol maps\_utility::getanim("vtol_sliding_off_cliff")) < 1 && !common_scripts\utility::flag("kill_sliding_anims")) { wait(0.05); } if(common_scripts\utility::flag("kill_sliding_anims")) { level.end_cables setanimrate(level.end_cables maps\_utility::getanim("vtol_sliding_off_cliff"),0); level.end_crate setanimrate(level.end_crate maps\_utility::getanim("vtol_sliding_off_cliff"),0); level.exfil_animnode = level.end_crate common_scripts\utility::spawn_tag_origin(); common_scripts\utility::flag_set("start_exfil"); level.exfil_animnode maps\_anim::anim_single_solo(level.end_crate,"avalanche_exit"); common_scripts\utility::flag_wait("start_vtol_exfil"); level.vtol_animnode maps\_anim::anim_single(var_01,"avalanche_exit_fail"); return; } var_00 delete(); level.vtol_animnode maps\_anim::anim_single(var_01,"vtol_falls_off_cliff"); } //Function Number: 23 vtol_takedown_terrain() { var_00 = getent("vtol_slide_cover_01","targetname"); var_01 = getent("vtol_slide_cover_01a","targetname"); var_02 = getent("vtol_slide_cover_02","targetname"); var_03 = getent("vtol_slide_cover_03","targetname"); var_04 = getent("vtol_slide_cover_04","targetname"); var_05 = getent("vtol_slide_cover_05","targetname"); var_06 = getent("vtol_slide_cover_06","targetname"); var_07 = getent("vtol_slide_cover_07","targetname"); var_08 = getent("vtol_slide_cover_08","targetname"); var_09 = getent("vtol_slide_cover_09","targetname"); var_0A = getent("vtol_slide_cover_10","targetname"); var_0B = getent("vtol_slide_cover_11","targetname"); var_0C = getent("vtol_slide_cover_12","targetname"); common_scripts\_exploder::exploder(8700); var_00 delete(); wait(0.34); var_01 delete(); wait(3.58); var_02 delete(); wait(1.33); var_03 delete(); wait(1.05); var_04 delete(); wait(1.13); var_05 delete(); wait(0.98); var_06 delete(); wait(0.78); var_07 delete(); wait(0.81); var_08 delete(); wait(0.86); var_09 delete(); wait(1.13); var_0A delete(); wait(0.81); var_0B delete(); wait(0.85); var_0C delete(); } //Function Number: 24 vtol_takedown_player_grabs_cargo() { level endon("failed_cargo_grab"); if(common_scripts\utility::flag("failed_cargo_grab")) { return; } var_00 = getent("end_cargo_trigger","targetname"); var_00 maps\_utility::addhinttrigger(&"CRASH_CARGO_GRAB",&"CRASH_CARGO_GRAB_KEYBOARD"); maps\player_scripted_anim_util::waittill_trigger_activate_looking_at(var_00,level.final_loc,cos(40),0,1); common_scripts\utility::flag_set("cargo_trigger"); common_scripts\utility::flag_set("kill_sliding_anims"); common_scripts\utility::flag_wait("start_exfil"); level.player maps\_shg_utility::setup_player_for_scene(); var_01 = maps\_utility::spawn_anim_model("rig"); var_01 hide(); var_02 = spawn("script_model",var_01.origin); var_02 setmodel("atlas_stabilize_vial_static"); var_02 hide(); var_02.origin = var_01 gettagorigin("tag_weapon_right"); var_02.angles = var_01 gettagangles("tag_weapon_right"); var_02 linkto(var_01,"tag_weapon_right"); soundscripts\_snd::snd_message("recover_cargo"); level.exfil_animnode thread maps\_anim::anim_single_solo(var_01,"avalanche_exit"); thread maps\_shg_utility::disable_features_entering_cinema(1); level.player playerlinktoblend(var_01,"tag_player",0.6); wait(0.3); var_01 show(); wait(0.3); common_scripts\utility::flag_set("obj_end_recover_cargo"); level.player playerlinktodelta(var_01,"tag_player",1,25,25,20,20,1); common_scripts\_exploder::exploder(5186); wait(0.5); level notify("moved_indoors"); var_01 waittillmatch("unhide_vial","single anim"); var_02 show(); var_01 waittillmatch("jump_window_end","single anim"); if(!common_scripts\utility::flag("player_exfil_success")) { var_03 = var_01 common_scripts\utility::spawn_tag_origin(); var_03 thread maps\_anim::anim_single_solo(var_01,"avalanche_death"); soundscripts\_snd::snd_message("exfil_fail"); wait(1); var_04 = var_01 common_scripts\utility::spawn_tag_origin(); var_04 linkto(var_01,"tag_origin"); playfxontag(common_scripts\utility::getfx("screen_avalanche_death"),var_04,"tag_origin"); wait(0.75); setdvar("ui_deadquote",&"CRASH_FAIL_CARGO"); maps\_utility::missionfailedwrapper(); } var_01 waittillmatch("end","single anim"); } //Function Number: 25 exfil_player_jump(param_00) { level.player endon("exfil_fail"); thread maps\_utility::hintdisplayhandler("end_jump"); level.player notifyonplayercommand("exfil_jump","+gostand"); level.player waittill("exfil_jump"); wait 0.05; level.player notifyonplayercommand("exfil_jump2","+gostand"); level.player waittill("exfil_jump2"); common_scripts\utility::flag_set("player_exfil_success"); } //Function Number: 26 exfil_player_jump_fail(param_00) { level.player notify("exfil_fail"); common_scripts\utility::flag_set("exfil_fail"); } //Function Number: 27 should_break_end_jump_hint() { return common_scripts\utility::flag("player_exfil_success") || common_scripts\utility::flag("exfil_fail"); } //Function Number: 28 vtol_takedown_chopper() { common_scripts\utility::flag_wait_any("player_bottom_of_hill","player_at_vtol","cargo_trigger"); var_00 = common_scripts\utility::getstruct("avalanche_exfil_animnode","targetname"); level.end_chopper = maps\_vehicle::spawn_vehicle_from_targetname("end_littlebird"); level.end_chopper.animname = "exfil_heli"; level.end_chopper maps\_anim::setanimtree(); level.end_chopper hide(); level.end_chopper vehicle_turnengineoff(); var_00 maps\_anim::anim_first_frame_solo(level.end_chopper,"avalanche_exit"); common_scripts\utility::flag_wait("start_exfil"); level.end_chopper show(); level.exfil_animnode maps\_anim::anim_single_solo(level.end_chopper,"avalanche_exit"); } //Function Number: 29 vtol_takedown_dialogue() { level.gideon maps\_utility::smart_dialogue("crsh_gid_stingers"); common_scripts\utility::flag_set("obj_start_get_gun"); common_scripts\utility::flag_wait("gideon_intro_done"); wait(0.4); level.gideon maps\_utility::smart_dialogue("crsh_gid_dealthwith"); wait(0.75); maps\_utility::smart_radio_dialogue("crsh_acp_yourelucky"); wait(0.5); level.gideon maps\_utility::smart_dialogue("crsh_gid_cargosecure2"); wait(0.75); maps\_utility::smart_radio_dialogue("crsh_acp_intact"); common_scripts\utility::flag_wait("vo_heat_line"); if(!common_scripts\utility::flag("player_stinger_fired")) { maps\_utility::smart_radio_dialogue("crsh_acp_heatsignatures"); common_scripts\utility::flag_wait("vo_bringitdown_line"); if(!common_scripts\utility::flag("player_stinger_fired")) { maps\_utility::smart_radio_dialogue("crsh_gid_bringitdown2"); } } level waittill("vtol_downed"); wait(1); level.gideon maps\_utility::smart_dialogue("crsh_gid_callevac3"); common_scripts\utility::flag_wait("gideon_jump_talk"); level.gideon maps\_utility::smart_dialogue("crsh_gid_comingapart3"); wait(1); maps\_utility::smart_radio_dialogue("crsh_crmk_evacshere"); wait(1.5); if(!common_scripts\utility::flag("player_at_vtol")) { maps\_utility::smart_radio_dialogue("crsh_gid_loseit2"); } common_scripts\utility::flag_wait("player_at_vtol"); if(!common_scripts\utility::flag("cargo_trigger")) { maps\_utility::smart_radio_dialogue("crsh_gid_grabcargo2"); } common_scripts\utility::flag_wait("vo_cormack_exfil1"); if(common_scripts\utility::flag("player_exfil_success")) { level.cormack maps\_utility::smart_dialogue("crsh_crmk_boxissecure"); } common_scripts\utility::flag_wait("vo_kingpin_exfil"); if(common_scripts\utility::flag("player_exfil_success")) { maps\_utility::smart_radio_dialogue("crsh_so_solidcopy1"); } common_scripts\utility::flag_wait("vo_cormack_exfil2"); if(common_scripts\utility::flag("player_exfil_success")) { level.cormack maps\_utility::smart_dialogue("crsh_crmk_donttrustyou"); } } //Function Number: 30 vtol_takedown_failure() { level endon("vtol_downed"); var_00 = getentarray("vtol_fail_triggers","targetname"); foreach(var_02 in var_00) { var_02 common_scripts\utility::trigger_on(); } common_scripts\utility::flag_clear("vtol_fail"); common_scripts\utility::flag_wait("vtol_fail"); setdvar("ui_deadquote",&"CRASH_FAIL_CARGO"); maps\_utility::missionfailedwrapper(); } //Function Number: 31 avalanche_environment() { while(!common_scripts\utility::flag("obj_end_recover_cargo")) { var_00 = randomfloatrange(1.5,5.5); level.player playrumbleonentity("hijack_plane_medium"); screenshake(level.player.origin,0.5,0.5,0.25,var_00,0,0.5,500,8,5,2); wait(var_00 + randomfloatrange(0.5,1.5)); } } //Function Number: 32 avalanche_falling_death() { common_scripts\utility::flag_wait("av_fall_death"); setdvar("ui_deadquote",&"CRASH_FAIL_FALL"); maps\_utility::missionfailedwrapper(); level.player thread maps\_player_exo::player_exo_deactivate(); }