mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
4957 lines
126 KiB
Plaintext
4957 lines
126 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: recovery_utility.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 265
|
|
* Decompile Time: 3900 ms
|
|
* Timestamp: 4/22/2024 2:34:57 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
play_rumble_funeral_gun_salute()
|
|
{
|
|
level.player common_scripts\utility::delaycall(0.8,::playrumbleonentity,"damage_light");
|
|
level.player common_scripts\utility::delaycall(4.9,::playrumbleonentity,"damage_light");
|
|
level.player common_scripts\utility::delaycall(8.5,::playrumbleonentity,"heavy_3s");
|
|
}
|
|
|
|
//Function Number: 2
|
|
play_rumble_training_s1_mute_breach()
|
|
{
|
|
level.player common_scripts\utility::delaycall(1.8,::playrumbleonentity,"heavy_1s");
|
|
level.player common_scripts\utility::delaycall(2.2,::playrumbleonentity,"heavy_1s");
|
|
}
|
|
|
|
//Function Number: 3
|
|
play_rumble_training_s1_reload_malfunction()
|
|
{
|
|
level.player common_scripts\utility::delaycall(0.5,::playrumbleonentity,"heavy_3s");
|
|
}
|
|
|
|
//Function Number: 4
|
|
play_rumble_training_s1_president_load_fail()
|
|
{
|
|
level.player common_scripts\utility::delaycall(2.7,::playrumbleonentity,"heavy_3s");
|
|
level.player common_scripts\utility::delaycall(5.8,::playrumbleonentity,"light_1s");
|
|
level.player common_scripts\utility::delaycall(6.8,::playrumbleonentity,"heavy_1s");
|
|
wait(21);
|
|
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
|
|
level.player.rumble_entity.intensity = 0.1;
|
|
level.player.rumble_entity common_scripts\utility::delaycall(0.5,::delete);
|
|
wait(12);
|
|
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
|
|
level.player.rumble_entity.intensity = 0.08;
|
|
level.player.rumble_entity common_scripts\utility::delaycall(1.5,::delete);
|
|
}
|
|
|
|
//Function Number: 5
|
|
play_rumble_elevator()
|
|
{
|
|
wait(1.4);
|
|
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
|
|
level.player.rumble_entity.intensity = 0.08;
|
|
wait(15);
|
|
level.player stoprumble("steady_rumble");
|
|
level.player.rumble_entity delete();
|
|
}
|
|
|
|
//Function Number: 6
|
|
play_rumble_jeep_ride()
|
|
{
|
|
level.player.rumble_entity = maps\_utility::get_rumble_ent("steady_rumble");
|
|
level.player.rumble_entity.intensity = 0.088;
|
|
wait(94);
|
|
level.player.rumble_entity.intensity = 0.08;
|
|
wait(14);
|
|
level.player stoprumble("steady_rumble");
|
|
level.player.rumble_entity delete();
|
|
wait(1.3);
|
|
level.player playrumbleonentity("heavy_1s");
|
|
wait(0.3);
|
|
level.player stoprumble("heavy_1s");
|
|
}
|
|
|
|
//Function Number: 7
|
|
play_rumble_training_s2_president_load()
|
|
{
|
|
wait(1.5);
|
|
level.player playrumbleonentity("heavy_1s");
|
|
wait(0.5);
|
|
level.player stoprumble("heavy_1s");
|
|
wait(6.3);
|
|
level.player playrumbleonentity("heavy_1s");
|
|
wait(0.2);
|
|
level.player stoprumble("heavy_1s");
|
|
wait(0.6);
|
|
level.player playrumbleonentity("heavy_1s");
|
|
wait(0.1);
|
|
level.player stoprumble("heavy_1s");
|
|
wait(0.1);
|
|
level.player playrumbleonentity("heavy_1s");
|
|
wait(0.1);
|
|
level.player stoprumble("heavy_1s");
|
|
}
|
|
|
|
//Function Number: 8
|
|
play_rumble_walker_tank()
|
|
{
|
|
for(var_00 = 1;var_00 < 10;var_00++)
|
|
{
|
|
level waittill("titan_rumble");
|
|
if(var_00 == 3 || var_00 == 4 || var_00 == 5 || var_00 == 6 || var_00 == 7)
|
|
{
|
|
level.player playrumbleonentity("heavy_1s");
|
|
wait(0.75);
|
|
level.player stoprumble("heavy_1s");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
play_rumble_arm_repair()
|
|
{
|
|
common_scripts\utility::flag_wait("tour_exo_arm");
|
|
wait(3.6);
|
|
level.player playrumbleonentity("steady_rumble");
|
|
wait(0.9);
|
|
level.player stoprumble("steady_rumble");
|
|
wait(1.7);
|
|
level.player playrumbleonentity("steady_rumble");
|
|
wait(0.9);
|
|
level.player stoprumble("steady_rumble");
|
|
wait(3.4);
|
|
level.player playrumbleonentity("damage_light");
|
|
wait(0.7);
|
|
level.player stoprumble("damage_light");
|
|
common_scripts\utility::flag_wait("arm_repair_attempt_1");
|
|
common_scripts\utility::flag_wait("arm_repair_attempt_2");
|
|
common_scripts\utility::flag_wait("arm_repair_attempt_3");
|
|
common_scripts\utility::flag_waitopen("arm_repair_attempt_3");
|
|
wait(2.2);
|
|
level.player playrumbleonentity("damage_light");
|
|
wait(0.5);
|
|
level.player stoprumble("damage_light");
|
|
}
|
|
|
|
//Function Number: 10
|
|
play_camera_shake_tour_ride()
|
|
{
|
|
var_00 = 0.5;
|
|
var_01 = 11;
|
|
var_02 = 30.3;
|
|
var_03 = 7.3;
|
|
var_04 = 10.2;
|
|
var_05 = 12.5;
|
|
var_06 = 11.2;
|
|
var_07 = 9.3;
|
|
var_08 = 3;
|
|
var_09 = 0.5;
|
|
var_0A = 1.5;
|
|
var_0B = 1.25;
|
|
var_0C = 1;
|
|
var_0D = 0;
|
|
var_0E = 1;
|
|
var_0F = 0.8;
|
|
var_10 = 0.6;
|
|
level.player screenshakeonentity(var_0C,var_0C,var_0C,var_00,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_00);
|
|
level.player screenshakeonentity(var_0A,var_0A,var_0A,var_01,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_01);
|
|
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_02,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_02);
|
|
level.player screenshakeonentity(var_0C,var_0C,var_0C,var_03,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_03);
|
|
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_04,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_04);
|
|
level.player screenshakeonentity(var_0A,var_0A,var_0A,var_05,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_05);
|
|
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_06,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_06);
|
|
level.player screenshakeonentity(var_0A,var_0A,var_0A,var_07,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_07);
|
|
level.player screenshakeonentity(var_0B,var_0B,var_0B,var_08,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_08);
|
|
level.player screenshakeonentity(var_0C,var_0C,var_0C,var_09,0,0,0,var_0E,var_0F,var_10);
|
|
wait(var_09);
|
|
}
|
|
|
|
//Function Number: 11
|
|
mission_out_of_bounds_fail()
|
|
{
|
|
common_scripts\utility::flag_wait("training_player_left_encounter");
|
|
if(!common_scripts\utility::flag("flag_player_using_drone"))
|
|
{
|
|
common_scripts\utility::flag_clear("training_out_of_bounds_warning");
|
|
if(!common_scripts\utility::flag("training_round_2"))
|
|
{
|
|
if(!common_scripts\utility::flag("training_s1_end_anim_started"))
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_ABANDONED");
|
|
}
|
|
else
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_OBJECTIVE_FAIL_JEEP_BOARD");
|
|
}
|
|
}
|
|
else if(!common_scripts\utility::flag("training_s2_golf_course_vehicles"))
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_ABANDONED");
|
|
}
|
|
else
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_OBJECTIVE_FAIL_JEEP_BOARD");
|
|
}
|
|
|
|
setblur(30,2);
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
mission_warn_out_of_bounds_fail()
|
|
{
|
|
level endon("training_player_left_encounter");
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::flag_wait("training_out_of_bounds_warning");
|
|
if(!common_scripts\utility::flag("flag_player_using_drone"))
|
|
{
|
|
thread maps\_utility::display_hint("warning_prompt");
|
|
}
|
|
|
|
common_scripts\utility::flag_waitopen("training_out_of_bounds_warning");
|
|
}
|
|
}
|
|
|
|
//Function Number: 13
|
|
bloody_death(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
if(!issentient(self) || !isalive(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.bloody_death) && self.bloody_death)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.bloody_death = 1;
|
|
if(isdefined(param_00))
|
|
{
|
|
wait(randomfloat(param_00));
|
|
}
|
|
|
|
var_02 = [];
|
|
var_02[0] = "j_hip_le";
|
|
var_02[1] = "j_hip_ri";
|
|
var_02[2] = "j_head";
|
|
var_02[3] = "j_spine4";
|
|
var_02[4] = "j_elbow_le";
|
|
var_02[5] = "j_elbow_ri";
|
|
var_02[6] = "j_clavicle_le";
|
|
var_02[7] = "j_clavicle_ri";
|
|
var_03 = getdvarint("cg_fov");
|
|
for(var_04 = 0;var_04 < 3 + randomint(5);var_04++)
|
|
{
|
|
var_05 = randomintrange(0,var_02.size);
|
|
thread bloody_death_fx(var_02[var_05],undefined);
|
|
wait(randomfloat(0.1));
|
|
if(isdefined(param_01) && isai(param_01) && isalive(param_01))
|
|
{
|
|
if(!level.player worldpointinreticle_circle(param_01.origin,var_03,500))
|
|
{
|
|
param_01 shootblank();
|
|
}
|
|
}
|
|
}
|
|
|
|
self dodamage(self.health + 50,self.origin);
|
|
}
|
|
|
|
//Function Number: 14
|
|
bloody_death_fx(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = level._effect["flesh_hit"];
|
|
}
|
|
|
|
playfxontag(param_01,self,param_00);
|
|
}
|
|
|
|
//Function Number: 15
|
|
delete_on_notify(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = "level_cleanup";
|
|
}
|
|
|
|
self endon("death");
|
|
level waittill(param_00);
|
|
if(common_scripts\utility::flag_exist("_stealth_spotted"))
|
|
{
|
|
common_scripts\utility::flag_waitopen("_stealth_spotted");
|
|
}
|
|
|
|
if(isdefined(self.magic_bullet_shield) && self.magic_bullet_shield)
|
|
{
|
|
maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 16
|
|
enable_jump_jet_pathing()
|
|
{
|
|
if(issubstr(self.classname,"jump"))
|
|
{
|
|
self.canjumppath = 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
recovery_thermal_manager()
|
|
{
|
|
self thermaldrawenable();
|
|
}
|
|
|
|
//Function Number: 18
|
|
training_set_up_player()
|
|
{
|
|
common_scripts\utility::flag_clear("flag_disable_exo");
|
|
level.player allowcrouch(1);
|
|
level.player allowprone(1);
|
|
level.player allowjump(1);
|
|
level.player giveweapon("iw5_bal27_sp_silencer01_variablereddot");
|
|
level.player giveweapon("iw5_titan45_sp_silencerpistol");
|
|
level.player switchtoweapon("iw5_bal27_sp_silencer01_variablereddot");
|
|
level.player enablehybridsight("iw5_bal27_sp_silencer01_variablereddot",1);
|
|
if(level.nextgen)
|
|
{
|
|
level.player overrideviewmodelmaterial("m/mtl_bal27_base_black","m/mtl_bal27_base_black_logo");
|
|
}
|
|
else
|
|
{
|
|
level.player overrideviewmodelmaterial("mq/mtl_bal27_base_black","mq/mtl_bal27_base_black_logo");
|
|
}
|
|
|
|
level.player enableweapons();
|
|
level.player allowfire(1);
|
|
level.player allowads(1);
|
|
level.player allowmelee(1);
|
|
maps\_variable_grenade::give_player_variable_grenade();
|
|
maps\_variable_grenade::set_variable_grenades_with_no_switch("tracking_grenade_var","paint_grenade_var");
|
|
}
|
|
|
|
//Function Number: 19
|
|
training_s2_start_set_up_player()
|
|
{
|
|
common_scripts\utility::flag_clear("flag_disable_exo");
|
|
common_scripts\utility::flag_set("flag_enable_overdrive");
|
|
level.player allowcrouch(1);
|
|
level.player allowprone(1);
|
|
level.player allowjump(1);
|
|
level.player enableweapons();
|
|
level.player allowfire(1);
|
|
level.player allowads(1);
|
|
level.player allowmelee(1);
|
|
maps\_variable_grenade::give_player_variable_grenade();
|
|
}
|
|
|
|
//Function Number: 20
|
|
training_s1_squad_allow_run()
|
|
{
|
|
if(isalive(level.ally_squad_member_1))
|
|
{
|
|
level.ally_squad_member_1 allowedstances("prone","crouch","stand");
|
|
}
|
|
|
|
if(isalive(level.ally_squad_member_2))
|
|
{
|
|
level.ally_squad_member_2 allowedstances("prone","crouch","stand");
|
|
}
|
|
|
|
if(isalive(level.ally_squad_member_4))
|
|
{
|
|
level.ally_squad_member_4 allowedstances("prone","crouch","stand");
|
|
}
|
|
|
|
if(isalive(level.joker))
|
|
{
|
|
level.joker allowedstances("prone","crouch","stand");
|
|
}
|
|
|
|
if(isalive(level.ally_squad_member_3))
|
|
{
|
|
level.ally_squad_member_3 allowedstances("prone","crouch","stand");
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
training_s1_windy_trees()
|
|
{
|
|
var_00 = getentarray("windy_trees","targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02 thread training_s1_windy_trees_think();
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
training_s1_windy_trees_think()
|
|
{
|
|
wait(randomfloatrange(1.5,2.85));
|
|
while(common_scripts\utility::flag("training_s1_enable_living_room") == 0)
|
|
{
|
|
var_00 = self.angles;
|
|
var_01 = randomintrange(1,3);
|
|
if(var_01 == 2)
|
|
{
|
|
var_02 = 6;
|
|
}
|
|
else
|
|
{
|
|
var_02 = -6;
|
|
}
|
|
|
|
self rotateto(var_00 + (var_02,0,0),4,3,1);
|
|
wait(4);
|
|
self rotateto(var_00,4,3,1);
|
|
wait(3.85);
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
player_control_on()
|
|
{
|
|
level.player unlink();
|
|
level.player enableweapons();
|
|
level.player allowstand(1);
|
|
level.player allowcrouch(1);
|
|
level.player allowprone(1);
|
|
level.player allowsprint(1);
|
|
}
|
|
|
|
//Function Number: 24
|
|
training_s1_opening_guy_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
var_02 = common_scripts\utility::getstruct(param_00,"targetname");
|
|
self forceteleport(var_02.origin,var_02.angles);
|
|
self setgoalpos(self.origin);
|
|
self allowedstances("crouch");
|
|
maps\_stealth_utility::stealth_plugin_basic();
|
|
maps\_stealth_utility::stealth_plugin_accuracy();
|
|
maps\_stealth_utility::stealth_plugin_smart_stance();
|
|
maps\_utility::forceuseweapon("iw5_bal27_sp_silencer01_variablereddot","primary");
|
|
maps\_utility::disable_surprise();
|
|
if(!isdefined(level.allies_s1))
|
|
{
|
|
level.allies_s1 = [];
|
|
}
|
|
|
|
level.allies_s1 = common_scripts\utility::array_add(level.allies_s1,self);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
if(isdefined(self.magic_bullet_shield))
|
|
{
|
|
maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 25
|
|
training_s1_starting_enemies_think(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
thread attach_flashlight_on_gun();
|
|
thread maps\_utility::set_battlechatter(0);
|
|
maps\_utility::disable_long_death();
|
|
thread training_s1_start_stealth_watch(param_00);
|
|
thread training_s1_starting_enemies_alerted(param_00);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
wait(randomfloatrange(0.5,1.5));
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 26
|
|
training_s1_start_stealth_watch(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
|
|
wait(2);
|
|
thread training_s1_alert();
|
|
common_scripts\utility::flag_set(param_00);
|
|
}
|
|
|
|
//Function Number: 27
|
|
training_s1_starting_enemies_alerted(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self notify("alerted");
|
|
thread maps\_utility::set_battlechatter(1);
|
|
maps\_utility::player_seek();
|
|
}
|
|
|
|
//Function Number: 28
|
|
training_s1_sniper_enemies_think(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
self.health = 1;
|
|
attach_flashlight_on_gun();
|
|
maps\_utility::set_battlechatter(0);
|
|
thread training_s1_start_stealth_watch(param_00);
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self notify("alerted");
|
|
maps\_utility::set_battlechatter(1);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
wait(randomfloatrange(0.5,1.5));
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 29
|
|
training_s1_starting_enemies_charge(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
maps\_utility::player_seek();
|
|
}
|
|
|
|
//Function Number: 30
|
|
training_s1_surprise_enemy_think()
|
|
{
|
|
self endon("death");
|
|
maps\_utility::disable_bulletwhizbyreaction();
|
|
if(!maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
|
|
{
|
|
maps\_utility::ent_flag_init("_stealth_behavior_asleep");
|
|
}
|
|
|
|
maps\_utility::ent_flag_set("_stealth_behavior_asleep");
|
|
self.ignoreall = 1;
|
|
var_00 = self.health;
|
|
thread maps\_utility::magic_bullet_shield();
|
|
self.ignorerandombulletdamage = 1;
|
|
maps\_utility::disable_long_death();
|
|
thread attach_flashlight_on_gun();
|
|
maps\_utility::set_battlechatter(0);
|
|
thread training_s1_surprise_enemy_alert(var_00);
|
|
common_scripts\utility::flag_wait("flag_training_s1_surprise_enemy_alert");
|
|
maps\_utility::enable_bulletwhizbyreaction();
|
|
if(isdefined(self.magic_bullet_shield))
|
|
{
|
|
thread maps\_utility::stop_magic_bullet_shield();
|
|
self.noragdoll = undefined;
|
|
}
|
|
|
|
self.ignoreall = 0;
|
|
self.health = var_00;
|
|
self.ignorerandombulletdamage = 0;
|
|
if(maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
|
|
{
|
|
maps\_utility::ent_flag_clear("_stealth_behavior_asleep");
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
training_s1_surprise_enemy_alert(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait("training_s1_start_alerted");
|
|
maps\_utility::enable_bulletwhizbyreaction();
|
|
if(isdefined(self.magic_bullet_shield))
|
|
{
|
|
thread maps\_utility::stop_magic_bullet_shield();
|
|
self.noragdoll = undefined;
|
|
}
|
|
|
|
self.ignoreall = 0;
|
|
self.health = param_00;
|
|
self.ignorerandombulletdamage = 0;
|
|
if(maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
|
|
{
|
|
maps\_utility::ent_flag_clear("_stealth_behavior_asleep");
|
|
}
|
|
|
|
self notify(" alerted");
|
|
maps\_utility::player_seek();
|
|
}
|
|
|
|
//Function Number: 32
|
|
training_s1_surprise_enemy_go()
|
|
{
|
|
wait(3);
|
|
self.health = 1;
|
|
if(isdefined(self.magic_bullet_shield))
|
|
{
|
|
thread maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
if(maps\_utility::ent_flag_exist("_stealth_behavior_asleep"))
|
|
{
|
|
maps\_utility::ent_flag_clear("_stealth_behavior_asleep");
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
training_surprise_enemy_move_to_patio(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(param_00))
|
|
{
|
|
self.goalradius = 8;
|
|
maps\_utility::set_forcegoal();
|
|
maps\_utility::set_goal_node(param_00);
|
|
self waittill("goal");
|
|
maps\_utility::unset_forcegoal();
|
|
self.ignoreall = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
training_s1_alert_check()
|
|
{
|
|
level endon("training_s1_start_alerted");
|
|
level endon("training_s1_clear_initial_spawn");
|
|
common_scripts\utility::flag_wait("flag_training_s1_alert_starting_enemies");
|
|
thread training_s1_alert();
|
|
}
|
|
|
|
//Function Number: 35
|
|
training_s1_alert()
|
|
{
|
|
common_scripts\utility::flag_set("training_s1_start_alerted");
|
|
common_scripts\utility::flag_set("training_s1_snipers_attack");
|
|
common_scripts\utility::flag_set("flag_vo_training_s1_joker_spotted_us");
|
|
level notify("training_s1_start_enemies_alert");
|
|
thread training_s1_set_squad_active_and_target();
|
|
thread training_s1_squad_allow_run();
|
|
common_scripts\utility::flag_set("flag_obj_rescue1_start_clear");
|
|
maps\_utility::waittill_aigroupcount("training_s1_enemies_start",2);
|
|
common_scripts\utility::flag_set("training_s1_clear_initial_spawn");
|
|
maps\_utility::waittill_aigroupcleared("training_s1_enemies_start");
|
|
common_scripts\utility::flag_set("training_s1_start_alerted_enemies_dead");
|
|
common_scripts\utility::flag_set("training_s1_clear_initial_spawn");
|
|
wait(1);
|
|
common_scripts\utility::flag_set("training_s1_prepare_breach_room");
|
|
common_scripts\utility::flag_set("flag_obj_rescue1_enter");
|
|
thread training_s1_set_squad_passive_and_ignore();
|
|
}
|
|
|
|
//Function Number: 36
|
|
training_s1_monitor_surprise_enemy_death()
|
|
{
|
|
self waittill("death");
|
|
wait(2);
|
|
if(common_scripts\utility::flag("flag_vo_training_s1_joker_got_him") == 0)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_training_s1_joker_good_kill");
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
training_s1_kill_surprise_enemy()
|
|
{
|
|
if(isalive(level.surprise_enemy))
|
|
{
|
|
level.surprise_enemy.health = 1;
|
|
magicbullet(level.joker.weapon,level.joker gettagorigin("tag_flash"),level.surprise_enemy geteye());
|
|
level.surprise_enemy bloody_death();
|
|
common_scripts\utility::flag_set("flag_vo_training_s1_joker_got_him");
|
|
}
|
|
}
|
|
|
|
//Function Number: 38
|
|
training_s1_show_threat_text()
|
|
{
|
|
level endon("threat_grenade_hint_text_off");
|
|
wait(1);
|
|
thread training_s1_show_threat_text_ender();
|
|
for(;;)
|
|
{
|
|
level.player.showhint = 1;
|
|
thread maps\_utility::display_hint("threat_breach_prompt");
|
|
common_scripts\utility::flag_waitopen("player_at_threat_breach");
|
|
level.player.showhint = 0;
|
|
common_scripts\utility::flag_wait("player_at_threat_breach");
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
training_s1_show_threat_text_ender()
|
|
{
|
|
common_scripts\utility::flag_wait("threat_grenade_hint_text_off");
|
|
level.player.showhint = 0;
|
|
}
|
|
|
|
//Function Number: 40
|
|
training_s1_refill_threat_grenades()
|
|
{
|
|
while(!common_scripts\utility::flag("threat_grenade_hint_text_off"))
|
|
{
|
|
if(!common_scripts\utility::flag("player_at_threat_breach"))
|
|
{
|
|
common_scripts\utility::flag_wait("player_at_threat_breach");
|
|
}
|
|
|
|
if(level.player setweaponammostock("paint_grenade_var") == 0)
|
|
{
|
|
level.player setweaponammostock("paint_grenade_var",1);
|
|
}
|
|
|
|
wait(0.2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 41
|
|
training_s1_threat_enemies()
|
|
{
|
|
wait(1.5);
|
|
var_00 = self;
|
|
var_01 = 0;
|
|
while(var_01 < 4 && var_00.size > 0)
|
|
{
|
|
foreach(var_03 in var_00)
|
|
{
|
|
var_04 = randomfloatrange(1.5,2.5);
|
|
wait(var_04);
|
|
var_01 = var_01 + var_04;
|
|
if(!isalive(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = 7;
|
|
var_06 = (randomfloat(var_05),randomfloat(var_05),randomfloat(var_05));
|
|
magicbullet(level.joker.weapon,level.joker gettagorigin("tag_flash"),var_03 geteye() + var_06);
|
|
var_04 = randomfloatrange(0.2,0.35);
|
|
wait(var_04);
|
|
var_01 = var_01 + var_04;
|
|
var_06 = (randomfloat(var_05),randomfloat(var_05),randomfloat(var_05));
|
|
if(common_scripts\utility::cointoss())
|
|
{
|
|
magicbullet(level.joker.weapon,level.joker gettagorigin("tag_flash"),var_03 geteye() + var_06);
|
|
}
|
|
|
|
if(!isalive(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var_00 = maps\_utility::array_removedead(var_00);
|
|
}
|
|
|
|
level.ally_squad_member_3 maps\_utility::stop_magic_bullet_shield();
|
|
level.ally_squad_member_3 bloody_death();
|
|
}
|
|
|
|
//Function Number: 42
|
|
training_s1_flash_door()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
|
|
var_01 = getent("training_s1_flash_door","targetname");
|
|
var_01.animname = "door_prop";
|
|
var_01 maps\_utility::assign_animtree();
|
|
var_02 = getent("living_room_door_clip","targetname");
|
|
var_02 linkto(var_01,"door");
|
|
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s1_flash_door_open");
|
|
common_scripts\utility::flag_wait("training_s1_peak_flash_door");
|
|
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_flash_door_open");
|
|
var_00 thread maps\_anim::anim_loop_solo(var_01,"training_s1_flash_door_open_idle","stop_loop");
|
|
common_scripts\utility::flag_wait("training_s1_open_flash_door");
|
|
var_00 notify("stop_loop");
|
|
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_flash_door_out");
|
|
var_02 connectpaths();
|
|
common_scripts\utility::flag_wait("training_s1_close_living_room_door");
|
|
var_00 maps\_anim::anim_first_frame_solo(var_01,"training_s1_flash_door_open");
|
|
wait(1);
|
|
var_02 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 43
|
|
training_s1_flash_enemies_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self.pacifist = 1;
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
maps\_utility::disable_long_death();
|
|
if(isdefined(self.animation))
|
|
{
|
|
self.animname = "generic";
|
|
thread maps\_anim::anim_loop_solo(self,self.animation,"stop_loop");
|
|
maps\_utility::set_allowdeath(1);
|
|
thread training_s1_flash_death_check();
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_00);
|
|
maps\_utility::anim_stopanimscripted();
|
|
if(level.flash_attack == 1)
|
|
{
|
|
maps\_utility::flashbangstart(4);
|
|
}
|
|
else
|
|
{
|
|
maps\_stealth_shared_utilities::enemy_reaction_state_alert();
|
|
}
|
|
|
|
self.pacifist = 0;
|
|
self.ignoreall = 0;
|
|
self.ignoreme = 0;
|
|
common_scripts\utility::flag_wait(param_01);
|
|
bloody_death(1);
|
|
}
|
|
|
|
//Function Number: 44
|
|
training_s1_flash_death_check()
|
|
{
|
|
self waittill("death");
|
|
if(common_scripts\utility::flag("training_s1_open_flash_door") == 0)
|
|
{
|
|
level.flash_attack = 0;
|
|
common_scripts\utility::flag_set("training_s1_flag_flash");
|
|
}
|
|
}
|
|
|
|
//Function Number: 45
|
|
training_s1_enemies_living_room_think()
|
|
{
|
|
self endon("death");
|
|
self.ignoreall = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
maps\_utility::disable_long_death();
|
|
thread training_s1_threat_death_check();
|
|
if(isdefined(self.animation))
|
|
{
|
|
self.animname = "generic";
|
|
maps\_utility::set_allowdeath(1);
|
|
thread maps\_anim::anim_loop_solo(self,self.animation,"stop_loop");
|
|
}
|
|
}
|
|
|
|
//Function Number: 46
|
|
training_s1_threat_death_check()
|
|
{
|
|
level endon("threat_thrown");
|
|
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
|
|
if(common_scripts\utility::flag("training_s1_flag_thermal") == 0 && var_01 == level.player)
|
|
{
|
|
level.threat_attack = "nil";
|
|
common_scripts\utility::flag_set("training_s1_flag_thermal");
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
training_s1_living_room_check()
|
|
{
|
|
maps\_utility::waittill_aigroupcleared("flash_enemies");
|
|
level.living_room_clear = 1;
|
|
}
|
|
|
|
//Function Number: 48
|
|
training_s1_living_room_timer()
|
|
{
|
|
wait(15);
|
|
level.living_room_clear = 1;
|
|
}
|
|
|
|
//Function Number: 49
|
|
training_s1_threat_door()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
|
|
var_01 = getent("training_s1_flash_door","targetname");
|
|
var_01.animname = "door_prop";
|
|
var_01 maps\_utility::assign_animtree();
|
|
var_02 = getent("living_room_door_clip","targetname");
|
|
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s1_threat_door_open");
|
|
var_02 linkto(var_01,"door");
|
|
common_scripts\utility::flag_wait("training_s1_peak_thermal_door");
|
|
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_threat_door_open");
|
|
var_00 thread maps\_anim::anim_loop_solo(var_01,"training_s1_threat_door_open_idle","stop_loop");
|
|
common_scripts\utility::flag_wait("training_s1_open_thermal_door");
|
|
if(level.threat_attack == "smart")
|
|
{
|
|
wait(3);
|
|
}
|
|
|
|
var_00 notify("stop_loop");
|
|
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_threat_door_out");
|
|
var_02 connectpaths();
|
|
common_scripts\utility::flag_wait("training_s1_breach_done");
|
|
var_00 maps\_anim::anim_first_frame_solo(var_01,"training_s1_threat_door_open");
|
|
wait(1);
|
|
var_02 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 50
|
|
training_s1_shoot_monitor()
|
|
{
|
|
level endon("flag_obj_rescue1_breach");
|
|
level.threat_attack = "nil";
|
|
for(;;)
|
|
{
|
|
level.player waittill("weapon_fired",var_00);
|
|
if(common_scripts\utility::flag("player_at_threat_breach"))
|
|
{
|
|
level.threat_attack = var_00;
|
|
common_scripts\utility::flag_set("threat_grenade_hint_text_off");
|
|
common_scripts\utility::flag_set("threat_breach_kickoff_gunfire");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
training_s1_flash_monitor()
|
|
{
|
|
level.threat_attack = "nil";
|
|
for(;;)
|
|
{
|
|
level.player waittill("grenade_fire",var_00,var_01);
|
|
if(common_scripts\utility::flag("player_at_threat_breach"))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(var_01 == "paint_grenade_var")
|
|
{
|
|
level notify("threat_thrown");
|
|
}
|
|
|
|
level notify("training_s1_joker_threat_grenade_nag_off");
|
|
common_scripts\utility::flag_set("threat_grenade_hint_text_off");
|
|
var_00 waittill("death");
|
|
if(var_01 == "paint_grenade_var")
|
|
{
|
|
level.threat_attack = "threat";
|
|
}
|
|
else if(var_01 == "tracking_grenade_var")
|
|
{
|
|
level.threat_attack = "smart";
|
|
}
|
|
else
|
|
{
|
|
level.threat_attack = "other";
|
|
}
|
|
|
|
common_scripts\utility::flag_set("training_s1_flag_thermal");
|
|
}
|
|
|
|
//Function Number: 52
|
|
training_s1_kill_threat_enemies()
|
|
{
|
|
self endon("death");
|
|
wait(5);
|
|
if(isalive(self))
|
|
{
|
|
magicbullet(level.gideon.weapon,level.gideon gettagorigin("tag_flash"),self geteye());
|
|
bloody_death();
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
training_surprise_enemy_think()
|
|
{
|
|
if(!isalive(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("death");
|
|
thread maps\_stealth_shared_utilities::enemy_reaction_state_alert();
|
|
thread maps\_utility::set_battlechatter(1);
|
|
self.ignoreall = 0;
|
|
self.health = 1;
|
|
var_00 = getent("training_s1_surprise_enemy_cover_node","targetname");
|
|
if(isdefined(var_00))
|
|
{
|
|
self.goalradius = 32;
|
|
maps\_utility::set_forcegoal();
|
|
maps\_utility::set_goal_node(var_00);
|
|
self waittill("goal");
|
|
maps\_utility::unset_forcegoal();
|
|
}
|
|
}
|
|
|
|
//Function Number: 54
|
|
training_s2_open_bedroom_door_2()
|
|
{
|
|
var_00 = getent("bedroom_2_door","targetname");
|
|
getent(var_00.target,"targetname") linkto(var_00);
|
|
var_00.angles = var_00.angles + (0,85,0);
|
|
var_00 connectpaths();
|
|
}
|
|
|
|
//Function Number: 55
|
|
training_s1_president_setup(param_00)
|
|
{
|
|
self endon("death");
|
|
maps\_utility::magic_bullet_shield();
|
|
self.animname = "president";
|
|
self.pacifist = 1;
|
|
self.ignoreme = 1;
|
|
self.ignoreall = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
self.team = "allies";
|
|
level maps\_utility::clear_color_order("y","allies");
|
|
maps\_utility::set_force_color("y");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
if(isdefined(self.magic_bullet_shield))
|
|
{
|
|
maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 56
|
|
training_s1_set_up_search_drones(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
thread maps\_shg_utility::make_emp_vulnerable();
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
thread training_s1_search_drones_damage_check(param_00);
|
|
thread training_s1_search_drones_death_check();
|
|
thread training_s1_search_drones_cleanup(param_01);
|
|
if(isdefined(self.animation))
|
|
{
|
|
thread training_s1_search_drones_play_ainm();
|
|
thread maps\recovery_fx::drone_search_light_fx();
|
|
}
|
|
else
|
|
{
|
|
self laseron();
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.ignoreall = 0;
|
|
self.ignoreme = 0;
|
|
if(isdefined(self.animation))
|
|
{
|
|
self stopanimscripted();
|
|
}
|
|
|
|
thread vehicle_scripts\_pdrone::stop_scripted_move_and_attack();
|
|
}
|
|
|
|
//Function Number: 57
|
|
training_s1_search_drones_play_ainm()
|
|
{
|
|
wait(2);
|
|
self.animname = "pdrone";
|
|
self.allowdeath = 1;
|
|
var_00 = getent("training_s1_drone_attack_scene","targetname");
|
|
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
|
|
var_00 maps\_anim::anim_single_solo(self,self.animation);
|
|
if(isalive(self))
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 58
|
|
training_s1_search_drones_damage_check(param_00)
|
|
{
|
|
self endon("death");
|
|
self endon("training_s1_search_drones_done");
|
|
self waittill("damage");
|
|
if(!common_scripts\utility::flag("training_s1_search_drones_done"))
|
|
{
|
|
common_scripts\utility::flag_set(param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
training_s1_search_drones_death_check()
|
|
{
|
|
self waittill("death");
|
|
level.search_drones_count = level.search_drones_count + 1;
|
|
}
|
|
|
|
//Function Number: 60
|
|
training_s1_search_drones_cleanup(param_00)
|
|
{
|
|
self endon("death");
|
|
}
|
|
|
|
//Function Number: 61
|
|
training_s1_drone_ambush_scene()
|
|
{
|
|
wait(1);
|
|
var_00 = common_scripts\utility::getstruct("attacklocation1","targetname");
|
|
var_01 = level.ally_squad_member_1;
|
|
var_01 maps\_utility::enable_long_death();
|
|
var_01 maps\_utility::stop_magic_bullet_shield();
|
|
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
|
|
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
|
|
wait(0.5);
|
|
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
|
|
wait(0.25);
|
|
magicbullet("iw5_bal27_sp",var_00.origin,var_01.origin);
|
|
if(isalive(var_01))
|
|
{
|
|
var_01 kill();
|
|
}
|
|
|
|
wait(5);
|
|
var_02 = common_scripts\utility::getstruct("attacklocation2","targetname");
|
|
var_03 = level.ally_squad_member_4;
|
|
var_03 maps\_utility::enable_long_death();
|
|
var_03 maps\_utility::stop_magic_bullet_shield();
|
|
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
|
|
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
|
|
wait(0.15);
|
|
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
|
|
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
|
|
wait(0.25);
|
|
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
|
|
magicbullet("iw5_bal27_sp",var_02.origin,var_03.origin);
|
|
if(isalive(var_03))
|
|
{
|
|
var_03 kill();
|
|
}
|
|
}
|
|
|
|
//Function Number: 62
|
|
training_s1_terrace_enemies_think(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
bloody_death(1);
|
|
}
|
|
|
|
//Function Number: 63
|
|
training_s1_patio_enemies_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
thread maps\_utility::disable_long_death();
|
|
var_02 = self.health;
|
|
self.health = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
if(randomint(10) < 5)
|
|
{
|
|
thread attach_flashlight_on_gun();
|
|
}
|
|
|
|
thread training_s1_patio_enemies_alert(param_00,var_02);
|
|
thread training_s1_patio_enemies_alert_check(param_00);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 64
|
|
training_s1_patio_enemies_alert(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.health = param_01;
|
|
thread maps\_utility::set_battlechatter(1);
|
|
self notify("alerted");
|
|
}
|
|
|
|
//Function Number: 65
|
|
training_s1_patio_enemies_alert_check(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
|
|
wait(3);
|
|
common_scripts\utility::flag_set(param_00);
|
|
training_s1_set_squad_active_and_target();
|
|
}
|
|
|
|
//Function Number: 66
|
|
training_s1_allies_advance()
|
|
{
|
|
level endon("training_s1_hide");
|
|
thread training_s1_check_snipers();
|
|
thread training_s1_patio_joker_loc_check();
|
|
while(common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0 && common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave2") == 0)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
if(common_scripts\utility::flag("training_s1_patio_alerted") == 1 && common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0)
|
|
{
|
|
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower1","targetname");
|
|
level.joker maps\_utility::cqb_walk("off");
|
|
}
|
|
|
|
while(common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0 && common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave3") == 0)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
if(common_scripts\utility::flag("training_s1_patio_alerted") == 1 && common_scripts\utility::flag("training_s1_spawn_patio_wave1_dead") == 0)
|
|
{
|
|
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower","targetname");
|
|
level.joker maps\_utility::cqb_walk("off");
|
|
}
|
|
}
|
|
|
|
//Function Number: 67
|
|
training_s1_patio_joker_loc_check()
|
|
{
|
|
level endon("training_s1_hide");
|
|
common_scripts\utility::flag_wait("training_s1_patio_alerted");
|
|
if(common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave2"))
|
|
{
|
|
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower1","targetname");
|
|
level.joker maps\_utility::cqb_walk("off");
|
|
}
|
|
|
|
if(common_scripts\utility::flag("training_s1_spawn_patio_enemies_wave3"))
|
|
{
|
|
maps\_utility::activate_trigger("training_s1_color_trigger_patio_lower","targetname");
|
|
level.joker maps\_utility::cqb_walk("off");
|
|
}
|
|
}
|
|
|
|
//Function Number: 68
|
|
training_s1_check_snipers()
|
|
{
|
|
maps\_utility::waittill_aigroupcleared("patio_ambush1");
|
|
common_scripts\utility::flag_set("training_s1_spawn_patio_wave1_dead");
|
|
}
|
|
|
|
//Function Number: 69
|
|
training_s1_pool_house_doors()
|
|
{
|
|
var_00 = getent("pool_house_door01","targetname");
|
|
getent(var_00.target,"targetname") linkto(var_00);
|
|
var_01 = getent("pool_house_door02","targetname");
|
|
getent(var_01.target,"targetname") linkto(var_01);
|
|
var_00 rotateto(var_00.angles + (0,90,0),1,0,1);
|
|
var_01 rotateto(var_01.angles + (0,-90,0),1,0,1);
|
|
var_00 connectpaths();
|
|
var_01 connectpaths();
|
|
wait(3);
|
|
var_00 rotateto(var_00.angles + (0,-90,0),1,0,1);
|
|
var_01 rotateto(var_01.angles + (0,90,0),1,0,1);
|
|
var_00 disconnectpaths();
|
|
var_01 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 70
|
|
training_s1_terrace_vehicles_think(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
thread training_s1_terrace_vehicles_cleanup(param_00);
|
|
thread training_s1_golf_course_encounter(param_01);
|
|
foreach(var_04 in self.riders)
|
|
{
|
|
var_04 thread attach_flashlight_on_vehicle_unload();
|
|
var_04 thread maps\_utility::set_battlechatter(0);
|
|
var_04 thread training_s1_terrace_vehicles_riders_think(param_01);
|
|
var_04 thread training_s1_terrace_vehicles_riders_cleanup(param_00,param_01);
|
|
var_04 thread training_s1_golf_course_alert(param_01);
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_01);
|
|
var_06 = getent("golf_course_watch_out","targetname");
|
|
badplace_brush("watch_out",-1,var_06,"axis");
|
|
var_07 = getentarray("training_s1_vehicle_attack_node","script_noteworthy");
|
|
foreach(var_09 in var_07)
|
|
{
|
|
var_0A = 2;
|
|
if(isdefined(var_09.speed))
|
|
{
|
|
var_09.speed = var_09.speed * var_0A;
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_02);
|
|
badplace_delete("watch_out");
|
|
soundscripts\_snd::snd_message("rec_train1_stealth_car_stop",self);
|
|
maps\_vehicle::vehicle_stop_named("stop_to_kill_player",15,10);
|
|
maps\_vehicle::vehicle_unload("all_but_gunner");
|
|
}
|
|
|
|
//Function Number: 71
|
|
training_s1_golf_course_encounter(param_00)
|
|
{
|
|
while(common_scripts\utility::flag("training_s1_hide_from_patrols_done") == 0)
|
|
{
|
|
common_scripts\utility::flag_wait(param_00);
|
|
maps\_utility::waittill_aigroupcleared("golf_course_ambush1");
|
|
common_scripts\utility::flag_set("training_s1_hide_from_patrols_done");
|
|
}
|
|
}
|
|
|
|
//Function Number: 72
|
|
training_s1_golf_course_encounter_track_deaths()
|
|
{
|
|
maps\_utility::waittill_aigroupcleared("golf_course_ambush1");
|
|
common_scripts\utility::flag_set("training_s1_hide_from_patrols_done");
|
|
}
|
|
|
|
//Function Number: 73
|
|
training_s1_terrace_vehicles_riders_cleanup(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait("training_s1_golf_course_vehicles");
|
|
if(!common_scripts\utility::flag(param_01))
|
|
{
|
|
self delete();
|
|
return;
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 74
|
|
training_s1_terrace_vehicles_riders_think(param_00)
|
|
{
|
|
self endon("death");
|
|
self.pacifist = 1;
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
maps\_utility::disable_long_death();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.pacifist = 0;
|
|
self.ignoreall = 0;
|
|
thread maps\_utility::set_battlechatter(1);
|
|
self.ignoreme = 0;
|
|
}
|
|
|
|
//Function Number: 75
|
|
training_s1_terrace_vehicles_cleanup(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
foreach(var_02 in self.riders)
|
|
{
|
|
var_02 delete();
|
|
}
|
|
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 76
|
|
training_s1_golf_course_alert(param_00)
|
|
{
|
|
var_01 = common_scripts\utility::waittill_any_return("patrol_alerted","_stealth_spotted","stealth_event","alerted","enemy","damage","death");
|
|
wait(2);
|
|
if(isalive(self))
|
|
{
|
|
self notify("alerted");
|
|
thread maps\_utility::clear_run_anim();
|
|
thread maps\_utility::player_seek_enable();
|
|
}
|
|
|
|
if(!common_scripts\utility::flag(param_00))
|
|
{
|
|
common_scripts\utility::flag_set(param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 77
|
|
training_s1_runner_enemy_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
maps\_utility::disable_long_death();
|
|
attach_flashlight_on_gun();
|
|
thread training_s1_golf_course_alert(param_01);
|
|
var_02 = [];
|
|
var_02["saw"] = ::training_s1_runner_enemy_found_corpse;
|
|
var_02["found"] = ::training_s1_runner_enemy_found_corpse;
|
|
maps\_stealth_utility::stealth_corpse_behavior_custom(var_02);
|
|
force_patrol_anim_set("patroljog",0);
|
|
maps\_utility::set_moveplaybackrate(1.1);
|
|
training_s1_runner_enemy_think_cleanup(param_01);
|
|
common_scripts\utility::flag_wait(param_00);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 78
|
|
training_s1_runner_enemy_think_cleanup(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait("training_s1_golf_course_vehicles");
|
|
if(!common_scripts\utility::flag(param_00))
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 79
|
|
training_s1_runner_enemy_found_corpse()
|
|
{
|
|
clearallcorpses();
|
|
}
|
|
|
|
//Function Number: 80
|
|
force_patrol_anim_set(param_00,param_01,param_02)
|
|
{
|
|
maps\_patrol_extended::force_patrol_anim_set(param_00,param_01,0,param_02);
|
|
}
|
|
|
|
//Function Number: 81
|
|
training_prone_hint_text()
|
|
{
|
|
wait(1);
|
|
level.player.showhint = 1;
|
|
if(level.player common_scripts\utility::is_player_gamepad_enabled())
|
|
{
|
|
thread maps\_utility::display_hint("prone_prompt");
|
|
}
|
|
else
|
|
{
|
|
thread maps\_utility::display_hint("pc_prone_prompt");
|
|
}
|
|
|
|
thread training_prone_hint_monitor();
|
|
var_00 = 8;
|
|
level common_scripts\utility::waittill_notify_or_timeout("player_prone",var_00);
|
|
level.player.showhint = 0;
|
|
}
|
|
|
|
//Function Number: 82
|
|
training_prone_hint_monitor()
|
|
{
|
|
level endon("training_s1_hide_from_patrols_done");
|
|
while(level.player getstance() != "prone" && common_scripts\utility::flag("training_s1_spotted") == 0)
|
|
{
|
|
wait(0.5);
|
|
}
|
|
|
|
level notify("player_prone");
|
|
}
|
|
|
|
//Function Number: 83
|
|
training_s1_escape_vehicle_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
foreach(var_03 in self.riders)
|
|
{
|
|
var_03 thread training_s1_escape_vehicle_driver(param_00);
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_01);
|
|
maps\_utility::stop_magic_bullet_shield();
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 84
|
|
training_s1_escape_vehicle_driver(param_00)
|
|
{
|
|
self endon("death");
|
|
self.health = 1;
|
|
common_scripts\utility::flag_wait(param_00);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 85
|
|
training_s1_ambush_vehicles_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
foreach(var_03 in self.riders)
|
|
{
|
|
var_03 thread training_s1_unload1_think(param_00,param_01);
|
|
}
|
|
|
|
self waittill("reached_end_node");
|
|
maps\_vehicle::vehicle_unload();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.pacifist = 1;
|
|
foreach(var_03 in self.riders)
|
|
{
|
|
var_03.ignoreall = 1;
|
|
var_03.pacifist = 1;
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_01);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 86
|
|
training_s1_unload1_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.vehicle_position))
|
|
{
|
|
thread attach_flashlight_on_vehicle_unload();
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.pacifist = 1;
|
|
self.ignoreall = 1;
|
|
common_scripts\utility::flag_wait(param_01);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 87
|
|
training_s1_kva_ambush1_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
thread maps\_utility::disable_long_death();
|
|
thread attach_flashlight_on_gun();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.pacifist = 1;
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 88
|
|
training_s1_kva_ambush2_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
thread maps\_utility::disable_long_death();
|
|
thread attach_flashlight_on_gun();
|
|
self.ignoreall = 1;
|
|
maps\_utility::set_goal_radius(40);
|
|
self waittill("goal");
|
|
if(isdefined(self) && isalive(self))
|
|
{
|
|
self.ignoreall = 0;
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.pacifist = 1;
|
|
self.ignoreall = 1;
|
|
self.ignoreme = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 89
|
|
training_s1_guard_house_doors()
|
|
{
|
|
var_00 = getent("guard_door_01","targetname");
|
|
getent(var_00.target,"targetname") linkto(var_00);
|
|
var_01 = getent("guard_door_02","targetname");
|
|
getent(var_01.target,"targetname") linkto(var_01);
|
|
wait(randomint(10));
|
|
var_00 rotateto(var_00.angles + (0,-90,0),1,0,1);
|
|
wait(randomint(5));
|
|
var_01 rotateto(var_01.angles + (0,90,0),1,0,1);
|
|
var_00 connectpaths();
|
|
var_01 connectpaths();
|
|
wait(30);
|
|
var_00 rotateto(var_00.angles + (0,90,0),1,0,1);
|
|
wait(randomint(5));
|
|
var_01 rotateto(var_01.angles + (0,-90,0),1,0,1);
|
|
var_00 disconnectpaths();
|
|
var_01 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 90
|
|
training_door_cover_cloak_think()
|
|
{
|
|
var_00 = self getmodelfromentity();
|
|
self setmodel(var_00 + "_cloak");
|
|
self drawpostresolve();
|
|
self setmaterialscriptparam(1,0);
|
|
wait(1);
|
|
self setmaterialscriptparam(0,1.5);
|
|
wait(1.5);
|
|
common_scripts\utility::hide_notsolid();
|
|
common_scripts\utility::flag_wait("training_round_2");
|
|
self setmodel(var_00);
|
|
common_scripts\utility::show_solid();
|
|
}
|
|
|
|
//Function Number: 91
|
|
gideon_change_outfit()
|
|
{
|
|
if(level.gideon.model == "kva_body_assault")
|
|
{
|
|
if(isdefined(level.gideon.magic_bullet_shield))
|
|
{
|
|
level.gideon maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
level.gideon delete();
|
|
maps\_utility::clear_color_order("b","allies");
|
|
level.gideon = getent("gideon","targetname") maps\_utility::spawn_ai(1);
|
|
level.gideon.script_pushable = 0;
|
|
var_00 = common_scripts\utility::getstruct("gideon_exo_exit","targetname");
|
|
level.gideon forceteleport(var_00.origin,var_00.angles);
|
|
level.gideon maps\_utility::gun_remove();
|
|
}
|
|
}
|
|
|
|
//Function Number: 92
|
|
gideon_change_mask(param_00)
|
|
{
|
|
wait(5.5);
|
|
level.gideon detach("head_hero_gideon_mask");
|
|
level.gideon attach("head_hero_gideon_mask_down");
|
|
}
|
|
|
|
//Function Number: 93
|
|
stack_make()
|
|
{
|
|
var_00 = spawnstruct();
|
|
var_00.contents = [];
|
|
var_00.top = -1;
|
|
var_00.isstack = 1;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 94
|
|
stack_push(param_00)
|
|
{
|
|
var_01 = self;
|
|
var_01.top++;
|
|
var_01.contents[var_01.top] = param_00;
|
|
}
|
|
|
|
//Function Number: 95
|
|
stack_pop()
|
|
{
|
|
var_00 = self;
|
|
if(var_00.top < 0)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_01 = var_00.contents[var_00.top];
|
|
var_00.top--;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 96
|
|
stack_peek()
|
|
{
|
|
var_00 = self;
|
|
return var_00.contents[var_00.top];
|
|
}
|
|
|
|
//Function Number: 97
|
|
aim_assist_using_bmodels_init()
|
|
{
|
|
if(isdefined(level.aim_assist_with_bmodels))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.aim_assist_with_bmodels = spawnstruct();
|
|
level.aim_assist_with_bmodels.entities = getentarray("script_brushmodel_for_aim_assist","targetname");
|
|
level.aim_assist_with_bmodels.entitiesinuse = [];
|
|
var_00 = stack_make();
|
|
level.aim_assist_with_bmodels.stack = var_00;
|
|
foreach(var_02 in level.aim_assist_with_bmodels.entities)
|
|
{
|
|
var_02.maxhealth = 1000;
|
|
var_02 setnormalhealth(var_02.maxhealth);
|
|
var_02 hide();
|
|
var_00 stack_push(var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 98
|
|
is_aim_assist_enabled_on_script_model(param_00)
|
|
{
|
|
return isdefined(param_00.aim_assist_bmodel);
|
|
}
|
|
|
|
//Function Number: 99
|
|
enable_aim_assist_on_script_model(param_00,param_01)
|
|
{
|
|
var_02 = level.aim_assist_with_bmodels.stack;
|
|
var_03 = var_02 stack_pop();
|
|
var_03.health = var_03.maxhealth;
|
|
var_03 enableaimassist();
|
|
var_03 linkto(param_00,param_01,(4,0,0),(0,0,0));
|
|
param_00.aim_assist_bmodel = var_03;
|
|
level.aim_assist_with_bmodels.entitiesinuse = common_scripts\utility::array_add(level.aim_assist_with_bmodels.entitiesinuse,var_03);
|
|
}
|
|
|
|
//Function Number: 100
|
|
disable_aim_assist_on_script_model(param_00)
|
|
{
|
|
var_01 = param_00.aim_assist_bmodel;
|
|
var_01 unlink();
|
|
var_02 = level.aim_assist_with_bmodels.stack;
|
|
var_01 disableaimassist();
|
|
var_02 stack_push(var_01);
|
|
param_00.aim_assist_bmodel = undefined;
|
|
level.aim_assist_with_bmodels.entitiesinuse = common_scripts\utility::array_remove(level.aim_assist_with_bmodels.entitiesinuse,var_01);
|
|
}
|
|
|
|
//Function Number: 101
|
|
score_manager_print_final_score(param_00)
|
|
{
|
|
var_01 = level.score_keeper.count;
|
|
var_02 = level.score_keeper.max;
|
|
if(param_00 == "holo_range")
|
|
{
|
|
if(var_01 > 2375)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_result_ilona");
|
|
}
|
|
|
|
if(var_01 < 600)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_result_bad");
|
|
}
|
|
|
|
if(var_01 >= 600 && var_01 < 1200)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_result_average");
|
|
}
|
|
|
|
if(var_01 >= 1200 && var_01 < 2000)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_result_good");
|
|
}
|
|
|
|
if(var_01 >= 2000 && var_01 < 3000)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_result_excellent");
|
|
}
|
|
|
|
if(var_01 >= 3000)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_result_perfect");
|
|
}
|
|
|
|
if(var_01 >= 2000)
|
|
{
|
|
maps\_utility::giveachievement_wrapper("LEVEL_2A");
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(param_00 == "grenade_range")
|
|
{
|
|
switch(var_01)
|
|
{
|
|
case 0:
|
|
iprintlnbold("TRY AGAIN");
|
|
break;
|
|
|
|
case 1:
|
|
iprintlnbold("AWFUL");
|
|
break;
|
|
|
|
case 2:
|
|
iprintlnbold("TERRIBLE");
|
|
break;
|
|
|
|
case 3:
|
|
iprintlnbold("TERRIBLE");
|
|
break;
|
|
|
|
case 4:
|
|
iprintlnbold("POOR");
|
|
break;
|
|
|
|
case 5:
|
|
iprintlnbold("POOR");
|
|
break;
|
|
|
|
case 6:
|
|
iprintlnbold("AVERAGE");
|
|
break;
|
|
|
|
case 7:
|
|
iprintlnbold("AVERAGE");
|
|
break;
|
|
|
|
case 8:
|
|
iprintlnbold("DECENT");
|
|
break;
|
|
|
|
case 9:
|
|
iprintlnbold("DECENT");
|
|
break;
|
|
|
|
case 10:
|
|
iprintlnbold("GOOD");
|
|
break;
|
|
|
|
case 11:
|
|
iprintlnbold("GOOD");
|
|
break;
|
|
|
|
case 12:
|
|
iprintlnbold("GREAT");
|
|
break;
|
|
|
|
case 13:
|
|
iprintlnbold("GREAT");
|
|
break;
|
|
|
|
case 14:
|
|
iprintlnbold("AWESOME");
|
|
break;
|
|
|
|
case 15:
|
|
iprintlnbold("AWESOME");
|
|
break;
|
|
|
|
case 16:
|
|
iprintlnbold("PERFECT");
|
|
break;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(param_00 == "drone_range")
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
//Function Number: 102
|
|
score_manager_print_current_score()
|
|
{
|
|
}
|
|
|
|
//Function Number: 103
|
|
score_manager_detect_timeout(param_00)
|
|
{
|
|
level.score_keeper endon("score_manager_timed_out");
|
|
wait(param_00);
|
|
level.score_keeper notify("score_manager_timed_out");
|
|
}
|
|
|
|
//Function Number: 104
|
|
score_manager_increase_score(param_00,param_01)
|
|
{
|
|
if(isdefined(param_00) && isdefined(param_00.team) && param_00.team == level.player.team)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_friendly");
|
|
level.score_keeper.count = level.score_keeper.count - param_01;
|
|
if(param_01 == 25)
|
|
{
|
|
playfx(level._effect["recovery_scoring_minus25"],param_00.origin + (0,0,80));
|
|
}
|
|
|
|
if(param_01 == 50)
|
|
{
|
|
playfx(level._effect["recovery_scoring_minus50"],param_00.origin + (0,0,80));
|
|
}
|
|
|
|
if(param_01 == 75)
|
|
{
|
|
playfx(level._effect["recovery_scoring_minus75"],param_00.origin + (0,0,80));
|
|
}
|
|
|
|
if(param_01 == 100)
|
|
{
|
|
playfx(level._effect["recovery_scoring_minus100"],param_00.origin + (0,0,80));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level.score_keeper.count = level.score_keeper.count + param_01;
|
|
if(param_01 == 25)
|
|
{
|
|
playfx(level._effect["recovery_scoring_add25"],param_00.origin + (0,0,80));
|
|
}
|
|
|
|
if(param_01 == 50)
|
|
{
|
|
playfx(level._effect["recovery_scoring_add50"],param_00.origin + (0,0,80));
|
|
}
|
|
|
|
if(param_01 == 75)
|
|
{
|
|
playfx(level._effect["recovery_scoring_add75"],param_00.origin + (0,0,80));
|
|
}
|
|
|
|
if(param_01 == 100)
|
|
{
|
|
playfx(level._effect["recovery_scoring_add100"],param_00.origin + (0,0,80));
|
|
}
|
|
}
|
|
|
|
level.score_keeper notify("score_manager_score_increased");
|
|
score_manager_print_current_score();
|
|
}
|
|
|
|
//Function Number: 105
|
|
score_manager_waittill_timeout_or_maxscore(param_00,param_01)
|
|
{
|
|
level.score_keeper endon("score_manager_timed_out");
|
|
level.score_keeper thread score_manager_detect_timeout(param_00);
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = level.score_keeper.max - level.score_keeper.count;
|
|
}
|
|
|
|
while(param_01 > 0)
|
|
{
|
|
level.score_keeper waittill("score_manager_score_increased");
|
|
param_01--;
|
|
}
|
|
|
|
level.score_keeper notify("score_manager_timed_out");
|
|
}
|
|
|
|
//Function Number: 106
|
|
score_manager_force_stop()
|
|
{
|
|
level.score_keeper notify("score_manager_timed_out");
|
|
}
|
|
|
|
//Function Number: 107
|
|
score_manager_init(param_00)
|
|
{
|
|
if(!isdefined(level.score_keeper))
|
|
{
|
|
level.score_keeper = spawnstruct();
|
|
}
|
|
|
|
level.score_keeper.count = 0;
|
|
level.score_keeper.max = param_00;
|
|
level.score_keeper notify("score_manager_timed_out");
|
|
}
|
|
|
|
//Function Number: 108
|
|
score_manager_detect_enemy_death()
|
|
{
|
|
level.score_keeper endon("score_manager_timed_out");
|
|
self endon("score_manager_detect_enemy_death_stop");
|
|
common_scripts\utility::waittill_either("death","pain_death");
|
|
score_manager_increase_score(self);
|
|
}
|
|
|
|
//Function Number: 109
|
|
score_manager_detect_damage(param_00,param_01)
|
|
{
|
|
level.score_keeper endon("score_manager_timed_out");
|
|
var_02 = level.score_keeper.stats;
|
|
self setcandamage(1);
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
while(!isdefined(var_03) || var_03 == "MOD_CRUSH")
|
|
{
|
|
self waittill("damage",var_05,var_06,var_07,var_08,var_03,var_09,var_0A,var_04,var_0B);
|
|
}
|
|
|
|
if(isdefined(param_00) && param_00 == 1)
|
|
{
|
|
var_0C = self gettagorigin("tag_head");
|
|
var_0D = self gettagorigin("tag_chest");
|
|
var_0E = self gettagorigin("tag_arms");
|
|
var_0F = self gettagorigin("tag_legs");
|
|
level.score_keeper notify("score_change");
|
|
playfx(level._effect["expround_asphalt_1"],self.origin);
|
|
if(isdefined(param_01) && param_01)
|
|
{
|
|
playfx(level._effect["recovery_scoring_target_shutter_enemy"],var_0D);
|
|
var_02.enemy_kills++;
|
|
if(var_04 == "tag_head")
|
|
{
|
|
score_manager_increase_score(self,100);
|
|
var_02.enemy_headshots++;
|
|
}
|
|
else if(var_04 == "tag_chest")
|
|
{
|
|
score_manager_increase_score(self,75);
|
|
var_02.enemy_chestshots++;
|
|
}
|
|
else if(var_04 == "tag_arms")
|
|
{
|
|
score_manager_increase_score(self,50);
|
|
var_02.enemy_armshots++;
|
|
}
|
|
else if(var_04 == "tag_legs")
|
|
{
|
|
score_manager_increase_score(self,50);
|
|
var_02.enemy_legshots++;
|
|
}
|
|
|
|
soundscripts\_snd::snd_message("shooting_range_enemy_shot",self,var_04);
|
|
}
|
|
else
|
|
{
|
|
playfx(level._effect["recovery_scoring_target_shutter_friendly"],var_0D);
|
|
var_02.civ_kills++;
|
|
if(var_04 == "tag_head")
|
|
{
|
|
score_manager_increase_score(self,100);
|
|
var_02.civ_headshots++;
|
|
}
|
|
else if(var_04 == "tag_chest")
|
|
{
|
|
score_manager_increase_score(self,75);
|
|
var_02.civ_chestshots++;
|
|
}
|
|
else if(var_04 == "tag_arms")
|
|
{
|
|
score_manager_increase_score(self,50);
|
|
var_02.civ_armshots++;
|
|
}
|
|
else if(var_04 == "tag_legs")
|
|
{
|
|
score_manager_increase_score(self,50);
|
|
var_02.civ_legshots++;
|
|
}
|
|
|
|
soundscripts\_snd::snd_message("shooting_range_friendly_shot",self,var_04);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
score_manager_increase_score(self,1);
|
|
playfx(level._effect["frag_grenade_default"],self.origin);
|
|
soundscripts\_snd_playsound::snd_play_linked("wpn_grenade_exp");
|
|
}
|
|
|
|
self notify("target_hit");
|
|
}
|
|
|
|
//Function Number: 110
|
|
wait_for_primary_weapon_pickup()
|
|
{
|
|
level endon("shooting_range_started_once");
|
|
level.player waittill("weapon_switch_started");
|
|
for(;;)
|
|
{
|
|
var_00 = level.player getcurrentweapon();
|
|
if(var_00 != "none")
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
common_scripts\utility::flag_set("flag_obj_equip_firing_range");
|
|
common_scripts\utility::flag_set("flag_vo_shooting_range_02");
|
|
}
|
|
|
|
//Function Number: 111
|
|
attach_flashlight_on_gun()
|
|
{
|
|
hand_flashlight_remove();
|
|
if(!isdefined(self.gun_flashlight) || !self.gun_flashlight)
|
|
{
|
|
playfxontag(level._effect["flashlight"],self,"tag_flash");
|
|
self.gun_flashlight = 1;
|
|
self notify("flashlight_on_gun");
|
|
}
|
|
}
|
|
|
|
//Function Number: 112
|
|
gun_flashlight_off()
|
|
{
|
|
if(isdefined(self.gun_flashlight) && self.gun_flashlight)
|
|
{
|
|
stopfxontag(level._effect["flashlight"],self,"tag_flash");
|
|
self.gun_flashlight = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 113
|
|
attach_flashlight_in_hand()
|
|
{
|
|
if(isdefined(self.hand_flashlight))
|
|
{
|
|
return;
|
|
}
|
|
|
|
gun_flashlight_off();
|
|
var_00 = "TAG_INHAND";
|
|
self.hand_flashlight = spawn("script_model",self.origin);
|
|
var_01 = self.hand_flashlight;
|
|
var_01.owner = self;
|
|
var_01.origin = self gettagorigin(var_00);
|
|
var_01.angles = self gettagangles(var_00);
|
|
var_01 setmodel("com_flashlight_on");
|
|
var_01 linkto(self,var_00);
|
|
var_01 thread hand_flashlight_watch_for_drop();
|
|
thread hand_flashlight_handle_alert();
|
|
thread hand_flashlight_handle_node_pause();
|
|
thread hand_flashlight_handle_effects();
|
|
hand_flashlight_on();
|
|
}
|
|
|
|
//Function Number: 114
|
|
hand_flashlight_watch_for_drop()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
if(!isdefined(self.owner) || self.owner.health <= 0)
|
|
{
|
|
stopfxontag(common_scripts\utility::getfx("flashlight"),self,"tag_light");
|
|
return;
|
|
}
|
|
|
|
wait(0.2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 115
|
|
hand_flashlight_on()
|
|
{
|
|
self.hand_flashlight setmodel("com_flashlight_on");
|
|
playfxontag(common_scripts\utility::getfx("flashlight"),self.hand_flashlight,"tag_light");
|
|
}
|
|
|
|
//Function Number: 116
|
|
hand_flashlight_off()
|
|
{
|
|
self.hand_flashlight setmodel("com_flashlight_off");
|
|
stopfxontag(common_scripts\utility::getfx("flashlight"),self.hand_flashlight,"tag_light");
|
|
}
|
|
|
|
//Function Number: 117
|
|
hand_flashlight_remove()
|
|
{
|
|
if(isdefined(self.hand_flashlight))
|
|
{
|
|
hand_flashlight_off();
|
|
self.hand_flashlight delete();
|
|
self notify("stop_flashlight_thread");
|
|
}
|
|
}
|
|
|
|
//Function Number: 118
|
|
hand_flashlight_should_hide(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(param_00.script_animation) && param_00.script_animation != "pause")
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(param_00.script_delay))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 119
|
|
hand_flashlight_handle_alert()
|
|
{
|
|
self endon("death");
|
|
self endon("stop_flashlight_thread");
|
|
common_scripts\utility::waittill_any("death","remove_flashlight","enemy","reached_path_end");
|
|
wait(0.1);
|
|
if(isalive(self))
|
|
{
|
|
thread attach_flashlight_on_gun();
|
|
}
|
|
}
|
|
|
|
//Function Number: 120
|
|
hand_flashlight_handle_node_pause()
|
|
{
|
|
self endon("death");
|
|
self endon("remove_flashlight");
|
|
self endon("stop_flashlight_thread");
|
|
for(;;)
|
|
{
|
|
self waittill("goal");
|
|
if(hand_flashlight_should_hide(self.last_patrol_goal))
|
|
{
|
|
self notify("flashlight_off");
|
|
self waittill("release_node");
|
|
self notify("flashlight_on");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 121
|
|
hand_flashlight_handle_effects()
|
|
{
|
|
self endon("death");
|
|
self endon("remove_flashlight");
|
|
self endon("stop_flashlight_thread");
|
|
for(;;)
|
|
{
|
|
self waittill("flashlight_off");
|
|
hand_flashlight_off();
|
|
self waittill("flashlight_on");
|
|
hand_flashlight_on();
|
|
}
|
|
}
|
|
|
|
//Function Number: 122
|
|
attach_flashlight_on_vehicle_unload()
|
|
{
|
|
self waittill("jumping_out");
|
|
attach_flashlight_on_gun();
|
|
}
|
|
|
|
//Function Number: 123
|
|
training_stealth_spotted()
|
|
{
|
|
common_scripts\utility::flag_wait("_stealth_spotted");
|
|
thread training_s2_set_squad_active_and_target();
|
|
common_scripts\utility::flag_set("training_s2_start_alerted");
|
|
common_scripts\utility::flag_set("flag_vo_training_s2_joker_here_they");
|
|
common_scripts\utility::flag_set("flag_obj_rescue2_entrance_clear");
|
|
wait(3);
|
|
if(level.player maps\_player_exo::overdrive_is_on() == 0)
|
|
{
|
|
if(level.player.exobatterylevel == 0)
|
|
{
|
|
maps\recovery_code::give_overdrive_battery();
|
|
}
|
|
|
|
common_scripts\utility::flag_set("flag_vo_training_s2_gideon_use_overdrive");
|
|
thread maps\_utility::display_hint_timeout("overdrive_prompt_sim",3);
|
|
}
|
|
}
|
|
|
|
//Function Number: 124
|
|
training_s1_golf_course_custom_stealth()
|
|
{
|
|
var_00 = [];
|
|
var_00["prone"] = 150;
|
|
var_00["crouch"] = 400;
|
|
var_00["stand"] = 400;
|
|
maps\_stealth_visibility_system::system_set_detect_ranges(var_00);
|
|
var_01 = [];
|
|
var_01["player_dist"] = 1500;
|
|
var_01["sight_dist"] = 480;
|
|
var_01["detect_dist"] = 240;
|
|
var_01["found_dist"] = 96;
|
|
var_01["found_dog_dist"] = 60;
|
|
maps\_stealth_utility::stealth_corpse_ranges_custom(var_01);
|
|
}
|
|
|
|
//Function Number: 125
|
|
training_reset_stealth_settings()
|
|
{
|
|
maps\_stealth_utility::stealth_corpse_ranges_default();
|
|
}
|
|
|
|
//Function Number: 126
|
|
training_s2_squad_allow_run()
|
|
{
|
|
if(isalive(level.gideon))
|
|
{
|
|
level.gideon allowedstances("prone","crouch","stand");
|
|
}
|
|
|
|
if(isalive(level.joker))
|
|
{
|
|
level.joker allowedstances("prone","crouch","stand");
|
|
}
|
|
|
|
if(isalive(level.ally_s2_squad_member_1))
|
|
{
|
|
level.ally_s2_squad_member_1 allowedstances("prone","crouch","stand");
|
|
}
|
|
}
|
|
|
|
//Function Number: 127
|
|
training_s2_enemies_start_think(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
thread attach_flashlight_on_gun();
|
|
thread maps\_utility::set_battlechatter(0);
|
|
maps\_utility::disable_long_death();
|
|
thread training_s2_enemies_start_think_alerted(param_00);
|
|
thread training_s2_starting_enemy_charge(param_01);
|
|
common_scripts\utility::flag_wait(param_02);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 128
|
|
training_s2_enemies_start_think_alerted(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
maps\_utility::waittill_aigroupcount("training_s2_starting_enemies",17);
|
|
self notify("alerted");
|
|
maps\_utility::set_battlechatter(1);
|
|
var_01 = getnode("training_s2_enemy_attack_node4","targetname");
|
|
if(isdefined(var_01))
|
|
{
|
|
self.goalradius = 200;
|
|
maps\_utility::set_forcegoal();
|
|
maps\_utility::set_goal_node(var_01);
|
|
self waittill("goal");
|
|
maps\_utility::unset_forcegoal();
|
|
}
|
|
}
|
|
|
|
//Function Number: 129
|
|
training_s2_enemies_start2_think(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
thread attach_flashlight_on_gun();
|
|
thread maps\_utility::set_battlechatter(0);
|
|
maps\_utility::disable_long_death();
|
|
thread training_s2_enemies_start2_think_alerted(param_00);
|
|
thread training_s2_starting_enemy_charge(param_01);
|
|
common_scripts\utility::flag_wait(param_02);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 130
|
|
training_s2_enemies_start2_think_alerted(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
maps\_utility::waittill_aigroupcount("training_s2_starting_enemies",11);
|
|
self notify("alerted");
|
|
var_01 = getnode("training_s2_enemy_attack_node8","targetname");
|
|
thread maps\_utility::set_battlechatter(1);
|
|
if(isdefined(var_01))
|
|
{
|
|
self.goalradius = 32;
|
|
maps\_utility::set_forcegoal();
|
|
maps\_utility::set_goal_node(var_01);
|
|
self waittill("goal");
|
|
maps\_utility::unset_forcegoal();
|
|
}
|
|
}
|
|
|
|
//Function Number: 131
|
|
training_s2_enemies_patrol_think(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
thread attach_flashlight_on_gun();
|
|
thread maps\_utility::set_battlechatter(0);
|
|
maps\_utility::disable_long_death();
|
|
thread training_s2_enemy_notify(param_00);
|
|
thread training_s2_enemies_patrol_think_alerted(param_00);
|
|
thread training_s2_starting_enemy_charge(param_01);
|
|
common_scripts\utility::flag_wait(param_02);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 132
|
|
training_s2_starting_enemy_charge(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
maps\_utility::player_seek();
|
|
}
|
|
|
|
//Function Number: 133
|
|
training_s2_enemy_notify(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
|
|
wait(2);
|
|
self notify("alerted");
|
|
common_scripts\utility::flag_set("_stealth_spotted");
|
|
common_scripts\utility::flag_set(param_00);
|
|
}
|
|
|
|
//Function Number: 134
|
|
training_s2_enemies_patrol_think_alerted(param_00)
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self.ignoreall = 0;
|
|
self.ignoreme = 0;
|
|
thread maps\_stealth_shared_utilities::enemy_reaction_state_alert();
|
|
self notify("alerted");
|
|
maps\_utility::set_battlechatter(1);
|
|
}
|
|
|
|
//Function Number: 135
|
|
training_s2_enemies_living_room_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.animation))
|
|
{
|
|
thread maps\_utility::anim_stopanimscripted();
|
|
}
|
|
|
|
var_01 = getent("training_s1_threat_react_origin","targetname");
|
|
var_02 = var_01.origin;
|
|
thread maps\_stealth_shared_utilities::enemy_reactto_and_lookaround(var_02);
|
|
self notify("alert");
|
|
thread maps\_stealth_shared_utilities::enemy_reaction_state_alert();
|
|
thread maps\_stealth_utility::disable_stealth_for_ai();
|
|
thread maps\_utility::set_battlechatter(1);
|
|
wait(randomfloatrange(0.25,1));
|
|
var_03 = self findbestcovernode();
|
|
if(isdefined(var_03))
|
|
{
|
|
maps\_utility::set_goal_node(var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 136
|
|
training_s2_threat_death_check()
|
|
{
|
|
self waittill("death");
|
|
if(common_scripts\utility::flag("training_s2_flag_thermal") == 0)
|
|
{
|
|
level.threat_attack = "nil";
|
|
common_scripts\utility::flag_set("training_s2_flag_thermal");
|
|
}
|
|
}
|
|
|
|
//Function Number: 137
|
|
training_s2_living_room_check()
|
|
{
|
|
maps\_utility::waittill_aigroupcleared("training_s2_enemies_living_room");
|
|
level.living_room_clear = 1;
|
|
}
|
|
|
|
//Function Number: 138
|
|
training_s2_living_room_timer()
|
|
{
|
|
wait(15);
|
|
level.living_room_clear = 1;
|
|
}
|
|
|
|
//Function Number: 139
|
|
training_s2_enemies_hall_think()
|
|
{
|
|
self endon("death");
|
|
maps\_utility::disable_long_death();
|
|
}
|
|
|
|
//Function Number: 140
|
|
training_s2_threat_door()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
|
|
var_01 = getent("training_s1_flash_door","targetname");
|
|
var_01.animname = "door_prop";
|
|
var_01 maps\_utility::assign_animtree();
|
|
var_02 = getent("living_room_door_clip","targetname");
|
|
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s2_threat_door_open");
|
|
var_02 linkto(var_01,"door");
|
|
common_scripts\utility::flag_wait("training_s2_peak_thermal_door");
|
|
var_00 maps\_anim::anim_single_solo(var_01,"training_s2_threat_door_open");
|
|
var_00 thread maps\_anim::anim_loop_solo(var_01,"training_s2_threat_door_open_idle","stop_loop");
|
|
common_scripts\utility::flag_wait("training_s2_open_thermal_door");
|
|
var_00 notify("stop_loop");
|
|
var_00 maps\_anim::anim_single_solo(var_01,"training_s2_threat_door_out");
|
|
var_02 connectpaths();
|
|
common_scripts\utility::flag_wait("training_s2_breach_done");
|
|
var_00 maps\_anim::anim_first_frame_solo(var_01,"training_s2_threat_door_open");
|
|
wait(1);
|
|
var_02 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 141
|
|
training_s2_flash_monitor()
|
|
{
|
|
level.threat_attack = "nil";
|
|
level.player waittill("grenade_fire",var_00,var_01);
|
|
var_00 waittill("death");
|
|
if(var_01 == "paint_grenade_var")
|
|
{
|
|
level.threat_attack = "threat";
|
|
}
|
|
else
|
|
{
|
|
level.threat_attack = "other";
|
|
}
|
|
|
|
common_scripts\utility::flag_set("training_s2_flag_thermal");
|
|
}
|
|
|
|
//Function Number: 142
|
|
training_s2_kill_threat_enemies()
|
|
{
|
|
self endon("death");
|
|
wait(5);
|
|
if(isalive(self))
|
|
{
|
|
magicbullet(level.gideon.weapon,level.gideon gettagorigin("tag_flash"),self geteye());
|
|
bloody_death();
|
|
}
|
|
}
|
|
|
|
//Function Number: 143
|
|
training_s2_start_squad_attack(param_00)
|
|
{
|
|
common_scripts\utility::flag_wait(param_00);
|
|
training_s2_set_squad_active_and_target();
|
|
}
|
|
|
|
//Function Number: 144
|
|
training_s2_opening_guy_think(param_00)
|
|
{
|
|
var_01 = common_scripts\utility::getstruct(param_00,"targetname");
|
|
self forceteleport(var_01.origin,var_01.angles);
|
|
self setgoalpos(self.origin);
|
|
self allowedstances("crouch");
|
|
maps\_stealth_utility::stealth_plugin_basic();
|
|
maps\_stealth_utility::stealth_plugin_accuracy();
|
|
maps\_stealth_utility::stealth_plugin_smart_stance();
|
|
maps\_utility::disable_surprise();
|
|
if(!isdefined(level.allies_s2))
|
|
{
|
|
level.allies_s2 = [];
|
|
}
|
|
|
|
level.allies_s2 = common_scripts\utility::array_add(level.allies_s2,self);
|
|
}
|
|
|
|
//Function Number: 145
|
|
training_s1_clear_bedrooms(param_00)
|
|
{
|
|
wait(2);
|
|
var_01 = getent("bedroom_1_door","targetname");
|
|
getent(var_01.target,"targetname") linkto(var_01);
|
|
var_02 = 1;
|
|
var_01 rotateto(var_01.angles + (0,145,0),var_02,0.05,0.05);
|
|
var_01 common_scripts\utility::delaycall(var_02,::connectpaths);
|
|
var_01 common_scripts\utility::delaycall(2,::disconnectpaths);
|
|
var_03 = getent("bedroom_2_door","targetname");
|
|
getent(var_03.target,"targetname") linkto(var_03);
|
|
var_03.angles = var_03.angles + (0,85,0);
|
|
var_03 connectpaths();
|
|
var_03 disconnectpaths();
|
|
maps\_utility::array_spawn_noteworthy("training_s1_bedroom_spawners",1);
|
|
common_scripts\utility::flag_wait(param_00);
|
|
var_01 rotateto(var_01.angles + (0,-145,0),var_02,0.05,0.05);
|
|
var_01 common_scripts\utility::delaycall(var_02,::connectpaths);
|
|
var_01 common_scripts\utility::delaycall(2,::disconnectpaths);
|
|
var_03.angles = var_03.angles + (0,-85,0);
|
|
var_03 connectpaths();
|
|
var_03 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 146
|
|
training_s1_bedroom_spawners_think()
|
|
{
|
|
maps\_utility::set_battlechatter(0);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 147
|
|
training_s2_drone_manager()
|
|
{
|
|
common_scripts\utility::flag_set("training_s2_drone_start");
|
|
level notify("training_s2_drone_start");
|
|
level.player setweaponhudiconoverride("actionslot3","dpad_icon_drone_off");
|
|
common_scripts\utility::flag_set("flag_disable_exo");
|
|
training_s2_player_drone_control();
|
|
common_scripts\utility::flag_clear("flag_disable_exo");
|
|
common_scripts\utility::flag_clear("flag_player_using_drone");
|
|
common_scripts\utility::flag_set("training_s2_drone_attack_done");
|
|
}
|
|
|
|
//Function Number: 148
|
|
training_s2_player_drone_control()
|
|
{
|
|
var_00 = getent("training_s2_pdrone","targetname");
|
|
var_01 = common_scripts\utility::getstruct("pdrone_player_spawnstruct_1","targetname");
|
|
var_02 = common_scripts\utility::getstruct("pdrone_player_nothreat_return","targetname");
|
|
var_03 = getnode("pdrone_player_spawnnode_1","targetname");
|
|
var_04 = vehicle_scripts\_pdrone_player::pdrone_deploy(var_00,0,var_01);
|
|
vehicle_scripts\_pdrone_player::pdrone_player_use(var_04,"training_drone_space",undefined,undefined);
|
|
var_04 vehicle_scripts\_pdrone_player::pdrone_player_add_vehicle_target("script_noteworthy","training_s2_patio_vehicles");
|
|
level.player.drone = var_04;
|
|
var_04 vehicle_scripts\_pdrone_player::pdrone_player_enter(1,var_03,var_02);
|
|
soundscripts\_snd::snd_message("rec_player_drone_start",var_04);
|
|
var_04 vehicle_scripts\_pdrone_player::pdrone_player_loop();
|
|
soundscripts\_snd::snd_message("rec_player_drone_end");
|
|
if(var_04.customhealth <= 0)
|
|
{
|
|
common_scripts\utility::flag_set("flag_vo_training_s2_gideon_drone_down");
|
|
}
|
|
|
|
var_04 vehicle_scripts\_pdrone_player::pdrone_player_exit(1);
|
|
var_04 delete();
|
|
}
|
|
|
|
//Function Number: 149
|
|
training_s2_enemies_patio_think(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
thread maps\_stealth_utility::enable_stealth_for_ai();
|
|
maps\_utility::disable_long_death();
|
|
self thermaldrawenable();
|
|
thread attach_flashlight_on_gun();
|
|
thread maps\_stealth_utility::disable_stealth_system();
|
|
self notify("awareness_alert_level","warning");
|
|
thread maps\_utility::set_battlechatter(1);
|
|
common_scripts\utility::flag_wait(param_02);
|
|
thread maps\_utility::player_seek_enable();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 150
|
|
training_s2_patio_enemies_alert_think()
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::waittill_any_ents(self,"patrol_alerted",self,"_stealth_spotted",self,"stealth_event",self,"_stealth_found_corpse",self,"alerted",self,"enemy");
|
|
self notify("alerted");
|
|
common_scripts\utility::flag_set("training_s2_patio_alert");
|
|
}
|
|
|
|
//Function Number: 151
|
|
training_s2_patio_enemies_damaged(param_00)
|
|
{
|
|
self endon("death");
|
|
self waittill("damage");
|
|
maps\_stealth_utility::disable_stealth_system();
|
|
common_scripts\utility::flag_set(param_00);
|
|
}
|
|
|
|
//Function Number: 152
|
|
training_s2_shield_tutorial()
|
|
{
|
|
if(level.player maps\_player_exo::exo_shield_is_on() == 0)
|
|
{
|
|
if(level.player.exobatterylevel == 0)
|
|
{
|
|
maps\recovery_code::give_overdrive_battery();
|
|
}
|
|
|
|
common_scripts\utility::flag_set("flag_vo_training_s2_gideon_use_your_shield");
|
|
thread maps\_utility::display_hint_timeout("shield_prompt_sim",3);
|
|
}
|
|
}
|
|
|
|
//Function Number: 153
|
|
training_s1_drone_attack_think()
|
|
{
|
|
self endon("death");
|
|
thread maps\_shg_utility::make_emp_vulnerable();
|
|
self laseron();
|
|
if(isdefined(self.animation))
|
|
{
|
|
self.animname = "drone";
|
|
var_00 = getent("training_s1_drone_attack_scene","targetname");
|
|
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
|
|
var_00 thread maps\_anim::anim_single_solo(self,self.animation);
|
|
}
|
|
}
|
|
|
|
//Function Number: 154
|
|
training_s2_drone_ambush_attack_think()
|
|
{
|
|
self endon("death");
|
|
thread maps\_shg_utility::make_emp_vulnerable();
|
|
self laseron();
|
|
common_scripts\utility::flag_wait("training_s2_living_room_drone_attack_done");
|
|
wait(randomfloatrange(0.5,1.5));
|
|
self notify("death");
|
|
}
|
|
|
|
//Function Number: 155
|
|
training_s2_drone_attack_think(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self.pacifist = 1;
|
|
thread maps\_shg_utility::make_emp_vulnerable();
|
|
self laseron();
|
|
thread training_s2_drone_damaged(param_01);
|
|
thread training_s2_drone_attack_death(param_01);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
self notify("awareness_alert_level","warning");
|
|
self.pacifist = 0;
|
|
self.ignoreall = 0;
|
|
self.engage_enemy = 1;
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 156
|
|
training_s2_drone_damaged(param_00)
|
|
{
|
|
self endon("death");
|
|
self waittill("damage");
|
|
maps\_stealth_utility::disable_stealth_system();
|
|
common_scripts\utility::flag_set(param_00);
|
|
}
|
|
|
|
//Function Number: 157
|
|
training_s2_drone_attack_death(param_00)
|
|
{
|
|
self waittill("death");
|
|
level.drones_s2_dead = level.drones_s2_dead + 1;
|
|
maps\_stealth_utility::disable_stealth_system();
|
|
common_scripts\utility::flag_set(param_00);
|
|
}
|
|
|
|
//Function Number: 158
|
|
set_tv_screen_broken()
|
|
{
|
|
var_00 = getentarray("tv_screen_broken","targetname");
|
|
var_01 = getentarray("tv_screen_unbroken","targetname");
|
|
foreach(var_03 in var_00)
|
|
{
|
|
var_03 common_scripts\utility::show_solid();
|
|
}
|
|
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_03 common_scripts\utility::hide_notsolid();
|
|
}
|
|
}
|
|
|
|
//Function Number: 159
|
|
set_tv_screen_unbroken()
|
|
{
|
|
var_00 = getentarray("tv_screen_broken","targetname");
|
|
var_01 = getentarray("tv_screen_unbroken","targetname");
|
|
foreach(var_03 in var_00)
|
|
{
|
|
var_03 common_scripts\utility::hide_notsolid();
|
|
}
|
|
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_03 common_scripts\utility::show_solid();
|
|
}
|
|
}
|
|
|
|
//Function Number: 160
|
|
training_s1_breack_tv_screen()
|
|
{
|
|
set_tv_screen_unbroken();
|
|
common_scripts\utility::flag_wait("training_s1_flag_screen_smash");
|
|
set_tv_screen_broken();
|
|
}
|
|
|
|
//Function Number: 161
|
|
training_s1_breach_enemy_think()
|
|
{
|
|
self endon("death");
|
|
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
self.animname = "generic";
|
|
self.ignoreme = 1;
|
|
maps\_utility::disable_long_death();
|
|
self.ignoresonicaoe = 1;
|
|
if(self.animation == "training_s1_exo_breach_kva2_start")
|
|
{
|
|
thread training_s1_breach_enemy_death_check();
|
|
self endon("killed");
|
|
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
|
|
thread training_s1_breach_enemy_stop_death_check();
|
|
var_00 maps\_anim::anim_single_solo(self,self.animation);
|
|
self.noragdoll = 1;
|
|
self.a.nodeath = 1;
|
|
self.allowdeath = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
return;
|
|
}
|
|
|
|
if(self.animation == "training_s1_exo_breach_kva3_start")
|
|
{
|
|
self disableaimassist();
|
|
}
|
|
|
|
self.allowdeath = 0;
|
|
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
|
|
var_00 maps\_anim::anim_single_solo(self,self.animation);
|
|
self.noragdoll = 1;
|
|
self.allowdeath = 1;
|
|
self.a.nodeath = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
}
|
|
|
|
//Function Number: 162
|
|
training_s1_breach_enemy_stop_death_check()
|
|
{
|
|
self endon("death");
|
|
self endon("killed");
|
|
wait(7);
|
|
self notify("killed2");
|
|
}
|
|
|
|
//Function Number: 163
|
|
training_s1_breach_enemy_death_check()
|
|
{
|
|
self endon("death");
|
|
self endon("killed2");
|
|
var_00 = 0;
|
|
var_01 = undefined;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
while(var_00 < 5)
|
|
{
|
|
self waittill("damage",var_05,var_04,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
|
|
var_00 = var_00 + var_05;
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_04))
|
|
{
|
|
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
|
|
soundscripts\_snd::snd_message("rec_chair_kva_gets_shot",var_01);
|
|
}
|
|
|
|
self notify("killed");
|
|
self stopanimscripted();
|
|
var_0B = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
var_0B maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva2_death");
|
|
self.noragdoll = 1;
|
|
self.allowdeath = 1;
|
|
self.a.nodeath = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
}
|
|
}
|
|
|
|
//Function Number: 164
|
|
training_s1_breach_enemy_monitor_death()
|
|
{
|
|
var_00 = 0;
|
|
var_01 = undefined;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
while(var_00 < 5)
|
|
{
|
|
self waittill("damage",var_04,var_05,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
|
|
var_00 = var_00 + var_04;
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(var_02))
|
|
{
|
|
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
|
|
soundscripts\_snd::snd_message("rec_kva_with_president_gets_shot",var_01);
|
|
}
|
|
}
|
|
|
|
thread training_s1_breach_slomo_end();
|
|
if(common_scripts\utility::flag("training_s1_flag_president_dead") == 0)
|
|
{
|
|
common_scripts\utility::flag_set("training_s1_breach_enemy_dead");
|
|
var_0B = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
var_0B thread maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva1_success");
|
|
wait 0.05;
|
|
self.noragdoll = 1;
|
|
self.allowdeath = 1;
|
|
self.a.nodeath = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
}
|
|
else
|
|
{
|
|
self.allowdeath = 1;
|
|
maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
}
|
|
|
|
if(var_03 == "j_head")
|
|
{
|
|
waittillframeend;
|
|
level.player.hud_damagefeedback fadeovertime(0.05);
|
|
level.player.hud_damagefeedback.alpha = 0;
|
|
level.player maps\_damagefeedback::updatedamagefeedback(self,1);
|
|
level.player maps\_upgrade_challenge::give_player_challenge_headshot(1);
|
|
}
|
|
else
|
|
{
|
|
level.player maps\_upgrade_challenge::give_player_challenge_kill(1);
|
|
}
|
|
|
|
wait(1);
|
|
level.player.hud_damagefeedback fadeovertime(1);
|
|
}
|
|
|
|
//Function Number: 165
|
|
training_s1_breach_slomo_end()
|
|
{
|
|
var_00 = 0.65;
|
|
maps\_utility::slowmo_setlerptime_out(var_00);
|
|
maps\_utility::slowmo_lerp_out();
|
|
maps\_utility::slowmo_end();
|
|
level.player setmovespeedscale(1);
|
|
}
|
|
|
|
//Function Number: 166
|
|
training_s1_breach_kva_think()
|
|
{
|
|
self endon("shot");
|
|
self endon("death");
|
|
self.ignoresonicaoe = 1;
|
|
self.animname = "generic";
|
|
self.ignoreme = 1;
|
|
self.allowdeath = 0;
|
|
maps\_utility::disable_long_death();
|
|
maps\_utility::forceuseweapon("iw5_titan45_sp","primary");
|
|
thread maps\_utility::set_battlechatter(0);
|
|
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
thread training_s1_breach_enemy_monitor_death();
|
|
var_00 maps\_anim::anim_first_frame_solo(self,"training_s1_exo_breach_kva1_start");
|
|
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva1_start");
|
|
var_00 thread maps\_anim::anim_loop_solo(self,"training_s1_exo_breach_kva1_idle","stop_loop");
|
|
wait(1.5);
|
|
var_00 notify("stop_loop");
|
|
level.president notify("stop_idle_loop_s1");
|
|
if(common_scripts\utility::flag("training_s1_breach_enemy_dead") == 0)
|
|
{
|
|
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva1_fail");
|
|
}
|
|
}
|
|
|
|
//Function Number: 167
|
|
training_s1_president_breach_setup(param_00)
|
|
{
|
|
self endon("death");
|
|
self.allowdeath = 0;
|
|
self.animname = "president";
|
|
self.name = "POTUS";
|
|
self.pacifist = 1;
|
|
self.ignoreme = 1;
|
|
self.ignoreall = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
thread training_s1_president_breach_monitor_death();
|
|
self.team = "allies";
|
|
level maps\_utility::clear_color_order("y","allies");
|
|
maps\_utility::set_force_color("y");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
if(isdefined(self.magic_bullet_shield))
|
|
{
|
|
maps\_utility::stop_magic_bullet_shield();
|
|
}
|
|
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 168
|
|
training_s1_president_dead()
|
|
{
|
|
common_scripts\utility::flag_wait("training_s1_flag_president_shot");
|
|
playfxontag(common_scripts\utility::getfx("recovery_blood_impact_burst"),level.president,"j_head");
|
|
common_scripts\utility::flag_set("training_s1_flag_president_dead");
|
|
level.president notify("shot");
|
|
soundscripts\_snd::snd_message("rec_s1_president_killed");
|
|
wait(2);
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
//Function Number: 169
|
|
training_s1_president_breach_monitor_death()
|
|
{
|
|
self endon("breach_s1_end");
|
|
var_00 = 0;
|
|
var_01 = undefined;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
while(var_00 < 5)
|
|
{
|
|
self waittill("damage",var_05,var_04,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
|
|
var_00 = var_00 + var_05;
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_04))
|
|
{
|
|
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
|
|
soundscripts\_snd::snd_message("rec_plr_kills_president",var_01);
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_set("training_s1_flag_president_dead");
|
|
self.allowdeath = 1;
|
|
self kill();
|
|
if(isplayer(var_04))
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_MURDERED");
|
|
}
|
|
else
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
|
|
}
|
|
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
//Function Number: 170
|
|
training_s1_bathroom_enemy_think()
|
|
{
|
|
self endon("death");
|
|
self.ignoresonicaoe = 1;
|
|
self.animname = "kva";
|
|
self.ignoreme = 1;
|
|
self.allowdeath = 1;
|
|
self.health = 1;
|
|
maps\_utility::disable_long_death();
|
|
thread training_s1_bathroom_enemy_flag_death();
|
|
thread training_s1_bathroom_force_death();
|
|
thread maps\_utility::set_battlechatter(0);
|
|
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
thread training_s1_bathroom_enemy_dialog();
|
|
var_00 maps\_anim::anim_first_frame_solo(self,"training_s1_exo_breach_kva_bathroom_start");
|
|
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva_bathroom_start");
|
|
self.allowdeath = 0;
|
|
self.health = 100;
|
|
var_00 thread maps\_anim::anim_loop_solo(self,"training_s1_exo_breach_kva_bathroom_idle","stop_loop");
|
|
self.ignoreme = 0;
|
|
level.joker.ignoreall = 0;
|
|
thread training_s1_bathroom_enemy_monitor_death();
|
|
self waittill("shot");
|
|
var_00 notify("stop_loop");
|
|
var_00 maps\_anim::anim_single_solo(self,"training_s1_exo_breach_kva_bathroom_death");
|
|
self.noragdoll = 1;
|
|
self.allowdeath = 1;
|
|
self.a.nodeath = 1;
|
|
wait(0.05);
|
|
self kill();
|
|
}
|
|
|
|
//Function Number: 171
|
|
training_s1_bathroom_enemy_dialog()
|
|
{
|
|
self endon("death");
|
|
wait(3.5);
|
|
common_scripts\utility::flag_set("flag_vo_training_s1_kva_what");
|
|
}
|
|
|
|
//Function Number: 172
|
|
training_s1_bathroom_enemy_monitor_death()
|
|
{
|
|
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
|
|
if(isdefined(var_03) && isdefined(var_04))
|
|
{
|
|
if(var_04 == "MOD_PISTOL_BULLET" || var_04 == "MOD_RIFLE_BULLET" || var_04 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
playfx(common_scripts\utility::getfx("flesh_hit"),var_03);
|
|
}
|
|
}
|
|
|
|
self notify("shot");
|
|
}
|
|
|
|
//Function Number: 173
|
|
training_s1_bathroom_enemy_flag_death()
|
|
{
|
|
self waittill("death");
|
|
common_scripts\utility::flag_set("training_s1_bathroom_enemy_dead");
|
|
}
|
|
|
|
//Function Number: 174
|
|
training_s1_bathroom_force_death()
|
|
{
|
|
common_scripts\utility::flag_wait("training_s1_flag_bathroom_guy_shot");
|
|
self kill();
|
|
}
|
|
|
|
//Function Number: 175
|
|
training_s1_exo_breach_monitor_enemy_group_death()
|
|
{
|
|
maps\_utility::waittill_aigroupcleared("training_s1_enemies_breach");
|
|
common_scripts\utility::flag_set("training_s1_exo_breach_clear");
|
|
}
|
|
|
|
//Function Number: 176
|
|
training_s1_enemies_ambush_think(param_00)
|
|
{
|
|
self endon("death");
|
|
thread maps\_utility::disable_long_death();
|
|
attach_flashlight_on_gun();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 177
|
|
training_s2_enemies_ambush_think(param_00)
|
|
{
|
|
self endon("death");
|
|
thread maps\_utility::disable_long_death();
|
|
attach_flashlight_on_gun();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 178
|
|
training_s1_joker_move()
|
|
{
|
|
level endon("training_s1_living_room_scene");
|
|
var_00 = common_scripts\utility::getstruct("training_s1_flashbang_animnode","targetname");
|
|
common_scripts\utility::flag_wait("training_s1_start_alerted");
|
|
maps\_utility::waittill_aigroupcleared("training_s1_start");
|
|
maps\_utility::waittill_aigroupcleared("training_s1_enemies_start");
|
|
var_00 maps\_anim::anim_reach_solo(level.joker,"training_s1_threat_guy_in");
|
|
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_threat_guy_in");
|
|
}
|
|
|
|
//Function Number: 179
|
|
training_s1_patio_door_breach()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("training_s2_patio_door_animnode","targetname");
|
|
common_scripts\utility::flag_set("training_s1_patio_doors_joker_in");
|
|
var_00 maps\_anim::anim_reach_solo(level.joker,"training_s1_patio_joker_door_in");
|
|
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_patio_joker_door_in");
|
|
var_00 thread maps\_anim::anim_loop_solo(level.joker,"training_s1_patio_joker_door_idle","stop_loop1");
|
|
thread training_s1_patio_door_breach_monitor(var_00);
|
|
common_scripts\utility::flag_wait("training_s1_joker_search_drones_cover");
|
|
level.joker maps\_utility::cqb_walk("on");
|
|
if(common_scripts\utility::flag("training_s1_search_drones_attack") == 1)
|
|
{
|
|
var_00 notify("stop_loop2");
|
|
var_00 thread maps\_anim::anim_single_solo_run(level.joker,"training_s1_patio_joker_door_out");
|
|
common_scripts\utility::flag_set("training_s1_breach_patio_doors_open");
|
|
}
|
|
else
|
|
{
|
|
var_00 notify("stop_loop1");
|
|
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_patio_joker_door_slow_in");
|
|
common_scripts\utility::flag_set("training_s1_slow_patio_doors_open");
|
|
var_00 maps\_anim::anim_single_solo(level.joker,"training_s1_patio_joker_door_slow_open");
|
|
var_00 thread maps\_anim::anim_single_solo_run(level.joker,"training_s1_patio_joker_door_slow_out");
|
|
}
|
|
|
|
level notify("advance_to_patio");
|
|
}
|
|
|
|
//Function Number: 180
|
|
training_s1_patio_door_breach_monitor(param_00)
|
|
{
|
|
self endon("training_s1_search_drones_done");
|
|
common_scripts\utility::flag_wait("training_s1_search_drones_attack");
|
|
param_00 notify("stop_loop1");
|
|
param_00 thread maps\_anim::anim_loop_solo(level.joker,"training_s1_patio_joker_door_alert_idle","stop_loop2");
|
|
}
|
|
|
|
//Function Number: 181
|
|
training_s1_patio_door_clip()
|
|
{
|
|
var_00 = getent("french_door_clip_01","targetname");
|
|
var_01 = getent("french_door_clip_02","targetname");
|
|
var_02 = getent("training_patio_french_doors","targetname");
|
|
var_00 linkto(var_02,"door_r");
|
|
var_01 linkto(var_02,"door_l");
|
|
var_00 connectpaths();
|
|
var_01 connectpaths();
|
|
common_scripts\utility::flag_wait("training_s1_end");
|
|
wait(1);
|
|
var_00 disconnectpaths();
|
|
var_01 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 182
|
|
training_s2_breach_enemy_think()
|
|
{
|
|
self endon("death");
|
|
self.ignoresonicaoe = 1;
|
|
self.animname = "generic";
|
|
self.ignoreme = 1;
|
|
self.allowdeath = 1;
|
|
self.health = 5;
|
|
maps\_utility::disable_long_death();
|
|
thread maps\_utility::set_battlechatter(0);
|
|
if(isdefined(self.animation))
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
var_00 maps\_anim::anim_first_frame_solo(self,self.animation);
|
|
var_00 maps\_anim::anim_single_solo(self,self.animation);
|
|
}
|
|
}
|
|
|
|
//Function Number: 183
|
|
training_s2_breach_enemy_stop_death_check()
|
|
{
|
|
self endon("death");
|
|
self endon("killed");
|
|
wait(7);
|
|
self notify("killed2");
|
|
}
|
|
|
|
//Function Number: 184
|
|
training_s2_breach_enemy_death_check()
|
|
{
|
|
self endon("death");
|
|
self endon("killed2");
|
|
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
|
|
if(isdefined(var_03) && isdefined(var_04) && isplayer(var_01))
|
|
{
|
|
if(var_04 == "MOD_PISTOL_BULLET" || var_04 == "MOD_RIFLE_BULLET" || var_04 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
playfx(common_scripts\utility::getfx("flesh_hit"),var_03);
|
|
soundscripts\_snd::snd_message("rec_slomo_kill_bad_guy",var_03);
|
|
}
|
|
|
|
self notify("killed");
|
|
self stopanimscripted();
|
|
var_05 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
var_05 maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva2_death");
|
|
self.noragdoll = 1;
|
|
self.allowdeath = 1;
|
|
self.a.nodeath = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
}
|
|
}
|
|
|
|
//Function Number: 185
|
|
training_s2_breach_kva_think()
|
|
{
|
|
self endon("shot");
|
|
self endon("death");
|
|
self.ignoresonicaoe = 1;
|
|
self.animname = "generic";
|
|
self.ignoreme = 1;
|
|
self.allowdeath = 0;
|
|
maps\_utility::disable_long_death();
|
|
maps\_utility::forceuseweapon("iw5_titan45_sp","primary");
|
|
thread maps\_utility::set_battlechatter(0);
|
|
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
thread training_s2_breach_enemy_monitor_death();
|
|
var_00 maps\_anim::anim_first_frame_solo(self,"training_s2_exo_breach_kva1_react");
|
|
var_00 maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva1_react");
|
|
var_00 thread maps\_anim::anim_loop_solo(self,"training_s2_exo_breach_kva1_react_idle","stop_loop");
|
|
wait(3);
|
|
var_00 notify("stop_loop");
|
|
level.president notify("stop_idle_loop_s2");
|
|
if(common_scripts\utility::flag("training_s2_breach_enemy_dead") == 0)
|
|
{
|
|
var_00 maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva1_fail");
|
|
}
|
|
}
|
|
|
|
//Function Number: 186
|
|
training_s1_bathroom_breach_door()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
var_01 = getent("training_exo_breach_bathroom_door","targetname");
|
|
var_01.animname = "door_prop";
|
|
var_01 maps\_utility::assign_animtree();
|
|
var_02 = getent("breach_bathroom_door_clip","targetname");
|
|
var_00 thread maps\_anim::anim_first_frame_solo(var_01,"training_s1_bathroom_door");
|
|
soundscripts\_snd::snd_message("rec_bathroom_guy",var_01);
|
|
var_02 linkto(var_01,"door");
|
|
var_00 maps\_anim::anim_single_solo(var_01,"training_s1_bathroom_door");
|
|
var_02 connectpaths();
|
|
}
|
|
|
|
//Function Number: 187
|
|
training_s2_breach_enemy_monitor_death()
|
|
{
|
|
var_00 = 0;
|
|
var_01 = undefined;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
while(var_00 < 5)
|
|
{
|
|
self waittill("damage",var_05,var_04,var_06,var_01,var_02,var_07,var_08,var_03,var_09,var_0A);
|
|
var_00 = var_00 + var_05;
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_04))
|
|
{
|
|
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
|
|
soundscripts\_snd::snd_message("rec_slomo_kill_bad_guy",var_01);
|
|
}
|
|
}
|
|
|
|
if(common_scripts\utility::flag("training_s2_flag_president_dead") == 0)
|
|
{
|
|
common_scripts\utility::flag_set("training_s2_breach_enemy_dead");
|
|
self notify("shot");
|
|
var_0B = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
var_0B thread maps\_anim::anim_single_solo(self,"training_s2_exo_breach_kva1_success");
|
|
wait 0.05;
|
|
self.noragdoll = 1;
|
|
self.allowdeath = 1;
|
|
self.a.nodeath = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
}
|
|
else
|
|
{
|
|
common_scripts\utility::flag_set("training_s2_breach_enemy_dead");
|
|
self notify("shot");
|
|
self.allowdeath = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
self kill();
|
|
}
|
|
|
|
if(var_03 == "j_head")
|
|
{
|
|
waittillframeend;
|
|
level.player.hud_damagefeedback fadeovertime(0.05);
|
|
level.player.hud_damagefeedback.alpha = 0;
|
|
level.player maps\_damagefeedback::updatedamagefeedback(self,1);
|
|
level.player maps\_upgrade_challenge::give_player_challenge_headshot(1);
|
|
}
|
|
else
|
|
{
|
|
level.player maps\_upgrade_challenge::give_player_challenge_kill(1);
|
|
}
|
|
|
|
wait(1);
|
|
level.player.hud_damagefeedback fadeovertime(1);
|
|
}
|
|
|
|
//Function Number: 188
|
|
training_s2_breach_enemies_monitor()
|
|
{
|
|
common_scripts\utility::flag_wait("training_s2_breach_enemy_dead");
|
|
maps\_utility::waittill_aigroupcleared("training_s2_enemies_breach");
|
|
var_00 = 0.65;
|
|
maps\_utility::slowmo_setlerptime_out(var_00);
|
|
maps\_utility::slowmo_lerp_out();
|
|
maps\_utility::slowmo_end();
|
|
level.player setmovespeedscale(1);
|
|
common_scripts\utility::flag_set("training_s2_breach_enemies_dead");
|
|
}
|
|
|
|
//Function Number: 189
|
|
training_s2_president_setup()
|
|
{
|
|
self endon("death");
|
|
maps\_utility::magic_bullet_shield();
|
|
self.animname = "president";
|
|
self.name = "POTUS";
|
|
self.pacifist = 1;
|
|
self.ignoreme = 1;
|
|
self.ignoreall = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
self.team = "allies";
|
|
level maps\_utility::clear_color_order("y","allies");
|
|
maps\_utility::set_force_color("y");
|
|
}
|
|
|
|
//Function Number: 190
|
|
training_s2_breach_president_setup()
|
|
{
|
|
self endon("death");
|
|
self.allowdeath = 0;
|
|
self.animname = "president";
|
|
self.name = "POTUS";
|
|
self.pacifist = 1;
|
|
self.ignoreme = 1;
|
|
self.ignoreall = 1;
|
|
thread maps\_utility::set_battlechatter(0);
|
|
thread training_s2_president_breach_monitor_death();
|
|
self.team = "allies";
|
|
level maps\_utility::clear_color_order("y","allies");
|
|
maps\_utility::set_force_color("y");
|
|
}
|
|
|
|
//Function Number: 191
|
|
training_s2_president_breach_monitor_death()
|
|
{
|
|
self endon("breach_s2_end");
|
|
var_00 = 0;
|
|
var_01 = 0;
|
|
var_02 = 0;
|
|
var_03 = 0;
|
|
while(var_00 < 5)
|
|
{
|
|
self waittill("damage",var_04,var_03,var_05,var_01,var_02);
|
|
var_00 = var_00 + var_04;
|
|
}
|
|
|
|
if(isdefined(var_01) && isdefined(var_02) && isplayer(var_03))
|
|
{
|
|
if(var_02 == "MOD_PISTOL_BULLET" || var_02 == "MOD_RIFLE_BULLET" || var_02 == "MOD_EXPLOSIVE_BULLET")
|
|
{
|
|
playfx(common_scripts\utility::getfx("flesh_hit"),var_01);
|
|
soundscripts\_snd::snd_message("rec_slomo_kill_bad_guy",var_01);
|
|
}
|
|
}
|
|
|
|
common_scripts\utility::flag_set("training_s2_flag_president_dead");
|
|
self.allowdeath = 1;
|
|
self kill();
|
|
if(isplayer(var_03))
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_MURDERED");
|
|
}
|
|
else
|
|
{
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
|
|
}
|
|
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
//Function Number: 192
|
|
training_s2_president_dead()
|
|
{
|
|
common_scripts\utility::flag_wait("training_s2_flag_president_shot");
|
|
wait(0.2);
|
|
playfxontag(common_scripts\utility::getfx("recovery_blood_impact_burst"),level.president,"j_head");
|
|
common_scripts\utility::flag_set("training_s2_flag_president_dead");
|
|
level.president notify("shot_s2");
|
|
wait(2);
|
|
setdvar("ui_deadquote",&"RECOVERY_PRESIDENT_DEAD");
|
|
maps\_utility::missionfailedwrapper();
|
|
}
|
|
|
|
//Function Number: 193
|
|
training_s2_exo_breach_knife()
|
|
{
|
|
var_00 = maps\_utility::spawn_anim_model("knife_prop");
|
|
var_00.animname = "knife_prop";
|
|
var_01 = common_scripts\utility::getstruct("training_s1_exo_breach_marker","targetname");
|
|
var_01 maps\_anim::anim_first_frame_solo(var_00,"training_s2_exo_knife");
|
|
var_01 maps\_anim::anim_single_solo(var_00,"training_s2_exo_knife");
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 194
|
|
training_s2_open_patio_door()
|
|
{
|
|
var_00 = common_scripts\utility::getstruct("training_s2_patio_door_animnode","targetname");
|
|
var_00 maps\_anim::anim_reach_solo(level.gideon,"training_s2_patio_gideon_door_in");
|
|
level.patio_doors notify("in2");
|
|
var_00 maps\_anim::anim_single_solo(level.gideon,"training_s2_patio_gideon_door_in");
|
|
var_00 thread maps\_anim::anim_loop_solo(level.gideon,"training_s2_patio_gideon_door_idle","stop_loop");
|
|
common_scripts\utility::flag_wait("training_s2_living_room_drone_attack_done");
|
|
var_00 notify("stop_loop");
|
|
if(level.broken_door == 0)
|
|
{
|
|
common_scripts\utility::flag_set("training_s2_gideon_smash_french_door");
|
|
var_00 maps\_anim::anim_reach_solo(level.gideon,"training_s2_patio_gideon_door_out");
|
|
level.patio_doors notify("go2");
|
|
level.gideon maps\_utility::cqb_walk("on");
|
|
var_00 thread maps\_anim::anim_single_solo_run(level.gideon,"training_s2_patio_gideon_door_out");
|
|
}
|
|
|
|
maps\_utility::activate_trigger("training_s2_patio_color_trigger","targetname");
|
|
}
|
|
|
|
//Function Number: 195
|
|
training_s2_player_drone()
|
|
{
|
|
level endon("training_s2_drone_enemies_killed");
|
|
level.player.showhint = 1;
|
|
maps\_utility::display_hint_timeout("drone_deploy_prompt",10);
|
|
for(;;)
|
|
{
|
|
level.player waittill("use_drone");
|
|
while(level.player isjumping())
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
if(vehicle_scripts\_pdrone_player::pdrone_deploy_check(85))
|
|
{
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
level.player.showhint = 0;
|
|
wait(0.25);
|
|
level.player.showhint = 1;
|
|
maps\_utility::display_hint_timeout("drone_deploy_fail_prompt",2);
|
|
wait(2);
|
|
level.player.showhint = 0;
|
|
wait(0.25);
|
|
level.player.showhint = 1;
|
|
maps\_utility::display_hint_timeout("drone_deploy_prompt",10);
|
|
}
|
|
}
|
|
|
|
level.player.showhint = 0;
|
|
if(common_scripts\utility::flag("training_s2_drone_attack_done") == 0)
|
|
{
|
|
common_scripts\utility::flag_set("training_s2_drone_start");
|
|
level notify("training_s2_drone_start");
|
|
maps\_utility::array_spawn_noteworthy("training_s2_enemies2_patio",1);
|
|
common_scripts\utility::flag_set("training_s2_patio_alert");
|
|
common_scripts\utility::flag_set("flag_player_using_drone");
|
|
thread training_s2_drone_manager();
|
|
}
|
|
}
|
|
|
|
//Function Number: 196
|
|
training_s2_player_drone_delete()
|
|
{
|
|
self endon("death");
|
|
common_scripts\utility::flag_wait("training_s2_drone_start");
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 197
|
|
training_s2_spawn_search_vehicle()
|
|
{
|
|
var_00 = getent("training_s2_patio_vehicles","script_noteworthy");
|
|
var_01 = var_00 maps\_vehicle::spawn_vehicle_and_gopath();
|
|
var_01 thread training_s2_drone_attack_vehicles_think();
|
|
}
|
|
|
|
//Function Number: 198
|
|
training_s2_drone_attack_vehicles_think()
|
|
{
|
|
self endon("death");
|
|
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_back_right");
|
|
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_back_left");
|
|
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_front_right");
|
|
playfxontag(common_scripts\utility::getfx("car_tread_mud"),self,"tag_wheel_front_left");
|
|
foreach(var_01 in self.riders)
|
|
{
|
|
var_01 thread training_s2_unload_drone_attack_think();
|
|
}
|
|
|
|
self waittill("reached_end_node");
|
|
maps\_vehicle::vehicle_unload("all_but_gunner");
|
|
}
|
|
|
|
//Function Number: 199
|
|
training_s2_unload_drone_attack_think()
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.vehicle_position))
|
|
{
|
|
thread attach_flashlight_on_vehicle_unload();
|
|
thread maps\_utility::set_battlechatter(0);
|
|
}
|
|
|
|
common_scripts\utility::flag_wait("training_s2_patio_alert");
|
|
self notify("awareness_alert_level","warning");
|
|
thread maps\_utility::set_battlechatter(1);
|
|
common_scripts\utility::flag_wait("flag_training_s2_patio_enemies_charge");
|
|
thread maps\_utility::player_seek_enable();
|
|
common_scripts\utility::flag_wait("training_s2_clear_patio_spawn");
|
|
bloody_death(randomfloatrange(0.5,1.5));
|
|
}
|
|
|
|
//Function Number: 200
|
|
training_s2_patio_enemies_alert_check()
|
|
{
|
|
self endon("death");
|
|
self waittill("damage",var_00,var_01,var_02,var_03,var_04);
|
|
if(var_01 == level.player)
|
|
{
|
|
wait(2);
|
|
common_scripts\utility::flag_set("training_s2_patio_alert");
|
|
self notify("alerted");
|
|
}
|
|
}
|
|
|
|
//Function Number: 201
|
|
training_s2_ambush_vehicles_think(param_00)
|
|
{
|
|
self endon("death");
|
|
foreach(var_02 in self.riders)
|
|
{
|
|
var_02 thread training_s2_unload1_think(param_00);
|
|
}
|
|
|
|
self waittill("reached_end_node");
|
|
maps\_vehicle::vehicle_unload();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
wait(randomfloatrange(0.5,4.5));
|
|
self kill();
|
|
}
|
|
|
|
//Function Number: 202
|
|
training_s2_unload1_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.vehicle_position))
|
|
{
|
|
thread attach_flashlight_on_vehicle_unload();
|
|
maps\_utility::disable_long_death();
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_00);
|
|
wait(randomintrange(1,6));
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 203
|
|
training_s2_kva_ambush1_think(param_00)
|
|
{
|
|
self endon("death");
|
|
thread attach_flashlight_on_gun();
|
|
maps\_utility::disable_long_death();
|
|
maps\_utility::ai_ignore_everything();
|
|
maps\_utility::delaythread(3,::maps\_utility::ai_unignore_everything);
|
|
common_scripts\utility::flag_wait(param_00);
|
|
wait(randomintrange(1,6));
|
|
bloody_death();
|
|
}
|
|
|
|
//Function Number: 204
|
|
training_s2_drone_end_think(param_00)
|
|
{
|
|
self endon("death");
|
|
thread maps\_shg_utility::make_emp_vulnerable();
|
|
self laseron();
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 205
|
|
training_s2_guard_house_doors()
|
|
{
|
|
var_00 = getent("guard_door_01","targetname");
|
|
getent(var_00.target,"targetname") linkto(var_00);
|
|
var_01 = getent("guard_door_02","targetname");
|
|
getent(var_01.target,"targetname") linkto(var_01);
|
|
var_00 rotateto(var_00.angles + (0,-90,0),1,0,1);
|
|
var_01 rotateto(var_01.angles + (0,90,0),1,0,1);
|
|
var_00 connectpaths();
|
|
var_01 connectpaths();
|
|
wait(4);
|
|
var_00 rotateto(var_00.angles + (0,90,0),1,0,1);
|
|
var_01 rotateto(var_01.angles + (0,-90,0),1,0,1);
|
|
var_00 disconnectpaths();
|
|
var_01 disconnectpaths();
|
|
}
|
|
|
|
//Function Number: 206
|
|
training_s1_set_squad_passive_and_ignore()
|
|
{
|
|
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreall,1);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreme,1);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_battlechatter,0);
|
|
}
|
|
|
|
//Function Number: 207
|
|
training_s1_set_sqaud_cqb_enable()
|
|
{
|
|
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::enable_cqbwalk);
|
|
}
|
|
|
|
//Function Number: 208
|
|
training_s1_set_squad_active_and_target()
|
|
{
|
|
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreall,0);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_ignoreme,0);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::set_battlechatter,1);
|
|
}
|
|
|
|
//Function Number: 209
|
|
training_s1_set_sqaud_cqb_disable()
|
|
{
|
|
level.allies_s1 = maps\_utility::array_removedead(level.allies_s1);
|
|
common_scripts\utility::array_thread(level.allies_s1,::maps\_utility::disable_cqbwalk);
|
|
}
|
|
|
|
//Function Number: 210
|
|
training_s2_set_squad_passive_and_ignore()
|
|
{
|
|
level.allies_s2 = maps\_utility::array_removedead(level.allies_s2);
|
|
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreall,1);
|
|
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreme,1);
|
|
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_battlechatter,0);
|
|
}
|
|
|
|
//Function Number: 211
|
|
training_s2_set_squad_active_and_target()
|
|
{
|
|
level.allies_s2 = maps\_utility::array_removedead(level.allies_s2);
|
|
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreall,0);
|
|
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_ignoreme,0);
|
|
common_scripts\utility::array_thread(level.allies_s2,::maps\_utility::set_battlechatter,1);
|
|
}
|
|
|
|
//Function Number: 212
|
|
warbird_heavy_shooting_think(param_00)
|
|
{
|
|
level.player endon("death");
|
|
self endon("death");
|
|
self.mgturret[0] setmode("manual");
|
|
self.mgturret[1] setmode("manual");
|
|
if(!maps\_utility::ent_flag_exist("fire_turrets"))
|
|
{
|
|
maps\_utility::ent_flag_init("fire_turrets");
|
|
}
|
|
|
|
maps\_utility::ent_flag_set("fire_turrets");
|
|
thread warbird_heavy_fire_monitor();
|
|
for(;;)
|
|
{
|
|
self waittill("warbird_fire");
|
|
maps\_utility::ent_flag_set("fire_turrets");
|
|
thread warbird_heavy_fire(param_00);
|
|
self waittill("warbird_stop_firing");
|
|
maps\_utility::ent_flag_clear("fire_turrets");
|
|
}
|
|
}
|
|
|
|
//Function Number: 213
|
|
warbird_heavy_fire(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = self.mgturret[0];
|
|
var_02 = self.mgturret[1];
|
|
var_01 notify("stop_burst_fire_unmanned");
|
|
var_02 notify("stop_burst_fire_unmanned");
|
|
var_03 = 0.4;
|
|
var_04 = var_03 / 2;
|
|
var_01 thread burst_fire_warbird(var_03,0);
|
|
var_02 thread burst_fire_warbird(var_03,var_04);
|
|
var_05 = common_scripts\utility::get_enemy_team(self.script_team);
|
|
while(maps\_utility::ent_flag("fire_turrets"))
|
|
{
|
|
var_06 = getaiarray(var_05);
|
|
if(isdefined(level.flying_attack_drones))
|
|
{
|
|
var_07 = level.flying_attack_drones;
|
|
}
|
|
else
|
|
{
|
|
var_07 = [];
|
|
}
|
|
|
|
if(isdefined(level.drones) && isdefined(level.drones[var_05].array))
|
|
{
|
|
var_06 = common_scripts\utility::array_combine(var_06,level.drones[var_05].array);
|
|
}
|
|
|
|
if(var_05 == level.player.team)
|
|
{
|
|
var_06 = common_scripts\utility::array_add(var_06,level.player);
|
|
}
|
|
|
|
var_06 = common_scripts\utility::array_combine(var_06,var_07);
|
|
var_08 = [];
|
|
foreach(var_0A in var_06)
|
|
{
|
|
if(isdefined(var_0A.ignoreme) && var_0A.ignoreme)
|
|
{
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
var_08[var_08.size] = var_0A;
|
|
}
|
|
}
|
|
|
|
var_08 = sortbydistance(var_08,self.origin);
|
|
var_0C = undefined;
|
|
foreach(var_0A in var_08)
|
|
{
|
|
if(!isdefined(var_0A))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isalive(var_0A))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
var_0E = self.mgturret[0] gettagorigin("tag_flash");
|
|
var_0F = var_0A geteye();
|
|
var_10 = vectornormalize(var_0F - var_0E);
|
|
var_11 = var_0E + var_10 * 20;
|
|
if(!sighttracepassed(var_11,var_0F,0,var_0A,self.mgturret[0]))
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var_0C = var_0A;
|
|
break;
|
|
}
|
|
|
|
if(isdefined(var_0C))
|
|
{
|
|
var_01 settargetentity(var_0C);
|
|
var_02 settargetentity(var_0C);
|
|
var_01 turretfireenable();
|
|
var_02 turretfireenable();
|
|
var_01 startfiring();
|
|
var_02 startfiring();
|
|
wait_for_warbird_fire_target_done(var_0C,param_00);
|
|
var_01 notify("stop_firing");
|
|
var_02 notify("stop_firing");
|
|
var_01 cleartargetentity();
|
|
var_02 cleartargetentity();
|
|
var_01 turretfiredisable();
|
|
var_02 turretfiredisable();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
var_01 turretfiredisable();
|
|
var_02 turretfiredisable();
|
|
}
|
|
|
|
//Function Number: 214
|
|
warbird_heavy_fire_monitor()
|
|
{
|
|
self endon("death");
|
|
self waittill("warbird_stop_firing");
|
|
maps\_utility::ent_flag_clear("fire_turrets");
|
|
}
|
|
|
|
//Function Number: 215
|
|
burst_fire_warbird(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("stop_burst_fire_warbird");
|
|
var_02 = 1;
|
|
var_03 = 1;
|
|
var_04 = 1;
|
|
var_05 = 1;
|
|
var_06 = gettime();
|
|
var_07 = "start";
|
|
for(;;)
|
|
{
|
|
var_08 = var_06 - gettime() * 0.001;
|
|
if(self isfiringturret() && var_08 <= 0)
|
|
{
|
|
if(var_07 != "fire")
|
|
{
|
|
var_07 = "fire";
|
|
thread doshoottuned(param_00,param_01);
|
|
}
|
|
|
|
var_08 = var_04 + randomfloat(var_05);
|
|
thread turrettimer(var_08);
|
|
self waittill("turretstatechange");
|
|
var_08 = var_02 + randomfloat(var_03);
|
|
var_06 = gettime() + int(var_08 * 1000);
|
|
continue;
|
|
}
|
|
|
|
if(var_07 != "aim")
|
|
{
|
|
var_07 = "aim";
|
|
}
|
|
|
|
thread turrettimer(var_08);
|
|
self waittill("turretstatechange");
|
|
}
|
|
}
|
|
|
|
//Function Number: 216
|
|
doshoottuned(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self endon("turretstatechange");
|
|
if(isdefined(param_01) && param_01 > 0)
|
|
{
|
|
wait(param_01);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
self shootturret();
|
|
wait(param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 217
|
|
turrettimer(param_00)
|
|
{
|
|
if(param_00 <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("turretstatechange");
|
|
wait(param_00);
|
|
if(isdefined(self))
|
|
{
|
|
self notify("turretstatechange");
|
|
}
|
|
}
|
|
|
|
//Function Number: 218
|
|
military_drone_stationary_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.script_parameters))
|
|
{
|
|
self.script_noteworthy = self.script_parameters;
|
|
}
|
|
|
|
if(isdefined(self.animation))
|
|
{
|
|
self.idleanim = self.animation;
|
|
}
|
|
else
|
|
{
|
|
self.idleanim = %patrol_bored_idle;
|
|
}
|
|
|
|
self.spawner thread maps\_anim::anim_generic_loop(self,self.idleanim);
|
|
self.name = " ";
|
|
self setlookattext(self.name,&"");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 219
|
|
military_drone_runners_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.script_parameters))
|
|
{
|
|
self.script_noteworthy = self.script_parameters;
|
|
}
|
|
|
|
self.animname = "generic";
|
|
self.name = " ";
|
|
self.runanim = maps\_utility::getanim(self.animation);
|
|
self.idleanim = %patrol_bored_idle;
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 220
|
|
military_drone_guards_stationary_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.script_parameters))
|
|
{
|
|
self.script_noteworthy = self.script_parameters;
|
|
}
|
|
|
|
if(isdefined(self.animation))
|
|
{
|
|
self.idleanim = self.animation;
|
|
}
|
|
else
|
|
{
|
|
self.idleanim = %patrol_bored_idle;
|
|
}
|
|
|
|
thread maps\_anim::anim_generic_loop(self,self.idleanim);
|
|
common_scripts\utility::flag_waitopen(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 221
|
|
military_drone_guards_patrol_think(param_00)
|
|
{
|
|
self pushplayer(1);
|
|
self.animname = "generic";
|
|
self.idleanim = %patrol_bored_idle;
|
|
maps\_utility::set_run_anim("active_patrolwalk_gundown");
|
|
maps\_utility::ai_ignore_everything();
|
|
maps\_utility::disable_arrivals();
|
|
maps\_utility::disable_exits();
|
|
self.goalradius = 16;
|
|
maps\_utility::set_battlechatter(0);
|
|
common_scripts\utility::flag_waitopen(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 222
|
|
grenade_range_enemy_think()
|
|
{
|
|
self waittill("death",var_00);
|
|
level.grenade_range_container.aikills++;
|
|
level.grenade_range_container notify("score_change");
|
|
if(!isplayer(var_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
|
|
{
|
|
}
|
|
|
|
level notify("grenade_range_point_scored_100");
|
|
}
|
|
|
|
//Function Number: 223
|
|
grenade_range_drone_think()
|
|
{
|
|
self endon("no_score");
|
|
grenade_range_drone_death_detect();
|
|
level.grenade_range_container.dronekills++;
|
|
level.grenade_range_container notify("score_change");
|
|
var_00 = self.mod;
|
|
if(var_00 == "EMP")
|
|
{
|
|
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
|
|
{
|
|
}
|
|
|
|
level notify("grenade_range_point_scored_100");
|
|
}
|
|
|
|
if(var_00 == "grenade")
|
|
{
|
|
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
|
|
{
|
|
}
|
|
|
|
level notify("grenade_range_point_scored_100");
|
|
}
|
|
|
|
if(var_00 == "bullet")
|
|
{
|
|
if(common_scripts\utility::flag("flag_obj_grenade_range_tutorial_complete"))
|
|
{
|
|
}
|
|
|
|
level notify("grenade_range_point_scored_50");
|
|
}
|
|
}
|
|
|
|
//Function Number: 224
|
|
grenade_range_drone_death_detect()
|
|
{
|
|
self.mod = "EMP";
|
|
self endon("emp_death");
|
|
self waittill("death",var_00,var_01,var_02);
|
|
switch(var_01)
|
|
{
|
|
case "MOD_RIFLE_BULLET":
|
|
case "MOD_PISTOL_BULLET":
|
|
self.mod = "bullet";
|
|
break;
|
|
|
|
case "MOD_EXPLOSIVE":
|
|
case "MOD_GRENADE_SPLASH":
|
|
case "MOD_GRENADE":
|
|
self.mod = "grenade";
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//Function Number: 225
|
|
civilian_drone_repair_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.script_parameters))
|
|
{
|
|
self.script_noteworthy = self.script_parameters;
|
|
}
|
|
|
|
if(self.weapon != "none")
|
|
{
|
|
maps\_utility::gun_remove();
|
|
}
|
|
|
|
if(isdefined(self.animation))
|
|
{
|
|
self.idleanim = self.animation;
|
|
}
|
|
else
|
|
{
|
|
self.idleanim = %cliffhanger_welder_engine;
|
|
}
|
|
|
|
self.eaniment = self.spawner;
|
|
self.eaniment.origin = self.eaniment.origin + (0,0,-3);
|
|
self attach("machinery_welder_handle","tag_inhand");
|
|
thread flashing_welding();
|
|
self.spawner thread maps\_anim::anim_generic_loop(self,"cliffhanger_welder_engine");
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 226
|
|
civilian_drone_stationary_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.script_parameters))
|
|
{
|
|
self.script_noteworthy = self.script_parameters;
|
|
}
|
|
|
|
if(self.weapon != "none")
|
|
{
|
|
maps\_utility::gun_remove();
|
|
}
|
|
|
|
if(isdefined(self.animation))
|
|
{
|
|
self.idleanim = self.animation;
|
|
}
|
|
else
|
|
{
|
|
self.idleanim = %civilian_stand_idle;
|
|
}
|
|
|
|
self.spawner thread maps\_anim::anim_generic_loop(self,self.idleanim);
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 227
|
|
civilian_drone_runners_think(param_00)
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.script_parameters))
|
|
{
|
|
self.script_noteworthy = self.script_parameters;
|
|
}
|
|
|
|
self.animname = "generic";
|
|
self.runanim = maps\_utility::getanim(self.animation);
|
|
if(self.weapon != "none")
|
|
{
|
|
maps\_utility::gun_remove();
|
|
}
|
|
|
|
self.idleanim = %civilian_stand_idle;
|
|
common_scripts\utility::flag_wait(param_00);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 228
|
|
flashing_welding()
|
|
{
|
|
self endon("death");
|
|
thread stop_sparks();
|
|
playfxontag(level._effect["welding_sparks_oneshot_sml"],self,"tag_tip_fx");
|
|
}
|
|
|
|
//Function Number: 229
|
|
stop_sparks()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
self waittillmatch("spark off","looping anim");
|
|
self notify("spark off");
|
|
}
|
|
}
|
|
|
|
//Function Number: 230
|
|
setup_deck_deploy_warbird()
|
|
{
|
|
waittillframeend;
|
|
self notify("warbird_fire");
|
|
var_00 = get_passengers();
|
|
var_00 thread ignore_until_unloaded();
|
|
}
|
|
|
|
//Function Number: 231
|
|
get_passengers()
|
|
{
|
|
var_00 = self.riders;
|
|
var_01 = [];
|
|
foreach(var_03 in var_00)
|
|
{
|
|
if(!isdefined(var_03.drivingvehicle))
|
|
{
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 232
|
|
ignore_until_unloaded()
|
|
{
|
|
var_00 = 1;
|
|
foreach(var_02 in self)
|
|
{
|
|
var_02.ignoreme = 1;
|
|
var_02 thread wait_until_unloaded(var_00);
|
|
var_00++;
|
|
}
|
|
}
|
|
|
|
//Function Number: 233
|
|
wait_until_unloaded(param_00)
|
|
{
|
|
self endon("death");
|
|
self waittill("jumpedout");
|
|
self.ignoreme = 0;
|
|
goto_node("zipline_path0" + param_00,0,256);
|
|
self waittill("goal");
|
|
wait(5);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 234
|
|
warbird_fire(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = self.mgturret[0];
|
|
var_02 = self.mgturret[1];
|
|
var_03 = 3;
|
|
while(maps\_utility::ent_flag("fire_turrets"))
|
|
{
|
|
var_04 = getaiarray("allies");
|
|
if(!maps\_utility::ent_flag_exist("dont_shoot_player") || !maps\_utility::ent_flag("dont_shoot_player"))
|
|
{
|
|
var_05 = 33;
|
|
if(randomint(100) <= var_05)
|
|
{
|
|
var_04 = common_scripts\utility::array_add(var_04,level.player);
|
|
}
|
|
}
|
|
|
|
var_06 = [];
|
|
foreach(var_08 in var_04)
|
|
{
|
|
if(isdefined(var_08.ignoreme) && var_08.ignoreme)
|
|
{
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
var_06[var_06.size] = var_08;
|
|
}
|
|
}
|
|
|
|
var_06 = sortbydistance(var_06,self.origin);
|
|
var_0A = undefined;
|
|
foreach(var_08 in var_06)
|
|
{
|
|
if(!isdefined(var_08))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isalive(var_08))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
var_0C = self.mgturret[0] gettagorigin("tag_flash");
|
|
var_0D = var_08 geteye();
|
|
var_0E = vectornormalize(var_0D - var_0C);
|
|
var_0F = var_0D + var_0E * 20;
|
|
if(!sighttracepassed(var_0F,var_0D,0,var_08,self.mgturret[0]))
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var_0A = var_08;
|
|
break;
|
|
}
|
|
|
|
if(isdefined(var_0A))
|
|
{
|
|
var_01 settargetentity(var_0A);
|
|
var_02 settargetentity(var_0A);
|
|
var_01 turretfireenable();
|
|
var_02 turretfireenable();
|
|
var_01 startfiring();
|
|
var_02 startfiring();
|
|
wait_for_warbird_fire_target_done(var_0A,param_00);
|
|
var_01 cleartargetentity();
|
|
var_02 cleartargetentity();
|
|
var_01 turretfiredisable();
|
|
var_02 turretfiredisable();
|
|
}
|
|
|
|
wait(var_03);
|
|
}
|
|
|
|
var_01 turretfiredisable();
|
|
var_02 turretfiredisable();
|
|
}
|
|
|
|
//Function Number: 235
|
|
wait_for_warbird_fire_target_done(param_00,param_01)
|
|
{
|
|
param_00 endon("death");
|
|
if(!maps\_utility::ent_flag("fire_turrets"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("fire_turrets");
|
|
if(param_00 == level.player)
|
|
{
|
|
var_02 = 0.6;
|
|
}
|
|
else
|
|
{
|
|
var_02 = 3;
|
|
}
|
|
|
|
var_03 = 0;
|
|
while(var_03 < var_02)
|
|
{
|
|
if(isdefined(param_01) && param_01)
|
|
{
|
|
var_04 = self.mgturret[0] gettagorigin("tag_flash");
|
|
var_05 = param_00 geteye();
|
|
var_06 = vectornormalize(var_05 - var_04);
|
|
var_07 = var_04 + var_06 * 20;
|
|
if(!sighttracepassed(var_07,var_05,0,param_00,self.mgturret[0]))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
var_03 = var_03 + 0.3;
|
|
wait(0.3);
|
|
}
|
|
}
|
|
|
|
//Function Number: 236
|
|
prep_user_for_drone()
|
|
{
|
|
self disableweapons();
|
|
self.ignoreme = 1;
|
|
self enableinvulnerability();
|
|
var_00 = getaiarray("axis");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
var_02 thermaldrawenable();
|
|
}
|
|
|
|
var_04 = getaiarray("allies");
|
|
foreach(var_02 in var_04)
|
|
{
|
|
var_02 thermaldrawenable();
|
|
}
|
|
|
|
wait 0.05;
|
|
level.player thermalvisionon();
|
|
}
|
|
|
|
//Function Number: 237
|
|
make_drone_fully_controllable(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
level.player thread monitor_drone_stick_deflection(param_00);
|
|
wait 0.05;
|
|
for(;;)
|
|
{
|
|
var_01 = level.player.drone_control["stick_input_move"] * 10;
|
|
var_02 = getdroneperlinovertime(5,3,2,0.5);
|
|
var_03 = param_00 setvehgoalpos(param_00.origin + var_01 + var_02);
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 238
|
|
getdroneperlinovertime(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = 1;
|
|
}
|
|
|
|
var_04 = (perlinnoise2d(gettime() * 0.001 * 0.05,10,param_00,param_01,param_02) * param_03,perlinnoise2d(gettime() * 0.001 * 0.05,20,param_00,param_01,param_02) * param_03,perlinnoise2d(gettime() * 0.001 * 0.05,30,param_00,param_01,param_02) * param_03);
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 239
|
|
monitor_drone_stick_deflection(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
for(;;)
|
|
{
|
|
var_01 = self getnormalizedmovement();
|
|
var_01 = (var_01[0],var_01[1] * -1,0);
|
|
var_02 = self.angles;
|
|
var_03 = vectortoangles(var_01);
|
|
var_04 = common_scripts\utility::flat_angle(combineangles(var_02,var_03));
|
|
var_05 = anglestoforward(var_04) * length(var_01);
|
|
self.drone_control["stick_input_move"] = var_05;
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 240
|
|
unlink_player_from_drone(param_00)
|
|
{
|
|
level.player.dronetag unlink();
|
|
level.player unlink();
|
|
level.player maps\_utility::teleport_player(param_00);
|
|
wait 0.05;
|
|
level.player remove_user_from_drone();
|
|
level.player lerpfov(65,0);
|
|
}
|
|
|
|
//Function Number: 241
|
|
remove_user_from_drone()
|
|
{
|
|
self enableweapons();
|
|
self.ignoreme = 0;
|
|
self disableinvulnerability();
|
|
level.player thermalvisionoff();
|
|
}
|
|
|
|
//Function Number: 242
|
|
recovery_breach_setup_player()
|
|
{
|
|
level.player enableinvulnerability();
|
|
level.player disableweaponswitch();
|
|
level.player disableoffhandweapons();
|
|
level.player allowcrouch(0);
|
|
level.player allowprone(0);
|
|
level.player allowsprint(0);
|
|
level.player allowjump(0);
|
|
}
|
|
|
|
//Function Number: 243
|
|
recovery_breach_cleanup_player()
|
|
{
|
|
level.player disableinvulnerability();
|
|
level.player enableweaponswitch();
|
|
level.player enableoffhandweapons();
|
|
level.player allowcrouch(1);
|
|
level.player allowprone(1);
|
|
level.player allowsprint(1);
|
|
level.player allowjump(1);
|
|
}
|
|
|
|
//Function Number: 244
|
|
breach_slow_down(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 245
|
|
enable_player_control(param_00)
|
|
{
|
|
level.player unlink();
|
|
level.player_rig delete();
|
|
}
|
|
|
|
//Function Number: 246
|
|
spawn_player_rig(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = "player_rig";
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = level.player.origin;
|
|
}
|
|
|
|
var_02 = maps\_utility::spawn_anim_model(param_00);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 247
|
|
disable_trigger_while_player_animating(param_00)
|
|
{
|
|
level endon(param_00);
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.trigger_off))
|
|
{
|
|
common_scripts\utility::trigger_on();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 248
|
|
goto_node(param_00,param_01,param_02)
|
|
{
|
|
self endon("stop_goto_node");
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 16;
|
|
}
|
|
|
|
maps\_utility::set_goal_radius(param_02);
|
|
if(isstring(param_00))
|
|
{
|
|
var_03 = getnode(param_00,"script_noteworthy");
|
|
}
|
|
else
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
|
|
if(isdefined(var_03))
|
|
{
|
|
maps\_utility::set_goal_node(var_03);
|
|
}
|
|
else
|
|
{
|
|
var_03 = common_scripts\utility::getstruct(param_00,"script_noteworthy");
|
|
maps\_utility::set_goal_pos(var_03.origin);
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
self waittill("goal");
|
|
}
|
|
}
|
|
|
|
//Function Number: 249
|
|
leaderboard_precache()
|
|
{
|
|
precachemodel("rec_sb_row");
|
|
for(var_00 = 0;var_00 <= 9;var_00++)
|
|
{
|
|
precachemodel("rec_sb_" + var_00);
|
|
}
|
|
|
|
for(var_00 = 1;var_00 <= 9;var_00++)
|
|
{
|
|
precachemodel("rec_sb_name_0" + var_00);
|
|
}
|
|
|
|
precachemodel("rec_sb_name_10");
|
|
precachemodel("rec_sb_name_11");
|
|
precachemodel("rec_sb_drone_range");
|
|
precachemodel("rec_sb_ar_range");
|
|
precachemodel("rec_sb_shooting_range");
|
|
}
|
|
|
|
//Function Number: 250
|
|
leaderboard_make(param_00,param_01,param_02)
|
|
{
|
|
var_03 = spawnstruct();
|
|
var_03.isleaderboard = 1;
|
|
var_03.maxentries = param_00;
|
|
var_03.range_name = param_01;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_03.shouldsortscoresinascendingorder = param_02;
|
|
}
|
|
else
|
|
{
|
|
var_03.shouldsortscoresinascendingorder = 0;
|
|
}
|
|
|
|
var_03.playerscores = [];
|
|
var_03 leaderboard_defaults(param_01);
|
|
var_03.leaderboard_screen = var_03 leaderboard_screen_make();
|
|
var_03 leaderboard_screen_update();
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 251
|
|
leaderboard_compare_scores(param_00,param_01)
|
|
{
|
|
var_02 = self;
|
|
return (var_02.shouldsortscoresinascendingorder && param_01 < param_00) || !var_02.shouldsortscoresinascendingorder && param_01 > param_00;
|
|
}
|
|
|
|
//Function Number: 252
|
|
leaderboard_sort_scores()
|
|
{
|
|
var_00 = self.playerscores;
|
|
for(var_01 = 0;var_01 < var_00.size - 1;var_01++)
|
|
{
|
|
for(var_02 = var_01 + 1;var_02 < var_00.size;var_02++)
|
|
{
|
|
if(leaderboard_compare_scores(var_00[var_01].playerscore,var_00[var_02].playerscore) || var_00[var_02].playerscore == var_00[var_01].playerscore && var_00[var_02].playername == "player")
|
|
{
|
|
var_03 = var_00[var_02];
|
|
var_00[var_02] = var_00[var_01];
|
|
var_00[var_01] = var_03;
|
|
}
|
|
}
|
|
}
|
|
|
|
self.playerscores = var_00;
|
|
}
|
|
|
|
//Function Number: 253
|
|
leaderboard_record(param_00,param_01)
|
|
{
|
|
var_02 = self;
|
|
if(param_00 == "player")
|
|
{
|
|
for(var_03 = 0;var_03 < var_02.playerscores.size;var_03++)
|
|
{
|
|
var_04 = var_02.playerscores[var_03];
|
|
if(var_04.playername == param_00)
|
|
{
|
|
if(var_02 leaderboard_compare_scores(var_04.playerscore,param_01))
|
|
{
|
|
var_04.playerscore = param_01;
|
|
var_02 leaderboard_sort_scores();
|
|
}
|
|
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_02.playerscores.size == var_02.maxentries && var_02 leaderboard_compare_scores(param_01,var_02.playerscores[var_02.maxentries - 1].playerscore))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_04 = spawnstruct();
|
|
var_04.isleaderboardentry = 1;
|
|
var_04.playername = param_00;
|
|
var_04.playerscore = param_01;
|
|
if(var_02.playerscores.size == var_02.maxentries)
|
|
{
|
|
var_02.playerscores[var_02.maxentries - 1] = var_04;
|
|
}
|
|
else
|
|
{
|
|
var_02.playerscores[var_02.playerscores.size] = var_04;
|
|
}
|
|
|
|
var_02 leaderboard_sort_scores();
|
|
}
|
|
|
|
//Function Number: 254
|
|
leaderboard_defaults(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_01["drone_range"] = "sb_drone_range";
|
|
var_01["grenade_range"] = "sb_grenade_range";
|
|
var_01["shooting_range"] = "sb_shooting_range";
|
|
var_02 = [];
|
|
var_02["drone_range"] = "rec_sb_drone_range";
|
|
var_02["grenade_range"] = "rec_sb_ar_range";
|
|
var_02["shooting_range"] = "rec_sb_shooting_range";
|
|
if(param_00 == "shooting_range")
|
|
{
|
|
leaderboard_record("name_01",2375);
|
|
leaderboard_record("name_02",2050);
|
|
leaderboard_record("name_03",1825);
|
|
leaderboard_record("name_04",1650);
|
|
leaderboard_record("name_05",1300);
|
|
leaderboard_record("name_06",1150);
|
|
leaderboard_record("name_07",975);
|
|
leaderboard_record("name_08",775);
|
|
leaderboard_record("name_09",425);
|
|
leaderboard_record("name_10",200);
|
|
leaderboard_record("player",0);
|
|
}
|
|
else if(param_00 == "grenade_range")
|
|
{
|
|
leaderboard_record("name_01",1800);
|
|
leaderboard_record("name_02",1550);
|
|
leaderboard_record("name_03",1400);
|
|
leaderboard_record("name_04",1200);
|
|
leaderboard_record("name_05",950);
|
|
leaderboard_record("name_06",750);
|
|
leaderboard_record("name_07",600);
|
|
leaderboard_record("name_08",300);
|
|
leaderboard_record("name_09",250);
|
|
leaderboard_record("name_10",100);
|
|
}
|
|
else if(param_00 == "drone_range")
|
|
{
|
|
leaderboard_record("name_01",15);
|
|
leaderboard_record("name_02",21);
|
|
leaderboard_record("name_03",26);
|
|
leaderboard_record("name_04",31);
|
|
leaderboard_record("name_05",34);
|
|
leaderboard_record("name_06",36);
|
|
leaderboard_record("name_07",40);
|
|
leaderboard_record("name_08",49);
|
|
leaderboard_record("name_09",57);
|
|
leaderboard_record("name_10",60);
|
|
}
|
|
|
|
var_03 = [];
|
|
var_03["player"] = "rec_sb_name_01";
|
|
var_03["name_01"] = "rec_sb_name_11";
|
|
var_03["name_02"] = "rec_sb_name_02";
|
|
var_03["name_03"] = "rec_sb_name_03";
|
|
var_03["name_04"] = "rec_sb_name_04";
|
|
var_03["name_05"] = "rec_sb_name_05";
|
|
var_03["name_06"] = "rec_sb_name_06";
|
|
var_03["name_07"] = "rec_sb_name_07";
|
|
var_03["name_08"] = "rec_sb_name_08";
|
|
var_03["name_09"] = "rec_sb_name_09";
|
|
var_03["name_10"] = "rec_sb_name_10";
|
|
var_04 = spawnstruct();
|
|
var_04.titlemap = var_02;
|
|
var_04.namemodelmap = var_03;
|
|
var_04.screennamemap = var_01;
|
|
self.settings = var_04;
|
|
}
|
|
|
|
//Function Number: 255
|
|
leaderboard_screen_make()
|
|
{
|
|
var_00 = self.range_name;
|
|
var_01 = getent(self.settings.screennamemap[var_00],"targetname");
|
|
var_01.isleaderboardscreen = 1;
|
|
var_02 = spawn("script_model",var_01.origin);
|
|
var_02 setmodel(self.settings.titlemap[var_00]);
|
|
var_02 linkto(var_01,"title",(0,0,0),(0,90,0));
|
|
var_01.rows = [];
|
|
for(var_03 = 0;var_03 < 10;var_03++)
|
|
{
|
|
var_04 = spawn("script_model",var_01.origin);
|
|
var_04.isleaderboardscreenrow = 1;
|
|
var_01.rows[var_03] = var_04;
|
|
var_04 setmodel("rec_sb_row");
|
|
var_04 linkto(var_01,"row" + var_03 + 1,(0,0,0),(0,0,0));
|
|
var_04.nametagmodel = spawn("script_model",var_01.origin);
|
|
var_04.nametagmodel linkto(var_04,"name1",(0,0,0),(0,90,0));
|
|
var_04.digitmodels = [];
|
|
var_04.digitmodels[0] = spawn("script_model",var_01.origin);
|
|
var_04.digitmodels[0] linkto(var_04,"digit1",(0,0,0),(0,90,0));
|
|
var_04.digitmodels[1] = spawn("script_model",var_01.origin);
|
|
var_04.digitmodels[1] linkto(var_04,"digit2",(0,0,0),(0,90,0));
|
|
var_04.digitmodels[2] = spawn("script_model",var_01.origin);
|
|
var_04.digitmodels[2] linkto(var_04,"digit3",(0,0,0),(0,90,0));
|
|
var_04.digitmodels[3] = spawn("script_model",var_01.origin);
|
|
var_04.digitmodels[3] linkto(var_04,"digit4",(0,0,0),(0,90,0));
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 256
|
|
leaderboard_score_to_digits(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_02 = param_00;
|
|
var_03 = var_02 % 10;
|
|
var_02 = int(var_02 / 10);
|
|
var_01[0] = "rec_sb_" + var_03;
|
|
var_03 = var_02 % 10;
|
|
var_02 = int(var_02 / 10);
|
|
var_01[1] = "rec_sb_" + var_03;
|
|
var_03 = var_02 % 10;
|
|
var_02 = int(var_02 / 10);
|
|
var_01[2] = "rec_sb_" + var_03;
|
|
var_03 = var_02 % 10;
|
|
var_02 = int(var_02 / 10);
|
|
var_01[3] = "rec_sb_" + var_03;
|
|
var_01 = common_scripts\utility::array_reverse(var_01);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 257
|
|
leaderboard_screen_update()
|
|
{
|
|
var_00 = self;
|
|
var_01 = self.leaderboard_screen;
|
|
for(var_02 = 0;var_02 < 10;var_02++)
|
|
{
|
|
var_03 = var_01.rows[var_02];
|
|
var_04 = var_00.playerscores[var_02];
|
|
var_05 = var_00.settings.namemodelmap[var_04.playername];
|
|
var_03.nametagmodel setmodel(var_05);
|
|
var_06 = leaderboard_score_to_digits(var_04.playerscore);
|
|
var_03.digitmodels[0] setmodel(var_06[0]);
|
|
var_03.digitmodels[1] setmodel(var_06[1]);
|
|
var_03.digitmodels[2] setmodel(var_06[2]);
|
|
var_03.digitmodels[3] setmodel(var_06[3]);
|
|
}
|
|
}
|
|
|
|
//Function Number: 258
|
|
play_reload_malfunction_on_next_reload(param_00)
|
|
{
|
|
level notify("play_reload_malfunction_on_next_reload_stop");
|
|
level endon("play_reload_malfunction_on_next_reload_stop");
|
|
if(!common_scripts\utility::flag_exist("reload_malfunction"))
|
|
{
|
|
common_scripts\utility::flag_init("reload_malfunction");
|
|
}
|
|
|
|
common_scripts\utility::flag_set("reload_malfunction");
|
|
if(isdefined(param_00))
|
|
{
|
|
level endon(param_00);
|
|
}
|
|
|
|
if(!isdefined(level.player.numofreloadmalfunctions))
|
|
{
|
|
level.player.numofreloadmalfunctions = 0;
|
|
}
|
|
|
|
var_01 = undefined;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
childthread reload_malfunction_disable_on_grenade_throw();
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
if(!common_scripts\utility::flag("reload_malfunction"))
|
|
{
|
|
common_scripts\utility::flag_wait("reload_malfunction");
|
|
}
|
|
|
|
var_01 = level.player getcurrentweapon();
|
|
var_02 = weaponclipsize(var_01);
|
|
var_03 = level.player getweaponammoclip(var_01);
|
|
var_04 = [];
|
|
var_05 = [];
|
|
if(issubstr(var_01,"bal27"))
|
|
{
|
|
var_04 = [1,2];
|
|
var_05 = [%vm_bal_27_reload_exo_malfunction_1,%vm_bal_27_reload_exo_malfunction_2];
|
|
}
|
|
else if(issubstr(var_01,"titan45"))
|
|
{
|
|
var_04 = [3,4];
|
|
var_05 = [%vm_titan45_reload_exo_malfunction_1,%vm_titan45_reload_exo_malfunction_2];
|
|
}
|
|
else if(issubstr(var_01,"ak12"))
|
|
{
|
|
var_04 = [5,6];
|
|
var_05 = [%vm_ak12_reload_exo_malfunction_1,%vm_ak12_reload_exo_malfunction_2];
|
|
}
|
|
else if(issubstr(var_01,"vbr"))
|
|
{
|
|
var_04 = [7,8];
|
|
var_05 = [%vm_vbr_reload_exo_malfunction_1,%vm_vbr_reload_exo_malfunction_2];
|
|
}
|
|
else if(issubstr(var_01,"kf5"))
|
|
{
|
|
var_04 = [11,12];
|
|
var_05 = [%vm_kf5_reload_exo_malfunction_1,%vm_kf5_reload_exo_malfunction_2];
|
|
}
|
|
else if(issubstr(var_01,"rhino"))
|
|
{
|
|
var_04 = [9,10];
|
|
var_05 = [%vm_rhino_reload_exo_malfunction_1,%vm_rhino_reload_exo_malfunction_2];
|
|
}
|
|
else
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_03 < var_02 && level.player usebuttonpressed() && !level.player isholdinggrenade() && !level.player isreloading())
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(var_03 < 2)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
thread play_reload_malfunction(var_04[level.player.numofreloadmalfunctions],var_05[level.player.numofreloadmalfunctions],var_01,var_02,var_03);
|
|
level.player.numofreloadmalfunctions = level.player.numofreloadmalfunctions + 1 % var_04.size;
|
|
level notify("play_reload_malfunction_on_next_reload_stop");
|
|
}
|
|
|
|
//Function Number: 259
|
|
reload_malfunction_disable_on_grenade_throw()
|
|
{
|
|
for(;;)
|
|
{
|
|
level.player common_scripts\utility::waittill_any("grenade_fire","grenade_pullback");
|
|
common_scripts\utility::flag_clear("reload_malfunction");
|
|
wait(1.5);
|
|
common_scripts\utility::flag_set("reload_malfunction");
|
|
}
|
|
}
|
|
|
|
//Function Number: 260
|
|
play_reload_malfunction(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
thread play_rumble_training_s1_reload_malfunction();
|
|
common_scripts\utility::flag_set("flag_vo_training_s1_reload_malfunction");
|
|
level.player allowmantle(0);
|
|
level.player allowads(0);
|
|
level.player disableweaponpickup();
|
|
level.player disableweaponswitch();
|
|
level.player enableinvulnerability();
|
|
setsaveddvar("ammoCounterHide","1");
|
|
soundscripts\_snd::snd_message("camp_david_reload_malfunction",param_00,param_02);
|
|
level.player setviewmodelanim(param_00);
|
|
var_05 = level.player setweaponammostock(param_02);
|
|
level.player setweaponammoclip(param_02,param_03);
|
|
level.player setweaponammostock(param_02,var_05 - param_03 - param_04);
|
|
wait(getanimlength(param_01));
|
|
level.player allowads(1);
|
|
level.player enableweaponpickup();
|
|
level.player enableweaponswitch();
|
|
level.player allowmantle(1);
|
|
level.player disableinvulnerability();
|
|
setsaveddvar("ammoCounterHide","0");
|
|
}
|
|
|
|
//Function Number: 261
|
|
lerp_anim_weight_on_actor_over_time(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = int(param_01 / 0.05);
|
|
var_05 = param_03 - param_02 / var_04;
|
|
var_06 = param_02;
|
|
for(var_07 = 0;var_07 < var_04;var_07++)
|
|
{
|
|
self setanim(param_00,var_06,0.05,1);
|
|
var_06 = var_06 + var_05;
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 262
|
|
lerp_in_turn_rate(param_00)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = 1 / param_00 / 0.05;
|
|
var_03 = getdvarint("aim_turnrate_pitch");
|
|
var_04 = getdvarint("aim_turnrate_pitch_ads");
|
|
var_05 = getdvarint("aim_turnrate_yaw");
|
|
var_06 = getdvarint("aim_turnrate_yaw_ads");
|
|
var_07 = getdvarint("aim_accel_turnrate_lerp");
|
|
while(var_01 <= 1)
|
|
{
|
|
setsaveddvar("aim_turnrate_pitch",int(var_01 * var_03));
|
|
setsaveddvar("aim_turnrate_pitch_ads",int(var_01 * var_04));
|
|
setsaveddvar("aim_turnrate_yaw",int(var_01 * var_05));
|
|
setsaveddvar("aim_turnrate_yaw_ads",int(var_01 * var_06));
|
|
setsaveddvar("aim_accel_turnrate_lerp",int(var_01 * var_07));
|
|
wait 0.05;
|
|
var_01 = var_01 + var_02;
|
|
}
|
|
|
|
setsaveddvar("aim_turnrate_pitch",var_03);
|
|
setsaveddvar("aim_turnrate_pitch_ads",var_04);
|
|
setsaveddvar("aim_turnrate_yaw",var_05);
|
|
setsaveddvar("aim_turnrate_yaw_ads",var_06);
|
|
setsaveddvar("aim_accel_turnrate_lerp",var_07);
|
|
}
|
|
|
|
//Function Number: 263
|
|
waittill_drones_dead(param_00)
|
|
{
|
|
foreach(var_02 in param_00)
|
|
{
|
|
if(isdefined(var_02) && !isremovedentity(var_02))
|
|
{
|
|
var_02 waittill("death");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 264
|
|
waittill_s2_drone_ambush_done(param_00)
|
|
{
|
|
while(param_00.size > 0 && !common_scripts\utility::flag("training_s2_start_enter_patio"))
|
|
{
|
|
param_00 = maps\_utility::array_removedead(param_00);
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 265
|
|
training_s2_drone_ambush_attack()
|
|
{
|
|
level endon("training_s2_living_room_drone_attack_done");
|
|
var_00 = common_scripts\utility::getstruct("attacklocation3","targetname");
|
|
var_01 = common_scripts\utility::getstructarray(var_00.target,"targetname");
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[0].origin);
|
|
wait(1);
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[1].origin);
|
|
wait(0.5);
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[2].origin);
|
|
wait(0.5);
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[3].origin);
|
|
wait(0.5);
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[4].origin);
|
|
wait(0.25);
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[5].origin);
|
|
wait(0.5);
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[6].origin);
|
|
wait(0.5);
|
|
magicbullet("iw5_bal27_sp_silencer01_variablereddot",var_00.origin,var_01[7].origin);
|
|
} |