/******************************************************************* * Decompiled By: Bog * Decompiled File: captured_util.gsc * Game: Call of Duty: Advanced Warfare * Platform: PC * Function Count: 85 * Decompile Time: 1222 ms * Timestamp: 4/22/2024 2:26:38 AM *******************************************************************/ //Function Number: 1 warp_to_start(param_00) { var_01 = param_00; if(isstring(param_00)) { var_01 = common_scripts\utility::getstruct(param_00,"targetname"); if(!isdefined(var_01)) { var_01 = getent(param_00,"targetname"); } } if(!isdefined(var_01)) { return; } if(self islinked()) { self unlink(); } if(self == level.player) { self setorigin(var_01.origin); level.player setplayerangles(var_01.angles); return; } self forceteleport(var_01.origin,var_01.angles); } //Function Number: 2 warp_allies(param_00,param_01,param_02) { if(!isdefined(level.allies) || !isdefined(level.allies.size)) { return; } level.allies = maps\_utility::remove_dead_from_array(level.allies); var_03 = ["r","b","y"]; if(!isdefined(param_02)) { param_02 = level.allies.size; } for(var_04 = 0;var_04 < param_02;var_04++) { level.allies[var_04] thread warp_to_start(param_00 + "_" + var_04); if(isdefined(param_01) && param_01) { level.allies[var_04] maps\_utility::set_force_color(var_03[var_04]); } } } //Function Number: 3 spawn_allies(param_00) { if(!isdefined(param_00)) { if(start_point_is_before("test_chamber")) { param_00 = 3; } else if(start_point_is_between(["test_chamber","mb2"],1)) { param_00 = 1; } else if(start_point_is_after("mb2")) { param_00 = 2; } else { param_00 = 3; } } if(!isdefined(level.allies)) { level.allies = []; } else if(level.allies.size >= param_00) { return; } var_01 = getentarray("spawner_ally","script_noteworthy"); common_scripts\utility::array_thread(var_01,::maps\_utility::add_spawn_function,::spawnfunc_ally); for(var_02 = 0;var_02 < param_00;var_02++) { var_03 = getent("ally_" + var_02,"targetname") maps\_utility::spawn_ai(); var_03.animname = "ally_" + var_02; level.allies[var_02] = var_03; } if(isdefined(level.allies[0]) && isalive(level.allies[0])) { level.ally = level.allies[0]; } } //Function Number: 4 spawnfunc_ally() { maps\_utility::make_hero(); maps\_utility::magic_bullet_shield(); } //Function Number: 5 dialogue_nag_loop(param_00,param_01,param_02,param_03,param_04,param_05) { self endon("death"); if(isdefined(param_01)) { level endon(param_01); } self notify("start_nag_loop"); self endon("start_nag_loop"); if(!isdefined(param_02)) { param_02 = 0; } if(!isdefined(param_03)) { param_03 = 4; } if(!isdefined(param_04)) { param_04 = 0; } if(!isdefined(param_05)) { param_05 = 300; } var_06 = param_03 - param_02; for(;;) { foreach(var_08 in param_00) { thread dialogue_nag_player(var_08); common_scripts\utility::flag_waitopen("flag_currently_nagging"); wait(randomfloatrange(param_02,param_03)); param_03 = min(param_05,param_03 + param_04); param_02 = param_03 - var_06; } wait(0.05); param_00 = common_scripts\utility::array_randomize(param_00); } } //Function Number: 6 dialogue_nag_player(param_00) { common_scripts\utility::flag_set("flag_currently_nagging"); maps\_utility::dialogue_queue(param_00); common_scripts\utility::flag_clear("flag_currently_nagging"); } //Function Number: 7 radio_dialogue_nag_loop(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { self endon("death"); if(isdefined(param_01)) { level endon(param_01); } self notify("start_nag_loop"); self endon("start_nag_loop"); if(!isdefined(param_02)) { param_02 = 8; } if(!isdefined(param_03)) { param_03 = 12; } if(!isdefined(param_04)) { param_04 = 0; } if(!isdefined(param_05)) { param_05 = 300; } var_07 = param_03 - param_02; for(;;) { foreach(var_09 in param_00) { if(isdefined(param_06)) { common_scripts\utility::flag_clear(param_06); } maps\_utility::smart_radio_dialogue(var_09); if(isdefined(param_06)) { common_scripts\utility::flag_set(param_06); } wait(randomfloatrange(param_02,param_03)); param_03 = min(param_05,param_03 + param_04); param_02 = param_03 - var_07; } wait(0.05); param_00 = common_scripts\utility::array_randomize(param_00); } } //Function Number: 8 delay_retreat(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { if(isdefined(param_02)) { thread opfor_retreat(param_00,param_02,param_03); } common_scripts\utility::flag_wait_or_timeout(param_03,param_01); if(common_scripts\utility::flag(param_03) && !isdefined(level.opfor_retreat)) { tprintln("Retreat trigger: " + param_03,1); thread retreat_proc(param_03,param_04,param_05); return; } if(!isdefined(level.opfor_retreat)) { tprintln("Retreat timeout: " + param_01 + " | " + param_03,1); } thread retreat_proc(param_03,param_04,param_05,param_06); level.opfor_retreat = undefined; } //Function Number: 9 opfor_retreat(param_00,param_01,param_02) { level endon(param_02); if(!isarray(param_01)) { param_01 = [int(min(0,param_01)),int(max(-1,param_01))]; } if(param_01[0] < 0) { for(var_03 = param_01[0];var_03 < 0;var_03++) { level waittill("ai_killed",var_04); tprintln("kills: " + var_03 + 1 + " || " + maps\_utility::get_ai_group_sentient_count(param_00)); if(!isdefined(var_04.script_aigroup) || var_04.script_aigroup != param_00) { var_03--; } } } if(param_01[1] >= 0) { while(maps\_utility::get_ai_group_sentient_count(param_00) > param_01[1]) { wait(0.1); } } tprintln("Retreat kills: " + maps\_utility::get_ai_group_sentient_count(param_00) + " | " + param_02,1); level.opfor_retreat = 1; common_scripts\utility::flag_set(param_02); } //Function Number: 10 retreat_proc(param_00,param_01,param_02,param_03) { if(!common_scripts\utility::flag(param_00)) { common_scripts\utility::flag_set(param_00); } if(isdefined(param_01) && !isarray(param_01)) { param_01 = [param_01]; } if(isdefined(param_01)) { var_04 = []; foreach(var_06 in param_01) { var_06 = getent(var_06,"targetname"); if(isdefined(var_06)) { var_04[var_04.size] = var_06; } } if(var_04.size > 0) { param_01 = var_04; } else { param_01 = undefined; } } if(isdefined(param_01)) { param_01[0] notify("trigger"); wait(0.05); if(isdefined(param_02) && param_02) { foreach(var_06 in param_01) { if(isdefined(var_06)) { var_06 delete(); } } } } if(isdefined(param_03) && !isarray(param_03)) { param_03 = [param_03]; } if(isdefined(param_03)) { foreach(var_0B in param_03) { level notify(var_0B); } } } //Function Number: 11 kt_time(param_00) { if(!isdefined(level.killer_tracker)) { return param_00; } if(level.killer_tracker > 2) { return param_00 * clamp(level.killer_tracker - 1,1,5); } return param_00; } //Function Number: 12 setup_player_for_animated_sequence(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08) { if(!isdefined(param_00)) { param_00 = 1; } if(param_00) { if(!isdefined(param_01)) { param_01 = 60; } } if(!isdefined(param_08)) { param_08 = 1; } if(!isdefined(param_02)) { param_02 = level.player.origin; } if(!isdefined(param_03)) { param_03 = level.player.angles; } if(!isdefined(param_04)) { param_04 = 1; } if(!isdefined(param_06)) { param_06 = "player_rig"; } var_09 = maps\_utility::spawn_anim_model(param_06,param_02); level.player.rig = var_09; var_09.angles = param_03; var_09.animname = param_06; if(isdefined(param_07)) { var_0A = maps\_utility::spawn_anim_model(param_07); } else { var_0A = common_scripts\utility::spawn_tag_origin(); } level.player.mover = var_0A; var_0A.origin = param_02; var_0A.angles = param_03; var_09 linkto(var_0A); if(param_00) { if(isarray(param_01)) { level.player playerlinktodelta(var_09,"tag_origin",param_08,param_01[0],param_01[1],param_01[2],param_01[3],1); } else { level.player playerlinktodelta(var_09,"tag_origin",param_08,param_01,param_01,param_01,param_01,1); } } if(param_04) { thread player_animated_sequence_restrictions(param_05); } } //Function Number: 13 player_animated_sequence_restrictions(param_00) { if(isdefined(param_00) && param_00) { level.player waittill("notify_player_animated_sequence_restrictions"); } level.player.disablereload = 1; level.player disableweapons(); level.player disableoffhandweapons(); level.player disableweaponswitch(); level.player allowcrouch(0); level.player allowjump(0); level.player allowmelee(0); level.player allowprone(0); level.player allowsprint(0); } //Function Number: 14 player_animated_sequence_cleanup() { if(!isdefined(level.player.early_weapon_enabled) || !level.player.early_weapon_enabled) { level.player.early_weapon_enabled = undefined; level.player.disablereload = 0; level.player enableweapons(); level.player enableoffhandweapons(); level.player enableweaponswitch(); } level.player allowcrouch(1); level.player allowjump(1); level.player allowmelee(1); level.player allowprone(1); level.player allowsprint(1); level.player unlink(); if(isdefined(level.player.mover)) { level.player.mover delete(); } if(isdefined(level.player.rig)) { level.player.rig delete(); } } //Function Number: 15 smooth_player_link(param_00,param_01,param_02) { if(!isdefined(param_02)) { param_02 = [0,0,0,0]; } else if(!isarray(param_02)) { param_02 = [param_02,param_02,param_02,param_02]; } level.player playerlinktoblend(param_00,"tag_player",param_01); wait(param_01); level.player playerlinktodelta(param_00,"tag_player",1,param_02[0],param_02[1],param_02[2],param_02[3],1); param_00 show(); } //Function Number: 16 anim_set_real_time(param_00,param_01,param_02) { common_scripts\utility::array_thread(param_00,::anim_self_set_real_time,param_01,param_02); } //Function Number: 17 anim_self_set_real_time(param_00,param_01) { var_02 = maps\_utility::getanim(param_00); var_03 = param_01 / getanimlength(var_02); self setanimtime(var_02,var_03); } //Function Number: 18 start_one_handed_gunplay(param_00) { self endon("death"); self notify("stop_one_handed_gunplay"); self endon("stop_one_handed_gunplay"); self.melee_threat = -1024; self.gun_threat = -512; if(!isdefined(param_00)) { param_00 = self getcurrentweapon(); } self disableweaponswitch(); self setautopickup(0); self.one_weap = "init"; self.one_ammo = 15; self.one_frac = 1; self.one_time = 0; self.ot = []; self.ot["gun"] = 5000; self.ot["aggro"] = 6000; self.ot["flash"] = 10000; self.ot["gen"] = 15000; self.ot["p_kill"] = 15000; self.ot["a_kill"] = 15000; level one_handed_help_vo_setup(); level.player thread one_handed_help_flash_ally_tracker(1000); self giveweapon("iw5_mahem_sp"); thread one_handed_swap_tracking(); if(issubstr(param_00,"knife")) { one_handed_switch_to_melee(1); } else { one_handed_weapon_check_swap(param_00); } thread one_handed_pickup_handling(); thread one_handed_drop_handling(); thread one_handed_grenade_handling(); thread one_handed_ammo_tracking(); thread one_handed_mantle_handling(); thread one_handed_exododge_handling(); } //Function Number: 19 one_handed_pickup_handling() { self endon("death"); self endon("stop_one_handed_gunplay"); self notify("start_one_handed_pickup_handling"); self endon("start_one_handed_pickup_handling"); for(;;) { self waittill("weapon_change",var_00); if(isdefined(var_00) && var_00 != "none" && var_00 != "iw5_kvahazmatknifeonearm_sp") { one_handed_weapon_check_swap(var_00); } } } //Function Number: 20 one_handed_drop_handling() { self endon("death"); self endon("stop_one_handed_gunplay"); self notify("start_one_handed_drop_handling"); self endon("start_one_handed_drop_handling"); for(;;) { self waittill("pickup",var_00,var_01); if(!isdefined(var_00.dropped)) { self notify("one_handed_weapon_swap",1); } if(!isdefined(var_01)) { tprintln("Bug this if you didn\'t just throw a grenade"); continue; } else { if(!issubstr(var_01.classname,"knife")) { var_02 = spawn(maps\_utility::string("weapon_" + one_handed_get_base_weapon(var_01.classname)),var_01.origin); var_02.angles = var_01.angles; var_02.dropped = 1; var_02 itemweaponsetammo(self.one_ammo,0); var_01 delete(); if(self.one_frac <= 0.33) { var_02.low_ammo = 1; } continue; } self notify("melee_weapon_dropped"); var_01 delete(); } } } //Function Number: 21 one_handed_grenade_handling() { self endon("death"); self endon("stop_one_handed_gunplay"); self notify("start_one_handed_grenade_handling"); self endon("start_one_handed_grenade_handling"); for(;;) { self waittill("grenade_fire"); var_00 = self getweaponammoclip(self getcurrentweapon()); var_01 = one_handed_get_base_weapon(self getcurrentweapon()); if(isdefined(var_01) && issubstr(var_01,"knife")) { continue; } if(isdefined(var_01)) { var_02 = vectornormalize(anglestoforward(self.angles)); var_03 = vectornormalize(anglestoright(self.angles)); var_04 = self.origin + randomfloatrange(16,24) * var_03 + randomfloatrange(-6,6) * var_02 + (0,0,4); var_05 = spawn(maps\_utility::string("weapon_" + var_01),var_04); var_05.angles = (0,randomint(360),0); var_05 itemweaponsetammo(var_00,0); } one_handed_switch_to_melee(1); } } //Function Number: 22 one_handed_ammo_tracking() { self endon("death"); self endon("stop_one_handed_gunplay"); self notify("start_one_handed_ammo_tracking"); self endon("start_one_handed_ammo_tracking"); for(;;) { var_00 = common_scripts\utility::waittill_notify_or_timeout_return("one_hand_pickup",0.05); var_01 = gettime(); self.one_weap = self getcurrentweapon(); if(self.one_weap != "none" && self.one_weap != "iw5_kvahazmatknifeonearm_sp") { var_02 = self.one_frac; self.one_ammo = self getammocount(self.one_weap); self.one_frac = self.one_ammo / weaponclipsize(self.one_weap); if(self.one_ammo <= 0 && !isdefined(self.switch_to_melee)) { if(issubstr(self.one_weap,"titan45")) { soundscripts\_snd::snd_message("aud_cap_45_onearm_toss"); } else { soundscripts\_snd::snd_message("aud_cap_sml_onearm_toss"); } thread one_handed_switch_to_melee(); continue; } if(var_02 > 0.33 && self.one_frac <= 0.33) { self.one_time = var_01 + randomintrange(500,2000); } if(!isdefined(level.one_handed_help)) { continue; } if(self.one_frac <= 0.33 && var_01 > self.one_time) { thread one_handed_help_try(var_01); } continue; } if(isdefined(level.one_handed_help) && self.one_weap != "none" && var_01 > self.one_time) { thread one_handed_help_try(gettime(),4000); } } } //Function Number: 23 one_handed_swap_tracking() { self endon("death"); self notify("stop_one_handed_swap_tracking"); self endon("stop_one_handed_swap_tracking"); if(!isdefined(level.swap_num)) { level.swap_num = 0; } for(;;) { self waittill("one_handed_weapon_swap",var_00); if(isdefined(var_00)) { level.swap_num = level.swap_num + var_00; } else { level.swap_num = level.swap_num + 1; } if(level.swap_num >= 20) { maps\_utility::giveachievement_wrapper("LEVEL_14A"); self notify("stop_one_handed_swap_tracking"); } } } //Function Number: 24 one_handed_mantle_handling() { self endon("death"); self endon("stop_one_handed_gunplay"); self notify("stop_one_handed_mantle_handling"); self endon("stop_one_handed_mantle_handling"); for(;;) { self waittill("foley",var_00); var_01 = self getcurrentweapon(); if(issubstr(var_00,"mantle") && isdefined(self.switch_to_melee) && !issubstr(var_01,"knife")) { self takeweapon(self getcurrentweapon()); } } } //Function Number: 25 one_handed_exododge_handling() { self endon("death"); self endon("stop_one_handed_gunplay"); self notify("stop_one_handed_exododge_handling"); self endon("stop_one_handed_exododge_handling"); for(;;) { self waittill("exo_dodge"); var_00 = self getcurrentweapon(); if(isdefined(self.switch_to_melee) && !issubstr(var_00,"knife")) { self takeweapon(self getcurrentweapon()); } } } //Function Number: 26 one_handed_modify_threatbias(param_00) { self endon("death"); self endon("stop_one_handed_gunplay"); if(isstring(param_00)) { param_00 = tolower(param_00); switch(param_00) { case "stand": self.threat_stance = "stand"; param_00 = -128; break; case "crouch": self.threat_stance = "crouch"; param_00 = -512; break; case "prone": self.threat_stance = "prone"; param_00 = -1024; break; case "none": self.threat_stance = "none"; param_00 = 0; break; case "standard": param_00 = int(1024); break; case "aggro": param_00 = 2048; break; default: param_00 = 0; break; } } self.melee_threat = -1024 + param_00; self.gun_threat = -512 + param_00; if(self.one_weap != "none" && self.one_weap != "iw5_kvahazmatknifeonearm_sp") { setthreatbias("axis","player",self.gun_threat); return; } setthreatbias("axis","player",self.melee_threat); } //Function Number: 27 one_handed_weapon_check_swap(param_00,param_01) { self endon("death"); if(isdefined(param_00) && !issubstr(param_00,"onearm_sp") || param_00 != self.one_weap) { var_02 = self getweaponammoclip(param_00); if(!isdefined(param_01) || param_01) { self takeweapon(self getcurrentweapon()); } var_03 = "iw5_titan45onearm_sp_xmags"; if(issubstr(tolower(param_00),"pbw")) { var_03 = "iw5_pbwonearm_sp_xmags"; } else if(issubstr(tolower(param_00),"hmr9")) { var_03 = "iw5_hmr9onearm_sp_xmags"; } else if(issubstr(tolower(param_00),"sn6")) { var_03 = "iw5_sn6onearm_sp_xmags"; } if(var_02 <= 0) { var_02 = weaponclipsize(var_03); } if(!isdefined(param_01) || param_01) { setthreatbias("axis","player",self.gun_threat); self notify("stop_switch_to_melee"); self.switch_to_melee = undefined; self giveweapon(var_03); soundscripts\_snd::snd_message("aud_onearm_weapon_swap",var_03); self switchtoweapon(var_03); self setweaponammostock(var_03,0); self setweaponammoclip(var_03,var_02); self enablealternatemelee(); } return var_03; } if(!isdefined(var_03) || var_03) { setthreatbias("axis","player",self.gun_threat); self notify("stop_switch_to_melee"); self.switch_to_melee = undefined; self setweaponammostock(var_02,0); } return var_02; } //Function Number: 28 one_handed_get_base_weapon(param_00,param_01,param_02) { if(!isdefined(param_00)) { param_00 = self getcurrentweapon(); } param_00 = tolower(param_00); var_03 = param_02; if(issubstr(param_00,"titan45")) { var_03 = "iw5_titan45pickup_sp_xmags"; } else if(issubstr(param_00,"hmr9")) { var_03 = "iw5_hmr9pickup_sp_xmags"; } else if(issubstr(param_00,"sn6")) { var_03 = "iw5_sn6pickup_sp_xmags"; } else if(issubstr(param_00,"knife") && !isdefined(param_01) || !param_01) { var_03 = "iw5_kvahazmatknife_sp"; } return var_03; } //Function Number: 29 one_handed_switch_to_melee(param_00) { self endon("death"); self endon("stop_switch_to_melee"); self notify("start_one_handed_switch_to_melee"); self endon("start_one_handed_switch_to_melee"); if(isdefined(param_00) && !param_00) { param_00 = undefined; } self notify("bullet_weapon_dropped"); setthreatbias("axis","player",self.melee_threat); self giveweapon("iw5_kvahazmatknifeonearm_sp"); self switchtoweapon("iw5_kvahazmatknifeonearm_sp"); self.switch_to_melee = 1; while(!isdefined(param_00) && !issubstr(self getcurrentweapon(),"knife")) { wait(0.05); } self.switch_to_melee = undefined; var_01 = self getweaponslistall(); foreach(var_03 in var_01) { if(var_03 != "iw5_kvahazmatknifeonearm_sp" && var_03 != "iw5_mahem_sp" && var_03 != "flash_grenade") { self takeweapon(var_03); } } } //Function Number: 30 one_handed_melee_take_weapon(param_00) { self endon("death"); self notify("stop_switch_to_melee"); wait(0.5); var_01 = one_handed_weapon_check_swap(param_00,0); setthreatbias("axis","player",self.gun_threat); self.switch_to_melee = undefined; self takeweapon("iw5_kvahazmatknifeonearm_sp"); self giveweapon(var_01); self switchtoweapon(var_01); self setweaponammostock(var_01,0); self setweaponammoclip(var_01,int(randomfloatrange(0.5,1) * weaponclipsize(var_01))); self notify("one_handed_weapon_swap",1); } //Function Number: 31 one_handed_help_try(param_00,param_01) { self endon("death"); self endon("stop_one_handed_gunplay"); if(!common_scripts\utility::flag("flag_one_handed_help_try")) { common_scripts\utility::flag_set("flag_one_handed_help_try"); } else { return 0; } if(!isdefined(param_00)) { param_00 = gettime(); } if(!isdefined(param_01)) { param_01 = 6000; } if(param_00 > self.ot["gun"] && common_scripts\utility::cointoss() && level.ally one_handed_help_gun()) { self.one_time = param_00 + param_01; self.ot["gun"] = param_00 + 10000; common_scripts\utility::flag_clear("flag_one_handed_help_try"); return 1; } if(param_00 > self.ot["aggro"] && common_scripts\utility::cointoss() && level.ally one_handed_help_aggro()) { self.one_time = param_00 + param_01; self.ot["aggro"] = param_00 + 12000; common_scripts\utility::flag_clear("flag_one_handed_help_try"); return 1; } if(param_00 > self.ot["flash"] && common_scripts\utility::cointoss() && level.ally one_handed_help_flash()) { self.one_time = param_00 + param_01; self.ot["flash"] = param_00 + 20000; common_scripts\utility::flag_clear("flag_one_handed_help_try"); return 1; } if(param_00 > self.ot["gen"] && common_scripts\utility::cointoss() && level.ally one_handed_help_gen()) { self.one_time = param_00 + param_01 / 2; self.ot["gen"] = param_00 + 15000; common_scripts\utility::flag_clear("flag_one_handed_help_try"); return 1; } common_scripts\utility::flag_clear("flag_one_handed_help_try"); return 0; } //Function Number: 32 one_handed_help_flash_ally_tracker(param_00) { self endon("death"); self endon("stop_one_handed_gunplay"); self notify("start_one_handed_help_flash_ally_tracker"); self endon("start_one_handed_help_flash_ally_tracker"); self.ot["ally_seen"] = gettime(); self.ot["vis_delay"] = param_00; for(;;) { wait(0.1); var_01 = gettime(); var_02 = self.ot["flash"] - self.ot["vis_delay"]; if(var_02 > var_01) { wait(var_02 - var_01 / 1000); continue; } if(isdefined(level.ally)) { if(maps\_utility::player_can_see_ai(level.ally)) { self.ot["ally_seen"] = var_01; } } } } //Function Number: 33 one_handed_help_gun() { self endon("death"); var_00 = []; foreach(var_02 in getweaponarray()) { if(!isdefined(var_02.low_ammo)) { var_00[var_00.size] = var_02; } } var_04 = common_scripts\utility::getclosest(level.player.origin,var_00,128); if(isdefined(var_04) && level.player get_player_speed() < 24) { var_05 = weaponclass(getsubstr(var_04.classname,7)); var_06 = level.player get_relative_direction(var_04); var_07 = randomint(level.one_vo[var_05][var_06].size); maps\_utility::smart_dialogue(level.one_vo[var_05][var_06][var_07]); return 1; } var_07 = common_scripts\utility::getclosest(self.origin,var_03,128); if(isdefined(var_07) && self.a.state != "move" && maps\_utility::player_can_see_ai(self)) { var_05 = weaponclass(getsubstr(var_07.classname,7)); var_07 = randomint(level.one_vo[var_07]["ally"].size); maps\_utility::smart_dialogue(level.one_vo[var_06]["ally"][var_07]); return 1; } return 0; } //Function Number: 34 one_handed_help_gen() { self endon("death"); if(!maps\_utility::player_can_see_ai(self) && randomint(10) < 7) { return 0; } var_00 = []; if(level.player.one_weap != "none" && level.player.one_weap != "iw5_kvahazmatknifeonearm_sp") { var_00 = ["cap_gdn_goodonammo","cap_gdn_goodonammo","cap_gdn_checkyourammo","cap_gdn_checkyourammo","cap_gdn_checkyourammo"]; } if(distancesquared(level.ally.origin,level.player.origin) < 65536) { var_00 = ["cap_gdn_hangintheremitchell","cap_gdn_weregonnamakeit"]; } if(self cansee(level.player) && level.player.one_weap == "iw5_kvahazmatknifeonearm_sp") { var_00 = common_scripts\utility::array_combine(var_00,["cap_gdn_youreouttimeto"]); } if(var_00.size > 0) { level.ally maps\_utility::smart_dialogue(common_scripts\utility::random(var_00)); return 1; } return 0; } //Function Number: 35 one_handed_help_flash() { if(animscripts\combat::waitforstancechange()) { return 0; } var_00 = common_scripts\utility::get_array_of_closest(level.player.origin,getaiarray("axis"),undefined,undefined,1024,192); if(self.grenadeammo < 1) { maps\_utility::set_grenadeammo(100); } var_01 = undefined; if(!isdefined(self.a) || !isdefined(self.a.array)) { return 0; } else if(isdefined(self.a.array["grenade_exposed"])) { var_01 = self.a.array["grenade_exposed"]; } else if(isdefined(self.a.array["exposed_grenade"])) { var_01 = self.a.array["exposed_grenade"]; } else { return 0; } if(isarray(var_01)) { var_01 = var_01[randomint(var_01.size)]; } var_02 = animscripts\combat_utility::getgrenadethrowoffset(var_01); if(level.player.ot["ally_seen"] + level.player.ot["vis_delay"] > gettime()) { return 0; } var_03 = undefined; self.script_forcegrenade = 1; foreach(var_05 in var_00) { if(self cansee(var_05)) { var_03 = self magicgrenade(self.origin + var_02,var_05 getshootatpos(),2); } if(isdefined(var_03)) { break; } } self.script_forcegrenade = 0; if(self.grenadeammo > 10) { maps\_utility::set_grenadeammo(0); } if(!isdefined(var_03)) { return 0; } thread animscripts\door::teamflashbangimmune(); thread maps\_utility::smart_dialogue(common_scripts\utility::random(["cap_gdn_flashouttakecover","cap_gdn_throwingflash"])); return 1; } //Function Number: 36 getappropanim(param_00) { } //Function Number: 37 ally_one_handed_grenade_proc() { level.player endon("stop_one_handed_gunplay"); self endon("death"); self notify("stop_ally_grenade_help"); self endon("stop_ally_grenade_help"); for(;;) { level.player common_scripts\utility::waittill_notify_or_timeout("bullet_weapon_dropped",randomfloat(1)); if(getthreatbias("axis","player") > -1024) { continue; } var_00 = common_scripts\utility::get_array_of_closest(level.player.origin,getaiarray("axis"),undefined,undefined,1024,192); if(self.grenadeammo < 1) { maps\_utility::set_grenadeammo(1); } var_01 = undefined; if(isdefined(self.a.array["grenade_exposed"])) { var_01 = self.a.array["grenade_exposed"]; } else if(isdefined(self.a.array["exposed_grenade"])) { var_01 = self.a.array["exposed_grenade"]; } if(isdefined(var_01) && isarray(var_01)) { var_01 = var_01[randomint(var_01.size)]; } var_02 = animscripts\combat_utility::getgrenadethrowoffset(var_01); var_03 = 0; self.script_forcegrenade = 1; foreach(var_05 in var_00) { animscripts\combat_utility::setactivegrenadetimer(var_05); var_03 = animscripts\combat_utility::trygrenadethrow(var_05,var_05 getshootatpos(),var_01,var_02,1,0,1); if(var_03) { if(self.grenadeweapon == "flash_grenade") { self notify("flashbang_thrown"); } self.teamflashbangimmunity = 1; maps\_utility::anim_stopanimscripted(); self notify("move_interrupt"); self.update_move_anim_type = undefined; self.a.movement = "stop"; common_scripts\utility::waittill_any("done_grenade_throw","killanimscript"); thread animscripts\move::restartmoveloop(1); maps\_utility::set_force_color("r"); break; } } self.script_forcegrenade = 0; if(var_03) { wait(randomfloatrange(8,10)); self.teamflashbangimmunity = undefined; continue; } wait(0.25); } } //Function Number: 38 one_handed_help_aggro() { self endon("death"); var_00 = []; foreach(var_02 in common_scripts\utility::get_array_of_closest(level.player.origin,getaiarray("axis"),undefined,undefined,384)) { if(isplayer(var_02.enemy)) { var_00[var_00.size] = var_02; } } foreach(var_02 in var_00) { if(self cansee(var_02)) { self.aggressivemode = 1; maps\_utility::set_favoriteenemy(var_02); var_02 thread opfor_help_aggro(); return 1; } } return 0; } //Function Number: 39 opfor_help_aggro() { self endon("aggro_cleanup"); thread opfor_help_aggro_cleanup(5); self.aggro_target = 1; self.health = 1; self waittill("death",var_00); level.ally.aggressivemode = undefined; if(!isdefined(var_00) || isplayer(var_00)) { return; } wait(randomfloatrange(0.25,0.75)); level.ally maps\_utility::smart_dialogue(common_scripts\utility::random(["cap_gdn_gotyourback","cap_gdn_igotchamitchell","cap_gdn_thankmelater"])); } //Function Number: 40 opfor_help_aggro_cleanup(param_00) { self endon("death"); wait(param_00); self.aggro_target = undefined; self.health = 100; level.player.ot["aggro"] = 0; level.ally.aggressivemode = undefined; level.ally maps\_utility::set_favoriteenemy(undefined); self notify("aggro_cleanup"); } //Function Number: 41 get_player_speed() { self endon("death"); var_00 = self getentityvelocity(); return sqrt(squared(var_00[0]) + squared(var_00[1])); } //Function Number: 42 get_relative_direction(param_00) { var_01 = vectortoangles(vectornormalize(anglestoforward(animscripts\battlechatter::getrelativeangles(self)))); var_02 = vectortoangles(param_00.origin - self.origin); var_03 = int(var_01[1] - var_02[1] + 360) % 360; if(var_03 > 315 || var_03 < 45) { return "twelve"; } if(var_03 > 225) { return "nine"; } if(var_03 > 135) { return "six"; } return "three"; } //Function Number: 43 one_handed_help_vo_setup() { if(isdefined(level.one_vo)) { return; } var_00 = []; var_00["smg"] = []; var_00["pistol"] = []; var_00["pistol"]["twelve"] = ["cap_gdn_pistolatyour12","cap_gdn_weaponatyour12"]; var_00["pistol"]["nine"] = ["cap_gdn_pistolatyour9","cap_gdn_weaponatyour9"]; var_00["pistol"]["six"] = ["cap_gdn_pistolatyour6","cap_gdn_weaponatyour6"]; var_00["pistol"]["three"] = ["cap_gdn_pistolatyour3","cap_gdn_weaponatyour3"]; var_00["smg"]["twelve"] = ["cap_gdn_smgatyour12","cap_gdn_weaponatyour12"]; var_00["smg"]["nine"] = ["cap_gdn_smgatyour9","cap_gdn_weaponatyour9"]; var_00["smg"]["six"] = ["cap_gdn_smgatyour6","cap_gdn_weaponatyour6"]; var_00["smg"]["three"] = ["cap_gdn_smgatyour3","cap_gdn_weaponatyour3"]; var_00["pistol"]["ally"] = ["cap_gdn_foundapistol","cap_gdn_pistolhere","cap_gdn_weaponsoverhere","cap_gdn_extragunsheremitchell"]; var_00["smg"]["ally"] = ["cap_gdn_foundansmg","cap_gdn_smghere","cap_gdn_weaponsoverhere","cap_gdn_extragunsheremitchell"]; level.one_vo = var_00; } //Function Number: 44 opfor_death_mod() { self endon("stop_opfor_one_handed"); level.player endon("stop_one_handed_gunplay"); self waittill("death",var_00,var_01,var_02); var_03 = self.enemy; if(!isdefined(var_03)) { var_03 = self; } if(isremovedentity(self)) { return; } maps\_utility::place_weapon_on(one_handed_get_base_weapon(self.weapon,1,"iw5_titan45onearmgundown_sp_xmags"),"right"); if(isplayer(var_00) && var_02 == "iw5_kvahazmatknifeonearm_sp") { self notify("opfor_melee_kill"); self.dropweapon = 0; level.player one_handed_melee_take_weapon(self.weapon); } if(!isdefined(level.one_handed_help)) { return 0; } wait(randomfloatrange(0.25,0.75)); var_04 = gettime(); if(var_04 > level.player.ot["p_kill"] && isplayer(var_00) && var_03 == level.ally && common_scripts\utility::cointoss()) { level.player.ot["p_kill"] = var_04 + 15000; level.ally maps\_utility::smart_dialogue(common_scripts\utility::random(["cap_gdn_goodshot","cap_gdn_thanksforthesave"])); return; } if(var_04 > level.player.ot["a_kill"] && var_04 > level.player.one_time && isplayer(var_03) && var_00 == level.ally && common_scripts\utility::cointoss()) { level.player.ot["a_kill"] = var_04 + 15000; level.ally maps\_utility::smart_dialogue(common_scripts\utility::random(["cap_gdn_thankmelater","cap_gdn_gotyourback","cap_gdn_igotchamitchell"])); } } //Function Number: 45 opfor_ammo_drop_mod() { self endon("stop_opfor_one_handed"); level.player endon("stop_one_handed_gunplay"); self endon("opfor_melee_kill"); self waittill("weapon_dropped",var_00); wait(0.05); if(!isdefined(var_00)) { return; } var_01 = getsubstr(var_00.classname,7); if(isdefined(self.dropweapon) && !self.dropweapon) { var_00 delete(); return; } if(weaponclass(var_01) == "pistol" || weaponclass(var_01) == "smg") { var_00 itemweaponsetammo(int(randomfloatrange(0.7,1) * weaponclipsize(var_01)),0); return; } var_00 delete(); } //Function Number: 46 door_setup(param_00,param_01,param_02) { var_03 = undefined; if(isstring(param_00)) { var_03 = getent(param_00,"targetname"); } else { var_03 = param_00; } if(var_03.classname != "script_model" && var_03.classname != "script_brushmodel") { } var_04 = undefined; if(isdefined(var_03.target)) { var_05 = getentarray(var_03.target,"targetname"); foreach(var_07 in var_05) { if(var_07.classname == "script_brushmodel") { var_04 = var_07; continue; } if(var_07.classname == "script_origin") { if(!isdefined(param_02)) { var_03.hinge = var_07; var_03.hinge.tag_name = param_02; var_03 linkto(var_03.hinge); } } } } if(isdefined(param_02)) { var_03.hinge = common_scripts\utility::spawn_tag_origin(); var_03.hinge.origin = var_03 gettagorigin(param_02); var_03.hinge.angles = var_03 gettagangles(param_02); if(!isdefined(param_01)) { var_03 linkto(var_03.hinge); } } if(isdefined(var_04)) { var_03.col_brush = var_04; if(isdefined(param_02)) { var_03.col_brush linkto(var_03,param_02); } else { var_03.col_brush linkto(var_03); } } else if(var_03.classname == "script_brushmodel") { var_03.col_brush = var_03; } var_03.original_angles = var_03.angles; if(isdefined(param_01)) { var_03 maps\_utility::assign_animtree(param_01); } return var_03; } //Function Number: 47 door_close(param_00,param_01,param_02) { var_03 = self; if(isdefined(self._lastanimtime)) { self._lastanimtime = undefined; self stopuseanimtree(); } var_04 = undefined; if(isdefined(var_03.hinge)) { if(!var_03 islinked()) { var_03 linkto(var_03.hinge); } var_04 = var_03.hinge; } else { var_04 = var_03; } var_05 = 0.05; if(isdefined(param_01)) { var_05 = param_01; } if(isdefined(param_00)) { var_04 rotateyaw(param_00,var_05); } else { var_04 rotateto(var_03.original_angles,var_05); } if(isdefined(param_02)) { wait(param_02); } else { wait(var_05); } if(isdefined(var_03.col_brush)) { var_03.col_brush disconnectpaths(); } } //Function Number: 48 door_open(param_00,param_01,param_02) { var_03 = self; if(isdefined(self._lastanimtime)) { self._lastanimtime = undefined; self stopuseanimtree(); } var_04 = undefined; if(isdefined(var_03.hinge)) { if(!var_03 islinked()) { var_03 linkto(var_03.hinge); } var_04 = var_03.hinge; } else { var_04 = var_03; } var_05 = undefined; var_06 = undefined; if(isarray(param_00)) { var_05 = param_00[0]; var_06 = param_00[1]; } else { var_05 = param_00; } var_07 = 0.05; if(isdefined(param_01)) { var_07 = param_01; } var_04 rotateyaw(var_05,var_07); if(isdefined(param_02)) { wait(param_02); } else { wait(var_07); } if(isdefined(var_03.col_brush)) { var_03.col_brush connectpaths(); } if(isdefined(param_02) && param_02 < var_07) { wait(var_07 - param_02); } wait(0.05); if(isdefined(var_06)) { var_04 rotateyaw(var_06,2.5,0.05,2.45); } } //Function Number: 49 door_lower(param_00,param_01,param_02) { self moveto(param_00,param_01); if(isdefined(param_02)) { wait(param_02); } else { wait(param_01); } self.col_brush disconnectpaths(); } //Function Number: 50 door_raise(param_00,param_01,param_02) { self moveto(param_00,param_01); if(isdefined(param_02)) { wait(param_02); } else { wait(param_01); } self.col_brush connectpaths(); } //Function Number: 51 captured_caravan_spawner(param_00,param_01,param_02,param_03,param_04) { level endon("stop_caravan_spawner"); if(level.currentgen) { if(isdefined(param_04)) { var_05 = tff_get_zone_cleanup_notify(param_04); if(var_05 != "") { level endon(var_05); } } } var_06 = 1; if(!isdefined(param_02)) { param_02 = 2; } if(!isdefined(param_03)) { param_03 = 3; } for(;;) { var_07 = maps\_vehicle::spawn_vehicle_from_targetname_and_drive(param_00); if(level.currentgen) { if(isdefined(param_04)) { var_07 thread tff_cleanup_vehicle(param_04); } } var_07 thread captured_caravan_truck_remover(); wait(randomfloatrange(param_02,param_03)); if(param_00 == "intro_drive_trucks") { thread soundscripts\_snd::snd_message("aud_intro_caravan_passby"); } if(isdefined(param_01)) { if(var_06 >= param_01) { break; } var_06 = var_06 + 1; } } } //Function Number: 52 captured_caravan_truck_remover(param_00) { self waittill("reached_end_node"); self delete(); } //Function Number: 53 debug_show_pos(param_00,param_01,param_02,param_03) { self notify("stop_debug_show_pos"); self endon("stop_debug_show_pos"); self endon("death"); if(!isdefined(param_00)) { param_00 = 8; } if(!isdefined(param_01)) { param_01 = 0; } if(!isdefined(param_02)) { param_02 = 0; } if(!isdefined(param_03)) { param_03 = 1; } for(;;) { self notify("stop_circle"); maps\_utility::draw_circle_until_notify(self.origin,param_00,param_01,param_02,param_03,self,"stop_circle"); wait(0.05); } } //Function Number: 54 debug_text(param_00,param_01) { self notify("stop_debug_show_pos"); self endon("stop_debug_show_pos"); self endon("death"); if(!isdefined(param_00)) { param_00 = (1,1,1); } if(isdefined(param_01)) { thread maps\_utility::notify_delay("stop_debug_show_pos",param_01); } wait(0.05); } //Function Number: 55 debug_show_pos_once(param_00,param_01,param_02,param_03,param_04,param_05) { if(!isdefined(param_01)) { param_01 = 8; } if(!isdefined(param_02)) { param_02 = 0; } if(!isdefined(param_03)) { param_03 = 0; } if(!isdefined(param_04)) { param_04 = 1; } maps\_utility::draw_circle_until_notify(param_00,param_01,param_02,param_03,param_04,level,param_05); wait(0.05); } //Function Number: 56 debug_show_vec(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { if(!isdefined(param_02)) { param_02 = (1,0,0); } if(!isdefined(param_03)) { var_07 = 100; } if(isdefined(param_04)) { thread maps\_debug::print3ddraw(param_00,param_04,param_02,param_05,param_06); } thread maps\_debug::drawarrow(param_00,param_01,param_02,param_03); wait(0.05 * param_03); self notify("stop_print3ddraw"); } //Function Number: 57 mission_timer() { if(!getdvarint("timer_enabled")) { return; } var_00 = 1; level.time_array = []; level.location_array = []; level.display_array = []; level.time_display_array = []; var_01 = mission_timer_hud_creator(10,420); var_01 settimerstatic(var_00); for(;;) { var_02 = level.location_array.size; for(;;) { wait(1); var_01 settimerstatic(var_00); if(var_02 != level.location_array.size) { level.time_array[level.time_array.size] = var_00; var_00 = var_00 + 1; break; } var_00 = var_00 + 1; } if(level.location_array[level.location_array.size - 1] == "end") { break; } } level notify("new_event_message"); var_03 = mission_timer_hud_creator(380,30); var_03 settext("Event Timings"); var_04 = 0; foreach(var_06 in level.display_array) { var_06 settext(level.location_array[var_04] + " " + "="); var_04 = var_04 + 1; } var_04 = 0; foreach(var_09 in level.time_display_array) { var_09 settimerstatic(level.time_array[var_04]); var_04 = var_04 + 1; } } //Function Number: 58 mission_timer_event(param_00) { if(!getdvarint("timer_enabled")) { return; } level.location_array[level.location_array.size] = param_00; var_01 = level.location_array.size; var_02 = var_01 * 20; var_02 = var_02 + 50; while(level.time_array.size != level.location_array.size) { wait(0.05); } var_03 = mission_timer_hud_creator(300,var_02); level.display_array[level.display_array.size] = var_03; var_03 = mission_timer_hud_creator(400,var_02); level.time_display_array[level.time_display_array.size] = var_03; } //Function Number: 59 mission_timer_hud_creator(param_00,param_01) { var_02 = newhudelem(); var_02.x = param_00; var_02.y = param_01; var_02.sort = 0; var_02.alignx = "right"; var_02.aligny = "middle"; var_02.fontscale = 2; var_02.font = "objective"; var_02.color = (1,1,1); return var_02; } //Function Number: 60 waittill_entity_activate_looking_at(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09) { var_0A = 0.5; if(isdefined(param_04)) { var_0A = param_04; } var_0B = 64; if(isdefined(param_03)) { var_0B = param_03; } if(!isdefined(param_05)) { param_05 = 1; } else { param_05 = 0; } var_0C = param_00; if(isdefined(param_06)) { var_0C = param_00 common_scripts\utility::spawn_tag_origin(); var_0C linkto(param_00,param_06,(0,0,0),(0,0,0)); } if(!isdefined(param_07)) { param_07 = 5; } if(isdefined(param_02)) { var_0D = param_02; } else { var_0D = "flag_waittill_entity_activate_looking_at"; } if(!common_scripts\utility::flag_exist(var_0D)) { common_scripts\utility::flag_init(var_0D); } var_0E = 0; var_0F = 0; for(;;) { if(isdefined(param_09)) { common_scripts\utility::flag_wait(param_09); } if((isdefined(param_01) && param_01 != "melee" && level.player meleebuttonpressed()) || level.player isthrowinggrenade() || !level.player isonground() || level.player getstance() == "prone") { common_scripts\utility::flag_clear(var_0D); var_0F = 0; level.player enableweaponpickup(); } else if(level.player maps\_utility::player_looking_at(var_0C.origin,var_0A,1)) { var_10 = undefined; if(param_05) { var_10 = level.player geteye(); } else { var_10 = level.player.origin; } if(isdefined(param_08)) { if(common_scripts\utility::flag(param_08)) { if(!common_scripts\utility::flag(var_0D)) { var_0E = 1; } } else { common_scripts\utility::flag_clear(var_0D); var_0F = 0; level.player enableweaponpickup(); } } else if(distance(var_10,var_0C.origin) <= var_0B) { if(!common_scripts\utility::flag(var_0D)) { var_0E = 1; } } else { common_scripts\utility::flag_clear(var_0D); var_0F = 0; level.player enableweaponpickup(); } } else { common_scripts\utility::flag_clear(var_0D); var_0F = 0; level.player enableweaponpickup(); } if(isdefined(param_01)) { if(param_01 == "melee" && level.player meleebuttonpressed()) { var_0F++; } } else if(level.player usebuttonpressed()) { var_0F++; } if(common_scripts\utility::flag(var_0D) && var_0F >= param_07) { break; } if(var_0E) { common_scripts\utility::flag_set(var_0D); if(isdefined(param_02)) { maps\_utility::display_hint_timeout(param_02); } var_0E = 0; level.player disableweaponpickup(); } wait(0.05); } level.player enableweaponpickup(); common_scripts\utility::flag_clear(var_0D); if(isdefined(param_06)) { var_0C delete(); } } //Function Number: 61 ignore_everything() { if(isdefined(self.script_drone)) { return; } if(isdefined(self._ignore_settings_old)) { unignore_everything(); } self._ignore_settings_old = []; self.disableplayeradsloscheck = save_ignore_setting(self.disableplayeradsloscheck,"disableplayeradsloscheck",1); self.ignoreall = save_ignore_setting(self.ignoreall,"ignoreall",1); self.ignoreme = save_ignore_setting(self.ignoreme,"ignoreme",1); self.grenadeawareness = save_ignore_setting(self.grenadeawareness,"grenadeawareness",0); self.ignoreexplosionevents = save_ignore_setting(self.ignoreexplosionevents,"ignoreexplosionevents",1); self.ignorerandombulletdamage = save_ignore_setting(self.ignorerandombulletdamage,"ignorerandombulletdamage",1); self.ignoresuppression = save_ignore_setting(self.ignoresuppression,"ignoresuppression",1); self.dontavoidplayer = save_ignore_setting(self.dontavoidplayer,"dontavoidplayer",1); self.newenemyreactiondistsq = save_ignore_setting(self.newenemyreactiondistsq,"newEnemyReactionDistSq",0); self.disablebulletwhizbyreaction = save_ignore_setting(self.disablebulletwhizbyreaction,"disableBulletWhizbyReaction",1); self.disablefriendlyfirereaction = save_ignore_setting(self.disablefriendlyfirereaction,"disableFriendlyFireReaction",1); self.dontmelee = save_ignore_setting(self.dontmelee,"dontMelee",1); self.flashbangimmunity = save_ignore_setting(self.flashbangimmunity,"flashBangImmunity",1); self.dodangerreact = save_ignore_setting(self.dodangerreact,"doDangerReact",0); self.neversprintforvariation = save_ignore_setting(self.neversprintforvariation,"neverSprintForVariation",1); self.a.disablepain = save_ignore_setting(self.a.disablepain,"a.disablePain",1); self.allowpain = save_ignore_setting(self.allowpain,"allowPain",0); self.ignoresonicaoe = save_ignore_setting(self.ignoresonicaoe,"IgnoreSonicAoE",1); self pushplayer(1); } //Function Number: 62 save_ignore_setting(param_00,param_01,param_02) { if(isdefined(param_00)) { self._ignore_settings_old[param_01] = param_00; } else { self._ignore_settings_old[param_01] = "none"; } return param_02; } //Function Number: 63 unignore_everything(param_00) { if(isremovedentity(self)) { return; } if(isdefined(self.script_drone)) { return; } if(isdefined(param_00) && param_00) { if(isdefined(self._ignore_settings_old)) { self._ignore_settings_old = undefined; } } self.disableplayeradsloscheck = restore_ignore_setting("disableplayeradsloscheck",0); self.ignoreall = restore_ignore_setting("ignoreall",0); self.ignoreme = restore_ignore_setting("ignoreme",0); self.grenadeawareness = restore_ignore_setting("grenadeawareness",1); self.ignoreexplosionevents = restore_ignore_setting("ignoreexplosionevents",0); self.ignorerandombulletdamage = restore_ignore_setting("ignorerandombulletdamage",0); self.ignoresuppression = restore_ignore_setting("ignoresuppression",0); self.dontavoidplayer = restore_ignore_setting("dontavoidplayer",0); self.newenemyreactiondistsq = restore_ignore_setting("newEnemyReactionDistSq",262144); self.disablebulletwhizbyreaction = restore_ignore_setting("disableBulletWhizbyReaction",undefined); self.disablefriendlyfirereaction = restore_ignore_setting("disableFriendlyFireReaction",undefined); self.dontmelee = restore_ignore_setting("dontMelee",undefined); self.flashbangimmunity = restore_ignore_setting("flashBangImmunity",undefined); self.dodangerreact = restore_ignore_setting("doDangerReact",1); self.neversprintforvariation = restore_ignore_setting("neverSprintForVariation",undefined); self.a.disablepain = restore_ignore_setting("a.disablePain",0); self.allowpain = restore_ignore_setting("allowPain",1); self._ignore_settings_old = undefined; } //Function Number: 64 restore_ignore_setting(param_00,param_01) { if(isdefined(self._ignore_settings_old)) { if(isstring(self._ignore_settings_old[param_00]) && self._ignore_settings_old[param_00] == "none") { return param_01; } else { return self._ignore_settings_old[param_00]; } } return param_01; } //Function Number: 65 cap_civilian_damage_proc(param_00) { level endon("start_autopsy_enter"); level.captured_mission_failed = ""; self.no_friendly_fire_penalty = 1; if(isdefined(param_00)) { self.health = param_00; } else { self.health = 300; } for(;;) { self waittill("damage",var_01,var_02); if(isplayer(var_02)) { if(self.health - var_01 <= 0) { if(level.captured_mission_failed != "true") { level.captured_mission_failed = "true"; if(!level.missionfailed) { setdvar("ui_deadquote",&"CAPTURED_FAIL_UNARMED"); maps\_utility::missionfailedwrapper(); } } } continue; } self kill(var_02 geteye(),var_02); } } //Function Number: 66 kill_no_react() { if(!isalive(self)) { return; } if(isdefined(self.magic_bullet_shield)) { maps\_utility::stop_magic_bullet_shield(); } self.allowdeath = 1; self.a.nodeath = 1; maps\_utility::set_battlechatter(0); self kill(); } //Function Number: 67 start_point_is_after(param_00,param_01) { return start_point_check("after",param_00,param_01); } //Function Number: 68 start_point_is_before(param_00,param_01) { return start_point_check("before",param_00,param_01); } //Function Number: 69 start_point_is_between(param_00,param_01) { return start_point_check("between",param_00,param_01); } //Function Number: 70 start_point_check(param_00,param_01,param_02) { var_03 = undefined; var_04 = []; if(!isarray(param_01)) { var_04[0] = param_01; } else { var_04 = param_01; } var_05 = var_04.size; for(var_06 = 0;var_06 < var_04.size;var_06++) { var_04[var_06] = tolower(var_04[var_06]); } var_07 = getarraykeys(level.start_arrays); var_08 = []; for(var_06 = 0;var_06 < var_07.size;var_06++) { for(var_09 = 0;var_09 < var_04.size;var_09++) { if(var_07[var_06] == var_04[var_09]) { var_08 = common_scripts\utility::array_add(var_08,var_06); var_04 = maps\_utility::array_remove_index(var_04,var_09); break; } } if(var_07[var_06] == level.start_point) { var_03 = var_06; } } switch(param_00) { case "before": if(isdefined(param_02) && param_02 && var_03 <= var_08[0]) { return 1; } else if(var_03 < var_08[0]) { return 1; } break; case "between": if(isdefined(param_02) && param_02 && var_03 >= var_08[0] && var_03 <= var_08[1]) { return 1; } else if(var_03 > var_08[0] && var_03 < var_08[1]) { return 1; } break; case "after": if(isdefined(param_02) && param_02 && var_03 >= var_08[0]) { return 1; } else if(var_03 > var_08[0]) { return 1; } break; } return 0; } //Function Number: 71 waittill_notify_func(param_00,param_01,param_02,param_03,param_04,param_05) { self waittill(param_00); if(isdefined(param_05)) { self [[ param_01 ]](param_02,param_03,param_04,param_05); return; } if(isdefined(param_04)) { self [[ param_01 ]](param_02,param_03,param_04); return; } if(isdefined(param_03)) { self [[ param_01 ]](param_02,param_03); return; } if(isdefined(param_02)) { self [[ param_01 ]](param_02); return; } self [[ param_01 ]](); } //Function Number: 72 waittill_notify_func_ent(param_00,param_01,param_02,param_03,param_04,param_05,param_06) { param_00 waittill(param_01); if(isdefined(param_06)) { self [[ param_02 ]](param_03,param_04,param_05,param_06); return; } if(isdefined(param_05)) { self [[ param_02 ]](param_03,param_04,param_05); return; } if(isdefined(param_04)) { self [[ param_02 ]](param_03,param_04); return; } if(isdefined(param_03)) { self [[ param_02 ]](param_03); return; } self [[ param_02 ]](); } //Function Number: 73 ambient_fan_rotate() { self rotatepitch(randomint(360),0.1); for(;;) { self rotatepitch(360,3); wait(3); } } //Function Number: 74 physics_bodies_on(param_00,param_01,param_02) { var_03 = common_scripts\utility::getstructarray(param_00,"script_noteworthy"); if(isdefined(param_01)) { if(param_01 > 0) { wait(param_01); } } if(!isdefined(level.hanging_bodies)) { level.hanging_bodies = []; } if(isdefined(param_02)) { var_04 = ["cap_hanging_bodybag_clean","cap_hanging_bodybag_clean_b","cap_hanging_bodybag_clean_c","cap_hanging_bodybag_02_clean","cap_hanging_bodybag_02_clean_b","cap_hanging_bodybag_02_clean_c"]; } else { var_04 = ["cap_hanging_bodybag","cap_hanging_bodybag_02","cap_hanging_bodybag_b","cap_hanging_bodybag_c","cap_hanging_bodybag_02_b","cap_hanging_bodybag_02_c"]; } foreach(var_06 in var_03) { var_07 = common_scripts\utility::random(var_04); var_08 = spawn("script_model",var_06.origin); var_08 setmodel(var_07); var_08.angles = var_06.angles; level.hanging_bodies = common_scripts\utility::array_add(level.hanging_bodies,var_08); } } //Function Number: 75 physics_bodies_off() { if(isdefined(level.hanging_bodies)) { var_00 = []; foreach(var_02 in level.hanging_bodies) { var_02 physicsstop(); var_02 delete(); level.hanging_bodies = common_scripts\utility::array_remove(level.hanging_bodies,var_02); } } } //Function Number: 76 captured_hint_radius(param_00,param_01,param_02,param_03) { } //Function Number: 77 tprintln(param_00,param_01) { if(!isdefined(level.debugging_on)) { return 0; } return 1; } //Function Number: 78 jkuprint(param_00,param_01,param_02) { setdvarifuninitialized("jkudebug",0); if(!isdefined(param_01)) { param_01 = "onscreen"; } if(!isdefined(param_02)) { param_02 = 100; } if(getdvarint("jkudebug") == 1) { switch(param_01) { case "onscreen": iprintln(param_00); break; case "3d": if(!isdefined(self.origin)) { break; } break; case "3dattached": thread jkuprint3dattached(param_00,param_02); break; case "console": break; case "bold": iprintlnbold(param_00); break; default: break; } } } //Function Number: 79 jkuprint3dattached(param_00,param_01) { if(!isdefined(self)) { } self endon("death"); self endon("jkuprint_stop"); for(var_02 = 0;var_02 < param_01;var_02++) { wait 0.05; } } //Function Number: 80 jkupoint(param_00,param_01,param_02) { setdvarifuninitialized("jkudebug",0); if(getdvarint("jkudebug") == 1) { if(!isdefined(self.origin)) { return; } else { var_03 = self.origin; } if(!isdefined(param_00)) { param_00 = 6; } if(!isdefined(param_01)) { param_01 = (1,1,1); } if(!isdefined(param_02)) { param_02 = 400; } } } //Function Number: 81 jkuline(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07) { setdvarifuninitialized("jkudebug",0); if(getdvarint("jkudebug") == 1) { if(!isdefined(param_02)) { param_02 = (1,1,1); } if(!isdefined(param_03)) { param_03 = 1; } if(!isdefined(param_04)) { param_04 = 0; } if(!isdefined(param_05)) { param_05 = 200; } if(isdefined(param_06)) { if(isdefined(param_07)) { var_08 = 40; param_01 = self.origin + anglestoforward(self.angles) * var_08; } else { var_08 = distance2d(param_01,param_02); } var_09 = var_08 * 0.2; var_0A = var_08 * 0.5; var_0B = var_08 * 0.175; var_0C = param_00 - param_01; var_0D = param_01 + anglestoforward(vectortoangles(var_0C)) * var_09; var_0E = param_01 + anglestoforward(vectortoangles(var_0C)) * var_0A; return; } } } //Function Number: 82 tff_get_zone_cleanup_notify(param_00) { var_01 = ""; switch(param_00) { case "intro_drive": var_01 = "tff_pre_intro_drive_to_s2walk"; break; case "s2walk": var_01 = "tff_pre_s2walk_to_interrogate"; break; case "helipad": var_01 = "tff_pre_helipad_to_mechbattle"; break; } return var_01; } //Function Number: 83 tff_cleanup_vehicle(param_00) { var_01 = tff_get_zone_cleanup_notify(param_00); if(var_01 == "") { return; } level waittill(var_01); if(isarray(self)) { foreach(var_03 in self) { if(!isdefined(var_03)) { return; } if(isremovedentity(var_03)) { return; } if(var_03 maps\_vehicle::isvehicle()) { var_03 maps\_vehicle_code::_freevehicle(); } var_03 delete(); } return; } if(!isdefined(self)) { return; } if(isremovedentity(self)) { return; } if(maps\_vehicle::isvehicle()) { maps\_vehicle_code::_freevehicle(); } self delete(); } //Function Number: 84 captured_player_cuffs() { var_00 = self; var_01 = spawn("script_model",(0,0,0)); var_01 setmodel("s1_vm_handcuffs"); var_01 linkto(var_00,"tag_weapon_left",(0,0,0),(0,0,0)); return var_01; } //Function Number: 85 captured_worker_weapons() { var_00 = self; var_01 = spawn("script_model",var_00.origin); var_01 setmodel("npc_titan45_nocamo"); var_01 linkto(var_00,"tag_stowed_hip_rear",(-12,10,-2),(30,150,0)); var_00.no_friendly_fire_penalty = 1; var_00 waittill("death"); var_01 delete(); }