mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
292 lines
12 KiB
Plaintext
292 lines
12 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: captured_exit.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 16
|
|
* Decompile Time: 254 ms
|
|
* Timestamp: 4/22/2024 2:26:11 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
pre_load()
|
|
{
|
|
}
|
|
|
|
//Function Number: 2
|
|
post_load()
|
|
{
|
|
common_scripts\utility::flag_init("flag_gatedoor_end");
|
|
level._exit = spawnstruct();
|
|
level._exit.civ_gate_node = common_scripts\utility::getstruct("struct_exit_scene_gate","targetname");
|
|
level._exit.civilians = [];
|
|
if(isdefined(common_scripts\utility::getstruct("struct_playerstart_gd","targetname")))
|
|
{
|
|
level._exit.gate_inner = getent("model_mb_exitdoor_inner","targetname");
|
|
level._exit.gate_inner.col = getent(level._exit.gate_inner.target,"targetname");
|
|
level._exit.node = common_scripts\utility::getstruct("struct_exit_scene","targetname") common_scripts\utility::spawn_tag_origin();
|
|
level._exit.escape_node = common_scripts\utility::getstruct("struct_exit_scene","targetname") common_scripts\utility::spawn_tag_origin();
|
|
level._exit.lock = getent("model_mb_maintenance_door","targetname");
|
|
level._exit.lock maps\_utility::assign_animtree("exit_gate_lock");
|
|
level._exit.gate_inner maps\_utility::assign_animtree("exit_gate_inner");
|
|
if(maps\captured_util::start_point_is_before("gatedoor"))
|
|
{
|
|
level._exit.node maps\_anim::anim_first_frame([level._exit.gate_inner,level._exit.lock],"anim_exit_gateclose");
|
|
level._exit.gate_inner.col connectpaths();
|
|
return;
|
|
}
|
|
|
|
if(level.start_point == "gatedoor")
|
|
{
|
|
level._exit.node maps\_anim::anim_first_frame([level._exit.gate_inner,level._exit.lock],"anim_exit_gatelift_intro");
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
iprintln("Warning: Mech Battle start point missing. Compiled out?");
|
|
}
|
|
|
|
//Function Number: 3
|
|
start(param_00,param_01)
|
|
{
|
|
common_scripts\utility::flag_set("flag_mech_vo_active");
|
|
level.player maps\captured_util::warp_to_start(param_00);
|
|
level.allies maps\captured_util::warp_allies(param_01,1);
|
|
level.player thread maps\captured_mech_code::init_mech_actions();
|
|
level.civ_run_nodes = level._mb.exit_run_nodes2;
|
|
level._exit.gate_inner.col connectpaths();
|
|
level._exit.gate_inner.col notsolid();
|
|
maps\_playermech_code::playermech_start("base");
|
|
level.allies[0] hudoutlineenable(3,1);
|
|
}
|
|
|
|
//Function Number: 4
|
|
main_gd()
|
|
{
|
|
level.ally maps\_utility::enable_ai_color();
|
|
thread util_physicspush_watcher();
|
|
maps\_utility::activate_trigger_with_targetname("trig_gd_ally_1");
|
|
thread maps\_utility::battlechatter_off("allies");
|
|
thread maps\_utility::battlechatter_off("axis");
|
|
thread dialogue_gd();
|
|
thread gd_player_lifts_gate();
|
|
level.player waittill("exit_anim_start");
|
|
thread ai_gd();
|
|
level.player waittill("exit_anim_done");
|
|
level.allies[0] hudoutlinedisable();
|
|
}
|
|
|
|
//Function Number: 5
|
|
ai_gd()
|
|
{
|
|
level._exit.node thread maps\_anim::anim_single_solo(level.ally,"anim_exit");
|
|
level.player waittill("notify_fire_rocket_2");
|
|
level._exit.node thread maps\_anim::anim_loop_solo(level.ally,"anim_exit_loop");
|
|
}
|
|
|
|
//Function Number: 6
|
|
gd_player_lifts_gate()
|
|
{
|
|
var_00 = level._exit.node;
|
|
var_01 = level._exit.lock;
|
|
var_02 = spawnstruct();
|
|
var_02.input_type = "mash";
|
|
var_02.node = var_00;
|
|
var_02.obj = level._exit.gate_inner;
|
|
var_02.intro_anim = "anim_exit_gatelift_intro";
|
|
var_02.intro_anim_vm = "cap_s1_escape_mech_door_lift_intro_vm";
|
|
var_02.post_intro_loop_anim = "anim_exit_gatelift_intro_idle";
|
|
var_02.post_intro_loop_anim_vm = "cap_s1_escape_mech_door_lift_idle_vm";
|
|
var_02.main_anims = ["anim_exit_gatelift_1","anim_exit_gatelift_2","anim_exit_gatelift_3","anim_exit_gatelift_4","anim_exit_gatelift_5","anim_exit_gatelift_6","anim_exit_gatelift_7"];
|
|
var_02.rev_main_anims = ["anim_exit_gatelift_1_rev","anim_exit_gatelift_2_rev","anim_exit_gatelift_3_rev","anim_exit_gatelift_4_rev","anim_exit_gatelift_5_rev","anim_exit_gatelift_6_rev","anim_exit_gatelift_7_rev"];
|
|
var_02.main_anims_vm = ["cap_s1_escape_mech_door_lift_01_vm","cap_s1_escape_mech_door_lift_02_vm","cap_s1_escape_mech_door_lift_03_vm","cap_s1_escape_mech_door_lift_04_vm","cap_s1_escape_mech_door_lift_05_vm","cap_s1_escape_mech_door_lift_06_vm","cap_s1_escape_mech_door_lift_07_vm"];
|
|
var_02.rev_main_anims_vm = ["cap_s1_escape_mech_door_lift_01_rev_vm","cap_s1_escape_mech_door_lift_02_rev_vm","cap_s1_escape_mech_door_lift_03_rev_vm","cap_s1_escape_mech_door_lift_04_rev_vm","cap_s1_escape_mech_door_lift_05_rev_vm","cap_s1_escape_mech_door_lift_06_rev_vm","cap_s1_escape_mech_door_lift_07_rev_vm"];
|
|
var_02.exit_anim = "anim_exit_gatelift_exit";
|
|
var_02.exit_anim_vm = "cap_s1_escape_mech_door_lift_exit_vm";
|
|
level.player maps\captured_mech_code::spawn_mech_rig();
|
|
var_02.guys = [level.player.rig,var_02.obj];
|
|
var_00 maps\_anim::anim_first_frame_solo(level.player.rig,"anim_exit_gatelift_intro");
|
|
level._exit.final_player_rig = maps\_utility::spawn_anim_model("player_rig");
|
|
level._exit.final_player_rig hide();
|
|
level._exit.escape_node maps\_anim::anim_first_frame_solo(level._exit.final_player_rig,"end_escape");
|
|
wait(0.05);
|
|
var_03 = maps\_shg_utility::hint_button_position("use",common_scripts\utility::getstruct("mech_gate_lock_hint","targetname").origin,72);
|
|
var_03.object makeusable();
|
|
var_03.object maps\_utility::addhinttrigger(&"CAPTURED_HINT_BREAK_CONSOLE",&"CAPTURED_HINT_BREAK_PC");
|
|
maps\captured_util::waittill_entity_activate_looking_at(var_03.object,undefined,undefined,90,undefined,0);
|
|
level notify("lgt_dof_mechdoor");
|
|
setsaveddvar("g_friendlyNameDist",0);
|
|
common_scripts\utility::flag_set("flag_exit_lock_broken");
|
|
var_03 maps\_shg_utility::hint_button_clear();
|
|
level.player thread playerlinktodeltablend();
|
|
wait(0.25);
|
|
soundscripts\_snd::snd_message("scn_cap_mech_door_grab");
|
|
var_00 thread maps\_anim::anim_single_solo(var_01,"anim_exit_gatelift_intro");
|
|
thread maps\captured_fx::fx_mech_door_lift_fx();
|
|
common_scripts\utility::flag_set("flag_force_hud_ready");
|
|
level.player thread maps\captured_mech_code::mech_obj_move(var_02,1);
|
|
level.player waittill("exit_anim_start");
|
|
level._exit.gate_inner.col connectpaths();
|
|
level._exit.gate_inner.col notsolid();
|
|
level notify("dialogue_gatedoor_hold");
|
|
self notify("notify_stop_mash_detection");
|
|
common_scripts\utility::flag_clear("hint_mash_button");
|
|
level.player thread event_exit_player_knockback();
|
|
level.player thread event_mechsuit_swap();
|
|
}
|
|
|
|
//Function Number: 7
|
|
playerlinktodeltablend()
|
|
{
|
|
self playerlinktoblend(self.rig,"tag_player",0.2);
|
|
wait(0.2);
|
|
self playerlinktodelta(self.rig,"tag_player",1,0,0,0,0,1);
|
|
wait(0.05);
|
|
self.rig show();
|
|
self hideviewmodel();
|
|
maps\_utility::spawn_anim_model("mech_gun",level.player.origin) linkto(self.rig,"tag_weapon",(0,0,0),(0,0,0));
|
|
}
|
|
|
|
//Function Number: 8
|
|
event_exit_player_knockback()
|
|
{
|
|
self enabledeathshield(1);
|
|
var_00 = maps\_utility::array_spawn_noteworthy("enemy_exit");
|
|
common_scripts\utility::array_thread(var_00,::exit_enemy);
|
|
var_01 = maps\_utility::spawn_script_noteworthy("enemy_exit_mech");
|
|
var_01 thread exit_mech_rocket_fire();
|
|
thread maps\captured_mech::smart_radio_dialogue_mb("cap_sri_enemymechdetected");
|
|
var_02 = getent("model_exit_swinggate","targetname");
|
|
var_02 connectpaths();
|
|
var_02 moveto(var_02.origin + (0,0,128),1);
|
|
level.player waittill("notify_fire_rocket_2");
|
|
level.player common_scripts\utility::delaycall(1.25,::playrumbleonentity,"heavy_1s");
|
|
level.player common_scripts\utility::delaycall(5.65,::playrumbleonentity,"heavy_1s");
|
|
common_scripts\utility::flag_set("flag_gatedoor_end");
|
|
self notify("stop_quake");
|
|
level.player freezecontrols(1);
|
|
thread maps\captured_fx::fx_mech_explode_amb_fx();
|
|
maps\_playermech_code::set_mech_state("outro");
|
|
level.player setclientomnvar("ui_hide_hud",1);
|
|
level.player.rig thread maps\captured_fx::fx_mech_cockpit_damage();
|
|
thread maps\captured_fx::fx_stop_mech_door_lift_fx();
|
|
level.player enabledeathshield(0);
|
|
level._exit.gate_inner.col disconnectpaths();
|
|
level._exit.gate_inner.col solid();
|
|
}
|
|
|
|
//Function Number: 9
|
|
event_mechsuit_swap()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("struct_exit_scene","targetname") common_scripts\utility::spawn_tag_origin();
|
|
var_01["top"] = maps\_utility::spawn_anim_model("mech_suit_top");
|
|
var_01["bottom"] = maps\_utility::spawn_anim_model("mech_suit_bottom");
|
|
common_scripts\utility::array_call(var_01,::hide);
|
|
var_00 maps\_anim::anim_first_frame(var_01,"anim_exit_mechsuit");
|
|
self waittill("mech_swap");
|
|
maps\captured_fx::fx_mech_cockpit_damage_stop();
|
|
level.player.rig hide();
|
|
common_scripts\utility::array_call(var_01,::show);
|
|
var_00 maps\_anim::anim_single(var_01,"anim_exit_mechsuit");
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_00 maps\_anim::anim_last_frame_solo(var_03,"anim_exit_mechsuit");
|
|
}
|
|
}
|
|
|
|
//Function Number: 10
|
|
exit_enemy()
|
|
{
|
|
maps\_utility::magic_bullet_shield(1);
|
|
self.script_forcegoal = 1;
|
|
maps\_utility::set_favoriteenemy(level.player);
|
|
maps\_utility::set_baseaccuracy(0.7);
|
|
}
|
|
|
|
//Function Number: 11
|
|
exit_mech_rocket_fire()
|
|
{
|
|
maps\_utility::magic_bullet_shield(1);
|
|
maps\captured_util::ignore_everything();
|
|
level.player waittill_nt(%cap_s1_escape_mech_door_lift_exit_mech,"fire_rocket_0",-2.5);
|
|
var_00 = self gettagorigin("tag_rocket1") + anglestoforward(self.angles) * 64;
|
|
var_01 = common_scripts\utility::getstruct("struct_exit_rocket_0","targetname");
|
|
magicbullet("playermech_rocket_deploy_projectile",var_00,var_01.origin);
|
|
magicbullet("playermech_rocket_projectile",var_00,var_01.origin);
|
|
level.player waittill_nt(%cap_s1_escape_mech_door_lift_exit_mech,"fire_rocket_1",-2.5);
|
|
var_00 = self gettagorigin("tag_rocket2") + anglestoforward(self.angles) * 64;
|
|
var_01 = common_scripts\utility::getstruct("struct_exit_rocket_1","targetname");
|
|
magicbullet("playermech_rocket_deploy_projectile",var_00,var_01.origin);
|
|
magicbullet("playermech_rocket_projectile",var_00,var_01.origin) thread deathfunc_rocket(var_01.origin,(0,0,0),"mech_wall_explosion","light_1s");
|
|
level.player waittill_nt(%cap_s1_escape_mech_door_lift_exit_mech,"fire_rocket",-1.75);
|
|
var_00 = self gettagorigin("tag_rocket3") + anglestoforward(self.angles) * 64;
|
|
magicbullet("playermech_rocket_deploy_projectile",var_00,level.player.origin);
|
|
magicbullet("playermech_rocket_projectile",var_00,level.player.origin) thread deathfunc_rocket(level.player.origin + (0,0,32),level.player.angles,"mech_chest_explosion","heavy_1s");
|
|
}
|
|
|
|
//Function Number: 12
|
|
deathfunc_rocket(param_00,param_01,param_02,param_03)
|
|
{
|
|
self waittill("death");
|
|
playfx(common_scripts\utility::getfx(param_02),param_00,anglestoforward(param_01),anglestoup(param_01));
|
|
level.player playrumbleonentity(param_03);
|
|
}
|
|
|
|
//Function Number: 13
|
|
waittill_nt(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_03) && !common_scripts\utility::flag_exist(param_03))
|
|
{
|
|
common_scripts\utility::flag_init(param_03);
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 0;
|
|
}
|
|
|
|
var_04 = getnotetracktimes(param_00,param_01)[0];
|
|
var_05 = var_04 * getanimlength(param_00) + param_02;
|
|
wait(var_05);
|
|
if(isdefined(param_03))
|
|
{
|
|
common_scripts\utility::flag_set(param_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
util_physicspush_watcher()
|
|
{
|
|
level endon("flag_gatedoor_end");
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::flag_wait("flag_playermech_nopush");
|
|
level.player maps\_playermech_code::playermech_physics_push_off();
|
|
common_scripts\utility::flag_waitopen("flag_playermech_nopush");
|
|
level.player maps\_playermech_code::playermech_physics_push_on();
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
dialogue_gd()
|
|
{
|
|
maps\_utility::smart_radio_dialogue("cap_gdn_thatsthegateout");
|
|
thread maps\_utility::smart_radio_dialogue("cap_gdn_breakthislock");
|
|
level.player waittill("intro_anim_done");
|
|
common_scripts\utility::flag_clear("flag_mech_vo_active");
|
|
thread dialogue_gd_lift();
|
|
level waittill("dialogue_gatedoor_hold");
|
|
common_scripts\utility::flag_wait("flag_gatedoor_end");
|
|
}
|
|
|
|
//Function Number: 16
|
|
dialogue_gd_lift()
|
|
{
|
|
level.player endon("main_anim_startanim_exit_gatelift_1");
|
|
maps\_utility::smart_radio_dialogue("cap_gdn_liftthatgateandhold");
|
|
wait(7);
|
|
var_00 = ["cap_gdn_liftthegate","cap_gdn_openthisdoor","cap_gdn_comeonwehaveto"];
|
|
level.player childthread maps\captured_util::radio_dialogue_nag_loop(var_00);
|
|
} |