// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool main() { maps\mp\mp_shipment_ns_precache::main(); maps\createart\mp_shipment_ns_art::main(); maps\mp\mp_shipment_ns_fx::main(); maps\mp\_utility::setdvar_cg_ng( "r_specularColorScale", 3.5, 7.5 ); level.mapcustomcratefunc = ::customcratefunc; level.mapcustomkillstreakfunc = ::customkillstreakfunc; level.mapcustombotkillstreakfunc = ::custombotkillstreakfunc; precache(); maps\mp\_load::main(); level.nukedeathvisionfunc = ::nukedeathvision; thread manage_gates(); maps\mp\_compass::setupminimap( "compass_map_mp_shipment_ns" ); setdvar( "r_lightGridEnableTweaks", 1 ); setdvar( "r_lightGridIntensity", 1.33 ); maps\mp\_utility::setdvar_cg_ng( "r_specularColorScale", 3.0, 9.5 ); if ( level.ps3 ) { setdvar( "sm_sunShadowScale", "0.45" ); setdvar( "sm_sunsamplesizenear", ".15" ); } else if ( level.xenon ) { setdvar( "sm_sunShadowScale", "0.55" ); setdvar( "sm_sunsamplesizenear", ".3" ); } else { setdvar( "sm_sunShadowScale", "1.0" ); setdvar( "sm_sunsamplesizenear", ".42" ); } game["attackers"] = "allies"; game["defenders"] = "axis"; game["allies_outfit"] = "urban"; game["axis_outfit"] = "woodland"; sort_spawn_points(); thread trap_init(); thread display_team_scores(); thread check_for_player_connect(); thread box_kill_counter(); thread select_random_prize(); thread set_up_announcer(); thread set_up_multi_turret(); thread nuke_custom_visionset(); thread box_kill_numbers(); thread match_end_event(); thread rotate_turntable(); thread get_prize_room_curtains_n_fx(); thread get_elevators(); thread maps\mp\_dlcalienegg::setupeggformap( "alienEasterEgg" ); level.helipilotsettings["heli_pilot"].modelbase = "vehicle_aas_72x_killstreak_shns"; maps\mp\bots\_bots_ks::blockkillstreakforbots( "vanguard" ); } precache() { precachempanim( "mp_stand_idle" ); precachempanim( "hunted_celebrate_v2" ); precachempanim( "hunted_celebrate_v3" ); precachemodel( "shns_score_num_0_small" ); precachemodel( "shns_score_num_1_small" ); precachemodel( "shns_score_num_2_small" ); precachemodel( "shns_score_num_3_small" ); precachemodel( "shns_score_num_4_small" ); precachemodel( "shns_score_num_5_small" ); precachemodel( "shns_score_num_6_small" ); precachemodel( "shns_score_num_7_small" ); precachemodel( "shns_score_num_8_small" ); precachemodel( "shns_score_num_9_small" ); } manage_gates() { level endon( "game_ended" ); level endon( "start_custom_ending" ); var_0 = getentarray( "doors", "targetname" ); var_1 = getentarray( "doors_b", "targetname" ); var_2 = common_scripts\utility::array_combine( var_0, var_1 ); while ( !isdefined( level.gametype ) ) wait 0.01; move_gate_array( var_2, "open", 0 ); if ( level.gametype == "sd" || level.gametype == "sr" || level.gametype == "siege" || level.gametype == "horde" || level.gametype == "infect" || level.gametype == "grnd" ) { remove_armored_shutters(); return; } thread manage_expanded_area_spawns(); var_3 = botautoconnectenabled(); if ( var_3 == 0 ) { if ( level.gametype == "dom" || level.gametype == "infect" || level.gametype == "grnd" ) { while ( !isdefined( level.bot_gametype_precaching_done ) ) wait 0.05; } move_gate_array( var_2, "close", 1, 1 ); } else if ( level.gametype != "dom" && level.gametype != "infect" && level.gametype != "grnd" && level.gametype != "blitz" ) move_gate_array( var_2, "close", 1, 1 ); else { while ( !isdefined( level.bot_gametype_precaching_done ) ) wait 0.05; move_gate_array( var_2, "close", 1, 1 ); } var_4 = 45; var_5 = var_2; var_6 = 0; var_7 = getmatchdata( "hasBots" ); switch ( level.gametype ) { case "cranked": case "conf": case "war": case "dm": var_5 = var_0; var_4 = 60; break; case "dom": var_6 = 1; if ( getmatchdata( "hasBots" ) == 1 ) var_4 = 0; else var_4 = 45; break; case "grind": case "infect": var_6 = 1; var_4 = 1; break; case "blitz": case "sr": case "sd": var_5 = var_0; var_4 = 1; break; default: var_6 = 1; var_4 = 1; break; } if ( isdefined( var_4 ) ) { thread sfx_gate_alarm( var_4 ); thread play_warning_light_fx( var_4 ); wait( var_4 ); if ( var_6 ) remove_armored_shutters(); thread sfx_gates_open(); move_gate_array( var_5, "open", 1, 1 ); level notify( "announcement", "doors_opened", undefined, undefined, 1 ); level notify( "gates_open" ); } } debug_loop( var_0 ) { for (;;) { iprintlnbold( var_0 ); wait 1.0; } } play_red_light_fx() { } play_warning_light_fx( var_0 ) { if ( var_0 > 4 ) { wait( var_0 - 4 ); common_scripts\utility::exploder( 11 ); for ( var_1 = 0; var_1 < 4; var_1++ ) { thread sfx_lights_red(); common_scripts\utility::exploder( 42 ); wait 1.1; } } thread sfx_lights_green(); common_scripts\utility::exploder( 40 ); } move_gate_array( var_0, var_1, var_2, var_3 ) { foreach ( var_5 in var_0 ) thread move_gate( var_5, var_1, var_2, var_3 ); wait( var_2 ); } move_gate( var_0, var_1, var_2, var_3 ) { var_4 = getent( var_0.target, "targetname" ); if ( isdefined( var_3 ) ) { if ( var_1 == "close" ) { if ( isdefined( var_4 ) ) { if ( var_2 >= 1 ) var_4 moveto( var_4.origin + ( 0, 0, 104 ), var_2, var_2 / 8, var_2 / 4 ); else var_4.origin = var_4.origin + ( 0, 0, 104 ); } var_0 moveto( var_0.origin + ( 0, 0, 96 ), 0.1 ); wait 0.1; var_0 solid(); var_0 disconnectpaths(); var_0 show(); var_0 setaisightlinevisible( 0 ); } else { if ( isdefined( var_4 ) ) { if ( var_2 >= 1 ) var_4 moveto( var_4.origin - ( 0, 0, 104 ), var_2, var_2 / 8, var_2 / 4 ); else var_4.origin = var_4.origin - ( 0, 0, 104 ); } var_0 connectpaths(); var_0 notsolid(); var_0 hide(); var_0 setaisightlinevisible( 1 ); var_0 moveto( var_0.origin - ( 0, 0, 96 ), 0.1 ); wait 0.1; } } else if ( var_1 == "close" ) { if ( isdefined( var_4 ) ) { if ( var_2 >= 1 ) var_4 moveto( var_4.origin + ( 0, 0, 104 ), var_2, var_2 / 8, var_2 / 4 ); else var_4.origin = var_4.origin + ( 0, 0, 104 ); } } else if ( isdefined( var_4 ) ) { if ( var_2 >= 1 ) var_4 moveto( var_4.origin - ( 0, 0, 104 ), var_2, var_2 / 8, var_2 / 4 ); else var_4.origin = var_4.origin - ( 0, 0, 104 ); } } move_shutter_array( var_0, var_1, var_2 ) { foreach ( var_4 in var_0 ) thread move_shutter( var_4, var_1, var_2 ); wait( var_2 ); } move_shutter( var_0, var_1, var_2 ) { if ( var_1 == "close" ) var_0 moveto( var_0.origin + ( 0, 0, 96 ), var_2, var_2 / 8, var_2 / 4 ); else var_0 moveto( var_0.origin - ( 0, 0, 96 ), var_2, var_2 / 8, var_2 / 4 ); } remove_armored_shutters() { var_0 = getentarray( "armory_rollups", "targetname" ); if ( isdefined( var_0 ) ) { foreach ( var_2 in var_0 ) var_2 delete(); } } manage_expanded_area_spawns() { level.dynamicspawns = ::filter_expanded_area_spawn_points; level waittill( "gates_open" ); level.dynamicspawns = undefined; } manage_trap_1_area_spawns() { level.dynamicspawns = ::filter_trap_1_area_spawn_points; common_scripts\utility::flag_waitopen( "trap_1_active" ); level.dynamicspawns = undefined; } filter_expanded_area_spawn_points( var_0 ) { var_1 = []; foreach ( var_3 in var_0 ) { if ( is_in_array( level.expanded_area_spawns, var_3 ) ) continue; var_1[var_1.size] = var_3; } return var_1; } filter_trap_1_area_spawn_points( var_0 ) { var_1 = []; foreach ( var_3 in var_0 ) { if ( is_in_array( level.trap_1_area_spawns, var_3 ) ) continue; var_1[var_1.size] = var_3; } return var_1; } sort_spawn_points() { level.expanded_area_spawns = []; level.trap_1_area_spawns = []; while ( !isdefined( level.gametypestarted ) ) wait 0.05; if ( !isdefined( level.spawnpoints ) ) return; foreach ( var_1 in level.spawnpoints ) { var_2 = var_1.script_noteworthy; if ( !isdefined( var_2 ) ) continue; var_3 = strtok( var_2, ";" ); foreach ( var_5 in var_3 ) { if ( var_5 == "expanded_area_spawn" ) level.expanded_area_spawns[level.expanded_area_spawns.size] = var_1; if ( var_5 == "trap_1_area_spawn" ) level.trap_1_area_spawns[level.trap_1_area_spawns.size] = var_1; } } } is_in_array( var_0, var_1 ) { for ( var_2 = 0; var_2 < var_0.size; var_2++ ) { if ( var_0[var_2] == var_1 ) return 1; } return 0; } display_team_scores() { for (;;) { if ( isdefined( level.players ) ) break; wait 1; } var_0 = getentarray( "scoreboard_number", "target" ); foreach ( var_2 in var_0 ) var_2 hide(); if ( !level.teambased ) return; var_4 = getent( "ghosts_1_0", "targetname" ); var_5 = getent( "ghosts_2_0", "targetname" ); var_6 = getent( "ghosts_3_0", "targetname" ); var_7 = getent( "ghosts_4_0", "targetname" ); var_8 = getent( "federation_1_0", "targetname" ); var_9 = getent( "federation_2_0", "targetname" ); var_10 = getent( "federation_3_0", "targetname" ); var_11 = getent( "federation_4_0", "targetname" ); for (;;) { if ( level.gametype == "sd" || level.gametype == "sr" || level.gametype == "siege" ) { var_12 = game["roundsWon"]["allies"]; var_13 = game["roundsWon"]["axis"]; } else { var_12 = game["teamScores"]["allies"]; var_13 = game["teamScores"]["axis"]; } if ( var_12 > 9999 ) { var_12 = 10000; var_4 setmodel( "shns_score_num_feds_r" ); var_5 setmodel( "shns_score_num_feds_r" ); var_6 setmodel( "shns_score_num_feds_e" ); var_7 setmodel( "tag_origin" ); } if ( var_13 > 9999 ) { var_13 = 10000; var_8 setmodel( "shns_score_num_feds_r" ); var_9 setmodel( "shns_score_num_feds_r" ); var_10 setmodel( "shns_score_num_feds_e" ); var_11 setmodel( "tag_origin" ); } if ( var_12 < 10 ) { var_14 = getsubstr( var_12, 0, 1 ); var_4 setmodel( "shns_score_num_ghosts_" + var_14 ); } if ( var_12 > 9 && var_12 < 99 ) { var_14 = getsubstr( var_12, 1, 2 ); var_15 = getsubstr( var_12, 0, 1 ); var_4 setmodel( "shns_score_num_ghosts_" + var_14 ); var_5 setmodel( "shns_score_num_ghosts_" + var_15 ); } if ( var_12 > 99 && var_12 < 999 ) { var_14 = getsubstr( var_12, 2, 3 ); var_15 = getsubstr( var_12, 1, 2 ); var_16 = getsubstr( var_12, 0, 1 ); var_4 setmodel( "shns_score_num_ghosts_" + var_14 ); var_5 setmodel( "shns_score_num_ghosts_" + var_15 ); var_6 setmodel( "shns_score_num_ghosts_" + var_16 ); } if ( var_12 > 999 && var_12 <= 9999 ) { var_14 = getsubstr( var_12, 3, 4 ); var_15 = getsubstr( var_12, 2, 3 ); var_16 = getsubstr( var_12, 1, 2 ); var_17 = getsubstr( var_12, 0, 1 ); var_4 setmodel( "shns_score_num_ghosts_" + var_14 ); var_5 setmodel( "shns_score_num_ghosts_" + var_15 ); var_6 setmodel( "shns_score_num_ghosts_" + var_16 ); var_7 setmodel( "shns_score_num_ghosts_" + var_17 ); } if ( var_13 < 10 ) { var_18 = getsubstr( var_13, 0, 1 ); var_8 setmodel( "shns_score_num_feds_" + var_18 ); } if ( var_13 > 9 && var_13 < 99 ) { var_18 = getsubstr( var_13, 1, 2 ); var_19 = getsubstr( var_13, 0, 1 ); var_8 setmodel( "shns_score_num_feds_" + var_18 ); var_9 setmodel( "shns_score_num_feds_" + var_19 ); } if ( var_13 > 99 && var_13 < 999 ) { var_18 = getsubstr( var_13, 2, 3 ); var_19 = getsubstr( var_13, 1, 2 ); var_20 = getsubstr( var_13, 0, 1 ); var_8 setmodel( "shns_score_num_feds_" + var_18 ); var_9 setmodel( "shns_score_num_feds_" + var_19 ); var_10 setmodel( "shns_score_num_feds_" + var_20 ); } if ( var_13 > 999 && var_13 <= 9999 ) { var_18 = getsubstr( var_13, 3, 4 ); var_19 = getsubstr( var_13, 2, 3 ); var_20 = getsubstr( var_13, 1, 2 ); var_21 = getsubstr( var_13, 0, 1 ); var_8 setmodel( "shns_score_num_feds_" + var_18 ); var_9 setmodel( "shns_score_num_feds_" + var_19 ); var_10 setmodel( "shns_score_num_feds_" + var_20 ); var_11 setmodel( "shns_score_num_feds_" + var_21 ); } wait 0.5; } } check_for_player_connect() { for (;;) { level waittill( "connected", var_0 ); var_0 thread run_func_after_spawn( ::kill_watcher ); } } run_func_after_spawn( var_0 ) { self endon( "disconnect" ); self endon( "death" ); self waittill( "spawned_player" ); self thread [[ var_0 ]](); } set_up_announcer() { level.announcements = []; level.announcer_temperature = 0; level.announcements["big_spread"] = create_announcement_entry( 6, 0, "shipment_com_ghosts_lead", "shipment_com_feds_lead" ); level.announcements["big_spread_noteam"] = create_announcement_entry( 6, 0, "shipment_com_none_lead" ); level.announcements["score_unchanged"] = create_announcement_entry( 6, 30, "shipment_com_score_same" ); level.announcements["close_match"] = create_announcement_entry( 1, 0, "shipment_com_close_match" ); level.announcements["ks_first"] = create_announcement_entry( 1, 0, "shipment_com_ghosts_spin_1st", "shipment_com_feds_spin_1st" ); level.announcements["ks_additional"] = create_announcement_entry( 0, 0, "shipment_com_ghosts_spin_addtl", "shipment_com_feds_spin_addtl" ); level.announcements["ks_first_noteam"] = create_announcement_entry( 1, 0, "shipment_com_none_spin_1st" ); level.announcements["ks_additional_noteam"] = create_announcement_entry( 0, 0, "shipment_com_none_spin_addtl" ); level.announcements["trap_1"] = create_announcement_entry( 0, 0, "shipment_com_ghosts_gas", "shipment_com_feds_gas" ); level.announcements["trap_1_noteam"] = create_announcement_entry( 0, 0, "shipment_com_none_gas" ); level.announcements["all_traps"] = create_announcement_entry( 0, 0, "shipment_com_ghosts_traps", "shipment_com_feds_traps" ); level.announcements["all_traps_noteam"] = create_announcement_entry( 0, 0, "shipment_com_none_traps" ); level.announcements["turrets"] = create_announcement_entry( 0, 0, "shipment_com_ghosts_cleanse", "shipment_com_feds_cleanse" ); level.announcements["turrets_noteam"] = create_announcement_entry( 0, 0, "shipment_com_none_cleanse" ); level.announcements["care_strike"] = create_announcement_entry( 0, 0, "shipment_com_ghosts_jackpot", "shipment_com_feds_jackpot" ); level.announcements["care_strike_noteam"] = create_announcement_entry( 0, 0, "shipment_com_none_jackpot" ); level.announcements["kem_strike"] = create_announcement_entry( 0, 0, "shipment_com_ghosts_kem", "shipment_com_feds_kem" ); level.announcements["multikill"] = create_announcement_entry( 3, 30, "shipment_com_multikill_female", "shipment_com_multikill_male" ); level.announcements["killstreak"] = create_announcement_entry( 10, 60, "shipment_com_killstreak_female", "shipment_com_killstreak_male" ); level.announcements["back_shot_noteam"] = create_announcement_entry( 0, 15, "shipment_com_none_intheback" ); level.announcements["pistol_kill_noteam"] = create_announcement_entry( 0, 15, "shipment_com_none_pistol_kill" ); level.announcements["generic_kill"] = create_announcement_entry( 0, 15, "shipment_com_generic" ); level.announcements["melee_kill"] = create_announcement_entry( 0, 20, "shipment_com_ghosts_melee", "shipment_com_feds_melee" ); level.announcements["melee_kill_noteam"] = create_announcement_entry( 0, 20, "shipment_com_none_melee" ); level.announcements["headshot"] = create_announcement_entry( 0, 20, "shipment_com_ghosts_headshot", "shipment_com_feds_headshot" ); level.announcements["headshot_noteam"] = create_announcement_entry( 0, 20, "shipment_com_none_headshot" ); level.announcements["dog_kill"] = create_announcement_entry( 0, 10, "shipment_com_ghosts_dogkill", "shipment_com_feds_dogkill" ); level.announcements["dog_kill_noteam"] = create_announcement_entry( 0, 10, "shipment_com_none_dogkill" ); level.announcements["long_shot"] = create_announcement_entry( 0, 20, "shipment_com_ghosts_longshot", "shipment_com_feds_longshot" ); level.announcements["long_shot_noteam"] = create_announcement_entry( 0, 20, "shipment_com_none_longshot" ); level.announcements["double_kill"] = create_announcement_entry( 0, 15, "shipment_com_ghosts_doublekill", "shipment_com_feds_doublekill" ); level.announcements["double_kill_noteam"] = create_announcement_entry( 0, 15, "shipment_com_none_doublekill" ); level.announcements["triple_kill"] = create_announcement_entry( 6, 40, "shipment_com_ghosts_triplekill", "shipment_com_feds_triplekill" ); level.announcements["triple_kill_noteam"] = create_announcement_entry( 6, 40, "shipment_com_none_triplekill" ); level.announcements["savior"] = create_announcement_entry( 10, 20, "shipment_com_ghosts_savior", "shipment_com_feds_savior" ); level.announcements["savior_noteam"] = create_announcement_entry( 10, 20, "shipment_com_none_savior" ); level.announcements["avenger"] = create_announcement_entry( 10, 20, "shipment_com_ghosts_avenger", "shipment_com_feds_avenger" ); level.announcements["avenger_noteam"] = create_announcement_entry( 10, 20, "shipment_com_none_avenger" ); level.announcements["doors_opened"] = create_announcement_entry( 1, 0, "shipment_com_doors_opened" ); level.announcements["intro"] = create_announcement_entry( 1, 0, "shipment_com_intro" ); level.announcements["outro"] = create_announcement_entry( 1, 0, "shipment_com_outro" ); level.announcements["outro_rare"] = create_announcement_entry( 1, 0, "shipment_com_outro_rare" ); level.announcements["puzzle_box"] = create_announcement_entry( 3, 60, "shipment_com_puzzlebox" ); level.announcements["puzzle_box_max"] = create_announcement_entry( 1, 0, "shipment_com_100_puzzlebox" ); if ( level.teambased && level.gametype != "siege" && level.gametype != "sr" && level.gametype != "sd" ) thread determine_score_big_lead(); if ( !level.teambased ) thread determine_score_big_lead_noteam(); thread determine_close_match(); thread manage_announcements(); thread announcement_time_incrementer(); thread intro_announcements(); common_scripts\utility::flag_init( "ready_to_announce" ); common_scripts\utility::flag_set( "ready_to_announce" ); } create_announcement_entry( var_0, var_1, var_2, var_3, var_4, var_5 ) { var_6 = spawnstruct(); var_6.reps = 0; var_6.max_reps = var_0; var_6.temperature = 0; var_6.cooldown = var_1; var_6.lines = []; var_6.lines[var_6.lines.size] = var_2; var_6.lines[var_6.lines.size] = var_3; var_6.lines[var_6.lines.size] = var_4; var_6.lines[var_6.lines.size] = var_5; return var_6; } manage_announcements() { var_0 = getentarray( "announcer_speaker", "targetname" ); var_1 = 6; level.last_announcement_type = "default"; for (;;) { if ( isdefined( level.players ) ) break; wait 1; } for (;;) { level waittill( "announcement", var_2, var_3, var_4, var_5 ); if ( !isdefined( level.announcements ) ) continue; if ( level.last_announcement_type == var_2 && var_2 != "generic_kill" ) continue; if ( level.showingfinalkillcam == 1 ) continue; if ( level.announcements[var_2].reps >= level.announcements[var_2].max_reps && level.announcements[var_2].max_reps != 0 || level.announcements[var_2].temperature > 0 && level.announcements[var_2].cooldown != 0 ) continue; if ( !common_scripts\utility::flag( "ready_to_announce" ) ) { if ( !isdefined( var_5 ) ) continue; else level common_scripts\utility::waittill_notify_or_timeout( "allow_override", 5 ); } maps\mp\gametypes\_hostmigration::waittillhostmigrationdone(); if ( isdefined( var_4 ) ) { if ( isdefined( var_3 ) ) { if ( var_4 == 1 ) { if ( var_3 == "axis" ) var_6 = level.announcements[var_2].lines[2]; else var_6 = level.announcements[var_2].lines[0]; } else if ( var_3 == "axis" ) var_6 = level.announcements[var_2].lines[3]; else var_6 = level.announcements[var_2].lines[1]; } else if ( var_4 == 1 ) var_6 = level.announcements[var_2].lines[0]; else var_6 = level.announcements[var_2].lines[1]; } else if ( isdefined( var_3 ) && level.gametype != "dm" ) { if ( var_3 == "axis" ) var_6 = level.announcements[var_2].lines[1]; else var_6 = level.announcements[var_2].lines[0]; } else var_6 = level.announcements[var_2].lines[0]; foreach ( var_8 in var_0 ) { var_8 playsound( var_6 ); level.announcements[var_2].reps++; level.time_since_last_announcement = 0; } if ( var_2 != "outro" && var_2 != "outro_rare" ) { level.last_announcement_type = var_2; common_scripts\utility::flag_clear( "ready_to_announce" ); thread allow_announcement_override( var_6 ); if ( var_2 == "generic_kill" ) thread announcer_cooldown_manager( 2 ); else thread announcer_cooldown_manager( var_1 ); level.announcements[var_2] thread announcement_cooldown(); continue; } level endon( "game_ended" ); } } announcement_time_incrementer() { level.time_since_last_announcement = 0; for (;;) { wait 1; level.time_since_last_announcement++; } } allow_announcement_override( var_0 ) { var_1 = lookupsoundlength( var_0 ); wait( var_1 / 1000 + 0.1 ); level notify( "allow_override" ); } announcement_cooldown() { self.temperature = self.cooldown; while ( self.temperature > 0 ) { self.temperature--; wait 1; } } announcer_cooldown_manager( var_0 ) { if ( level.announcer_temperature > var_0 ) return; level.announcer_temperature = var_0; level notify( "announcer_time_reset" ); level endon( "announcer_time_reset" ); for (;;) { if ( level.announcer_temperature <= 0 ) { wait( randomfloatrange( 0, 3 ) ); common_scripts\utility::flag_set( "ready_to_announce" ); return; } level.announcer_temperature--; wait 1; } } intro_announcements() { while ( !isdefined( level.gametypestarted ) ) wait 0.05; wait 18; level notify( "announcement", "intro", undefined, undefined, 1 ); } kill_watcher() { self endon( "disconnect" ); level endon( "game_ended" ); level.last_announcer_line = "default"; var_0 = self hasfemalecustomizationmodel(); for (;;) { if ( level.gametype != "horde" ) self waittill( "got_a_kill", var_1, var_2, var_3 ); else self waittill( "horde_kill", var_1, var_2, var_3 ); if ( level.time_since_last_announcement > 18 ) level notify( "announcement", "generic_kill", undefined, undefined ); else { var_4 = gettime(); if ( weaponclass( var_2 ) == "pistol" && var_3 != "MOD_MELEE" && level.last_announcer_line != "pistol" ) { level notify( "announcement", "pistol_kill_noteam", undefined, undefined ); level.last_announcer_line = "pistol"; continue; } if ( var_3 == "MOD_MELEE" && level.last_announcer_line != "mod_melee" ) { if ( level.teambased ) { if ( common_scripts\utility::cointoss() ) level notify( "announcement", "melee_kill", self.team, undefined ); else level notify( "announcement", "melee_kill_noteam", undefined, undefined ); } else level notify( "announcement", "melee_kill_noteam", undefined, undefined ); level.last_announcer_line = "mod_melee"; continue; } if ( var_3 == "MOD_HEAD_SHOT" && level.last_announcer_line != "mod_head_shot" ) { if ( level.teambased ) level notify( "announcement", "headshot", self.team, undefined ); else level notify( "announcement", "headshot_noteam", undefined, undefined ); level.last_announcer_line = "mod_head_shot"; continue; } if ( var_2 == "guard_dog_mp" && level.last_announcer_line != "guard_dog_mp" ) { if ( level.teambased ) level notify( "announcement", "dog_kill", self.team, undefined ); else level notify( "announcement", "dog_kill_noteam", undefined, undefined ); level.last_announcer_line = "guard_dog_mp"; continue; } if ( maps\mp\_events::islongshot( self, var_2, var_3, self.origin, var_1 ) && level.last_announcer_line != "long_shot" ) { if ( level.teambased ) level notify( "announcement", "long_shot", self.team, undefined ); else level notify( "announcement", "long_shot_noteam", undefined, undefined ); level.last_announcer_line = "long_shot"; continue; } if ( self.recentkillcount == 2 ) { if ( level.teambased ) level notify( "announcement", "double_kill", self.team, undefined ); else level notify( "announcement", "double_kill_noteam", undefined, undefined ); } if ( level.gametype != "horde" ) { if ( isbackshot( var_1 ) && level.last_announcer_line != "back_shot" ) { level notify( "announcement", "back_shot_noteam", undefined, undefined ); level.last_announcer_line = "back_shot"; } if ( issavior( var_1, var_4 ) && level.last_announcer_line != "savior" ) { if ( level.teambased ) level notify( "announcement", "savior", self.team, undefined ); else level notify( "announcement", "savior_noteam", undefined, undefined ); level.last_announcer_line = "savior"; } if ( level.teambased && var_4 - var_1.lastkilltime < 500 && level.last_announcer_line != "avenger" ) { if ( var_1.lastkilledplayer != self ) { if ( level.teambased ) level notify( "announcement", "avenger", self.team, undefined ); else level notify( "announcement", "avenger_noteam", undefined, undefined ); level.last_announcer_line = "avenger"; } } } if ( self.recentkillcount == 3 ) { if ( level.teambased ) level notify( "announcement", "triple_kill", self.team, undefined ); else level notify( "announcement", "triple_kill_noteam", undefined, undefined ); } if ( self.recentkillcount >= 4 ) level notify( "announcement", "multikill", undefined, undefined ); if ( self.adrenaline >= 5 ) level notify( "announcement", "killstreak", undefined, undefined ); } wait 0.1; } } isbackshot( var_0 ) { var_1 = var_0.anglesondeath[1]; var_2 = self.anglesonkill[1]; var_3 = angleclamp180( var_1 - var_2 ); if ( abs( var_3 ) < 65 ) return 1; else return 0; } issavior( var_0, var_1 ) { foreach ( var_4, var_3 in var_0.damagedplayers ) { if ( var_4 == self.guid ) continue; if ( level.teambased && var_1 - var_3 < 500 ) return 1; } return 0; } determine_close_match() { var_0 = maps\mp\_utility::gettimelimit() * 60; var_1 = maps\mp\_utility::getscorelimit(); if ( level.gametype == "blitz" ) var_1 = maps\mp\_utility::getwatcheddvar( "scorelimit" ); if ( var_0 < 60 || var_1 == 0 ) return; var_2 = max( 5, var_1 / 20 ); thread match_nearly_over( var_1 ); common_scripts\utility::waittill_notify_or_timeout( "score_limit_almost_reached", var_0 - 25 ); if ( abs( getteamscore( "allies" ) - getteamscore( "axis" ) ) < var_2 ) level notify( "announcement", "close_match" ); } match_nearly_over( var_0 ) { var_1 = 0.9; for (;;) { var_2 = getteamscore( "allies" ); var_3 = getteamscore( "axis" ); if ( var_2 > var_0 * 0.9 || var_3 > var_0 * 0.9 ) { level notify( "score_limit_almost_reached" ); break; } wait 0.25; } } determine_score_big_lead() { level endon( "game_ended" ); var_0 = maps\mp\_utility::getscorelimit(); if ( level.gametype == "blitz" ) var_0 = maps\mp\_utility::getwatcheddvar( "scorelimit" ); if ( var_0 == 0 ) return; var_1 = var_0 * 0.5; var_2 = 0; var_3 = 0; var_4 = 0; var_5 = 30; for (;;) { var_6 = getteamscore( "allies" ); var_7 = getteamscore( "axis" ); var_8 = gettime(); if ( var_6 == var_2 && var_7 == var_3 && var_8 > 60000 ) var_4++; else var_4 = 0; if ( var_4 > var_5 ) { level notify( "announcement", "score_unchanged" ); var_4 = 0; } var_9 = abs( var_6 - var_7 ); if ( var_9 > var_1 ) { if ( var_6 > var_7 ) { level notify( "announcement", "big_spread", "ghosts" ); return; } else { level notify( "announcement", "big_spread", "federation" ); return; } } var_2 = var_6; var_3 = var_7; wait 1; } } determine_score_big_lead_noteam() { level endon( "game_ended" ); var_0 = maps\mp\_utility::getscorelimit(); if ( level.gametype == "blitz" ) var_0 = maps\mp\_utility::getwatcheddvar( "scorelimit" ); if ( var_0 == 0 ) return; for (;;) { if ( isdefined( level.players ) ) { var_1 = []; var_1 = common_scripts\utility::array_sort_with_func( level.players, ::is_score_a_greater_than_b ); if ( var_1.size >= 2 ) { if ( var_1[0].score - var_1[1].score > var_0 / 2 ) { level notify( "announcement", "big_spread_noteam" ); return; } } } wait 1; } } randomizer_create( var_0 ) { var_1 = spawnstruct(); var_1.array = var_0; return var_1; } randomizer_get_no_repeat() { var_0 = undefined; if ( self.array.size > 1 && isdefined( self.last_index ) ) { var_0 = randomint( self.array.size - 1 ); if ( var_0 >= self.last_index ) var_0++; } else var_0 = randomint( self.array.size ); self.last_index = var_0; return self.array[var_0]; } rotate_turntable() { var_0 = getent( "showcase_turntable", "targetname" ); var_1 = getentarray( "showcase_prize", "targetname" ); foreach ( var_3 in var_1 ) var_3 linkto( var_0 ); for (;;) { var_0 rotateyaw( 360, 20 ); wait 20; } } customcratefunc() { level.allow_level_killstreak = maps\mp\_utility::allowlevelkillstreaks(); if ( !level.allow_level_killstreak ) return; maps\mp\killstreaks\_airdrop::addcratetype( "airdrop_assault", "slot_machine", 2000, maps\mp\killstreaks\_airdrop::killstreakcratethink, maps\mp\killstreaks\_airdrop::get_friendly_crate_model(), maps\mp\killstreaks\_airdrop::get_enemy_crate_model(), &"MP_DLC_13_KILLSTREAK_PICKUP" ); level thread killstreak_watch_for_crate(); } killstreak_watch_for_crate() { for (;;) { level waittill( "createAirDropCrate", var_0 ); if ( isdefined( var_0 ) && isdefined( var_0.cratetype ) && var_0.cratetype == "slot_machine" ) { killstreak_set_weight( 0 ); var_1 = wait_for_capture( var_0 ); if ( !isdefined( var_1 ) ) killstreak_set_weight( 2000 ); else game["player_holding_level_killstreak"] = var_1; } } } wait_for_capture( var_0 ) { var_1 = watch_for_air_drop_death( var_0 ); return var_1; } watch_for_air_drop_death( var_0 ) { var_0 endon( "death" ); var_0 waittill( "captured", var_1 ); return var_1; } killstreak_set_weight( var_0 ) { if ( isdefined( game["player_holding_level_killstreak"] ) && isalive( game["player_holding_level_killstreak"] ) ) return 0; maps\mp\killstreaks\_airdrop::changecrateweight( "airdrop_assault", "slot_machine", var_0 ); } customkillstreakfunc() { level.killstreakweildweapons["killstreak_level_event_mp"] = "slot_machine"; level.killstreakfuncs["slot_machine"] = ::tryusekillstreak; thread debug_prizes(); } custombotkillstreakfunc() { maps\mp\bots\_bots_ks::bot_register_killstreak_func( "slot_machine", maps\mp\bots\_bots_ks::bot_killstreak_simple_use ); } tryusekillstreak( var_0, var_1 ) { level notify( "killstreak_activate", self ); return 1; } select_random_prize() { var_0 = []; var_1 = 30; var_2 = var_1 + 15; var_3 = var_2 + 25; var_4 = var_3 + 25; var_5 = var_4 + 5; for (;;) { level waittill( "killstreak_activate", var_6 ); common_scripts\utility::flag_set( "ready_to_announce" ); level notify( "allow_override" ); if ( !common_scripts\utility::flag( "killstreak_additional" ) ) { if ( level.teambased ) level notify( "announcement", "ks_first", var_6.team, undefined, 1 ); else level notify( "announcement", "ks_first_noteam", undefined, undefined, 1 ); common_scripts\utility::flag_set( "killstreak_additional" ); } else if ( level.teambased ) level notify( "announcement", "ks_additional", var_6.team, undefined, 1 ); else level notify( "announcement", "ks_additional_noteam", undefined, undefined, 1 ); var_7 = randomintrange( 0, 100 ); var_8 = "null"; var_9 = "null"; if ( var_7 <= var_1 ) var_8 = "trap_1"; if ( var_7 >= var_1 && var_7 <= var_2 ) var_8 = "all_traps"; if ( var_7 >= var_2 && var_7 <= var_3 ) var_8 = "turrets"; if ( var_7 >= var_3 && var_7 <= var_4 ) var_8 = "care_strike"; if ( var_7 >= var_4 && var_7 <= var_5 ) var_8 = "kem_strike"; if ( ( var_8 == "care_strike" || var_8 == "all_traps" ) && level.carepackages.size > 0 ) var_8 = "trap_1"; if ( common_scripts\utility::flag( "turrets_active" ) && ( var_8 == "all_traps" || var_8 == "turrets" ) ) var_8 = "trap_1"; switch ( var_8 ) { case "trap_1": common_scripts\utility::flag_set( "trap_1_active" ); thread manage_trap_1_area_spawns(); var_9 = "Gas Trap"; common_scripts\utility::exploder( 24 ); thread play_gas_jet_fx(); thread play_slot_machine_sfx(); jumbotron_play_slot_machine_bink( "mp_shipment_ns_trap_1_prize", 5 ); if ( isdefined( var_6 ) ) var_6 thread trap_activate( level.trap_1, 25, 0, 1, 12, 1 ); break; case "all_traps": var_9 = "All Traps"; common_scripts\utility::flag_set( "trap_1_active" ); thread manage_trap_1_area_spawns(); common_scripts\utility::exploder( 26 ); thread play_gas_jet_fx(); thread play_slot_machine_sfx( 1 ); jumbotron_play_slot_machine_bink( "mp_shipment_ns_all_traps_prize", 5 ); if ( isdefined( var_6 ) ) var_6 thread trap_activate( level.trap_1, 25, 0, 1, 12, 1 ); wait 0.5; var_6 thread multi_turret( 15 ); wait 1.2; var_6 thread carestrike_setup(); break; case "turrets": var_9 = "Arena Cleanse"; common_scripts\utility::exploder( 22 ); thread play_slot_machine_sfx(); jumbotron_play_slot_machine_bink( "mp_shipment_ns_turret_prize", 5 ); if ( isdefined( var_6 ) ) var_6 thread multi_turret( 15 ); break; case "care_strike": var_9 = "Carestrike"; common_scripts\utility::exploder( 23 ); thread play_slot_machine_sfx(); jumbotron_play_slot_machine_bink( "mp_shipment_ns_care_prize", 5 ); if ( isdefined( var_6 ) ) var_6 thread carestrike_setup(); break; case "kem_strike": var_9 = "K.E.M. Strike"; common_scripts\utility::exploder( 25 ); thread play_slot_machine_sfx(); jumbotron_play_slot_machine_bink( "mp_shipment_ns_kem_prize", 5 ); if ( isdefined( var_6 ) ) var_6 thread maps\mp\killstreaks\_nuke::donuke(); break; } if ( !level.teambased && var_8 != "kem_strike" ) var_8 = var_8 + "_noteam"; common_scripts\utility::flag_set( "ready_to_announce" ); level notify( "allow_override" ); waittillframeend; level notify( "announcement", var_8, var_6.team, undefined, 1 ); game["player_holding_level_killstreak"] = undefined; killstreak_set_weight( 2000 ); } } nuke_custom_visionset() { level waittill( "nuke_death" ); wait 1.3; level notify( "nuke_death" ); thread nuke_custom_visionset(); } play_slot_machine_sfx( var_0 ) { if ( isdefined( var_0 ) ) { thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_dist_jackpot", ( -38, -1357, 1261 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( -117, -211, 263 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( -741, -381, 347 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( -323, 179, 258 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( -744, 492, 342 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( -420, 750, 342 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( 114, 344, 259 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( 414, 745, 341 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( 720, 505, 341 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( 321, -52, 255 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( 721, -346, 348 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_jackpot", ( 464, -617, 348 ) ); } else { thread common_scripts\utility::play_sound_in_space( "emt_slot_machine_dist", ( -38, -1357, 1261 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( -117, -211, 263 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( -741, -381, 347 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( -323, 179, 258 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( -744, 492, 342 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( -420, 750, 342 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( 114, 344, 259 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( 414, 745, 341 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( 720, 505, 341 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( 321, -52, 255 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( 721, -346, 348 ) ); thread common_scripts\utility::play_sound_in_space( "emt_slot_machine", ( 464, -617, 348 ) ); } } trap_init() { level.trap_1 = spawnstruct(); level.trap_1.inflictor = getent( "trap_1_origin", "targetname" ); level.trap_1.volume = getent( "trap_1_volume", "targetname" ); level.trap_1.destructibles = [ ( 481, -74, -100 ) ]; level.trap_1.player = undefined; level.trap_1.team = undefined; level.trap_1.exploder = 91; level.trap_1.flag = "trap_1_active"; common_scripts\utility::flag_init( "trap_1_active" ); common_scripts\utility::flag_init( "jumbotron_available" ); common_scripts\utility::flag_init( "killstreak_can_kill" ); common_scripts\utility::flag_init( "killstreak_additional" ); common_scripts\utility::flag_init( "turrets_active" ); common_scripts\utility::flag_init( "played_easter_egg_video" ); thread gas_visionset_cleanup(); } gas_visionset_cleanup() { wait 2.5; while ( level.players.size == 0 ) wait 0.1; level.vision_set_stage = 0; foreach ( var_1 in level.players ) var_1 visionsetstage( level.vision_set_stage, 2 ); } trap_activate( var_0, var_1, var_2, var_3, var_4, var_5 ) { level notify( "gas_trap_activated" ); level endon( "gas_trap_activated" ); level endon( "game_ended" ); common_scripts\utility::flag_set( var_0.flag ); var_0.player = self; var_0.team = self.pers["team"]; badplace_brush( "badplace_trap", var_4, var_0.volume, "allies", "axis" ); common_scripts\utility::exploder( var_0.exploder ); if ( var_0 == level.trap_1 ) { thread gas_trap_sfx(); thread gas_trap_vision(); } for ( var_6 = 0; var_6 < var_4; var_6 = var_6 + var_3 ) { maps\mp\gametypes\_hostmigration::waittillhostmigrationdone(); if ( isdefined( var_5 ) ) common_scripts\utility::exploder( var_0.exploder ); var_7 = var_0.player; if ( !isdefined( var_0.player ) || !isplayer( var_0.player ) ) var_7 = undefined; thread damage_characters( var_0, var_7, var_1 ); wait( var_3 ); } var_0.player = undefined; var_0.team = undefined; common_scripts\_exploder::stop_exploder_proc( var_0.exploder ); wait 1; common_scripts\utility::flag_clear( var_0.flag ); } play_gas_jet_fx() { wait 3; common_scripts\utility::exploder( 92 ); } gas_trap_vision() { level.vision_set_stage = 1; foreach ( var_1 in level.players ) var_1 visionsetstage( level.vision_set_stage, 0.5 ); thread stop_gas_trap_vision(); } stop_gas_trap_vision() { wait 12; level.vision_set_stage = 0; foreach ( var_1 in level.players ) var_1 visionsetstage( level.vision_set_stage, 2 ); } gas_trap_sfx() { common_scripts\utility::play_sound_in_space( "scn_shp_gas_trap", ( -287, 1021, 244 ) ); common_scripts\utility::play_sound_in_space( "scn_shp_gas_trap", ( 286, 1021, 244 ) ); common_scripts\utility::play_sound_in_space( "scn_shp_gas_trap", ( 354, -743, 250 ) ); common_scripts\utility::play_sound_in_space( "scn_shp_gas_trap", ( -316, -730, 250 ) ); common_scripts\utility::play_sound_in_space( "scn_shp_gas_trap", ( -6, -1084, 357 ) ); common_scripts\utility::play_sound_in_space( "scn_shp_gas_trap", ( -553, -968, 250 ) ); } damage_characters( var_0, var_1, var_2 ) { var_3 = var_0.volume getistouchingentities( level.characters ); foreach ( var_5 in var_3 ) { if ( var_5 maps\mp\_utility::_hasperk( "_specialty_blastshield" ) ) var_2 = var_2 * 1.6; if ( can_kill_character( var_0, var_5 ) && isdefined( var_1 ) ) { if ( var_5.team != var_0.team || level.friendlyfire ) var_0.inflictor radiusdamage( var_5.origin, 10, var_2, var_2, var_1, "MOD_PROJECTILE_SPLASH", "killstreak_level_event_mp" ); else if ( var_5 == var_1 ) var_0.inflictor radiusdamage( var_5.origin, 10, var_2, var_2, var_1, "MOD_PROJECTILE_SPLASH", "killstreak_level_event_mp" ); } wait 0.05; } } can_kill_character( var_0, var_1 ) { if ( !isdefined( var_1 ) || !maps\mp\_utility::isreallyalive( var_1 ) ) return 0; if ( level.teambased ) { if ( isdefined( var_0.player ) && var_1 == var_0.player ) return 1; else if ( isdefined( var_0.player ) && isdefined( var_1.owner ) && var_1.owner == var_0.player ) return 1; else if ( isdefined( var_0.team ) && var_1.team == var_0.team && !level.friendlyfire ) return 0; } return 1; } damage_targets( var_0, var_1, var_2, var_3 ) { var_4 = "MOD_EXPLOSIVE"; var_5 = "none"; var_6 = ( 0, 0, 0 ); var_7 = ( 0, 0, 0 ); var_8 = ""; var_9 = ""; var_10 = ""; var_11 = undefined; var_12 = var_0.volume getistouchingentities( var_2 ); foreach ( var_14 in var_12 ) { if ( !isdefined( var_14 ) ) continue; if ( isdefined( var_14.owner ) && var_14.owner == var_0.owner ) var_14 notify( "damage", var_3, var_1, var_6, var_7, var_4, var_8, var_9, var_10, var_11, var_5 ); else if ( level.teambased && isdefined( var_0.team ) && isdefined( var_14.team ) && var_14.team == var_0.team ) continue; var_14 notify( "damage", var_3, var_1, var_6, var_7, var_4, var_8, var_9, var_10, var_11, var_5 ); wait 0.05; } } set_up_multi_turret() { level.sentrytype["multiturret"] = "multiturret"; level.sentrysettings["multiturret"] = spawnstruct(); level.sentrysettings["multiturret"].health = 999999; level.sentrysettings["multiturret"].maxhealth = 1000; level.sentrysettings["multiturret"].burstmin = 20; level.sentrysettings["multiturret"].burstmax = 120; level.sentrysettings["multiturret"].pausemin = 0.0; level.sentrysettings["multiturret"].pausemax = 0.01; level.sentrysettings["multiturret"].sentrymodeon = "sentry"; level.sentrysettings["multiturret"].sentrymodeoff = "sentry_offline"; level.sentrysettings["multiturret"].timeout = 90.0; level.sentrysettings["multiturret"].spinuptime = 0.05; level.sentrysettings["multiturret"].overheattime = 15.0; level.sentrysettings["multiturret"].cooldowntime = 0.1; level.sentrysettings["multiturret"].fxtime = 0.3; level.sentrysettings["multiturret"].streakname = "sentry"; level.sentrysettings["multiturret"].weaponinfo = "sentry_minigun_mp"; level.sentrysettings["multiturret"].modelbase = "weapon_sentry_chaingun"; level.sentrysettings["multiturret"].modelplacement = "weapon_sentry_chaingun_obj"; level.sentrysettings["multiturret"].modelplacementfailed = "weapon_sentry_chaingun_obj_red"; level.sentrysettings["multiturret"].modelbombsquad = "weapon_sentry_chaingun_bombsquad"; level.sentrysettings["multiturret"].modeldestroyed = "weapon_sentry_chaingun_destroyed"; level.sentrysettings["multiturret"].hintstring = &""; level.sentrysettings["multiturret"].headicon = 1; level.sentrysettings["multiturret"].teamsplash = "used_sentry"; level.sentrysettings["multiturret"].shouldsplash = 0; level.sentrysettings["multiturret"].vodestroyed = undefined; level.sentrysettings["multiturret"].xppopup = "destroyed_sentry"; level.sentrysettings["multiturret"].lightfxtag = "tag_fx"; } multi_turret( var_0 ) { common_scripts\utility::flag_set( "turrets_active" ); var_1 = getentarray( "turret_killstreak_location", "targetname" ); foreach ( var_3 in var_1 ) thread generate_turret( var_0, var_3 ); var_5 = getentarray( "turret_shutter", "targetname" ); foreach ( var_7 in var_5 ) var_7 notsolid(); thread turret_box_light_fx(); thread sfx_turret_shutters_open(); move_shutter_array( var_5, "open", 0.25 ); wait( var_0 - 0.25 ); thread sfx_turret_shutters_close(); move_shutter_array( var_5, "close", 0.25 ); foreach ( var_7 in var_5 ) var_7 solid(); common_scripts\utility::flag_clear( "turrets_active" ); } generate_turret( var_0, var_1 ) { var_2 = maps\mp\killstreaks\_autosentry::createsentryforplayer( "multiturret", self ); var_2.shouldsplash = 0; var_2.carriedby = self; level.turret_team = self.pers["team"]; var_2 maps\mp\killstreaks\_autosentry::sentry_setplaced(); var_2.origin = var_1.origin; var_2.angles = var_1.angles; var_2.killcament = spawn( "script_model", var_2.origin + ( 0, 0, 64 ) ); var_2.killcament linkto( var_2 ); var_2 thread multi_turret_timeout( var_0 ); } multi_turret_timeout( var_0 ) { self endon( "death" ); self endon( "game_ended" ); wait( var_0 ); self turretfiredisable(); var_1 = getentarray( "turret_shutter", "targetname" ); wait 0.25; self delete(); self notify( "death" ); } carestrike_setup() { var_0 = getent( "carestrike_spawn_1", "targetname" ); var_1 = getent( "carestrike_spawn_2", "targetname" ); var_2 = getent( "carestrike_spawn_3", "targetname" ); var_3 = getent( "carestrike_location_1", "targetname" ); var_4 = getent( "carestrike_location_2", "targetname" ); var_5 = getent( "carestrike_location_3", "targetname" ); thread common_scripts\utility::play_sound_in_space( "mus_carestrike", ( 33, 92, 741 ) ); var_3 playsound( "scn_shp_carestrike_jets" ); thread jumbotron_play_slot_machine_bink( "mp_shipment_ns_carestrike", 7 ); thread carestrike( self, var_0, var_3, "mp_shipment_carestrike_jet_1" ); thread carestrike( self, var_1, var_4, "mp_shipment_carestrike_jet_2" ); thread carestrike( self, var_2, var_5, "mp_shipment_carestrike_jet_3" ); } carestrike( var_0, var_1, var_2, var_3 ) { var_4 = var_2.angles; var_2 = var_2.origin; var_5 = 12000; var_6 = 4000; var_7 = maps\mp\killstreaks\_airdrop::getflyheightoffset( var_2 ); var_8 = var_1.origin; var_8 = var_8 * ( 1, 1, 0 ) + ( 0, 0, var_7 ); var_9 = airplanesetup( var_0, var_8 ); var_9.angles = var_1.angles; var_10 = anglestoforward( var_4 ); var_9 scriptmodelplayanimdeltamotion( var_3 ); var_11 = distance2d( var_9.origin, var_2 ); var_12 = 0; switch ( var_3 ) { case "mp_shipment_carestrike_jet_1": wait 0.05; playfxontag( level._effect["vfx_jet_cheap_contrail_red"], var_9, "tag_body" ); break; case "mp_shipment_carestrike_jet_2": wait 0.1; var_9 playsoundonmovingent( "scn_shp_carestrike_jets_mover" ); playfxontag( level._effect["vfx_jet_cheap_contrail_white"], var_9, "tag_body" ); break; case "mp_shipment_carestrike_jet_3": wait 0.15; playfxontag( level._effect["vfx_jet_cheap_contrail_blue"], var_9, "tag_body" ); break; } for (;;) { var_13 = distance2d( var_9.origin, var_2 ); if ( var_13 < var_11 ) var_11 = var_13; else if ( var_13 > var_11 ) break; if ( var_13 < 256 ) break; else if ( var_13 < 768 ) { earthquake( 0.15, 1.5, var_2, 1500 ); if ( !var_12 ) var_12 = 1; } wait 0.05; } var_14 = []; var_14[0] = "airdrop_assault"; var_14[1] = "airdrop_support"; var_15 = var_14[common_scripts\utility::cointoss()]; var_16 = var_9 dropthecrate( var_2, var_15, var_7, 0, undefined, var_8, var_10 ); wait 0.05; var_9 notify( "drop_crate" ); wait 0.05; var_15 = var_14[common_scripts\utility::cointoss()]; var_16 = var_9 dropthecrate( var_2, var_15, var_7, 0, undefined, var_8, var_10 ); wait 0.05; var_9 notify( "drop_crate" ); wait 4; objective_delete( var_9.friendly_objective_number ); maps\mp\_utility::_objective_delete( var_9.friendly_objective_number ); objective_delete( var_9.enemy_objective_number ); maps\mp\_utility::_objective_delete( var_9.enemy_objective_number ); var_9 delete(); } dropthecrate( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 ) { var_10 = []; self.owner endon( "disconnect" ); if ( !isdefined( var_4 ) ) { if ( isdefined( var_7 ) ) { var_11 = undefined; var_12 = undefined; for ( var_13 = 0; var_13 < 100; var_13++ ) { var_12 = maps\mp\killstreaks\_airdrop::getcratetypefordroptype( var_1 ); var_11 = 0; for ( var_14 = 0; var_14 < var_7.size; var_14++ ) { if ( var_12 == var_7[var_14] ) { var_11 = 1; break; } } if ( var_11 == 0 ) break; } if ( var_11 == 1 ) var_12 = maps\mp\killstreaks\_airdrop::getcratetypefordroptype( var_1 ); } else var_12 = maps\mp\killstreaks\_airdrop::getcratetypefordroptype( var_1 ); } else var_12 = var_4; if ( !isdefined( var_6 ) ) var_6 = ( randomint( 50 ), randomint( 50 ), randomint( 50 ) ); var_10 = maps\mp\killstreaks\_airdrop::createairdropcrate( self.owner, var_1, var_12, var_5, var_0 ); switch ( var_1 ) { case "airdrop_juggernaut_maniac": case "airdrop_juggernaut_recon": case "airdrop_juggernaut": case "nuke_drop": case "airdrop_mega": var_10 linkto( self, "tag_ground", ( 64, 32, -128 ), ( 0, 0, 0 ) ); break; case "airdrop_osprey_gunner": case "airdrop_escort": var_10 linkto( self, var_8, ( 0, 0, 0 ), ( 0, 0, 0 ) ); break; default: var_10 linkto( self, "tag_ground", ( 32, 0, 5 ), ( 0, 0, 0 ) ); break; } var_10.angles = ( 0, 0, 0 ); var_10 show(); var_15 = self.veh_speed; var_6 = var_6 * 50000; var_10.carestrike = 1; thread maps\mp\killstreaks\_airdrop::waitfordropcratemsg( var_10, var_6, var_1, var_12, 9999999 ); var_10.droppingtoground = 1; var_10 thread crate_drop_sfx(); return var_12; } crate_drop_sfx() { wait 0.1; self playsoundonmovingent( "scn_shp_carestrike_release" ); } airplanesetup( var_0, var_1, var_2 ) { var_3 = spawn( "script_model", var_1 ); var_3 setmodel( "vehicle_f15_low_nodetail_mp" ); if ( !isdefined( var_3 ) ) return; var_3.owner = var_0; var_3.team = var_0.team; var_4 = maps\mp\gametypes\_gameobjects::getnextobjid(); objective_add( var_4, "invisible", ( 0, 0, 0 ) ); objective_position( var_4, self.origin ); objective_state( var_4, "active" ); objective_onentitywithrotation( var_4, var_3 ); objective_icon( var_4, "compass_objpoint_airstrike_friendly" ); var_5 = maps\mp\gametypes\_gameobjects::getnextobjid(); objective_add( var_5, "invisible", ( 0, 0, 0 ) ); objective_position( var_5, self.origin ); objective_state( var_5, "active" ); objective_onentitywithrotation( var_5, var_3 ); objective_icon( var_5, "compass_objpoint_airstrike_busy" ); if ( level.teambased ) { objective_team( var_4, var_0.team ); objective_team( var_5, maps\mp\_utility::getotherteam( var_0.team ) ); } else { objective_player( var_4, var_0 getentitynumber() ); objective_playermask_showtoall( var_5 ); objective_playermask_hidefrom( var_5, var_0 getentitynumber() ); } var_3.friendly_objective_number = var_4; var_3.enemy_objective_number = var_5; return var_3; } debug_prizes() { for (;;) { if ( getdvarint( "scr_trap_1" ) == 1 ) { common_scripts\utility::flag_set( "trap_1_active" ); thread manage_trap_1_area_spawns(); jumbotron_play_slot_machine_bink( "mp_shipment_ns_trap_1_prize", 5 ); level.players[0] thread trap_activate( level.trap_1, 20, 0, 1, 20, 1 ); } if ( getdvarint( "scr_all_traps" ) == 1 ) { common_scripts\utility::flag_set( "trap_1_active" ); thread manage_trap_1_area_spawns(); jumbotron_play_slot_machine_bink( "mp_shipment_ns_all_traps_prize", 5 ); level.players[0] thread trap_activate( level.trap_1, 15, 0, 1, 20, 1 ); wait 0.5; level.players[0] thread multi_turret( 15 ); wait 1.2; level.players[0] thread carestrike_setup(); } if ( getdvarint( "scr_carestrike" ) == 1 ) { jumbotron_play_slot_machine_bink( "mp_shipment_ns_care_prize", 5 ); level.players[0] thread carestrike_setup(); } if ( getdvarint( "scr_multiturret" ) == 1 ) { jumbotron_play_slot_machine_bink( "mp_shipment_ns_turret_prize", 5 ); level.players[0] thread multi_turret( 15 ); } wait 0.25; } } init_cinematics() { thread play_random_clip(); wait 0.05; level notify( "cinematic_preload" ); wait 1; level notify( "cinematic_start" ); } watch_cinematic_use( var_0, var_1, var_2, var_3 ) { if ( !isdefined( var_0 ) ) return; level waittill( var_1 ); preloadcinematicforall( "long_loop" ); playcinematicforall( "mp_shipment_ns_trap_1_prize" ); wait 30; common_scripts\utility::flag_set( "jumbotron_available" ); thread jumbotron_loop_bink( "mp_shipment_ns_long_loop", 33 ); var_4 = getent( "jumbotron_static_logo", "targetname" ); var_4 hide(); } play_random_clip() { var_0 = []; var_0[var_0.size] = "mp_shipment_ns_clip_01"; var_0[var_0.size] = "mp_shipment_ns_clip_02"; var_0[var_0.size] = "mp_shipment_ns_clip_03"; var_0[var_0.size] = "mp_shipment_ns_clip_04"; var_0[var_0.size] = "mp_shipment_ns_clip_05"; var_0[var_0.size] = "mp_shipment_ns_clip_06"; var_0 = randomizer_create( var_0 ); common_scripts\utility::flag_set( "jumbotron_available" ); var_1 = getent( "jumbotron_static_logo", "targetname" ); var_1 hide(); for (;;) { common_scripts\utility::flag_wait( "jumbotron_available" ); var_2 = var_0 randomizer_get_no_repeat(); playcinematicforall( var_2 ); wait 3; } } jumbotron_loop_bink( var_0, var_1 ) { level endon( "stop_jumbotron_loop" ); for (;;) { common_scripts\utility::flag_wait( "jumbotron_available" ); playcinematicforall( var_0 ); wait( var_1 ); } } jumbotron_play_slot_machine_bink( var_0, var_1 ) { wait( var_1 ); common_scripts\utility::flag_set( "jumbotron_available" ); } box_kill_counter() { level endon( "game_ended" ); var_0 = getent( "box_kill_volume", "targetname" ); var_1 = getent( "puzzle_box_sign_on", "targetname" ); var_2 = getent( "puzzle_box_sign_off", "targetname" ); var_1 hide(); for (;;) { var_3 = maps\mp\agents\_agent_utility::getactiveagentsoftype( "all" ); var_3 = common_scripts\utility::array_combine( var_3, level.players ); var_3 = common_scripts\utility::array_combine( var_3, level.remote_uav ); foreach ( var_5 in var_3 ) { if ( isplayer( var_5 ) && ( var_5.sessionstate == "intermission" || var_5.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_5 ) ) ) var_3 = common_scripts\utility::array_remove( var_3, var_5 ); } var_7 = var_0 getistouchingentities( var_3 ); foreach ( var_9 in var_7 ) { if ( isdefined( var_9.is_in_box ) ) continue; var_9.is_in_box = 1; if ( isdefined( var_9.classname ) && var_9.classname != "script_vehicle" ) { var_9 thread watch_for_box_death( var_1, var_2 ); var_9 thread watch_for_leaving_box( var_0 ); } } wait 0.05; } } watch_for_leaving_box( var_0 ) { self endon( "death" ); self endon( "disconnect" ); while ( self istouching( var_0 ) ) wait 0.05; self notify( "left_the_box" ); self.is_in_box = undefined; } watch_for_box_death( var_0, var_1 ) { self endon( "disconnect" ); self endon( "left_the_box" ); self waittill( "death" ); self.is_in_box = undefined; level.box_kill_counter = level.box_kill_counter + 1; thread box_kill_sign_lights( var_0, var_1 ); } box_kill_sign_lights( var_0, var_1 ) { common_scripts\utility::exploder( 33 ); var_1 hide(); var_0 show(); var_0 thread puzzle_box_counter_sfx(); wait 1.5; var_0 hide(); var_1 show(); } puzzle_box_counter_sfx() { wait 0.2; self playsound( "emt_puzzle_box_counter" ); } box_kill_numbers() { for (;;) { if ( isdefined( level.players ) ) break; wait 1; } level.box_kill_counter = 0; var_0 = 0; var_1 = 1; thread box_kill_counter(); var_2 = getentarray( "box_1_0", "targetname" ); var_3 = getentarray( "box_2_0", "targetname" ); var_4 = common_scripts\utility::array_combine( var_2, var_3 ); foreach ( var_6 in var_4 ) var_6 show(); for (;;) { if ( level.box_kill_counter == 99 ) level notify( "announcement", "puzzle_box_max", undefined, undefined, 1 ); else if ( level.box_kill_counter > 1 && level.box_kill_counter % 10 == 0 ) level notify( "announcement", "puzzle_box", undefined, undefined, 0 ); if ( level.box_kill_counter > 99 ) var_8 = 99; else var_8 = level.box_kill_counter; if ( var_8 < 10 ) { var_9 = getsubstr( var_8, 0, 1 ); foreach ( var_6 in var_2 ) var_6 setmodel( "shns_score_num_" + var_9 + "_small" ); } if ( var_8 > 9 && var_0 < 99 ) { var_9 = getsubstr( var_8, 1, 2 ); foreach ( var_6 in var_2 ) var_6 setmodel( "shns_score_num_" + var_9 + "_small" ); var_14 = getsubstr( var_8, 0, 1 ); foreach ( var_6 in var_3 ) var_6 setmodel( "shns_score_num_" + var_14 + "_small" ); } if ( var_8 >= 50 && !common_scripts\utility::flag( "played_easter_egg_video" ) ) { common_scripts\utility::flag_set( "played_easter_egg_video" ); common_scripts\utility::exploder( 86 ); thread common_scripts\utility::play_sound_in_space( "emt_jumbotron_ns", ( -38, -1357, 1261 ) ); jumbotron_play_slot_machine_bink( "mp_shipment_ns_easter_egg", 23 ); } if ( level.box_kill_counter >= var_1 * 20 ) { var_1++; common_scripts\utility::exploder( 8 ); } wait 0.05; } } match_end_event() { for (;;) { level common_scripts\utility::waittill_any( "start_custom_ending", "scoreboard_displaying", "final_killcam_done" ); if ( maps\mp\_utility::waslastround() ) break; else wait 0.1; } maps\mp\_utility::levelflagset( "post_game_level_event_active" ); var_0 = randomintrange( 1, 10 ); if ( var_0 == 1 ) level notify( "announcement", "outro_rare", undefined, undefined, 1 ); else level notify( "announcement", "outro", undefined, undefined, 1 ); maps\mp\_utility::levelflagclear( "post_game_level_event_active" ); } get_highest_scoring_players() { var_0 = []; if ( !level.teambased ) var_1 = common_scripts\utility::array_sort_with_func( level.players, ::is_score_a_greater_than_b ); else { var_2 = getteamscore( "allies" ); var_3 = getteamscore( "axis" ); if ( var_2 == var_3 ) var_4 = undefined; else if ( var_2 > var_3 ) var_4 = "allies"; else var_4 = "axis"; if ( isdefined( var_4 ) ) var_1 = common_scripts\utility::array_sort_with_func( level.teamlist[var_4], ::is_score_a_greater_than_b ); else var_1 = common_scripts\utility::array_sort_with_func( level.players, ::is_score_a_greater_than_b ); } for ( var_5 = 0; var_5 < 3; var_5++ ) { if ( isdefined( var_1[var_5] ) ) { var_0[var_0.size] = var_1[var_5]; continue; } break; } return var_0; } is_score_a_greater_than_b( var_0, var_1 ) { return var_0.score > var_1.score; } set_up_winners_podium( var_0 ) { var_1 = getent( "mp_global_intermission", "classname" ); var_2 = spawn( "script_model", var_1.origin ); var_2 setmodel( "tag_origin" ); var_2.angles = var_1.angles; var_3 = getent( "podium_clip", "targetname" ); var_3 moveto( var_3.origin + ( 0, 0, 300 ), 0.05 ); var_3 disconnectpaths(); for ( var_4 = 0; var_4 < 3; var_4++ ) { var_5 = var_0[var_4]; if ( !isdefined( var_5 ) ) return; var_6 = var_4 + 1; var_7 = getent( "podium_place_" + var_6, "targetname" ); var_5 spawn( var_7.origin, var_7.angles ); var_5 maps\mp\_utility::updatesessionstate( "playing" ); var_5.primaryweapon = undefined; var_5.disabledweapon = 1; var_5.disabledoffhandweapons = 1; if ( isdefined( var_5.riotshieldmodel ) ) var_5.riotshieldmodel = undefined; var_5 cameralinkto( var_2, "tag_origin" ); var_5.custom_spawn_loc = var_7; if ( maps\mp\_utility::isroundbased() ) var_5 thread podium_scoreboard_sequence( var_7, var_2, "playing" ); } } set_up_podium_spectator( var_0 ) { var_1 = getent( "mp_global_intermission", "classname" ); var_2 = spawn( "script_model", var_1.origin ); var_2 setmodel( "tag_origin" ); var_2.angles = var_1.angles; if ( isdefined( var_0 ) ) { for ( var_3 = 0; var_3 < var_0.size; var_3++ ) { var_4 = var_0[var_3]; if ( !isdefined( var_4 ) ) continue; if ( !isbot( var_4 ) ) { var_4 thread spawn_custom_spectator( var_2 ); if ( maps\mp\_utility::isroundbased() ) var_4 thread podium_scoreboard_sequence( var_2, var_2, undefined ); } } } } podium_scoreboard_sequence( var_0, var_1, var_2 ) { level waittill( "scoreboard_displaying" ); wait 0.01; if ( isdefined( var_2 ) ) { self spawn( var_0.origin, var_0.angles ); maps\mp\_utility::updatesessionstate( "playing" ); var_3 = spawn( "script_model", var_1.origin ); var_3 setmodel( "tag_origin" ); var_3.angles = var_1.angles; self cameralinkto( var_3, "tag_origin" ); self.primaryweapon = undefined; } else if ( !isbot( self ) ) thread spawn_custom_spectator( var_0 ); self setdepthoffield( 0, 0, 512, 512, 4, 0 ); } spawn_custom_spectator( var_0 ) { maps\mp\_utility::clearkillcamstate(); self.friendlydamage = undefined; self setspectatedefaults( var_0.origin, var_0.angles ); self spawn( var_0.origin, var_0.angles ); maps\mp\_utility::updatesessionstate( "playing" ); maps\mp\_utility::freezecontrolswrapper( 1 ); self playerhide(); self cameralinkto( var_0, "tag_origin" ); self setdepthoffield( 0, 0, 512, 512, 4, 0 ); maps\mp\_utility::restorebasevisionset( 0 ); } clean_up_podium_scene() { var_0 = getent( "trap_1_volume", "targetname" ); var_1 = getentarray( "script_vehicle", "classname" ); foreach ( var_3 in var_1 ) var_3 delete(); } get_prize_room_curtains_n_fx() { wait 5; foreach ( var_1 in getscriptablearray( "prize_curtains", "targetname" ) ) var_1 thread prize_room_curtains(); thread prize_room_fx(); } prize_room_curtains() { var_0 = getent( "prize_display_clip", "targetname" ); for (;;) { self setscriptablepartstate( 0, "curtain_closed" ); wait 40; self setscriptablepartstate( 0, "curtain_open" ); var_0 movez( -400, 0.1 ); wait 15; self setscriptablepartstate( 0, "curtain_close" ); var_0 movez( 400, 0.1 ); wait 5; } } prize_room_fx() { for (;;) { wait 40; common_scripts\utility::exploder( 60 ); thread red_and_blue_fx_lights(); thread white_fx_lights(); thread flashing_neon_sign(); thread common_scripts\utility::play_sound_in_space( "emt_prize_curtains_open", ( 547, 1035, 305 ) ); var_0 = common_scripts\utility::play_loopsound_in_space( "emt_prize_bells", ( 547, 1035, 305 ) ); wait 15; thread common_scripts\utility::play_sound_in_space( "emt_prize_curtains_close", ( 547, 1035, 305 ) ); var_0 stoploopsound(); wait 5; } } red_and_blue_fx_lights() { for ( var_0 = 0; var_0 < 8; var_0++ ) { common_scripts\utility::exploder( 61 ); wait 1; common_scripts\utility::exploder( 62 ); wait 1; } } white_fx_lights() { for ( var_0 = 0; var_0 < 8; var_0++ ) { common_scripts\utility::exploder( 63 ); wait 0.5; common_scripts\utility::exploder( 64 ); wait 0.5; common_scripts\utility::exploder( 65 ); wait 0.5; common_scripts\utility::exploder( 66 ); wait 0.5; } } flashing_neon_sign() { var_0 = []; var_1 = []; var_2 = 1; var_0 = get_neon_sign( "neon_winner_sign_" ); var_1 = get_neon_sign( "neon_winner_sign_off_" ); var_3 = get_neon_sign( "neon_winner_sign_right_" ); var_4 = get_neon_sign( "neon_winner_sign_right_off_" ); var_5 = gettime(); while ( gettime() < var_5 + 15000 ) { for ( var_6 = 0; var_6 < 4; var_6++ ) { for ( var_7 = 0; var_7 < var_0.size; var_7++ ) { var_0[var_7] hide(); var_3[var_7] hide(); var_1[var_7] show(); var_4[var_7] show(); wait 0.05; var_1[var_7] hide(); var_4[var_7] hide(); var_0[var_7] show(); var_3[var_7] show(); } } for ( var_6 = 0; var_6 < 3; var_6++ ) { for ( var_7 = 0; var_7 < var_0.size; var_7++ ) { var_1[var_7] hide(); var_4[var_7] hide(); var_0[var_7] show(); var_3[var_7] show(); } wait 0.4; for ( var_7 = 0; var_7 < var_0.size; var_7++ ) { var_0[var_7] hide(); var_3[var_7] hide(); var_1[var_7] show(); var_4[var_7] show(); } wait 0.4; } } foreach ( var_9 in var_0 ) var_9 hide(); foreach ( var_9 in var_3 ) var_9 hide(); foreach ( var_9 in var_1 ) var_9 show(); foreach ( var_9 in var_4 ) var_9 show(); } get_neon_sign( var_0 ) { var_1 = []; var_2 = 1; for (;;) { var_3 = getent( var_0 + var_2, "targetname" ); if ( isdefined( var_3 ) ) { var_1[var_2 - 1] = var_3; var_2++; continue; } break; } return var_1; } get_elevators() { wait 5; var_0 = [ "periph_elevator_NE", "periph_elevator_NW", "periph_elevator_SE", "periph_elevator_SW" ]; foreach ( var_2 in var_0 ) { foreach ( var_4 in getentarray( var_2, "targetname" ) ) var_4 thread move_elevators(); } } move_elevators() { for (;;) { self movez( -448, 8, 2, 4 ); wait( randomintrange( 10, 17 ) ); self movez( 448, 8, 3, 3 ); wait( randomintrange( 10, 13 ) ); } } move_podium_camera() { self moveto( ( 122, 1006, 300 ), 15, 1, 12 ); self rotateby( ( 90, 90, 90 ), 3.0, 0.5, 0.5 ); } create_overlay( var_0, var_1 ) { var_2 = newhudelem(); var_2.x = 0; var_2.y = 0; var_2 setshader( var_0, 640, 480 ); var_2.alignx = "left"; var_2.aligny = "top"; var_2.sort = 1; var_2.horzalign = "fullscreen"; var_2.vertalign = "fullscreen"; var_2.alpha = var_1; var_2.foreground = 1; return var_2; } fade_over_time( var_0, var_1 ) { if ( isdefined( var_1 ) && var_1 > 0 ) self fadeovertime( var_1 ); self.alpha = var_0; if ( isdefined( var_1 ) && var_1 > 0 ) wait( var_1 ); } hud_delete( var_0 ) { self endon( "death" ); wait( var_0 ); self destroy(); } turret_box_light_fx() { level endon( "game_ended" ); foreach ( var_1 in level.players ) { if ( var_1.pers["team"] == level.turret_team ) { thread looped_turret_light( 15, 16, var_1 ); continue; } thread looped_turret_light( 16, 15, var_1 ); } } looped_turret_light( var_0, var_1, var_2 ) { var_3 = gettime() + 15000; while ( gettime() < var_3 ) { if ( !var_2 maps\mp\_utility::isinkillcam() ) activateclientexploder( var_0, var_2 ); else activateclientexploder( var_1, var_2 ); wait 1.0; } } sfx_gate_alarm( var_0 ) { } sfx_lights_red() { playsoundatpos( ( -277, 754, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( -764, 311, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( -769, -255, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( -247, -642, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( 355, -642, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( 744, -139, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( 740, 329, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( 281, 757, 326 ), "scn_shp_gate_red" ); playsoundatpos( ( 2, 45, 450 ), "scn_shp_gate_red_wet" ); } sfx_lights_green() { playsoundatpos( ( -277, 754, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( -764, 311, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( -769, -255, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( -247, -642, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( 355, -642, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( 744, -139, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( 740, 329, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( 281, 757, 326 ), "scn_shp_gate_green" ); playsoundatpos( ( 2, 45, 450 ), "scn_shp_gate_green_wet" ); } sfx_gates_open() { playsoundatpos( ( -277, 754, 250 ), "scn_shp_gate_open_01" ); playsoundatpos( ( -764, 311, 250 ), "scn_shp_gate_open_02" ); playsoundatpos( ( -769, -255, 250 ), "scn_shp_gate_open_01" ); playsoundatpos( ( -247, -642, 250 ), "scn_shp_gate_open_02" ); playsoundatpos( ( 355, -642, 250 ), "scn_shp_gate_open_01" ); playsoundatpos( ( 744, -139, 250 ), "scn_shp_gate_open_02" ); playsoundatpos( ( 740, 329, 250 ), "scn_shp_gate_open_01" ); playsoundatpos( ( 281, 757, 250 ), "scn_shp_gate_open_02" ); } sfx_turret_shutters_open() { playsoundatpos( ( 305, -176, 250 ), "scn_shp_turret_door_open" ); playsoundatpos( ( -18, -378, 250 ), "scn_shp_turret_door_open" ); playsoundatpos( ( -315, -199, 250 ), "scn_shp_turret_door_open" ); playsoundatpos( ( -306, 322, 250 ), "scn_shp_turret_door_open" ); playsoundatpos( ( 312, 318, 250 ), "scn_shp_turret_door_open" ); playsoundatpos( ( 524, 87, 250 ), "scn_shp_turret_door_open" ); } sfx_turret_shutters_close() { playsoundatpos( ( 305, -176, 250 ), "scn_shp_turret_door_close" ); playsoundatpos( ( -18, -378, 250 ), "scn_shp_turret_door_close" ); playsoundatpos( ( -315, -199, 250 ), "scn_shp_turret_door_close" ); playsoundatpos( ( -306, 322, 250 ), "scn_shp_turret_door_close" ); playsoundatpos( ( 312, 318, 250 ), "scn_shp_turret_door_close" ); playsoundatpos( ( 524, 87, 250 ), "scn_shp_turret_door_close" ); } nukedeathvision() { level.nukevisionset = "aftermath_mp_shipment_ns"; setexpfog( 512, 4097, 0.578828, 0.802656, 1, 0.75, 0.75, 5, 0.382813, 0.350569, 0.293091, 3, ( 1, -0.109979, 0.267867 ), 0, 80, 1, 0.179688, 26, 180 ); visionsetnaked( level.nukevisionset, 5 ); visionsetpain( level.nukevisionset ); }