Files
IL-GSC/MW3/PC/SP/maps/_specialops_code.gsc
InfinityLoader d559c1d414 Added MW3 Scripts
2023-10-27 03:47:01 -04:00

2180 lines
43 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: maps\_specialops_code.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 98
* Decompile Time: 1603 ms
* Timestamp: 10/27/2023 2:21:38 AM
*******************************************************************/
//Function Number: 1
setup_xp()
{
wait 0.05;
maps\_rank::xp_init();
}
//Function Number: 2
register_level_unlock(param_00,param_01)
{
var_02 = int(tablelookup("sp/specOpsTable.csv",1,param_00,5));
var_03 = tablelookup("sp/specOpsTable.csv",1,param_00,6);
var_04 = 1;
unlock_register(param_00,var_02,var_03,"","",param_01,var_04);
}
//Function Number: 3
register_survival_unlock()
{
register_level_unlock("so_survival_2","survival");
register_level_unlock("so_survival_3","survival");
register_level_unlock("so_survival_4","survival");
register_survival_armory_unlock(100,120,"weaponupgrade");
register_survival_armory_unlock(0,64,"weapon");
register_survival_armory_unlock(1000,1020,"equipment");
register_survival_armory_unlock(10000,10020,"airsupport");
}
//Function Number: 4
register_survival_armory_unlock(param_00,param_01,param_02)
{
for(var_03 = param_00;var_03 <= param_01;var_03++)
{
var_04 = tablelookup("sp/survival_armories.csv",0,var_03,1);
if(!isdefined(var_04) || var_04 == "")
{
continue;
}
var_05 = var_03;
var_06 = var_04;
var_07 = param_02;
var_08 = tablelookup("sp/survival_armories.csv",1,var_04,4);
var_09 = tablelookup("sp/survival_armories.csv",1,var_04,5);
var_0A = int(tablelookup("sp/survival_armories.csv",1,var_04,7));
if(var_0A > 0)
{
var_0B = "weapon_missing_image";
if(var_07 == "airsupport")
{
var_0B = "specops_ui_airsupport";
}
if(var_07 == "equipment")
{
var_0B = "specops_ui_equipmentstore";
}
if(var_07 == "weapon" || var_07 == "weaponupgrade")
{
var_0B = "specops_ui_weaponstore";
}
var_0C = 0;
unlock_register(var_06,var_0A,var_08,var_09,var_0B,"survival",var_0C);
}
}
}
//Function Number: 5
unlock_register(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
{
var_07 = spawnstruct();
var_07.ref = param_00;
var_07.name = param_02;
var_07.var_189B = param_03;
var_07.icon = param_04;
var_07.unlocklvl = param_01;
var_07.mode = param_05;
var_07.var_1DD = param_06;
if(!isdefined(level.unlock_array))
{
level.unlock_array = [];
}
if(!isdefined(level.unlock_array[param_01]))
{
level.unlock_array[param_01] = [];
}
level.unlock_array[param_01][level.unlock_array[param_01].size] = var_07;
}
//Function Number: 6
pick_starting_location_so(param_00)
{
if(isdefined(param_00) && param_00)
{
if(isdefined(level.skip_playersetstreamorigin) && level.skip_playersetstreamorigin)
{
return undefined;
}
}
if(isdefined(level.pmc_match) && level.pmc_match)
{
return pick_starting_location_pmc(param_00);
}
var_01 = getentarray("info_player_start_so","classname");
if(var_01.size <= 0)
{
var_01 = getentarray("info_player_start","classname");
}
var_02 = common_scripts\utility::random(var_01);
if(isdefined(param_00) && param_00)
{
return var_02.origin;
}
place_player_at_start_point(level.player,var_02);
if(maps\_utility::is_coop())
{
var_03 = getentarray("info_player_start_soPlayer2","classname");
if(var_03.size > 0)
{
var_04 = maps\_utility::getclosest(var_02.origin,var_03);
place_player_at_start_point(level.player2,var_04);
return;
}
place_player2_near_player1();
}
}
//Function Number: 7
isdefendmatch()
{
return level.pmc_gametype == "mode_defend";
}
//Function Number: 8
pick_starting_location_pmc(param_00)
{
if(isdefendmatch())
{
var_01 = getentarray("info_player_start_pmcDefend","classname");
}
else
{
var_01 = getentarray("info_player_start_pmc","classname");
}
var_02 = [];
var_03 = undefined;
foreach(var_05 in level.players)
{
if(!var_02.size)
{
var_03 = common_scripts\utility::random(var_01);
}
else
{
var_03 = maps\_utility::get_closest_exclude(var_03.origin,var_01,var_02);
}
if(isdefined(param_00) && param_00)
{
return var_03.origin;
}
var_05 setorigin(var_03.origin);
var_05 setplayerangles(var_03.angles);
var_02[var_02.size] = var_03;
}
}
//Function Number: 9
place_player_at_start_point(param_00,param_01)
{
param_00 setorigin(param_01.origin);
if(isdefined(param_01.angles))
{
param_00 setplayerangles(param_01.angles);
}
}
//Function Number: 10
place_player2_near_player1()
{
level.player2 setplayerangles(level.player.angles + (0,-25,0));
level.player2 setorigin(level.player.origin);
var_00 = spawnstruct();
var_00.entity = level.player2;
var_00.right = -20;
var_00.forward = -50;
var_00 maps\_utility::translate_local();
level.player2 setorigin(level.player2.origin);
}
//Function Number: 11
specialops_remove_entity_check(param_00)
{
if(specialops_remove_flag_check(param_00))
{
return 1;
}
if(specialops_remove_name_check(param_00))
{
return 1;
}
return 0;
}
//Function Number: 12
specialops_remove_flag_check(param_00)
{
if(!isdefined(self.script_specialops))
{
return 0;
}
if(self.script_specialops == param_00)
{
return 0;
}
return 1;
}
//Function Number: 13
specialops_remove_name_check(param_00)
{
if(!isdefined(self.script_specialopsname))
{
return 0;
}
if(param_00 == 0)
{
return 1;
}
var_01 = strtok(self.script_specialopsname,":;, ");
var_02 = 1;
foreach(var_04 in var_01)
{
if(var_04 == level.script)
{
var_02 = 0;
break;
}
}
return var_02;
}
//Function Number: 14
so_create_hud_item_delay_draw(param_00)
{
param_00.alpha = 0;
while(!so_hud_can_show())
{
wait 0.5;
}
if(!isdefined(param_00))
{
return;
}
if(so_hud_can_toggle(param_00))
{
switch(self.so_infohud_toggle_state)
{
case "on":
case "none":
param_00 maps\_hud_util::fade_over_time(1,0.5);
break;
case "off":
param_00 maps\_hud_util::fade_over_time(0,0.5);
break;
default:
break;
}
}
else
{
param_00 maps\_hud_util::fade_over_time(1,0.5);
}
if(!maps\_utility::ent_flag("so_hud_can_toggle"))
{
maps\_utility::ent_flag_set("so_hud_can_toggle");
}
}
//Function Number: 15
so_hud_can_show()
{
if(isdefined(level.so_waiting_for_players) && level.so_waiting_for_players)
{
return 0;
}
if(isdefined(level.challenge_time_force_on) && level.challenge_time_force_on)
{
return 1;
}
if(!isdefined(self.so_hud_show_time))
{
return 1;
}
return gettime() > self.so_hud_show_time;
}
//Function Number: 16
so_hud_can_toggle(param_00)
{
if(!isdefined(param_00.so_can_toggle) || !param_00.so_can_toggle)
{
return 0;
}
if(!isdefined(self.so_infohud_toggle_state))
{
return 0;
}
return 1;
}
//Function Number: 17
challenge_timer_player_setup(param_00,param_01,param_02,param_03)
{
level endon("challenge_timer_expired");
level endon("new_challenge_timer");
level endon("special_op_terminated");
var_04 = undefined;
if(isdefined(param_03) && param_03)
{
var_04 = 1;
}
var_05 = maps\_specialops::so_hud_ypos();
self.hud_so_timer_msg = maps\_specialops::so_create_hud_item(1,var_05,param_02,self,var_04);
if(isdefined(level.challenge_time_limit))
{
self.hud_so_timer_time = maps\_specialops::so_create_hud_item(1,var_05,undefined,self,var_04);
self.hud_so_timer_time settenthstimerstatic(level.challenge_time_limit);
}
else
{
self.hud_so_timer_time = maps\_specialops::so_create_hud_item(1,var_05,&"SPECIAL_OPS_TIME_NULL",self,var_04);
}
self.hud_so_timer_time.alignx = "left";
if(!isdefined(param_03) || param_03 == 0)
{
thread maps\_specialops::info_hud_wait_for_player();
thread maps\_specialops::info_hud_handle_fade(self.hud_so_timer_msg);
thread maps\_specialops::info_hud_handle_fade(self.hud_so_timer_time);
}
else
{
self.so_infohud_toggle_state = "none";
self.hud_so_timer_msg.alpha = 0;
self.hud_so_timer_time.alpha = 0;
}
challenge_timer_wait_start(self.hud_so_timer_msg,self.hud_so_timer_time,param_00);
if(isdefined(level.challenge_time_limit))
{
level.so_challenge_time_left = level.challenge_time_limit;
thread challenge_timer_show_nudge(self.hud_so_timer_msg,self.hud_so_timer_time);
thread challenge_timer_show_hurry(self.hud_so_timer_msg,self.hud_so_timer_time);
thread challenge_timer_show_failed(self.hud_so_timer_msg,self.hud_so_timer_time);
thread challenge_timer_destroy_prematurely(self.hud_so_timer_msg,self.hud_so_timer_time);
}
thread challenge_timer_wait_passed(self.hud_so_timer_msg,self.hud_so_timer_time,param_01);
}
//Function Number: 18
challenge_timer_detect_3quarter()
{
if(!common_scripts\utility::flag_exist("so_challenge_is_3quarter"))
{
common_scripts\utility::flag_init("so_challenge_is_3quarter");
}
common_scripts\utility::flag_wait("so_challenge_is_3quarter");
maps\_specialops::so_dialog_progress_update(3,4);
}
//Function Number: 19
challenge_timer_detect_halfway()
{
if(!common_scripts\utility::flag_exist("so_challenge_is_halfway"))
{
common_scripts\utility::flag_init("so_challenge_is_halfway");
}
common_scripts\utility::flag_wait("so_challenge_is_halfway");
maps\_specialops::so_dialog_progress_update(2,4);
}
//Function Number: 20
challenge_timer_detect_quarter()
{
if(!common_scripts\utility::flag_exist("so_challenge_is_quarter"))
{
common_scripts\utility::flag_init("so_challenge_is_quarter");
}
common_scripts\utility::flag_wait("so_challenge_is_quarter");
maps\_specialops::so_dialog_progress_update(1,4);
}
//Function Number: 21
challenge_timer_wait_start(param_00,param_01,param_02)
{
level endon("special_op_terminated");
if(isdefined(param_02))
{
common_scripts\utility::flag_wait(param_02);
}
foreach(var_04 in level.players)
{
if(!var_04 so_hud_can_show())
{
var_04.so_hud_show_time = gettime();
}
}
if(!isdefined(level.challenge_start_time))
{
if(challenge_timer_should_play_alarm())
{
level.player playsound("arcademode_zerodeaths");
}
level.challenge_start_time = gettime();
}
else
{
level.challenge_start_time_last = gettime();
}
param_01.label = "";
if(isdefined(level.challenge_time_limit))
{
param_01 settenthstimer(level.challenge_time_limit);
return;
}
param_01 settenthstimerup(0);
}
//Function Number: 22
challenge_timer_should_play_alarm()
{
if(isdefined(level.challenge_time_limit))
{
return 1;
}
foreach(var_01 in level.players)
{
if(var_01.so_infohud_toggle_state != "off")
{
return 1;
}
}
return 0;
}
//Function Number: 23
challenge_timer_show_nudge(param_00,param_01)
{
if(!validate_timer(level.challenge_time_nudge))
{
return;
}
level endon("challenge_timer_passed");
level endon("new_challenge_timer");
level endon("special_op_terminated");
while(level.so_challenge_time_left > level.challenge_time_nudge)
{
wait 0.1;
}
param_00 set_hudelem_yellow();
param_01 set_hudelem_yellow();
if(!challenge_timer_be_silent())
{
thread maps\_specialops::so_dialog_time_low_normal();
}
}
//Function Number: 24
challenge_timer_show_hurry(param_00,param_01)
{
if(!validate_timer(level.challenge_time_hurry))
{
return;
}
level endon("challenge_timer_passed");
level endon("new_challenge_timer");
level endon("special_op_terminated");
while(level.so_challenge_time_left > level.challenge_time_hurry)
{
wait 0.1;
}
param_00 set_hudelem_red();
param_01 set_hudelem_red();
if(!challenge_timer_be_silent())
{
thread maps\_specialops::so_dialog_time_low_hurry();
}
}
//Function Number: 25
challenge_timer_be_silent()
{
if(self != level.player)
{
return 1;
}
if(!isdefined(level.challenge_time_silent))
{
return 0;
}
return level.challenge_time_silent;
}
//Function Number: 26
challenge_timer_thread()
{
level endon("special_op_terminated");
level notify("stop_challenge_timer_thread");
level endon("stop_challenge_timer_thread");
while(level.so_challenge_time_left > 0)
{
wait 0.05;
level.so_challenge_time_left = level.so_challenge_time_left - 0.05;
thread challenge_timer_give_alert();
}
level notify("challenge_timer_failed");
}
//Function Number: 27
challenge_timer_give_alert()
{
if(challenge_timer_should_pulse())
{
foreach(var_01 in level.players)
{
var_01.hud_so_timer_msg thread maps\_specialops::so_hud_pulse_create();
var_01.hud_so_timer_time thread maps\_specialops::so_hud_pulse_create();
}
if(level.so_challenge_time_beep < 0)
{
level.player playsound("arcademode_kill_streak_lost");
return;
}
level.player playsound("so_countdown_beep");
}
}
//Function Number: 28
challenge_timer_should_pulse()
{
if(level.so_challenge_time_left > level.so_challenge_time_beep)
{
return 0;
}
for(var_00 = 0;var_00 <= level.hud_so_counter_values;var_00++)
{
if(level.so_challenge_time_left > var_00)
{
if(level.so_challenge_time_beep < var_00)
{
level.so_challenge_time_beep = var_00 + 1;
}
continue;
}
level.so_challenge_time_beep = var_00 - 1;
return 1;
}
return 0;
}
//Function Number: 29
challenge_timer_show_failed(param_00,param_01)
{
if(!validate_timer(level.challenge_time_limit))
{
return;
}
level endon("challenge_timer_passed");
level endon("new_challenge_timer");
level endon("special_op_terminated");
thread challenge_timer_thread();
level waittill("challenge_timer_failed");
common_scripts\utility::flag_set("challenge_timer_expired");
challenge_timer_destroy(param_00,param_01);
if(self == level.player)
{
thread maps\_specialops::so_dialog_mission_failed_time();
}
var_02 = "@SPECIAL_OPS_FAILURE_HINT_TIME";
if(isdefined(level.so_deadquote_time))
{
var_02 = level.so_deadquote_time;
}
maps\_specialops::so_force_deadquote(var_02,"ui_time_failure");
if(self == level.player)
{
maps\_utility::missionfailedwrapper();
}
}
//Function Number: 30
challenge_timer_wait_passed(param_00,param_01,param_02)
{
level endon("challenge_timer_expired");
level endon("new_challenge_timer");
if(common_scripts\utility::flag_exist("individual_timers") && common_scripts\utility::flag("individual_timers"))
{
maps\_utility::ent_flag_wait(param_02);
}
else
{
common_scripts\utility::flag_wait(param_02);
}
common_scripts\utility::flag_set("challenge_timer_passed");
level.challenge_end_time = gettime();
var_03 = common_scripts\utility::ter_op(isdefined(level.challenge_start_time_last),level.challenge_start_time_last,level.challenge_start_time);
var_04 = maps\_utility::round_millisec_on_sec(level.challenge_end_time - var_03,1,0);
var_05 = var_04 / 1000;
if(isdefined(level.challenge_time_limit))
{
var_05 = level.challenge_time_limit - var_05;
}
if(var_05 <= 0)
{
var_05 = 0.1;
}
param_01 settenthstimerstatic(var_05);
if(!common_scripts\utility::flag_exist("individual_timers"))
{
return;
}
if(common_scripts\utility::flag("individual_timers"))
{
return;
}
challenge_timer_destroy(param_00,param_01);
}
//Function Number: 31
challenge_timer_destroy_prematurely(param_00,param_01)
{
level waittill("new_challenge_timer");
challenge_timer_destroy(param_00,param_01,1);
}
//Function Number: 32
challenge_timer_destroy(param_00,param_01,param_02)
{
if(isdefined(param_00))
{
param_00 thread maps\_specialops::so_remove_hud_item(param_02);
}
if(isdefined(param_01))
{
param_01 thread maps\_specialops::so_remove_hud_item(param_02);
}
}
//Function Number: 33
validate_timer(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00 <= 0)
{
return 0;
}
return 1;
}
//Function Number: 34
failure_summary_display()
{
if(getdvarint("so_nofail"))
{
return;
}
thread maps\_specialops::so_dialog_mission_failed_generic();
missionfailed();
maps\_endmission::so_eog_summary_calculate(0);
specialops_mission_over_setup(0);
level notify("so_generate_deathquote");
maps\_endmission::so_eog_summary_display();
}
//Function Number: 35
specialops_mission_over_setup(param_00)
{
setdvar("ui_opensummary",1);
if(param_00)
{
setdvar("ui_mission_success",1);
}
else
{
setdvar("ui_mission_success",0);
}
if(common_scripts\utility::flag("special_op_terminated"))
{
}
if(!isdefined(level.challenge_start_time))
{
level.challenge_start_time = gettime();
}
if(!isdefined(level.challenge_end_time))
{
level.challenge_end_time = gettime();
}
common_scripts\utility::flag_set("special_op_terminated");
level notify("stop_music");
thread maps\_utility_code::mission_recon(param_00);
var_01 = undefined;
if(isdefined(level.pmc_game) && level.pmc_game)
{
var_01 = pick_starting_location_pmc(1);
}
else
{
var_01 = pick_starting_location_so(1);
}
if(isdefined(var_01))
{
foreach(var_03 in level.players)
{
var_03 playersetstreamorigin(var_01);
}
}
ambientstop(2);
maps\_utility::music_stop(1);
if(param_00)
{
thread specialops_mission_over_setup_success();
}
else
{
thread specialops_mission_over_setup_failure();
}
foreach(var_03 in level.players)
{
var_03 allowjump(0);
var_03 disableweapons();
var_03 disableusability();
var_03 enableinvulnerability();
var_03.ignoreme = 1;
}
thread specialops_blur_player_screen();
if(param_00)
{
wait 0.5;
foreach(var_03 in level.players)
{
var_03 setup_leaderboard_data();
}
wait 2.5;
foreach(var_03 in level.players)
{
var_03 uploadleaderboards();
}
}
else
{
wait 3;
}
thread specialops_mission_over_remove_ai();
if(!common_scripts\utility::flag("special_op_no_unlink"))
{
foreach(var_03 in level.players)
{
var_03 unlink();
}
}
foreach(var_03 in level.players)
{
var_03 freezecontrols(1);
}
specialops_mission_over_stats(param_00);
}
//Function Number: 36
setup_leaderboard_data()
{
if(maps\_utility::is_coop() && level.players.size == 2)
{
self setplayerdata("round","xuidTeammate",maps\_utility::get_other_player(self) getxuid());
}
self setplayerdata("round","timePlayed",self.so_eog_summary_data["time"]);
self setplayerdata("round","kills",self.so_eog_summary_data["kills"]);
var_00 = 0;
if(maps\_utility::is_survival())
{
self setplayerdata("round","score",self.so_eog_summary_data["score"]);
self setplayerdata("round","wave",self.so_eog_summary_data["wave"]);
var_01 = 0;
var_02 = 0;
if(self.stats["weapon"].size > 0)
{
foreach(var_04 in self.stats["weapon"])
{
var_01 = var_01 + var_04.shots_fired;
var_02 = var_02 + var_04.shots_hit;
}
}
self setplayerdata("round","bulletsFired",var_01);
self setplayerdata("round","bulletsHit",var_02);
self setplayerdata("round","headshots",self.game_performance["headshot"]);
self setplayerdata("round","revives",self.game_performance["revives"]);
self setplayerdata("round","credits",self.game_performance["credits"]);
self setplayerdata("round","totalXp",self.game_performance["credits"]);
return;
}
var_06 = level.so_enable_wait_for_players;
if(isdefined(self.forcedgameskill))
{
var_06 = self.forcedgameskill;
}
self setplayerdata("round","difficulty",var_06);
self setplayerdata("round","score",self.so_eog_summary_data["score"]);
}
//Function Number: 37
specialops_blur_player_screen()
{
foreach(var_01 in level.players)
{
wait 0.1;
var_01 setblurforplayer(6,1);
}
}
//Function Number: 38
specialops_mission_over_remove_ai()
{
wait 0.25;
var_00 = getaiarray();
var_00 = maps\_utility::array_merge(var_00,getaispeciesarray("axis","dog"));
foreach(var_02 in var_00)
{
if(isdefined(var_02.so_no_mission_over_delete) && var_02.so_no_mission_over_delete == 1)
{
continue;
}
if(isdefined(var_02.magic_bullet_shield))
{
var_02 maps\_utility::stop_magic_bullet_shield();
}
var_02 delete();
}
}
//Function Number: 39
specialops_mission_over_setup_success()
{
common_scripts\utility::flag_set("special_op_succeeded");
foreach(var_01 in level.players)
{
var_02 = maps\_hud_util::create_client_overlay("white",0,var_01);
var_02.color = (0.7,0.7,1);
var_02 thread maps\_hud_util::fade_over_time(0.25,2);
}
if(isdefined(level.suppress_challenge_success_print))
{
return;
}
var_04 = maps\_specialops::so_create_hud_item(3,0,&"SPECIAL_OPS_CHALLENGE_SUCCESS");
var_04.alignx = "center";
var_04.horzalign = "center";
var_04 set_hudelem_blue();
var_04 setpulsefx(60,2500,500);
wait 1.5;
var_05 = level.so_campaign;
if(var_05 == "hijack" || var_05 == "fso")
{
var_05 = "delta";
}
maps\_utility::music_play("so_victory_" + var_05,undefined,0,1);
}
//Function Number: 40
specialops_mission_over_setup_failure()
{
common_scripts\utility::flag_set("special_op_failed");
var_00 = maps\_specialops::so_create_hud_item(3,0,&"SPECIAL_OPS_CHALLENGE_FAILURE");
var_00.hidewhendead = 0;
var_00.alignx = "center";
var_00.horzalign = "center";
var_00 set_hudelem_red();
var_00 setpulsefx(60,2500,500);
foreach(var_02 in level.players)
{
var_03 = maps\_hud_util::create_client_overlay("white",0,var_02);
var_03.color = (1,0.4,0.4);
var_03 thread maps\_hud_util::fade_over_time(0.25,2);
}
wait 1.5;
var_05 = level.so_campaign;
if(var_05 == "hijack" || var_05 == "fso")
{
var_05 = "delta";
}
maps\_utility::music_play("so_defeat_" + var_05,undefined,0,1);
}
//Function Number: 41
is_current_level_locked()
{
var_00 = tablelookup("sp/specOpsTable.csv",1,level.script,13);
var_01 = int(tablelookup("sp/specOpsTable.csv",1,var_00,5));
var_02 = maps\_rank::getrank();
return var_02 < var_01;
}
//Function Number: 42
is_so_player_signed_in()
{
return 1;
}
//Function Number: 43
can_save_to_profile()
{
return is_so_player_signed_in() && !is_current_level_locked();
}
//Function Number: 44
specialops_achievement_by_stars(param_00)
{
if(maps\_utility::is_survival())
{
}
}
//Function Number: 45
get_total_mode_stars(param_00,param_01,param_02)
{
var_03 = 0;
for(var_04 = param_01;var_04 < param_02;var_04++)
{
var_03 = var_03 + int(max(0,int(param_00[var_04]) - 1));
}
return var_03;
}
//Function Number: 46
get_num_of_levels_with_star(param_00,param_01)
{
var_02 = param_00.size;
if(var_02 > level.specopssettings.levels.size)
{
var_02 = level.specopssettings.levels.size;
}
var_03 = 0;
for(var_04 = 0;var_04 < var_02;var_04++)
{
if(max(0,int(param_00[var_04]) - 1) >= param_01)
{
var_03++;
}
}
return var_03;
}
//Function Number: 47
specialops_mission_over_stats(param_00)
{
if(!isdefined(param_00) || !param_00)
{
return;
}
foreach(var_02 in level.players)
{
if(!var_02 can_save_to_profile())
{
var_02.eog_noreward = 1;
}
}
if(issplitscreen() && level.ps3)
{
level.player2.eog_noreward = 0;
}
var_04 = tablelookup("sp/specOpsTable.csv",1,level.script,9);
if(isdefined(var_04) && var_04 != "")
{
foreach(var_02 in level.players)
{
if(isdefined(var_02.eog_noreward) && var_02.eog_noreward)
{
continue;
}
var_06 = var_02 getlocalplayerprofiledata(var_04);
if(!isdefined(var_06))
{
continue;
}
var_07 = var_06 == 0;
level.never_played = 0;
if(var_07)
{
level.never_played = 1;
}
var_08 = var_02.so_eog_summary_data["score"];
if(var_07 || var_08 > var_06)
{
var_02 setlocalplayerprofiledata(var_04,var_08);
}
if(!var_07 && var_08 > var_06)
{
var_02.eog_bestscore = 1;
var_02.eog_bestscore_value = var_08;
}
}
}
var_0A = level.specopssettings maps\_endmission::getlevelindex(level.script);
if(!isdefined(var_0A))
{
missionsuccess(level.script);
return;
}
level.specopssettings maps\_endmission::setsolevelcompleted(var_0A);
foreach(var_02 in level.players)
{
if(isdefined(var_02.eog_noreward) && var_02.eog_noreward)
{
continue;
}
var_0C = var_02 getlocalplayerprofiledata("missionSOHighestDifficulty");
if(!isdefined(var_0C))
{
continue;
}
var_0D = int(tablelookup("sp/specopstable.csv",0,"survival_count",1));
var_0E = int(tablelookup("sp/specopstable.csv",0,"mission_count",1));
var_0F = 0;
var_10 = 0;
if(maps\_utility::is_survival())
{
var_0F = get_total_mode_stars(var_0C,0,var_0D);
var_11 = 100 * var_0F / var_0D * 3;
}
else
{
var_0F = get_total_mode_stars(var_0C,var_0D,var_0D + var_0E);
var_11 = 100 * var_0F / var_0E * 3;
}
if(int(var_11 * 100) % 100 >= 0.5)
{
var_10 = int(var_11) + 1;
}
else
{
var_10 = int(var_11);
}
var_02 thread maps\_specialops::so_achievement_update("BRAG_RAGS");
var_02 thread maps\_specialops::so_achievement_update("TACTICIAN");
var_02 thread maps\_specialops::so_achievement_update("OVERACHIEVER");
var_16 = var_02 getlocalplayerprofiledata("percentCompleteSO");
var_17 = int(var_16 / 100);
var_18 = var_02 maps\_rank::getrank();
if(maps\_utility::is_survival())
{
var_19 = var_18 + var_17 * 100;
}
else
{
var_19 = var_18 + var_0F * 100;
}
var_02 setlocalplayerprofiledata("percentCompleteSO",var_19);
}
updategamerprofileall();
}
//Function Number: 48
wait_all_players_are_touching(param_00)
{
for(;;)
{
param_00 waittill("trigger");
if(!maps\_utility::is_coop())
{
return;
}
level.player thread waiting_message_hide();
level.player2 thread waiting_message_hide();
if(!level.player istouching(param_00))
{
level.player2 thread display_waiting_message();
continue;
}
if(!level.player2 istouching(param_00))
{
level.player thread display_waiting_message();
continue;
}
break;
}
}
//Function Number: 49
wait_all_players_have_touched(param_00,param_01)
{
var_02 = 0;
var_03 = 0;
for(;;)
{
param_00 waittill("trigger");
if(!maps\_utility::is_coop())
{
return;
}
level.player thread waiting_message_hide();
level.player2 thread waiting_message_hide();
if(level.player istouching(param_00))
{
var_02 = 1;
if(!var_03 && !level.player2 istouching(param_00))
{
thread determine_waiting_message(level.player,param_01);
continue;
}
}
if(level.player2 istouching(param_00))
{
var_03 = 1;
if(!var_02 && !level.player istouching(param_00))
{
thread determine_waiting_message(level.player2,param_01);
continue;
}
}
break;
}
}
//Function Number: 50
disable_mission_end_trigger(param_00)
{
level waittill("special_op_terminated");
param_00 common_scripts\utility::trigger_off();
}
//Function Number: 51
determine_waiting_message(param_00,param_01)
{
switch(param_01)
{
case "all":
param_00 display_waiting_message();
break;
case "any":
param_00 display_waiting_message();
break;
case "freeze":
param_00 display_frozen_message();
break;
}
}
//Function Number: 52
display_waiting_message()
{
self endon("death");
level endon("challenge_timer_passed");
level endon("challenge_timer_expired");
level endon("special_op_terminated");
level notify("players_touching_hint");
level endon("players_touching_hint");
if(!isdefined(self))
{
return;
}
if(!isdefined(self.waiting_hud))
{
self.waiting_hud = create_waiting_message(self);
}
else
{
self.waiting_hud.alpha = 1;
}
wait 0.05;
self.waiting_hud fadeovertime(0.25);
self.waiting_hud.alpha = 0;
}
//Function Number: 53
display_frozen_message()
{
if(!isdefined(self))
{
return;
}
if(isdefined(self.frozen_and_waiting) && self.frozen_and_waiting)
{
return;
}
self.frozen_and_waiting = 1;
self enableinvulnerability();
self freezecontrols(1);
self.ignoreme = 1;
self setblurforplayer(6,1);
self.waiting_hud = create_waiting_message(self);
}
//Function Number: 54
create_waiting_message(param_00)
{
self notify("rebuilding_waiting_hud");
self endon("rebuilding_waiting_hud");
var_01 = maps\_specialops::so_create_hud_item(3,0,&"SPECIAL_OPS_WAITING_OTHER_PLAYER",param_00);
var_01.alignx = "center";
var_01.horzalign = "center";
var_01 set_hudelem_blue();
thread waiting_message_delete_on_so_end(var_01);
return var_01;
}
//Function Number: 55
waiting_message_hide()
{
if(!isdefined(self))
{
return;
}
if(!isdefined(self.waiting_hud))
{
return;
}
if(isdefined(self.frozen_and_waiting) && self.frozen_and_waiting)
{
return;
}
self.waiting_hud fadeovertime(0.25);
self.waiting_hud.alpha = 0;
}
//Function Number: 56
waiting_message_delete_on_so_end(param_00)
{
self endon("rebuilding_waiting_hud");
level waittill("special_op_terminated");
if(isdefined(param_00))
{
param_00 destroy();
}
}
//Function Number: 57
disable_saving()
{
common_scripts\utility::flag_set("disable_autosaves");
for(;;)
{
common_scripts\utility::flag_wait("can_save");
common_scripts\utility::flag_clear("can_save");
}
}
//Function Number: 58
disable_escape_warning()
{
if(common_scripts\utility::flag("player_has_escaped"))
{
return 1;
}
if(is_touching_escape_trigger())
{
return 0;
}
return 1;
}
//Function Number: 59
is_touching_escape_trigger()
{
if(!isdefined(level.escape_warning_triggers))
{
return 0;
}
foreach(var_01 in level.escape_warning_triggers)
{
if(self istouching(var_01))
{
return 1;
}
}
return 0;
}
//Function Number: 60
ping_escape_warning()
{
if(isdefined(self.ping_escape_splash))
{
return;
}
self endon("death");
self.ping_escape_splash = maps\_specialops::so_create_hud_item(3.5,0,&"SPECIAL_OPS_ESCAPE_WARNING",self);
self.ping_escape_splash.alignx = "center";
self.ping_escape_splash.horzalign = "center";
while(ping_escape_warning_valid())
{
self.ping_escape_splash.alpha = 1;
self.ping_escape_splash fadeovertime(1);
self.ping_escape_splash.alpha = 0.5;
self.ping_escape_splash.fontscale = 1.5;
self.ping_escape_splash changefontscaleovertime(1);
self.ping_escape_splash.fontscale = 1;
wait 1;
}
self.ping_escape_splash.alpha = 0.5;
self.ping_escape_splash fadeovertime(0.25);
self.ping_escape_splash.alpha = 0;
wait 0.25;
self.escape_hint_active = undefined;
if(isdefined(self.ping_escape_splash))
{
self.ping_escape_splash destroy();
}
}
//Function Number: 61
ping_escape_warning_valid()
{
if(common_scripts\utility::flag("special_op_terminated"))
{
return 0;
}
if(!is_touching_escape_trigger())
{
return 0;
}
return 1;
}
//Function Number: 62
enable_escape_failure_auto()
{
level endon("special_op_terminated");
for(;;)
{
self waittill("trigger",var_00);
if(!isplayer(var_00))
{
continue;
}
if(isdefined(var_00.so_ignore_escape_failure) && var_00.so_ignore_escape_failure)
{
continue;
}
break;
}
maps\_specialops::so_force_deadquote("@DEADQUOTE_SO_LEFT_PLAY_AREA");
maps\_utility::missionfailedwrapper();
}
//Function Number: 63
enable_escape_warning_auto_init()
{
if(common_scripts\utility::flag_exist("so_escape_warning") && common_scripts\utility::flag("so_escape_warning"))
{
return;
}
common_scripts\utility::flag_init("so_escape_warning");
foreach(var_01 in level.players)
{
var_01 maps\_utility::ent_flag_init("so_escape_hint_active");
}
}
//Function Number: 64
enable_escape_warning_auto()
{
level endon("special_op_terminated");
enable_escape_warning_auto_init();
for(;;)
{
self waittill("trigger",var_00);
if(!isplayer(var_00))
{
continue;
}
if(isdefined(var_00.so_ignore_escape_failure) && var_00.so_ignore_escape_failure)
{
continue;
}
var_00 thread show_escape_warning_auto(self);
}
}
//Function Number: 65
show_escape_warning_auto(param_00)
{
if(maps\_utility::ent_flag("so_escape_hint_active"))
{
return;
}
maps\_utility::ent_flag_set("so_escape_hint_active");
thread ping_escape_warning_auto(param_00);
}
//Function Number: 66
ping_escape_warning_auto(param_00)
{
self notify("so_escape_hint_ping");
self endon("so_escape_hint_ping");
thread remove_escape_warning_auto(param_00);
if(!isdefined(self.ping_escape_splash_auto))
{
self.ping_escape_splash_auto = maps\_specialops::so_create_hud_item(3.5,0,&"SPECIAL_OPS_ESCAPE_WARNING",self);
self.ping_escape_splash_auto.alignx = "center";
self.ping_escape_splash_auto.horzalign = "center";
if(isdefined(level.so_escape_warning_colorfunc))
{
self.ping_escape_splash_auto thread [[ level.so_escape_warning_colorfunc ]]();
}
}
while(ping_escape_warning_auto_valid())
{
self.ping_escape_splash_auto.alpha = 1;
self.ping_escape_splash_auto fadeovertime(1);
self.ping_escape_splash_auto.alpha = 0.5;
self.ping_escape_splash_auto.fontscale = 1.5;
self.ping_escape_splash_auto changefontscaleovertime(1);
self.ping_escape_splash_auto.fontscale = 1;
wait 1;
}
self.ping_escape_splash_auto.alpha = 0.5;
self.ping_escape_splash_auto fadeovertime(0.25);
self.ping_escape_splash_auto.alpha = 0;
wait 0.25;
self.ping_escape_splash_auto destroy();
}
//Function Number: 67
remove_escape_warning_auto(param_00)
{
while(self istouching(param_00))
{
wait 0.05;
}
maps\_utility::ent_flag_clear("so_escape_hint_active");
}
//Function Number: 68
ping_escape_warning_auto_valid()
{
if(!isalive(self))
{
return 0;
}
if(common_scripts\utility::flag("special_op_terminated"))
{
return 0;
}
return maps\_utility::ent_flag("so_escape_hint_active");
}
//Function Number: 69
so_dialog_play(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
wait param_01;
}
if(isdefined(param_02) && param_02)
{
maps\_utility::radio_dialogue_stop();
}
maps\_utility::radio_dialogue(param_00);
}
//Function Number: 70
specialops_dialog_init()
{
level.scr_radio["so_tf_1_plyr_prep"] = "so_tf_1_plyr_prep";
level.scr_radio["so_tf_1_success_generic"] = "so_tf_1_success_generic";
level.scr_radio["so_tf_1_success_jerk"] = "so_tf_1_success_jerk";
level.scr_radio["so_tf_1_success_best"] = "so_tf_1_success_best";
level.scr_radio["so_tf_1_fail_generic"] = "so_tf_1_fail_generic";
level.scr_radio["so_tf_1_fail_generic_jerk"] = "so_tf_1_fail_generic_jerk";
level.scr_radio["so_tf_1_fail_time"] = "so_tf_1_fail_time";
level.scr_radio["so_tf_1_fail_bleedout"] = "so_tf_1_fail_bleedout";
level.scr_radio["so_tf_1_time_generic"] = "so_tf_1_time_generic";
level.scr_radio["so_tf_1_time_hurry"] = "so_tf_1_time_hurry";
level.scr_radio["so_tf_1_civ_kill_warning"] = "so_tf_1_civ_kill_warning";
level.scr_radio["so_tf_1_progress_5more"] = "so_tf_1_progress_5more";
level.scr_radio["so_tf_1_progress_4more"] = "so_tf_1_progress_4more";
level.scr_radio["so_tf_1_progress_3more"] = "so_tf_1_progress_3more";
level.scr_radio["so_tf_1_progress_2more"] = "so_tf_1_progress_2more";
level.scr_radio["so_tf_1_progress_1more"] = "so_tf_1_progress_1more";
level.scr_radio["so_tf_1_time_status_late"] = "so_tf_1_time_status_late";
level.scr_radio["so_tf_1_time_status_good"] = "so_tf_1_time_status_good";
level.scr_radio["so_tf_1_progress_3quarter"] = "so_tf_1_progress_3quarter";
level.scr_radio["so_tf_1_progress_half"] = "so_tf_1_progress_half";
level.scr_radio["so_tf_1_progress_quarter"] = "so_tf_1_progress_quarter";
}
//Function Number: 71
set_hudelem_white()
{
maps\_specialops::set_hud_white();
}
//Function Number: 72
set_hudelem_blue()
{
maps\_specialops::set_hud_blue();
}
//Function Number: 73
set_hudelem_green()
{
maps\_specialops::set_hud_green();
}
//Function Number: 74
set_hudelem_yellow()
{
maps\_specialops::set_hud_yellow();
}
//Function Number: 75
set_hudelem_red()
{
maps\_specialops::set_hud_red();
}
//Function Number: 76
set_hudelem_grey()
{
maps\_specialops::set_hud_grey();
}
//Function Number: 77
so_hud_pulse_single(param_00,param_01,param_02)
{
self endon("update_hud_pulse");
self endon("destroying");
self endon("death");
self.fontscale = param_00;
self changefontscaleovertime(param_02);
self.fontscale = param_01;
wait param_02;
}
//Function Number: 78
so_hud_pulse_loop()
{
self endon("update_hud_pulse");
self endon("destroying");
self endon("death");
if(self.pulse_start_big)
{
so_hud_pulse_single(self.pulse_scale_big,self.pulse_scale_loop_normal,self.var_184D);
}
while(isdefined(self.pulse_bounds) && self.pulse_bounds)
{
so_hud_pulse_single(self.pulse_scale_loop_normal,self.pulse_scale_loop_big,self.pulse_time_loop);
so_hud_pulse_single(self.pulse_scale_loop_big,self.pulse_scale_loop_normal,self.pulse_time_loop);
}
}
//Function Number: 79
so_hud_pulse_init()
{
if(!isdefined(self))
{
return 0;
}
if(!isdefined(self.var_184D))
{
self.var_184D = 0.5;
}
if(!isdefined(self.pulse_scale_normal))
{
self.pulse_scale_normal = 1;
}
if(!isdefined(self.pulse_scale_big))
{
self.pulse_scale_big = 1.6;
}
if(!isdefined(self.pulse_bounds))
{
self.pulse_bounds = 0;
}
if(!isdefined(self.pulse_time_loop))
{
self.pulse_time_loop = 1;
}
if(!isdefined(self.pulse_scale_loop_normal))
{
self.pulse_scale_loop_normal = 1;
}
if(!isdefined(self.pulse_scale_loop_big))
{
self.pulse_scale_loop_big = 1.15;
}
if(!isdefined(self.pulse_start_big))
{
self.pulse_start_big = 1;
}
return 1;
}
//Function Number: 80
specialops_detect_death()
{
level endon("special_op_terminated");
common_scripts\utility::flag_init("so_player_death_nofail");
common_scripts\utility::array_thread(level.players,::specialops_detect_player_death);
level waittill("so_player_has_died");
if(common_scripts\utility::flag("so_player_death_nofail"))
{
return;
}
maps\_utility::missionfailedwrapper();
}
//Function Number: 81
specialops_detect_player_death()
{
level endon("special_op_terminated");
self waittill("death");
level notify("so_player_has_died");
}
//Function Number: 82
so_special_failure_hint_reset_dvars(param_00)
{
setdvar("ui_dog_death",0);
setdvar("ui_vehicle_death",0);
setdvar("ui_destructible_death",0);
setdvar("ui_barrel_death",0);
setdvar("ui_grenade_death",0);
setdvar("ui_time_failure",0);
setdvar("ui_ff_death",0);
setdvar("ui_juggernaut_death",0);
setdvar("ui_bled_out",0);
setdvar("ui_icon_partner",0);
setdvar("ui_icon_obj",0);
setdvar("ui_icon_obj_offscreen",0);
setdvar("ui_icon_stars",0);
setdvar("ui_icon_claymore",0);
setdvar("ui_icon_stealth_stance",0);
if(isdefined(param_00))
{
setdvar(param_00,1);
}
}
//Function Number: 83
so_special_failure_hint()
{
so_special_failure_hint_reset_dvars();
foreach(var_01 in level.players)
{
var_01 thread maps\_load::player_throwgrenade_timer();
var_01 thread so_special_death_hint_tracker();
}
level waittill("so_generate_deathquote");
maps\_quotes::setdeadquote_so();
}
//Function Number: 84
so_special_death_hint_tracker()
{
level endon("so_special_failure_hint_set");
self waittill("death",var_00,var_01,var_02);
if(isdefined(self.coop_death_reason))
{
var_00 = self.coop_death_reason["attacker"];
var_01 = self.coop_death_reason["cause"];
var_02 = self.coop_death_reason["weapon_name"];
}
if(so_claymore_death(var_01,var_02))
{
return;
}
if(so_friendly_fire_death(var_00))
{
return;
}
if(so_radiation_death(var_00))
{
return;
}
if(so_dog_death(var_00))
{
return;
}
if(so_juggernaut_death(var_00))
{
return;
}
if(so_grenade_suicide_death(var_01))
{
return;
}
if(so_destructible_death(var_00,var_01))
{
return;
}
if(so_exploding_barrel_death(var_01))
{
return;
}
if(so_grenade_regular_death(var_01))
{
return;
}
if(so_vehicle_death(var_00,var_01))
{
}
}
//Function Number: 85
so_claymore_death(param_00,param_01)
{
if(!isdefined(param_00))
{
return 0;
}
if(!isdefined(param_01) || isdefined(param_01) && param_01 != "claymore")
{
return 0;
}
return 1;
}
//Function Number: 86
so_friendly_fire_death(param_00)
{
if(!maps\_utility::is_coop())
{
return 0;
}
if(!isdefined(param_00))
{
return 0;
}
var_01 = maps\_utility::get_other_player(self);
if(var_01 != param_00)
{
return 0;
}
so_special_failure_hint_set("@DEADQUOTE_SO_FRIENDLY_FIRE_KILL","ui_ff_death");
return 1;
}
//Function Number: 87
so_radiation_death(param_00)
{
if(!isdefined(param_00) || param_00.classname != "worldspawn")
{
return 0;
}
if(!isdefined(self.radiationdeath) || !self.radiationdeath)
{
return 0;
}
so_special_failure_hint_set("@SCRIPT_RADIATION_DEATH");
return 1;
}
//Function Number: 88
so_dog_death(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(!isdefined(param_00.weapon))
{
return 0;
}
if(param_00.weapon != "dog_bite")
{
return 0;
}
common_scripts\utility::flag_set("special_op_no_unlink");
so_special_failure_hint_set(level.so_dog_death_quote,"ui_dog_death");
return 1;
}
//Function Number: 89
so_juggernaut_death(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(!isdefined(param_00.juggernaut))
{
return 0;
}
var_01 = [];
so_special_failure_hint_set_array(var_7B,"ui_juggernaut_death");
return 1;
}
//Function Number: 90
so_destructible_death(param_00,param_01)
{
if(!isdefined(param_01))
{
return 0;
}
if(!isdefined(param_00))
{
return 0;
}
if(param_01 != "MOD_EXPLOSIVE")
{
return 0;
}
if(!isdefined(param_00.destructible_type))
{
return 0;
}
if(issubstr(param_00.destructible_type,"vehicle"))
{
so_special_failure_hint_set("@SCRIPT_EXPLODING_VEHICLE_DEATH","ui_vehicle_death");
}
else
{
so_special_failure_hint_set("@SCRIPT_EXPLODING_DESTRUCTIBLE_DEATH","ui_destructible_death");
}
return 1;
}
//Function Number: 91
so_exploding_barrel_death(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00 != "MOD_EXPLOSIVE")
{
return 0;
}
if(!isdefined(level.lastexplodingbarrel))
{
return 0;
}
if(gettime() != level.lastexplodingbarrel["time"])
{
return 0;
}
var_01 = distance(self.origin,level.lastexplodingbarrel["origin"]);
if(var_01 > level.lastexplodingbarrel["radius"])
{
return 0;
}
so_special_failure_hint_set("@SCRIPT_EXPLODING_BARREL_DEATH","ui_barrel_death");
return 1;
}
//Function Number: 92
so_grenade_suicide_death(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00 != "MOD_SUICIDE")
{
return 0;
}
if(self.lastgrenadetime - gettime() > 3500)
{
return 0;
}
so_special_failure_hint_set("@SCRIPT_GRENADE_SUICIDE_COMBINED");
return 1;
}
//Function Number: 93
so_grenade_regular_death(param_00)
{
if(!isdefined(param_00))
{
return 0;
}
if(param_00 != "MOD_GRENADE" && param_00 != "MOD_GRENADE_SPLASH")
{
return 0;
}
so_special_failure_hint_set("@SCRIPT_GRENADE_DEATH","ui_grenade_death");
return 1;
}
//Function Number: 94
so_vehicle_death(param_00,param_01)
{
if(!isdefined(param_01))
{
return 0;
}
if(!isdefined(param_00))
{
return 0;
}
if(param_01 != "MOD_CRUSH")
{
return 0;
}
if(param_00.code_classname != "script_vehicle")
{
return 0;
}
so_special_failure_hint_set("@DEADQUOTE_SO_RUN_OVER_BY_VEHICLE");
return 1;
}
//Function Number: 95
so_special_failure_hint_set(param_00,param_01)
{
maps\_specialops::so_force_deadquote(param_00,param_01);
level notify("so_special_failure_hint_set");
}
//Function Number: 96
so_special_failure_hint_set_array(param_00,param_01)
{
maps\_specialops::so_force_deadquote_array(param_00,param_01);
level notify("so_special_failure_hint_set");
}
//Function Number: 97
so_ai_flashed_damage_feedback()
{
self endon("death");
level endon("special_op_terminated");
for(;;)
{
self waittill("flashbang",var_00,var_01,var_02,var_03);
if(!maps\_utility::is_damagefeedback_enabled())
{
continue;
}
if(isdefined(var_03) && isplayer(var_03))
{
var_03 maps\_damagefeedback::updatedamagefeedback(self);
}
}
}
//Function Number: 98
so_mission_complete_achivements()
{
if(!maps\_utility::is_survival() && level.players.size == 2 && level.players[0].so_eog_summary_data["kills"] > 0 && level.players[0].so_eog_summary_data["kills"] == level.players[1].so_eog_summary_data["kills"])
{
level.players[0] maps\_utility::player_giveachievement_wrapper("FIFTY_FIFTY");
level.players[1] maps\_utility::player_giveachievement_wrapper("FIFTY_FIFTY");
}
if(level.players.size >= 2 && level.so_enable_wait_for_players >= 2)
{
var_00 = 0;
foreach(var_02 in level.players)
{
if(isdefined(var_02.laststand_down_count) && var_02.laststand_down_count > 0)
{
var_00 = 1;
}
if(var_02 maps\_utility::get_player_gameskill() < 2)
{
var_00 = 1;
}
}
if(!var_00)
{
foreach(var_02 in level.players)
{
var_02 maps\_utility::player_giveachievement_wrapper("NO_ASSISTANCE_REQUIRED");
}
}
}
}