/******************************************************************* * Decompiled By: Bog * Decompiled File: maps\_load.gsc * Game: Call of Duty: Modern Warfare 3 * Platform: PC * Function Count: 171 * Decompile Time: 3257 ms * Timestamp: 10/27/2023 2:21:58 AM *******************************************************************/ //Function Number: 1 main() { if(!isdefined(level.func)) { level.func = []; } level.func["setsaveddvar"] = ::setsaveddvar; level.func["useanimtree"] = ::useanimtree; level.func["setanim"] = ::setanim; level.func["setanimknob"] = ::setanimknob; level.func["clearanim"] = ::clearanim; level.func["kill"] = ::kill; set_early_level(); level.global_callbacks = []; level.global_callbacks["_autosave_stealthcheck"] = ::global_empty_callback; level.global_callbacks["_patrol_endon_spotted_flag"] = ::global_empty_callback; level.global_callbacks["_spawner_stealth_default"] = ::global_empty_callback; level.global_callbacks["_idle_call_idle_func"] = ::global_empty_callback; if(!isdefined(level.visionthermaldefault)) { level.visionthermaldefault = "cheat_bw"; } visionsetthermal(level.visionthermaldefault); visionsetpain("near_death"); level.func["damagefeedback"] = ::maps\_damagefeedback::updatedamagefeedback; common_scripts\utility::array_thread(getentarray("script_model_pickup_claymore","classname"),::claymore_pickup_think_global); common_scripts\utility::array_thread(getentarray("ammo_cache","targetname"),::ammo_cache_think_global); maps\_utility::array_delete(getentarray("trigger_multiple_softlanding","classname")); if(getdvar("debug") == "") { setdvar("debug","0"); } if(getdvar("fallback") == "") { setdvar("fallback","0"); } if(getdvar("angles") == "") { setdvar("angles","0"); } if(getdvar("noai") == "") { setdvar("noai","off"); } if(getdvar("scr_RequiredMapAspectratio") == "") { setdvar("scr_RequiredMapAspectratio","1"); } setdvar("ac130_player_num",-1); maps\_utility::clear_custom_eog_summary(); setdvar("ui_remotemissile_playernum",0); setdvar("ui_pmc_won",0); if(!isdefined(level.notetracks)) { anim.notetracks = []; animscripts/notetracks::func_1E73(); } maps\_utility::add_start("no_game",::start_nogame); add_no_game_starts(); level._loadstarted = 1; level.first_frame = 1; level.level_specific_dof = 0; thread remove_level_first_frame(); level.wait_any_func_array = []; level.run_func_after_wait_array = []; level.run_call_after_wait_array = []; level.run_noself_call_after_wait_array = []; level.do_wait_endons_array = []; level.abort_wait_any_func_array = []; if(!isdefined(level.script)) { level.script = tolower(getdvar("mapname")); } maps\_specialops::specialops_remove_unused(); if(maps\_utility::is_specialop() && issplitscreen() || getdvar("coop") == "1") { setdvar("solo_play",""); } if(issubstr(level.script,"so_survival_")) { } else { } level.xp_enable = 0; if(maps\_utility::is_specialop()) { level.xp_enable = 1; if(maps\_utility::is_survival()) { level.laststand_type = 2; } else { level.laststand_type = 1; } } else { level.laststand_type = 0; } level.dirteffectmenu["center"] = "dirt_effect_center"; level.dirteffectmenu["left"] = "dirt_effect_left"; level.dirteffectmenu["right"] = "dirt_effect_right"; precachemenu(level.dirteffectmenu["center"]); precachemenu(level.dirteffectmenu["left"]); precachemenu(level.dirteffectmenu["right"]); precacheshader("fullscreen_dirt_bottom_b"); precacheshader("fullscreen_dirt_bottom"); precacheshader("fullscreen_dirt_left"); precacheshader("fullscreen_dirt_right"); precacheshader("fullscreen_bloodsplat_bottom"); precacheshader("fullscreen_bloodsplat_left"); precacheshader("fullscreen_bloodsplat_right"); level.ai_number = 0; if(!isdefined(level.flag)) { common_scripts\utility::init_flags(); } else { var_00 = getarraykeys(level.flag); common_scripts\utility::array_levelthread(var_00,::check_flag_for_stat_tracking); } init_level_players(); if(maps\_utility::is_coop()) { maps\_coop::main(); } if(maps\_utility::laststand_enabled()) { maps\_laststand::main(); } if(issplitscreen()) { setsaveddvar("cg_fovScale","0.75"); } else { setsaveddvar("cg_fovScale","1"); } level.radiation_totalpercent = 0; common_scripts\utility::flag_init("missionfailed"); common_scripts\utility::flag_init("auto_adjust_initialized"); common_scripts\utility::flag_init("_radiation_poisoning"); common_scripts\utility::flag_init("gameskill_selected"); common_scripts\utility::flag_init("battlechatter_on_thread_waiting"); thread maps\_gameskill::aa_init_stats(); thread player_death_detection(); level.default_run_speed = 190; setsaveddvar("g_speed",level.default_run_speed); if(maps\_utility::is_specialop()) { setsaveddvar("sv_saveOnStartMap",0); } else if(maps\_utility::arcademode()) { setsaveddvar("sv_saveOnStartMap",0); thread arcademode_save(); } else if(isdefined(level.credits_active)) { setsaveddvar("sv_saveOnStartMap",0); } else { setsaveddvar("sv_saveOnStartMap",1); } common_scripts\utility::create_lock("mg42_drones"); common_scripts\utility::create_lock("mg42_drones_target_trace"); level.var_1B45 = []; foreach(var_03, var_02 in level.struct) { if(!isdefined(var_02.targetname)) { continue; } if(var_02.targetname == "delete_on_load") { level.struct[var_03] = undefined; } } common_scripts\utility::struct_class_init(); common_scripts\utility::flag_init("respawn_friendlies"); common_scripts\utility::flag_init("player_flashed"); level.arcademode_kill_func = ::maps\_utility::arcademode_kill; level.connectpathsfunction = ::connectpaths; level.disconnectpathsfunction = ::disconnectpaths; level.badplace_cylinder_func = ::badplace_cylinder; level.badplace_delete_func = ::badplace_delete; level.isaifunc = ::isai; level.createclientfontstring_func = ::maps\_hud_util::createclientfontstring; level.hudsetpoint_func = ::maps\_hud_util::setpoint; level.makeentitysentient_func = ::makeentitysentient; level.freeentitysentient_func = ::freeentitysentient; level.laseron_func = ::laserforceon; level.laseroff_func = ::laserforceoff; level.stat_track_kill_func = ::maps\_player_stats::register_kill; level.stat_track_damage_func = ::maps\_player_stats::register_shot_hit; level.dopickyautosavechecks = 1; level.autosave_threat_check_enabled = 1; level.getnodefunction = ::getnode; level.getnodearrayfunction = ::getnodearray; if(!isdefined(level._notetrackfx)) { level._notetrackfx = []; } foreach(var_05 in level.players) { var_05.maxhealth = level.player.health; var_05.shellshocked = 0; var_05.inwater = 0; var_05 thread watchweaponchange(); } level.last_mission_sound_time = -5000; level.hero_list = []; thread precache_script_models(); for(var_07 = 0;var_07 < level.players.size;var_07++) { var_05 = level.players[var_07]; var_05 thread maps\_utility::flashmonitor(); var_05 thread maps\_utility::shock_ondeath(); } precachemodel("fx"); precachemodel("tag_origin"); precacheshellshock("victoryscreen"); precacheshellshock("default"); precacheshellshock("flashbang"); precacheshellshock("dog_bite"); precacherumble("damage_heavy"); precacherumble("damage_light"); precacherumble("grenade_rumble"); precacherumble("artillery_rumble"); precachestring(&"GAME_GET_TO_COVER"); precachestring(&"GAME_LAST_STAND_GET_BACK_UP"); precachestring(&"SCRIPT_GRENADE_DEATH"); precachestring(&"SCRIPT_GRENADE_SUICIDE_LINE1"); precachestring(&"SCRIPT_GRENADE_SUICIDE_LINE2"); precachestring(&"SCRIPT_EXPLODING_VEHICLE_DEATH"); precachestring(&"SCRIPT_EXPLODING_DESTRUCTIBLE_DEATH"); precachestring(&"SCRIPT_EXPLODING_BARREL_DEATH"); precacheshader("hud_grenadeicon"); precacheshader("hud_grenadepointer"); precacheshader("hud_burningcaricon"); precacheshader("death_juggernaut"); precacheshader("death_friendly_fire"); precacheshader("hud_destructibledeathicon"); precacheshader("hud_burningbarrelicon"); precacheshader("waypoint_ammo"); level._effect["deathfx_bloodpool_generic"] = loadfx("impacts/deathfx_bloodpool_generic"); animscripts/pain::func_D1A(); animscripts/melee::func_1006(); level.createfx_enabled = getdvar("createfx") != ""; slowmo_system_init(); maps\_mgturret::main(); setupexploders(); maps\_art::main(); maps\_noder::main(); common_scripts\_painter::main(); maps\_gameskill::setskill(); maps\_anim::init(); thread common_scripts\_fx::initfx(); if(level.createfx_enabled) { level.stop_load = 1; maps\_createfx::createfx(); } maps\_global_fx::main(); maps\_detonategrenades::init(); thread setup_simple_primary_lights(); maps\_names::setup_names(); if(isdefined(level.handle_starts_endons)) { thread [[ level.handle_starts_endons ]](); } else { thread handle_starts(); } if(!isdefined(level.trigger_flags)) { common_scripts\utility::init_trigger_flags(); } level.killspawn_groups = []; init_script_triggers(); setsaveddvar("ufoHitsTriggers","0"); do_no_game_start(); if(getdvar("g_connectpaths") == "2") { level waittill("eternity"); } maps\_autosave::main(); if(!isdefined(level.animsounds)) { thread maps\_debug::init_animsounds(); } maps\_anim::init(); maps\_audio::aud_init(); if(isdefined(level.audio_stringtable_mapname)) { maps\_audio::set_stringtable_mapname(level.audio_stringtable_mapname); } anim.usefacialanims = 0; if(!isdefined(level.missionfailed)) { level.missionfailed = 0; } maps\_loadout::init_loadout(); common_scripts\_destructible::init(); thread common_scripts\_elevator::init(); thread common_scripts\_pipes::main(); thread maps\_vehicle::init_vehicles(); setobjectivetextcolors(); common_scripts\_dynamic_world::init(); setsaveddvar("ui_campaign",level.campaign); thread maps\_introscreen::main(); thread maps\_quotes::main(); thread maps\_shutter::main(); thread maps\_endmission::main(); thread maps\_damagefeedback::init(); thread maps\_escalator::init(); maps\_friendlyfire::main(); common_scripts\utility::array_levelthread(getentarray("badplace","targetname"),::badplace_think); common_scripts\utility::array_levelthread(getentarray("delete_on_load","targetname"),::maps\_utility::deleteent); common_scripts\utility::array_thread(getnodearray("traverse","targetname"),::traversethink); common_scripts\utility::array_thread(getentarray("piano_key","targetname"),::pianothink); common_scripts\utility::array_thread(getentarray("piano_damage","targetname"),::pianodamagethink); common_scripts\utility::array_thread(getentarray("water","targetname"),::waterthink); common_scripts\utility::array_thread(getentarray("kill_all_players","targetname"),::kill_all_players_trigger); common_scripts\utility::flag_init("allow_ammo_pickups"); common_scripts\utility::flag_set("allow_ammo_pickups"); common_scripts\utility::array_thread(getentarray("ammo_pickup_grenade_launcher","targetname"),::ammo_pickup,"grenade_launcher"); common_scripts\utility::array_thread(getentarray("ammo_pickup_rpg","targetname"),::ammo_pickup,"rpg"); common_scripts\utility::array_thread(getentarray("ammo_pickup_c4","targetname"),::ammo_pickup,"c4"); common_scripts\utility::array_thread(getentarray("ammo_pickup_claymore","targetname"),::ammo_pickup,"claymore"); common_scripts\utility::array_thread(getentarray("ammo_pickup_556","targetname"),::ammo_pickup,"556"); common_scripts\utility::array_thread(getentarray("ammo_pickup_762","targetname"),::ammo_pickup,"762"); common_scripts\utility::array_thread(getentarray("ammo_pickup_45","targetname"),::ammo_pickup,"45"); common_scripts\utility::array_thread(getentarray("ammo_pickup_pistol","targetname"),::ammo_pickup,"pistol"); thread maps\_interactive_objects::main(); thread maps\_intelligence::main(); thread maps\_gameskill::playerhealthregeninit(); for(var_07 = 0;var_07 < level.players.size;var_07++) { var_05 = level.players[var_07]; var_05 thread maps\_gameskill::playerhealthregen(); var_05 thread playerdamagerumble(); } thread player_special_death_hint(); thread massnodeinitfunctions(); common_scripts\utility::flag_init("spawning_friendlies"); common_scripts\utility::flag_init("friendly_wave_spawn_enabled"); common_scripts\utility::flag_clear("spawning_friendlies"); level.friendly_spawner["rifleguy"] = getentarray("rifle_spawner","script_noteworthy"); level.friendly_spawner["smgguy"] = getentarray("smg_spawner","script_noteworthy"); level.spawn_funcs = []; level.spawn_funcs["allies"] = []; level.spawn_funcs["axis"] = []; level.spawn_funcs["team3"] = []; level.spawn_funcs["neutral"] = []; thread maps\_spawner::goalvolumes(); thread maps\_spawner::friendlychains(); thread maps\_spawner::friendlychain_ondeath(); common_scripts\utility::array_thread(getentarray("friendly_spawn","targetname"),::maps\_spawner::friendlyspawnwave); common_scripts\utility::array_thread(getentarray("flood_and_secure","targetname"),::maps\_spawner::flood_and_secure); common_scripts\utility::array_thread(getentarray("window_poster","targetname"),::window_destroy); if(!isdefined(level.trigger_hint_string)) { level.trigger_hint_string = []; level.trigger_hint_func = []; } level.shared_portable_turrets = []; level.spawn_groups = []; maps\_spawner::main(); common_scripts\utility::array_thread(getentarray("background_block","targetname"),::background_block); maps\_hud::init(); thread load_friendlies(); thread maps\_animatedmodels::main(); if(maps\_utility::is_coop()) { thread maps\_loadout::coop_gamesetup_menu(); } thread weapon_ammo(); if(maps\_utility::is_specialop()) { maps\_specialops::specialops_init(); } if(level.script == level.missionsettings.levels[0].name && !level.player getlocalplayerprofiledata("hasEverPlayed_SP")) { level.player setlocalplayerprofiledata("hasEverPlayed_SP",1); updategamerprofile(); } level notify("load_finished"); } //Function Number: 2 get_load_trigger_classes() { var_00 = []; if(!maps\_utility::is_no_game_start()) { } return var_7B; } //Function Number: 3 get_load_trigger_funcs() { var_00 = []; if(!maps\_utility::is_no_game_start()) { } if(maps\_utility::is_coop()) { } return var_7B; } //Function Number: 4 init_script_triggers() { var_00 = get_load_trigger_classes(); var_01 = get_load_trigger_funcs(); foreach(var_05, var_03 in var_00) { var_04 = getentarray(var_05,"classname"); common_scripts\utility::array_levelthread(var_04,var_03); } var_06 = getentarray("trigger_multiple","classname"); var_07 = getentarray("trigger_radius","classname"); var_04 = maps\_utility::array_merge(var_06,var_07); var_08 = getentarray("trigger_disk","classname"); var_04 = maps\_utility::array_merge(var_04,var_08); var_09 = getentarray("trigger_once","classname"); var_04 = maps\_utility::array_merge(var_04,var_09); if(!maps\_utility::is_no_game_start()) { for(var_0A = 0;var_0A < var_04.size;var_0A++) { if(var_04[var_0A].spawnflags & 32) { thread maps\_spawner::trigger_spawner(var_04[var_0A]); } } } for(var_0B = 0;var_0B < 7;var_0B++) { switch(var_0B) { case 0: var_0C = "trigger_multiple"; break; case 1: var_0C = "trigger_once"; break; case 2: var_0C = "trigger_use"; break; case 3: var_0C = "trigger_radius"; break; case 4: var_0C = "trigger_lookat"; break; case 5: var_0C = "trigger_disk"; break; default: var_0C = "trigger_damage"; break; } var_04 = getentarray(var_0C,"code_classname"); for(var_0A = 0;var_0A < var_04.size;var_0A++) { if(isdefined(var_04[var_0A].script_flag_true)) { level thread script_flag_true_trigger(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_flag_false)) { level thread script_flag_false_trigger(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_autosavename) || isdefined(var_04[var_0A].script_autosave)) { level thread maps\_autosave::autosavenamethink(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_fallback)) { level thread maps\_spawner::fallback_think(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_mgturretauto)) { level thread maps\_mgturret::mgturret_auto(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_killspawner)) { level thread maps\_spawner::kill_spawner(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_kill_vehicle_spawner)) { level thread maps\_vehicle::kill_vehicle_spawner(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_emptyspawner)) { level thread maps\_spawner::empty_spawner(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_prefab_exploder)) { var_04[var_0A].script_exploder = var_04[var_0A].script_prefab_exploder; } if(isdefined(var_04[var_0A].script_exploder)) { level thread exploder_load(var_04[var_0A]); } if(isdefined(var_04[var_0A].ambient)) { var_04[var_0A] thread maps\_audio::trigger_multiple_audio_trigger(1); } if(isdefined(var_04[var_0A].script_audio_zones) || isdefined(var_04[var_0A].script_audio_enter_msg) || isdefined(var_04[var_0A].script_audio_exit_msg) || isdefined(var_04[var_0A].script_audio_progress_msg) || isdefined(var_04[var_0A].script_audio_enter_func) || isdefined(var_04[var_0A].script_audio_exit_func) || isdefined(var_04[var_0A].script_audio_progress_func) || isdefined(var_04[var_0A].script_audio_point_func)) { var_04[var_0A] thread maps\_audio::trigger_multiple_audio_trigger(); } if(isdefined(var_04[var_0A].script_triggered_playerseek)) { level thread triggered_playerseek(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_bctrigger)) { level thread bctrigger(var_04[var_0A]); } if(isdefined(var_04[var_0A].script_trigger_group)) { var_04[var_0A] thread trigger_group(); } if(isdefined(var_04[var_0A].script_random_killspawner)) { level thread maps\_spawner::random_killspawner(var_04[var_0A]); } if(isdefined(var_04[var_0A].targetname)) { var_0D = var_04[var_0A].targetname; if(isdefined(var_01[var_0D])) { level thread [[ var_01[var_0D] ]](var_04[var_0A]); } } } } } //Function Number: 5 set_early_level() { level.early_level = []; level.early_level["intro"] = 1; level.early_level["sp_ny_harbor"] = 1; level.early_level["sp_ny_manhattan"] = 1; level.early_level["warlord"] = 1; level.early_level["london"] = 1; } //Function Number: 6 trigger_slide(param_00) { for(;;) { param_00 waittill("trigger",var_01); var_01 thread slidetriggerplayerthink(param_00); } } //Function Number: 7 slidetriggerplayerthink(param_00) { if(isdefined(self.vehicle)) { return; } if(maps\_utility::issliding()) { return; } thread maps\_audio::aud_send_msg("start_player_slide_trigger",self); if(isdefined(self.player_view)) { return; } self endon("death"); if(soundexists("SCN_cliffhanger_player_hillslide")) { self playsound("SCN_cliffhanger_player_hillslide"); } var_01 = undefined; if(isdefined(param_00.script_accel)) { var_01 = param_00.script_accel; } maps\_utility::beginsliding(undefined,var_01); for(;;) { if(!self istouching(param_00)) { break; } wait 0.05; } if(isdefined(level.end_slide_delay)) { wait level.end_slide_delay; } maps\_utility::endsliding(); thread maps\_audio::aud_send_msg("end_player_slide_trigger",self); } //Function Number: 8 setup_simple_primary_lights() { var_00 = getentarray("generic_flickering","targetname"); var_01 = getentarray("generic_pulsing","targetname"); var_02 = getentarray("generic_double_strobe","targetname"); common_scripts\utility::array_thread(var_00,::maps\_lights::generic_flickering); common_scripts\utility::array_thread(var_01,::maps\_lights::generic_pulsing); common_scripts\utility::array_thread(var_02,::maps\_lights::generic_double_strobe); } //Function Number: 9 weapon_ammo() { var_00 = getentarray(); for(var_01 = 0;var_01 < var_00.size;var_01++) { if(isdefined(var_00[var_01].classname) && getsubstr(var_00[var_01].classname,0,7) == "weapon_") { var_02 = var_00[var_01]; var_03 = getsubstr(var_02.classname,7); if(isdefined(var_02.script_ammo_max)) { var_04 = weaponclipsize(var_03); var_05 = weaponmaxammo(var_03); var_02 itemweaponsetammo(var_04,var_05,var_04,0); var_06 = weaponaltweaponname(var_03); if(var_06 != "none") { var_07 = weaponclipsize(var_06); var_08 = weaponmaxammo(var_06); var_02 itemweaponsetammo(var_07,var_08,var_07,1); } continue; } var_09 = 0; var_04 = undefined; var_0A = undefined; var_0B = 0; var_0C = undefined; var_0D = undefined; if(isdefined(var_02.script_ammo_clip)) { var_04 = var_02.script_ammo_clip; var_09 = 1; } if(isdefined(var_02.script_ammo_extra)) { var_0A = var_02.script_ammo_extra; var_09 = 1; } if(isdefined(var_02.script_ammo_alt_clip)) { var_0C = var_02.script_ammo_alt_clip; var_0B = 1; } if(isdefined(var_02.script_ammo_alt_extra)) { var_0D = var_02.script_ammo_alt_extra; var_0B = 1; } if(var_09) { if(!isdefined(var_04)) { } if(!isdefined(var_0A)) { } var_02 itemweaponsetammo(var_04,var_0A); } if(var_0B) { if(!isdefined(var_0C)) { } if(!isdefined(var_0D)) { } var_02 itemweaponsetammo(var_0C,var_0D,0,1); } } } } //Function Number: 10 trigger_group() { thread trigger_group_remove(); level endon("trigger_group_" + self.script_trigger_group); self waittill("trigger"); level notify("trigger_group_" + self.script_trigger_group,self); } //Function Number: 11 trigger_group_remove() { level waittill("trigger_group_" + self.script_trigger_group,var_00); if(self != var_00) { self delete(); } } //Function Number: 12 exploder_load(param_00) { level endon("killexplodertridgers" + param_00.script_exploder); param_00 waittill("trigger"); if(isdefined(param_00.script_chance) && randomfloat(1) > param_00.script_chance) { if(!param_00 maps\_utility::script_delay()) { wait 4; } level thread exploder_load(param_00); return; } if(!param_00 maps\_utility::script_delay() && isdefined(param_00.script_exploder_delay)) { wait param_00.script_exploder_delay; } common_scripts\utility::exploder(param_00.script_exploder); level notify("killexplodertridgers" + param_00.script_exploder); } //Function Number: 13 shock_onpain() { precacheshellshock("pain"); precacheshellshock("default"); level.player endon("death"); setdvarifuninitialized("blurpain","on"); for(;;) { var_00 = level.player.health; level.player waittill("damage"); if(getdvar("blurpain") == "on") { if(var_00 - level.player.health < 129) { continue; } level.player shellshock("default",5); } } } //Function Number: 14 usedanimations() { setdvar("usedanim",""); for(;;) { if(getdvar("usedanim") == "") { wait 2; continue; } var_00 = getdvar("usedanim"); setdvar("usedanim",""); if(!isdefined(level.completedanims[var_00])) { continue; } for(var_01 = 0;var_01 < level.completedanims[var_00].size;var_01++) { } } } //Function Number: 15 badplace_think(param_00) { if(!isdefined(level.badplaces)) { level.badplaces = 0; } level.badplaces++; badplace_cylinder("badplace" + level.badplaces,-1,param_00.origin,param_00.radius,1024); } //Function Number: 16 setup_individual_exploder(param_00) { var_01 = param_00.script_exploder; if(!isdefined(level.exploders[var_01])) { level.exploders[var_01] = []; } var_02 = param_00.targetname; if(!isdefined(var_02)) { var_02 = ""; } level.exploders[var_01][level.exploders[var_01].size] = param_00; if(maps\_utility::exploder_model_starts_hidden(param_00)) { param_00 hide(); return; } if(maps\_utility::exploder_model_is_damaged_model(param_00)) { param_00 hide(); param_00 notsolid(); if(isdefined(param_00.spawnflags) && param_00.spawnflags & 1) { if(isdefined(param_00.script_disconnectpaths)) { param_00 connectpaths(); } } return; } if(maps\_utility::exploder_model_is_chunk(param_00)) { param_00 hide(); param_00 notsolid(); if(isdefined(param_00.spawnflags) && param_00.spawnflags & 1) { param_00 connectpaths(); } } } //Function Number: 17 setupexploders() { level.exploders = []; var_00 = getentarray("script_brushmodel","classname"); var_01 = getentarray("script_model","classname"); for(var_02 = 0;var_02 < var_01.size;var_02++) { var_00[var_00.size] = var_01[var_02]; } foreach(var_04 in var_00) { if(isdefined(var_04.script_prefab_exploder)) { var_04.script_exploder = var_04.script_prefab_exploder; } if(isdefined(var_04.masked_exploder)) { continue; } if(isdefined(var_04.script_exploder)) { setup_individual_exploder(var_04); } } var_06 = []; var_07 = getentarray("script_brushmodel","classname"); for(var_02 = 0;var_02 < var_07.size;var_02++) { if(isdefined(var_07[var_02].script_prefab_exploder)) { var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder; } if(isdefined(var_07[var_02].script_exploder)) { var_06[var_06.size] = var_07[var_02]; } } var_07 = getentarray("script_model","classname"); for(var_02 = 0;var_02 < var_07.size;var_02++) { if(isdefined(var_07[var_02].script_prefab_exploder)) { var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder; } if(isdefined(var_07[var_02].script_exploder)) { var_06[var_06.size] = var_07[var_02]; } } var_07 = getentarray("item_health","classname"); for(var_02 = 0;var_02 < var_07.size;var_02++) { if(isdefined(var_07[var_02].script_prefab_exploder)) { var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder; } if(isdefined(var_07[var_02].script_exploder)) { var_06[var_06.size] = var_07[var_02]; } } if(isdefined(level.enable_struct_exploders)) { var_07 = level.struct; for(var_02 = 0;var_02 < var_07.size;var_02++) { if(!isdefined(var_07[var_02])) { continue; } if(isdefined(var_07[var_02].script_prefab_exploder)) { var_07[var_02].script_exploder = var_07[var_02].script_prefab_exploder; } if(isdefined(var_07[var_02].script_exploder)) { if(!isdefined(var_07[var_02].angles)) { var_07[var_02].angles = (0,0,0); } var_06[var_06.size] = var_07[var_02]; } } } if(!isdefined(level.createfxent)) { level.createfxent = []; } var_08 = []; thread setup_flag_exploders(); var_03 = 0; while(var_03 < var_07.size) { var_09 = var_07[var_03]; var_05 = common_scripts\utility::createexploder(var_09.script_fxid); var_05.v = []; var_05.v["origin"] = var_09.origin; var_05.v["angles"] = var_09.angles; var_05.v["delay"] = var_09.script_delay; var_05.v["delay_post"] = var_09.script_delay_post; var_05.v["firefx"] = var_09.script_firefx; var_05.v["firefxdelay"] = var_09.script_firefxdelay; var_05.v["firefxsound"] = var_09.script_firefxsound; var_05.v["firefxtimeout"] = var_09.script_firefxtimeout; var_05.v["earthquake"] = var_09.script_earthquake; var_05.v["rumble"] = var_09.script_rumble; var_05.v["damage"] = var_09.script_damage; var_05.v["damage_radius"] = var_09.script_radius; var_05.v["soundalias"] = var_09.script_soundalias; var_05.v["repeat"] = var_09.script_repeat; var_05.v["delay_min"] = var_09.script_delay_min; var_05.v["delay_max"] = var_09.var_7E6; var_05.v["target"] = var_09.target; var_05.v["ender"] = var_09.script_ender; var_05.v["physics"] = var_09.script_physics; var_05.v["type"] = "exploder"; if(!isdefined(var_09.script_fxid)) { var_05.v["fxid"] = "No FX"; } else { var_05.v["fxid"] = var_09.script_fxid; } var_05.v["exploder"] = var_09.script_exploder; if(isdefined(level.createfxexploders)) { var_0A = level.createfxexploders[var_05.v["exploder"]]; if(!isdefined(var_0A)) { var_0A = []; } level.createfxexploders[var_05.v["exploder"]] = var_0A; } if(!isdefined(var_05.v["delay"])) { var_05.v["delay"] = 0; } if(isdefined(var_09.target)) { var_0B = getentarray(var_05.v["target"],"targetname")[0]; if(isdefined(var_0B)) { var_0C = var_0B.origin; var_05.v["angles"] = vectortoangles(var_0C - var_05.v["origin"]); } else { var_0B = common_scripts\utility::get_target_ent(var_05.v["target"]); if(isdefined(var_0B)) { var_0C = var_0B.origin; var_05.v["angles"] = vectortoangles(var_0C - var_05.v["origin"]); } } } if(!isdefined(level.enable_struct_exploders)) { if(var_09.code_classname == "script_brushmodel" || isdefined(var_09.model)) { var_05.model = var_09; var_05.model.disconnect_paths = var_09.script_disconnectpaths; } } else { var_05.model = var_09; if(isdefined(var_05.model.script_modelname)) { precachemodel(var_05.model.script_modelname); } } if(isdefined(var_09.targetname) && isdefined(var_7B[var_09.targetname])) { var_05.v["exploder_type"] = var_09.targetname; } else { var_05.v["exploder_type"] = "normal"; } if(isdefined(var_09.masked_exploder)) { var_05.v["masked_exploder"] = var_09.model; var_05.v["masked_exploder_spawnflags"] = var_09.spawnflags; var_05.v["masked_exploder_script_disconnectpaths"] = var_09.script_disconnectpaths; var_09 delete(); } var_05 common_scripts\_createfx::post_entity_creation_function(); var_03++ = var_7B[var_0A.size]; } } //Function Number: 18 setup_flag_exploders() { waittillframeend; waittillframeend; waittillframeend; var_00 = []; foreach(var_02 in level.createfxent) { if(var_02.v["type"] != "exploder") { continue; } var_03 = var_02.v["flag"]; if(!isdefined(var_03)) { continue; } if(var_03 == "nil") { var_02.v["flag"] = undefined; } var_00[var_03] = 1; } foreach(var_07, var_06 in var_00) { thread exploder_flag_wait(var_07); } } //Function Number: 19 exploder_flag_wait(param_00) { if(!common_scripts\utility::flag_exist(param_00)) { common_scripts\utility::flag_init(param_00); } common_scripts\utility::flag_wait(param_00); foreach(var_02 in level.createfxent) { if(var_02.v["type"] != "exploder") { continue; } var_03 = var_02.v["flag"]; if(!isdefined(var_03)) { continue; } if(var_03 != param_00) { continue; } var_02 common_scripts\utility::activate_individual_exploder(); } } //Function Number: 20 nearairushesplayer() { if(isalive(level.enemyseekingplayer)) { return; } var_00 = maps\_utility::get_closest_ai(level.player.origin,"bad_guys"); if(!isdefined(var_00)) { return; } if(distance(var_00.origin,level.player.origin) > 400) { return; } level.enemyseekingplayer = var_00; var_00 setgoalentity(level.player); var_00.goalradius = 512; } //Function Number: 21 playerdamagerumble() { for(;;) { self waittill("damage",var_00); if(isdefined(self.specialdamage)) { continue; } self playrumbleonentity("damage_heavy"); } } //Function Number: 22 playerdamageshellshock() { for(;;) { level.player waittill("damage",var_00,var_01,var_02,var_03,var_04); if(var_04 == "MOD_EXPLOSIVE" || var_04 == "MOD_GRENADE" || var_04 == "MOD_GRENADE_SPLASH" || var_04 == "MOD_PROJECTILE" || var_04 == "MOD_PROJECTILE_SPLASH") { var_05 = 0; var_06 = level.player.maxhealth / 100; var_07 = var_00 * var_06; if(var_07 >= 90) { var_05 = 4; } else if(var_07 >= 50) { var_05 = 3; } else if(var_07 >= 25) { var_05 = 2; } else if(var_07 > 10) { var_05 = 1; } if(var_05) { level.player shellshock("default",var_05); } } } } //Function Number: 23 map_is_early_in_the_game() { if(isdefined(level.early_level[level.script])) { return level.early_level[level.script]; } return 0; } //Function Number: 24 player_throwgrenade_timer() { self endon("death"); self.lastgrenadetime = 0; for(;;) { while(!self isthrowinggrenade()) { wait 0.05; } self.lastgrenadetime = gettime(); while(self isthrowinggrenade()) { wait 0.05; } } } //Function Number: 25 player_special_death_hint() { if(maps\_utility::is_specialop()) { return; } if(isalive(level.player)) { thread maps\_quotes::setdeadquote(); } level.player thread player_throwgrenade_timer(); level.player waittill("death",var_00,var_01,var_02); if(var_01 != "MOD_GRENADE" && var_01 != "MOD_GRENADE_SPLASH" && var_01 != "MOD_SUICIDE" && var_01 != "MOD_EXPLOSIVE") { return; } if(level.gameskill >= 2) { if(!map_is_early_in_the_game()) { return; } } if(var_01 == "MOD_SUICIDE") { if(level.player.lastgrenadetime - gettime() > 3500) { return; } level notify("new_quote_string"); thread grenade_death_text_hudelement(&"SCRIPT_GRENADE_SUICIDE_LINE1",&"SCRIPT_GRENADE_SUICIDE_LINE2"); return; } if(var_01 == "MOD_EXPLOSIVE") { if(level.player destructible_death(var_00)) { return; } if(level.player exploding_barrel_death_af_chase(var_00)) { return; } if(level.player vehicle_death(var_00)) { return; } if(level.player exploding_barrel_death(var_00)) { return; } } if(var_01 == "MOD_GRENADE" || var_01 == "MOD_GRENADE_SPLASH") { if(isdefined(var_02) && !isweapondetonationtimed(var_02)) { return; } level notify("new_quote_string"); setdvar("ui_deadquote","@SCRIPT_GRENADE_DEATH"); thread grenade_death_indicator_hudelement(); } } //Function Number: 26 vehicle_death(param_00) { if(!isdefined(param_00)) { return 0; } if(param_00.code_classname != "script_vehicle") { return 0; } level notify("new_quote_string"); setdvar("ui_deadquote","@SCRIPT_EXPLODING_VEHICLE_DEATH"); thread special_death_indicator_hudelement("hud_burningcaricon",96,96); return 1; } //Function Number: 27 destructible_death(param_00) { if(!isdefined(param_00)) { return 0; } if(!isdefined(param_00.destructible_type)) { return 0; } level notify("new_quote_string"); if(issubstr(param_00.destructible_type,"vehicle")) { setdvar("ui_deadquote","@SCRIPT_EXPLODING_VEHICLE_DEATH"); thread special_death_indicator_hudelement("hud_burningcaricon",96,96); } else { setdvar("ui_deadquote","@SCRIPT_EXPLODING_DESTRUCTIBLE_DEATH"); thread special_death_indicator_hudelement("hud_destructibledeathicon",96,96); } return 1; } //Function Number: 28 exploding_barrel_death_af_chase(param_00) { if(level.script != "af_chase") { return 0; } return exploding_barrel_death(param_00); } //Function Number: 29 exploding_barrel_death(param_00) { if(isdefined(level.lastexplodingbarrel)) { if(gettime() != level.lastexplodingbarrel["time"]) { return 0; } var_01 = distance(self.origin,level.lastexplodingbarrel["origin"]); if(var_01 > level.lastexplodingbarrel["radius"]) { return 0; } level notify("new_quote_string"); setdvar("ui_deadquote","@SCRIPT_EXPLODING_BARREL_DEATH"); thread special_death_indicator_hudelement("hud_burningbarrelicon",64,64); return 1; } return 0; } //Function Number: 30 grenade_death_text_hudelement(param_00,param_01) { level.player.failingmission = 1; setdvar("ui_deadquote",""); wait 1.5; var_02 = newhudelem(); var_02.elemtype = "font"; var_02.font = "default"; var_02.fontscale = 1.5; var_02.x = 0; var_02.y = -30; var_02.alignx = "center"; var_02.aligny = "middle"; var_02.horzalign = "center"; var_02.vertalign = "middle"; var_02 settext(param_00); var_02.foreground = 1; var_02.alpha = 0; var_02 fadeovertime(1); var_02.alpha = 1; if(isdefined(param_01)) { var_02 = newhudelem(); var_02.elemtype = "font"; var_02.font = "default"; var_02.fontscale = 1.5; var_02.x = 0; var_02.y = -25 + level.fontheight * var_02.fontscale; var_02.alignx = "center"; var_02.aligny = "middle"; var_02.horzalign = "center"; var_02.vertalign = "middle"; var_02 settext(param_01); var_02.foreground = 1; var_02.alpha = 0; var_02 fadeovertime(1); var_02.alpha = 1; } } //Function Number: 31 grenade_death_indicator_hudelement() { wait 1.5; var_00 = newhudelem(); var_00.x = 0; var_00.y = 68; var_00 setshader("hud_grenadeicon",50,50); var_00.alignx = "center"; var_00.aligny = "middle"; var_00.horzalign = "center"; var_00.vertalign = "middle"; var_00.foreground = 1; var_00.alpha = 0; var_00 fadeovertime(1); var_00.alpha = 1; var_00 = newhudelem(); var_00.x = 0; var_00.y = 25; var_00 setshader("hud_grenadepointer",50,25); var_00.alignx = "center"; var_00.aligny = "middle"; var_00.horzalign = "center"; var_00.vertalign = "middle"; var_00.foreground = 1; var_00.alpha = 0; var_00 fadeovertime(1); var_00.alpha = 1; } //Function Number: 32 special_death_indicator_hudelement(param_00,param_01,param_02,param_03) { if(!isdefined(param_03)) { param_03 = 1.5; } wait param_03; var_04 = newhudelem(); var_04.x = 0; var_04.y = 40; var_04 setshader(param_00,param_01,param_02); var_04.alignx = "center"; var_04.aligny = "middle"; var_04.horzalign = "center"; var_04.vertalign = "middle"; var_04.foreground = 1; var_04.alpha = 0; var_04 fadeovertime(1); var_04.alpha = 1; } //Function Number: 33 triggered_playerseek(param_00) { var_01 = param_00.script_triggered_playerseek; param_00 waittill("trigger"); var_02 = getaiarray(); for(var_03 = 0;var_03 < var_02.size;var_03++) { if(!isalive(var_02[var_03])) { continue; } if(isdefined(var_02[var_03].script_triggered_playerseek) && var_02[var_03].script_triggered_playerseek == var_01) { var_02[var_03].goalradius = 800; var_02[var_03] setgoalentity(level.player); level thread maps\_spawner::delayed_player_seek_think(var_02[var_03]); } } } //Function Number: 34 traversethink() { var_00 = getent(self.target,"targetname"); self.traverse_height = var_00.origin[2]; var_00 delete(); } //Function Number: 35 pianodamagethink() { var_00 = self getorigin(); var_01[0] = "large"; for(;;) { self waittill("small",var_7B[1],"trigger"); thread common_scripts\utility::play_sound_in_space("bullet_" + common_scripts\utility::random(var_7B) + "_piano",var_01); } } //Function Number: 36 pianothink() { var_00 = self getorigin(); var_01 = "piano_" + self.script_noteworthy; self sethintstring(&"SCRIPT_PLATFORM_PIANO"); for(;;) { self waittill("trigger"); thread common_scripts\utility::play_sound_in_space(var_01,var_00); } } //Function Number: 37 bctrigger(param_00) { var_01 = undefined; if(isdefined(param_00.target)) { var_02 = getentarray(param_00.target,"targetname"); if(issubstr(var_02[0].classname,"trigger")) { var_01 = var_02[0]; } } if(isdefined(var_01)) { var_01 waittill("trigger",var_03); } else { var_01 waittill("trigger",var_03); } var_04 = undefined; if(isdefined(var_01)) { if(var_03.team != level.player.team && level.player istouching(param_00)) { var_04 = level.player animscripts/battlechatter::func_BF2("custom"); } else if(var_03.team == level.player.team) { var_05 = "axis"; if(level.player.team == "axis") { var_05 = "allies"; } var_06 = animscripts/battlechatter::func_BF3("custom",var_05); var_06 = maps\_utility::get_array_of_farthest(level.player.origin,var_06); foreach(var_08 in var_06) { if(var_08 istouching(param_00)) { var_04 = var_08; if(bctrigger_validate_distance(var_08.origin)) { break; } } } } } else if(isplayer(var_03)) { var_04 = var_03 animscripts/battlechatter::func_BF2("custom"); } else { var_04 = var_03; } if(!isdefined(var_04)) { return; } if(!bctrigger_validate_distance(var_04.origin)) { return; } var_0A = var_04 maps\_utility::custom_battlechatter(param_00.script_bctrigger); if(!var_0A) { level maps\_utility::delaythread(0.25,::bctrigger,param_00); return; } param_00 notify("custom_battlechatter_done"); } //Function Number: 38 bctrigger_validate_distance(param_00) { if(distance(param_00,level.player getorigin()) <= 512) { return 1; } return 0; } //Function Number: 39 waterthink() { var_00 = getent(self.target,"targetname"); var_01 = var_00.origin[2]; var_00 = undefined; level.depth_allow_prone = 8; level.depth_allow_crouch = 33; level.depth_allow_stand = 50; var_02 = 0; for(;;) { wait 0.05; if(!level.player.inwater && var_02) { var_02 = 0; level.player allowprone(1); level.player allowcrouch(1); level.player allowstand(1); thread waterthink_rampspeed(level.default_run_speed); } self waittill("trigger"); level.player.inwater = 1; var_02 = 1; while(level.player istouching(self)) { level.player.inwater = 1; var_03 = level.player getorigin(); var_04 = var_03[2] - var_01; if(var_04 > 0) { break; } var_05 = int(level.default_run_speed - abs(var_04 * 5)); if(var_05 < 50) { var_05 = 50; } thread waterthink_rampspeed(var_05); if(abs(var_04) > level.depth_allow_crouch) { level.player allowcrouch(0); } else { level.player allowcrouch(1); } if(abs(var_04) > level.depth_allow_prone) { level.player allowprone(0); continue; } level.player allowprone(1); wait 0.5; } level.player.inwater = 0; wait 0.05; } } //Function Number: 40 waterthink_rampspeed(param_00) { level notify("ramping_water_movement_speed"); level endon("ramping_water_movement_speed"); var_01 = 0.5; var_02 = int(var_01 * 20); var_03 = getdvarint("g_speed"); var_04 = 0; if(param_00 < var_03) { var_04 = 1; } var_05 = int(abs(var_03 - param_00)); var_06 = int(var_05 / var_02); for(var_07 = 0;var_07 < var_02;var_07++) { var_03 = getdvarint("g_speed"); if(var_04) { setsaveddvar("g_speed",var_03 - var_06); } else { setsaveddvar("g_speed",var_03 + var_06); } wait 0.05; } setsaveddvar("g_speed",param_00); } //Function Number: 41 massnodeinitfunctions() { var_00 = getallnodes(); thread maps\_mgturret::auto_mgturretlink(var_00); thread maps\_mgturret::saw_mgturretlink(var_00); thread maps\_colors::init_color_grouping(var_00); } //Function Number: 42 trigger_unlock(param_00) { var_01 = "not_set"; if(isdefined(param_00.script_noteworthy)) { var_01 = param_00.script_noteworthy; } var_02 = getentarray(param_00.target,"targetname"); param_00 thread trigger_unlock_death(param_00.target); for(;;) { common_scripts\utility::array_thread(var_02,::common_scripts\utility::trigger_off); param_00 waittill("trigger"); common_scripts\utility::array_thread(var_02,::common_scripts\utility::trigger_on); wait_for_an_unlocked_trigger(var_02,var_01); maps\_utility::array_notify(var_02,"relock"); } } //Function Number: 43 trigger_unlock_death(param_00) { self waittill("death"); var_01 = getentarray(param_00,"targetname"); common_scripts\utility::array_thread(var_01,::common_scripts\utility::trigger_off); } //Function Number: 44 wait_for_an_unlocked_trigger(param_00,param_01) { level endon("unlocked_trigger_hit" + param_01); var_02 = spawnstruct(); for(var_03 = 0;var_03 < param_00.size;var_03++) { param_00[var_03] thread report_trigger(var_02,param_01); } var_02 waittill("trigger"); level notify("unlocked_trigger_hit" + param_01); } //Function Number: 45 report_trigger(param_00,param_01) { self endon("relock"); level endon("unlocked_trigger_hit" + param_01); self waittill("trigger"); param_00 notify("trigger"); } //Function Number: 46 get_trigger_targs() { var_00 = []; var_01 = undefined; if(isdefined(self.target)) { var_02 = getentarray(self.target,"targetname"); var_03 = []; foreach(var_05 in var_02) { if(var_05.classname == "script_origin") { var_03[var_03.size] = var_05; } if(issubstr(var_05.classname,"trigger")) { var_00[var_00.size] = var_05; } } var_02 = common_scripts\utility::getstructarray(self.target,"targetname"); foreach(var_05 in var_02) { var_03[var_03.size] = var_05; } if(var_03.size == 1) { var_09 = var_03[0]; var_01 = var_09.origin; if(isdefined(var_09.code_classname)) { var_09 delete(); } } } var_0A = []; return var_7B; } //Function Number: 47 trigger_lookat(param_00) { trigger_lookat_think(param_00,1); } //Function Number: 48 trigger_looking(param_00) { trigger_lookat_think(param_00,0); } //Function Number: 49 trigger_visionset_change(param_00) { var_01 = 3; if(isdefined(param_00.script_delay)) { var_01 = param_00.script_delay; } for(;;) { param_00 waittill("trigger"); maps\_utility::set_vision_set(param_00.script_visionset,var_01); wait var_01; } } //Function Number: 50 trigger_lookat_think(param_00,param_01) { var_02 = 0.78; if(isdefined(param_00.script_dot)) { var_02 = param_00.script_dot; } var_03 = param_00 get_trigger_targs(); var_04 = var_03["triggers"]; var_05 = var_03["target_origin"]; var_06 = isdefined(param_00.script_flag) || isdefined(param_00.script_noteworthy); var_07 = undefined; if(var_06) { var_07 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_07])) { common_scripts\utility::flag_init(var_07); } } else if(!var_04.size) { } if(param_01 && var_06) { level endon(var_07); } param_00 endon("death"); var_08 = 0; if(isdefined(param_00.script_parameters)) { var_08 = !issubstr("no_sight",param_00.script_parameters); } for(;;) { if(var_06) { common_scripts\utility::flag_clear(var_07); } param_00 waittill("trigger",var_09); var_0A = []; while(var_09 istouching(param_00)) { if(var_08 && !sighttracepassed(var_09 geteye(),var_05,0,undefined)) { if(var_06) { common_scripts\utility::flag_clear(var_07); } wait 0.5; continue; } var_0B = vectornormalize(var_05 - var_09.origin); var_0C = var_09 getplayerangles(); var_0D = anglestoforward(var_0C); var_0E = vectordot(var_0D,var_0B); if(var_0E >= var_02) { common_scripts\utility::array_thread(var_04,::maps\_utility::send_notify,"trigger"); if(var_06) { common_scripts\utility::flag_set(var_07,var_09); } if(param_01) { return; } wait 2; } else if(var_06) { common_scripts\utility::flag_clear(var_07); } if(var_08) { wait 0.5; continue; } wait 0.05; } } } //Function Number: 51 trigger_cansee(param_00) { var_01 = []; var_02 = undefined; var_03 = param_00 get_trigger_targs(); var_01 = var_03["triggers"]; var_02 = var_03["target_origin"]; var_04 = isdefined(param_00.script_flag) || isdefined(param_00.script_noteworthy); var_05 = undefined; if(var_04) { var_05 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_05])) { common_scripts\utility::flag_init(var_05); } } else if(!var_01.size) { } param_00 endon("death"); var_06 = 12; var_07 = []; for(;;) { if(var_05) { common_scripts\utility::flag_clear(var_06); } var_01 waittill((0,0,0),var_7B[var_07.size],(var_07,0,0),var_7B[var_7B.size],(var_07 * -1,0,0),var_7B[var_7B.size],(0,var_07,0),var_7B[var_7B.size],(0,var_07 * -1,0),var_7B[var_7B.size],(0,0,var_07),var_7B[var_7B.size],"trigger",var_08); while(level.player istouching(var_01)) { if(!var_08 cantraceto(var_03,var_7B)) { if(var_05) { common_scripts\utility::flag_clear(var_06); } wait 0.1; continue; } if(var_05) { common_scripts\utility::flag_set(var_06); } common_scripts\utility::array_thread(var_02,::maps\_utility::send_notify,"trigger"); wait 0.5; } } } //Function Number: 52 cantraceto(param_00,param_01) { for(var_02 = 0;var_02 < param_01.size;var_02++) { if(sighttracepassed(self geteye(),param_00 + param_01[var_02],1,self)) { return 1; } } return 0; } //Function Number: 53 indicate_start(param_00) { var_01 = newhudelem(); var_01.alignx = "left"; var_01.aligny = "middle"; var_01.x = 10; var_01.y = 400; var_01 settext(param_00); var_01.alpha = 0; var_01.fontscale = 3; wait 1; var_01 fadeovertime(1); var_01.alpha = 1; wait 5; var_01 fadeovertime(1); var_01.alpha = 0; wait 1; var_01 destroy(); } //Function Number: 54 handle_starts() { common_scripts\utility::create_dvar("start",""); if(getdvar("scr_generateClipModels") != "" && getdvar("scr_generateClipModels") != "0") { return; } if(!isdefined(level.start_functions)) { level.start_functions = []; } var_00 = tolower(getdvar("start")); var_01 = get_start_dvars(); if(isdefined(level.start_point)) { var_00 = level.start_point; } var_02 = 0; for(var_03 = 0;var_03 < var_01.size;var_03++) { if(var_00 == var_01[var_03]) { var_02 = var_03; level.start_point = var_01[var_03]; break; } } if(isdefined(level.default_start_override) && !isdefined(level.start_point)) { foreach(var_06, var_05 in var_01) { if(level.default_start_override == var_05) { var_02 = var_06; level.start_point = var_05; break; } } } if(!isdefined(level.start_point)) { if(isdefined(level.default_start)) { level.start_point = "default"; } else if(maps\_utility::level_has_start_points()) { level.start_point = level.start_functions[0]["name"]; } else { level.start_point = "default"; } } waittillframeend; thread start_menu(); if(level.start_point == "default") { if(isdefined(level.default_start)) { level thread [[ level.default_start ]](); } } else { var_07 = level.start_arrays[level.start_point]; thread [[ var_07["start_func"] ]](); } if(maps\_utility::is_default_start()) { var_08 = get_string_for_starts(var_01); setdvar("start",var_08); } waittillframeend; var_09 = []; for(var_03 = var_02;var_03 < level.start_functions.size;var_03++) { var_07 = level.start_functions[var_03]; if(!isdefined(var_07["logic_func"])) { continue; } if(already_ran_function(var_07["logic_func"],var_09)) { continue; } [[ var_07["logic_func"] ]](); var_09[var_09.size] = var_07["logic_func"]; } } //Function Number: 55 already_ran_function(param_00,param_01) { foreach(var_03 in param_01) { if(var_03 == param_00) { return 1; } } return 0; } //Function Number: 56 get_string_for_starts(param_00) { var_01 = " ** No starts have been set up for this map with maps_utility::add_start()."; if(param_00.size) { var_01 = " ** "; for(var_02 = param_00.size - 1;var_02 >= 0;var_02--) { var_01 = var_01 + param_00[var_02] + " "; } } setdvar("start",var_01); return var_01; } //Function Number: 57 create_start(param_00,param_01) { var_02 = 1; var_03 = (0.9,0.9,0.9); if(param_01 != -1) { var_04 = 5; if(param_01 != var_04) { var_02 = 1 - abs(var_04 - param_01) / var_04; } else { var_03 = (1,1,0); } } if(var_02 == 0) { var_02 = 0.05; } var_05 = newhudelem(); var_05.alignx = "left"; var_05.aligny = "middle"; var_05.x = 80; var_05.y = 80 + param_01 * 18; var_05 settext(param_00); var_05.alpha = 0; var_05.foreground = 1; var_05.color = var_03; var_05.fontscale = 1.75; var_05 fadeovertime(0.5); var_05.alpha = var_02; return var_05; } //Function Number: 58 start_menu() { } //Function Number: 59 start_nogame() { common_scripts\utility::array_call(getaiarray(),::delete); common_scripts\utility::array_call(getspawnerarray(),::delete); } //Function Number: 60 get_start_dvars() { var_00 = []; for(var_01 = 0;var_01 < level.start_functions.size;var_01++) { var_00[var_00.size] = level.start_functions[var_01]["name"]; } return var_00; } //Function Number: 61 display_starts() { level.display_starts_pressed = 1; if(level.start_functions.size <= 0) { return; } var_00 = get_start_dvars(); var_01 = start_list_menu(); var_02 = create_start("Selected Start:",-1); var_02.color = (1,1,1); var_03 = []; var_04 = 0; while(var_04 < var_7B.size) { var_05 = var_7B[var_04]; var_06 = "[" + var_7B[var_04] + "]"; if(var_05 != "cancel" && var_05 != "default") { if(isdefined(level.start_arrays[var_05]["start_loc_string"])) { var_06 = var_06 + " -> "; var_06 = var_06 + level.start_arrays[var_05]["start_loc_string"]; } } var_03[var_03.size] = var_06; var_04++ = var_7B[var_7B.size]; } var_07 = var_7B.size - 1; var_08 = 0; var_09 = 0; var_0A = 0; while(var_07 > 0) { if(var_7B[var_07] == level.start_point) { var_0A = 1; break; } var_07-- = "cancel"; } if(!var_0A) { var_07 = var_7B.size - 1; } start_list_settext(var_01,var_03,var_07); var_0B = var_07; for(;;) { if(!level.player buttonpressed("F10")) { level.display_starts_pressed = 0; } if(var_0B != var_07) { start_list_settext(var_01,var_03,var_07); var_0B = var_07; } if(!var_08) { if(level.player buttonpressed("UPARROW") || level.player buttonpressed("DPAD_UP") || level.player buttonpressed("APAD_UP")) { var_08 = 1; var_07-- = var_7B[var_00.size]; } } else if(!level.player buttonpressed("UPARROW") && !level.player buttonpressed("DPAD_UP") && !level.player buttonpressed("APAD_UP")) { var_08 = 0; } if(!var_09) { if(level.player buttonpressed("DOWNARROW") || level.player buttonpressed("DPAD_DOWN") || level.player buttonpressed("APAD_DOWN")) { var_09 = 1; var_07++ = "default"; } } else if(!level.player buttonpressed("DOWNARROW") && !level.player buttonpressed("DPAD_DOWN") && !level.player buttonpressed("APAD_DOWN")) { var_09 = 0; } if(var_07 < 0) { var_07 = var_7B.size - 1; } if(var_07 >= var_7B.size) { var_07 = 0; } if(level.player buttonpressed("BUTTON_B")) { start_display_cleanup(var_01,var_02); break; } if(level.player buttonpressed("kp_enter") || level.player buttonpressed("BUTTON_A") || level.player buttonpressed("enter")) { if(var_7B[var_07] == "cancel") { start_display_cleanup(var_01,var_02); break; } setdvar("start",var_7B[var_07]); level.player openpopupmenu("start"); } wait 0.05; } } //Function Number: 62 start_list_menu() { var_00 = []; for(var_01 = 0;var_01 < 11;var_01++) { var_02 = create_start("",var_01); var_00[var_00.size] = var_02; } return var_00; } //Function Number: 63 start_list_settext(param_00,param_01,param_02) { for(var_03 = 0;var_03 < param_00.size;var_03++) { var_04 = var_03 + param_02 - 5; if(isdefined(param_01[var_04])) { var_05 = param_01[var_04]; } else { var_05 = ""; } param_00[var_03] settext(var_05); } } //Function Number: 64 start_display_cleanup(param_00,param_01) { param_01 destroy(); for(var_02 = 0;var_02 < param_00.size;var_02++) { param_00[var_02] destroy(); } } //Function Number: 65 devhelp_hudelements(param_00,param_01) { for(var_02 = 0;var_02 < param_00.size;var_02++) { for(var_03 = 0;var_03 < 5;var_03++) { param_00[var_02][var_03].alpha = param_01; } } } //Function Number: 66 devhelp() { } //Function Number: 67 flag_set_player_trigger(param_00) { if(maps\_utility::is_coop()) { thread flag_set_coop_trigger(param_00); return; } var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } for(;;) { param_00 waittill("trigger",var_02); if(!isplayer(var_02)) { continue; } param_00 maps\_utility::script_delay(); common_scripts\utility::flag_set(var_01); } } //Function Number: 68 trigger_nobloodpool(param_00) { for(;;) { param_00 waittill("trigger",var_01); if(!isalive(var_01)) { continue; } var_01.skipbloodpool = 1; var_01 thread set_wait_then_clear_skipbloodpool(); } } //Function Number: 69 set_wait_then_clear_skipbloodpool() { self notify("notify_wait_then_clear_skipBloodPool"); self endon("notify_wait_then_clear_skipBloodPool"); self endon("death"); wait 2; self.skipbloodpool = undefined; } //Function Number: 70 sun_on(param_00) { for(;;) { param_00 waittill("trigger",var_01); if(getdvarint("sm_sunenable") == 1) { continue; } setsaveddvar("sm_sunenable",1); } } //Function Number: 71 sun_off(param_00) { for(;;) { param_00 waittill("trigger",var_01); if(getdvarint("sm_sunenable") == 0) { continue; } setsaveddvar("sm_sunenable",0); } } //Function Number: 72 flag_set_trigger(param_00) { var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } for(;;) { param_00 waittill("trigger",var_02); param_00 maps\_utility::script_delay(); common_scripts\utility::flag_set(var_01,var_02); } } //Function Number: 73 flag_set_trigger_specialops(param_00) { var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } param_00.player_touched_arr = level.players; param_00 thread flag_set_trigger_specialops_clear(var_01); for(;;) { param_00 waittill("trigger",var_02); param_00.player_touched_arr = common_scripts\utility::array_remove(param_00.player_touched_arr,var_02); if(param_00.player_touched_arr.size) { continue; } param_00 maps\_utility::script_delay(); common_scripts\utility::flag_set(var_01,var_02); } } //Function Number: 74 flag_set_trigger_specialops_clear(param_00) { for(;;) { level waittill(param_00); if(common_scripts\utility::flag(param_00)) { self.player_touched_arr = []; continue; } self.player_touched_arr = level.players; } } //Function Number: 75 trigger_damage_player_flag_set(param_00) { var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } for(;;) { param_00 waittill("trigger",var_02); if(!isalive(var_02)) { continue; } if(!isplayer(var_02)) { continue; } param_00 maps\_utility::script_delay(); common_scripts\utility::flag_set(var_01,var_02); } } //Function Number: 76 flag_set_coop_trigger(param_00) { var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } var_02 = []; for(;;) { param_00 waittill("trigger",var_03); if(!isplayer(var_03)) { continue; } var_04 = []; var_03 = maps\_utility::array_merge(var_03,var_7B); if(var_03.size == level.players.size) { break; } } var_01 maps\_utility::script_delay(); common_scripts\utility::flag_set(var_02); } //Function Number: 77 flag_unset_trigger(param_00) { var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } for(;;) { param_00 waittill("trigger"); param_00 maps\_utility::script_delay(); common_scripts\utility::flag_clear(var_01); } } //Function Number: 78 eq_trigger(param_00) { level.set_eq_func[1] = ::set_eq_on; level.set_eq_func[0] = ::set_eq_off; var_01 = getent(param_00.target,"targetname"); for(;;) { param_00 waittill("trigger"); var_02 = getaiarray("allies"); for(var_03 = 0;var_03 < var_02.size;var_03++) { var_02[var_03] [[ level.set_eq_func[var_02[var_03] istouching(var_01)] ]](); } while(level.player istouching(param_00)) { wait 0.05; } var_02 = getaiarray("allies"); for(var_03 = 0;var_03 < var_02.size;var_03++) { var_02[var_03] [[ level.set_eq_func[0] ]](); } } } //Function Number: 79 player_ignores_triggers() { self endon("death"); self.ignoretriggers = 1; wait 1; self.ignoretriggers = 0; } //Function Number: 80 get_trigger_eq_nums(param_00) { var_01 = []; for(var_02 = 0;var_02 < level.eq_trigger_table[var_01].size;var_02++ = var_7B[0]) { var_7B[var_7B.size] = level.eq_trigger_table[var_01][var_02]; } return var_7B; } //Function Number: 81 player_touched_eq_trigger(param_00,param_01) { self endon("death"); var_02 = get_trigger_eq_nums(param_00); for(var_03 = 0;var_03 < var_02.size;var_03++) { self.eq_table[var_02[var_03]] = 1; self.eq_touching[var_02[var_03]] = 1; } thread player_ignores_triggers(); var_04 = getaiarray(); for(var_05 = 0;var_05 < var_04.size;var_05++) { var_06 = var_04[var_05]; for(var_03 = 0;var_03 < var_02.size;var_03++) { if(var_06.eq_table[var_02[var_03]]) { var_06 eqoff(); break; } } } while(self istouching(param_01)) { wait 0.05; } for(var_03 = 0;var_03 < var_02.size;var_03++) { self.eq_table[var_02[var_03]] = 0; self.eq_touching[var_02[var_03]] = undefined; } var_04 = getaiarray(); for(var_05 = 0;var_05 < var_04.size;var_05++) { var_06 = var_04[var_05]; var_07 = 0; for(var_03 = 0;var_03 < var_02.size;var_03++) { if(var_06.eq_table[var_02[var_03]]) { var_07 = 1; } } if(!var_07) { continue; } var_08 = getarraykeys(self.eq_touching); var_09 = 0; for(var_0A = 0;var_0A < var_08.size;var_0A++) { if(!var_06.eq_table[var_08[var_0A]]) { continue; } var_09 = 1; break; } if(!var_09) { var_06 eqon(); } } } //Function Number: 82 ai_touched_eq_trigger(param_00,param_01) { self endon("death"); var_02 = get_trigger_eq_nums(param_00); for(var_03 = 0;var_03 < var_02.size;var_03++) { self.eq_table[var_02[var_03]] = 1; self.eq_touching[var_02[var_03]] = 1; } for(var_03 = 0;var_03 < var_02.size;var_03++) { if(level.player.eq_table[var_02[var_03]]) { self eqoff(); break; } } self.ignoretriggers = 1; wait 1; self.ignoretriggers = 0; while(self istouching(param_01)) { wait 0.5; } var_02 = get_trigger_eq_nums(param_00); for(var_03 = 0;var_03 < var_02.size;var_03++) { self.eq_table[var_02[var_03]] = 0; self.eq_touching[var_02[var_03]] = undefined; } var_04 = getarraykeys(self.eq_touching); for(var_05 = 0;var_05 < var_04.size;var_05++) { if(level.player.eq_table[var_04[var_05]]) { return; } } self eqon(); } //Function Number: 83 ai_eq() { level.set_eq_func[0] = ::set_eq_on; level.set_eq_func[1] = ::set_eq_off; var_00 = 0; for(;;) { while(!level.ai_array.size) { wait 0.05; } waittillframeend; waittillframeend; var_01 = getarraykeys(level.ai_array); var_00++; if(var_00 >= var_01.size) { var_00 = 0; } var_02 = level.ai_array[var_01[var_00]]; var_02 [[ level.set_eq_func[sighttracepassed(level.player geteye(),var_02 geteye(),0,undefined)] ]](); wait 0.05; } } //Function Number: 84 set_eq_on() { self eqon(); } //Function Number: 85 set_eq_off() { self eqoff(); } //Function Number: 86 add_tokens_to_trigger_flags(param_00) { for(var_01 = 0;var_01 < param_00.size;var_01++) { var_02 = param_00[var_01]; if(!isdefined(level.trigger_flags[var_02])) { level.trigger_flags[var_02] = []; } level.trigger_flags[var_02][level.trigger_flags[var_02].size] = self; } } //Function Number: 87 script_flag_false_trigger(param_00) { var_01 = common_scripts\utility::create_flags_and_return_tokens(param_00.script_flag_false); param_00 add_tokens_to_trigger_flags(var_01); param_00 common_scripts\utility::update_trigger_based_on_flags(); } //Function Number: 88 script_flag_true_trigger(param_00) { var_01 = common_scripts\utility::create_flags_and_return_tokens(param_00.script_flag_true); param_00 add_tokens_to_trigger_flags(var_01); param_00 common_scripts\utility::update_trigger_based_on_flags(); } //Function Number: 89 wait_for_flag(param_00) { for(var_01 = 0;var_01 < param_00.size;var_01++) { level endon(param_00[var_01]); } level waittill("foreverrr"); } //Function Number: 90 trigger_multiple_physics(param_00) { var_01 = []; var_02 = common_scripts\utility::getstructarray(param_00.target,"targetname"); var_03 = getentarray(param_00.target,"targetname"); foreach(var_05 in var_03) { var_06 = spawnstruct(); var_06.origin = var_05.origin; var_06.script_parameters = var_05.script_parameters; var_06.script_damage = var_05.script_damage; var_06.radius = var_05.radius; var_02[var_02.size] = var_06; var_05 delete(); } param_00.org = var_02[0].origin; param_00 waittill("trigger"); param_00 maps\_utility::script_delay(); foreach(var_06 in var_02) { var_09 = var_06.radius; var_0A = var_06.script_parameters; var_0B = var_06.script_damage; if(!isdefined(var_09)) { var_09 = 350; } if(!isdefined(var_0A)) { var_0A = 0.25; } setdvar("tempdvar",var_0A); var_0A = getdvarfloat("tempdvar"); if(isdefined(var_0B)) { radiusdamage(var_06.origin,var_09,var_0B,var_0B * 0.5); } physicsexplosionsphere(var_06.origin,var_09,var_09 * 0.5,var_0A); } } //Function Number: 91 trigger_multiple_friendly_stop_respawn(param_00) { for(;;) { param_00 waittill("trigger"); common_scripts\utility::flag_clear("respawn_friendlies"); } } //Function Number: 92 trigger_multiple_friendly_respawn(param_00) { param_00 endon("death"); var_01 = getent(param_00.target,"targetname"); var_02 = undefined; if(isdefined(var_01)) { var_02 = var_01.origin; var_01 delete(); } else { var_01 = common_scripts\utility::getstruct(param_00.target,"targetname"); var_02 = var_01.origin; } for(;;) { param_00 waittill("trigger"); level.respawn_spawner_org = var_02; common_scripts\utility::flag_set("respawn_friendlies"); wait 0.5; } } //Function Number: 93 friendly_respawn_clear(param_00) { for(;;) { param_00 waittill("trigger"); common_scripts\utility::flag_clear("respawn_friendlies"); wait 0.5; } } //Function Number: 94 trigger_multiple_do_radius_damage(param_00) { param_00 waittill("trigger"); param_00 do_radius_damage_from_target(); } //Function Number: 95 do_radius_damage_from_target() { var_00 = 80; if(isdefined(self.radius)) { var_00 = self.radius; } var_01 = maps\_utility::get_all_target_ents(); foreach(var_03 in var_01) { radiusdamage(var_03.origin,var_00,5000,5000); } self delete(); } //Function Number: 96 trigger_damage_do_radius_damage(param_00) { for(;;) { param_00 waittill("damage",var_01,var_02,var_03,var_04,var_05,var_06,var_07); if(!isalive(var_02)) { continue; } if(distance(var_02.origin,param_00.origin) > 940) { continue; } break; } param_00 do_radius_damage_from_target(); } //Function Number: 97 radio_trigger(param_00) { param_00 waittill("trigger"); maps\_utility::radio_dialogue(param_00.script_noteworthy); } //Function Number: 98 background_block() { self.origin = self.origin - self.script_bg_offset; } //Function Number: 99 trigger_ignore(param_00) { thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_ignoreme,::maps\_utility::get_ignoreme); } //Function Number: 100 trigger_pacifist(param_00) { thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_pacifist,::maps\_utility::get_pacifist); } //Function Number: 101 trigger_runs_function_on_touch(param_00,param_01,param_02) { for(;;) { param_00 waittill("trigger",var_03); if(!isalive(var_03)) { continue; } if(var_03 [[ param_02 ]]()) { continue; } var_03 thread touched_trigger_runs_func(param_00,param_01); } } //Function Number: 102 touched_trigger_runs_func(param_00,param_01) { self endon("death"); self.ignoreme = 1; [[ param_01 ]](1); self.ignoretriggers = 1; wait 1; self.ignoretriggers = 0; while(self istouching(param_00)) { wait 1; } [[ param_01 ]](0); } //Function Number: 103 trigger_turns_off(param_00) { param_00 waittill("trigger"); param_00 common_scripts\utility::trigger_off(); if(!isdefined(param_00.script_linkto)) { return; } var_01 = strtok(param_00.script_linkto," "); for(var_02 = 0;var_02 < var_01.size;var_02++) { common_scripts\utility::array_thread(getentarray(var_01[var_02],"script_linkname"),::common_scripts\utility::trigger_off); } } //Function Number: 104 set_player_viewhand_model(param_00) { level.player_viewhand_model = param_00; precachemodel(level.player_viewhand_model); } //Function Number: 105 trigger_hint(param_00) { if(!isdefined(level.displayed_hints)) { level.displayed_hints = []; } waittillframeend; var_01 = param_00.script_hint; param_00 waittill("trigger",var_02); if(isdefined(level.displayed_hints[var_01])) { return; } level.displayed_hints[var_01] = 1; var_02 maps\_utility::display_hint(var_01); } //Function Number: 106 stun_test() { if(getdvar("stuntime") == "") { setdvar("stuntime","1"); } level.player.allowads = 1; for(;;) { self waittill("damage"); if(getdvarint("stuntime") == 0) { continue; } thread stun_player(self playerads()); } } //Function Number: 107 stun_player(param_00) { self notify("stun_player"); self endon("stun_player"); if(param_00 > 0.3) { if(level.player.allowads == 1) { level.player playsound("player_hit_while_ads"); } level.player.allowads = 0; level.player allowads(0); } level.player setspreadoverride(20); wait getdvarint("stuntime"); level.player allowads(1); level.player.allowads = 1; level.player resetspreadoverride(); } //Function Number: 108 throw_grenade_at_player_trigger(param_00) { param_00 endon("death"); param_00 waittill("trigger"); maps\_utility::throwgrenadeatplayerasap(); } //Function Number: 109 flag_on_cleared(param_00) { var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } for(;;) { param_00 waittill("trigger"); wait 1; if(param_00 found_toucher()) { continue; } break; } common_scripts\utility::flag_set(var_01); } //Function Number: 110 found_toucher() { var_00 = getaiarray("bad_guys"); for(var_01 = 0;var_01 < var_00.size;var_01++) { var_02 = var_00[var_01]; if(!isalive(var_02)) { continue; } if(var_02 istouching(self)) { return 1; } wait 0.1; } var_00 = getaiarray("bad_guys"); for(var_01 = 0;var_01 < var_00.size;var_01++) { var_02 = var_00[var_01]; if(var_02 istouching(self)) { return 1; } } return 0; } //Function Number: 111 trigger_delete_on_touch(param_00) { for(;;) { param_00 waittill("trigger",var_01); if(isdefined(var_01)) { var_01 delete(); } } } //Function Number: 112 flag_set_touching(param_00) { var_01 = param_00 maps\_utility::get_trigger_flag(); if(!isdefined(level.flag[var_01])) { common_scripts\utility::flag_init(var_01); } for(;;) { param_00 waittill("trigger",var_02); param_00 maps\_utility::script_delay(); if(isalive(var_02) && var_02 istouching(param_00) && isdefined(param_00)) { common_scripts\utility::flag_set(var_01); } while(isalive(var_02) && var_02 istouching(param_00) && isdefined(param_00)) { wait 0.25; } common_scripts\utility::flag_clear(var_01); } } //Function Number: 113 setobjectivetextcolors() { var_00 = "1.0 1.0 1.0"; var_01 = "0.9 0.9 0.9"; var_02 = "0.85 0.85 0.85"; if(level.script == "armada") { setsaveddvar("con_typewriterColorBase",var_01); return; } setsaveddvar("con_typewriterColorBase",var_00); } //Function Number: 114 ammo_pickup(param_00) { var_01 = []; if(param_00 == "grenade_launcher") { } else if(var_01 == "rpg") { } else if(var_01 == "c4") { } else if(var_01 == "claymore") { } else if(var_01 == "556") { } else if(var_01 == "762") { } else if(var_01 == "45") { } else if(var_01 == "pistol") { } var_02 = spawn("trigger_radius",self.origin,0,25,32); for(;;) { common_scripts\utility::flag_wait("allow_ammo_pickups"); var_02 waittill("alt_m4_grenadier",var_7B[var_01.size],"alt_m4m203_acog",var_7B[var_7B.size],"alt_m4m203_acog_payback",var_7B[var_7B.size],"alt_m4m203_eotech",var_7B[var_7B.size],"alt_m4m203_motion_tracker",var_7B[var_7B.size],"alt_m4m203_reflex",var_7B[var_7B.size],"alt_m4m203_reflex_arctic",var_7B[var_7B.size],"alt_m4m203_silencer",var_7B[var_7B.size],"alt_m4m203_silencer_reflex",var_7B[var_7B.size],"alt_m16_grenadier",var_7B[var_7B.size],"alt_ak47_grenadier",var_7B[var_7B.size],"alt_ak47_desert_grenadier",var_7B[var_7B.size],"alt_ak47_digital_grenadier",var_7B[var_7B.size],"alt_ak47_fall_grenadier",var_7B[var_7B.size],"alt_ak47_woodland_grenadier",var_7B[var_7B.size],"rpg",var_7B[var_7B.size],"rpg_player",var_7B[var_7B.size],"rpg_straight",var_7B[var_7B.size],"c4",var_7B[var_7B.size],"claymore",var_7B[var_7B.size],"m4_grenadier",var_7B[var_7B.size],"m4_grunt",var_7B[var_7B.size],"m4_sd_cloth",var_7B[var_7B.size],"m4_shotgun",var_7B[var_7B.size],"m4_silencer",var_7B[var_7B.size],"m4_silencer_acog",var_7B[var_7B.size],"m4m203_acog",var_7B[var_7B.size],"m4m203_acog_payback",var_7B[var_7B.size],"m4m203_eotech",var_7B[var_7B.size],"m4m203_motion_tracker",var_7B[var_7B.size],"m4m203_reflex",var_7B[var_7B.size],"m4m203_reflex_arctic",var_7B[var_7B.size],"m4m203_silencer",var_7B[var_7B.size],"m4m203_silencer_reflex",var_7B[var_7B.size],"m4m203_silencer",var_7B[var_7B.size],"ak47",var_7B[var_7B.size],"ak47_acog",var_7B[var_7B.size],"ak47_eotech",var_7B[var_7B.size],"ak47_grenadier",var_7B[var_7B.size],"ak47_reflex",var_7B[var_7B.size],"ak47_shotgun",var_7B[var_7B.size],"ak47_silencer",var_7B[var_7B.size],"ak47_thermal",var_7B[var_7B.size],"ak47_desert",var_7B[var_7B.size],"ak47_desert_acog",var_7B[var_7B.size],"ak47_desert_eotech",var_7B[var_7B.size],"ak47_desert_grenadier",var_7B[var_7B.size],"ak47_desert_reflex",var_7B[var_7B.size],"ak47_digital",var_7B[var_7B.size],"ak47_digital_acog",var_7B[var_7B.size],"ak47_digital_eotech",var_7B[var_7B.size],"ak47_digital_grenadier",var_7B[var_7B.size],"ak47_digital_reflex",var_7B[var_7B.size],"ak47_fall",var_7B[var_7B.size],"ak47_fall_acog",var_7B[var_7B.size],"ak47_fall_eotech",var_7B[var_7B.size],"ak47_fall_grenadier",var_7B[var_7B.size],"ak47_fall_reflex",var_7B[var_7B.size],"ak47_woodland",var_7B[var_7B.size],"ak47_woodland_acog",var_7B[var_7B.size],"ak47_woodland_eotech",var_7B[var_7B.size],"ak47_woodland_grenadier",var_7B[var_7B.size],"ak47_woodland_reflex",var_7B[var_7B.size],"ump45",var_7B[var_7B.size],"ump45_acog",var_7B[var_7B.size],"ump45_eotech",var_7B[var_7B.size],"ump45_reflex",var_7B[var_7B.size],"ump45_silencer",var_7B[var_7B.size],"ump45_arctic",var_7B[var_7B.size],"ump45_arctic_acog",var_7B[var_7B.size],"ump45_arctic_eotech",var_7B[var_7B.size],"ump45_arctic_reflex",var_7B[var_7B.size],"ump45_digital",var_7B[var_7B.size],"ump45_digital_acog",var_7B[var_7B.size],"ump45_digital_eotech",var_7B[var_7B.size],"ump45_digital_reflex",var_7B[var_7B.size],"beretta",var_7B[var_7B.size],"beretta393",var_7B[var_7B.size],"usp",var_7B[var_7B.size],"usp_scripted",var_7B[var_7B.size],"usp_silencer",var_7B[var_7B.size],"glock",var_7B[var_7B.size],"trigger",var_03); if(!common_scripts\utility::flag("allow_ammo_pickups")) { continue; } if(!isdefined(var_03)) { continue; } if(!isplayer(var_03)) { continue; } var_04 = undefined; var_05 = undefined; var_06 = var_03 getweaponslistall(); for(var_07 = 0;var_07 < var_06.size;var_07++) { for(var_08 = 0;var_08 < var_7B.size;var_08++) { if(var_06[var_07] == var_7B[var_08]) { var_04 = var_06[var_07]; } } } if(!isdefined(var_04) && var_01 == "claymore") { var_05 = 1; var_04 = "claymore"; break; } if(!isdefined(var_04) && var_01 == "c4") { var_05 = 1; var_04 = "c4"; break; } if(!isdefined(var_04)) { continue; } if(var_03 getfractionmaxammo(var_04) >= 1) { continue; } break; } if(isdefined(var_05)) { var_03 giveweapon(var_04); } else { var_09 = 1; if(var_01 == "556" || var_01 == "762") { var_09 = 30; } else if(var_01 == "45") { var_09 = 25; } else if(var_01 == "pistol") { var_09 = 15; } var_03 setweaponammostock(var_04,var_03 getweaponammostock(var_04) + var_09); } var_03 playlocalsound("grenade_pickup"); var_02 delete(); if(isdefined(self)) { self delete(); } } //Function Number: 115 get_script_linkto_targets() { var_00 = []; if(!isdefined(self.script_linkto)) { return var_00; } var_01 = strtok(self.script_linkto," "); for(var_02 = 0;var_02 < var_01.size;var_02++) { var_03 = var_01[var_02]; var_04 = getent(var_03,"script_linkname"); if(isdefined(var_04)) { var_00[var_00.size] = var_04; } } return var_00; } //Function Number: 116 delete_link_chain(param_00) { param_00 waittill("trigger"); var_01 = param_00 get_script_linkto_targets(); common_scripts\utility::array_thread(var_01,::delete_links_then_self); } //Function Number: 117 delete_links_then_self() { var_00 = get_script_linkto_targets(); common_scripts\utility::array_thread(var_00,::delete_links_then_self); self delete(); } //Function Number: 118 trigger_fog(param_00) { waittillframeend; var_01 = param_00.script_fogset_start; var_02 = param_00.script_fogset_end; param_00.sunfog_enabled = 0; if(isdefined(var_01) && isdefined(var_02)) { var_03 = maps\_utility::get_fog(var_01); var_04 = maps\_utility::get_fog(var_02); param_00.start_neardist = var_03.startdist; param_00.start_fardist = var_03.halfwaydist; param_00.start_color = (var_03.red,var_03.green,var_03.blue); param_00.start_opacity = var_03.maxopacity; param_00.sunfog_enabled = isdefined(var_03.sunred) || isdefined(var_04.sunred); if(isdefined(var_03.sunred)) { param_00.start_suncolor = (var_03.sunred,var_03.sungreen,var_03.sunblue); param_00.start_sundir = var_03.sundir; param_00.start_sunbeginfadeangle = var_03.sunbeginfadeangle; param_00.start_sunendfadeangle = var_03.var_1AF5; param_00.start_sunfogscale = var_03.normalfogscale; } else if(param_00.sunfog_enabled) { param_00.start_suncolor = param_00.start_color; param_00.start_sundir = (0,0,0); param_00.start_sunbeginfadeangle = 0; param_00.start_sunendfadeangle = 90; param_00.start_sunfogscale = 1; } param_00.end_neardist = var_04.startdist; param_00.end_fardist = var_04.halfwaydist; param_00.end_color = (var_03.red,var_03.green,var_03.blue); param_00.end_opacity = var_04.maxopacity; if(isdefined(var_04.sunred)) { param_00.end_suncolor = (var_04.sunred,var_04.sungreen,var_04.sunblue); param_00.end_sundir = var_04.sundir; param_00.end_sunbeginfadeangle = var_04.sunbeginfadeangle; param_00.end_sunendfadeangle = var_04.var_1AF5; param_00.end_sunfogscale = var_04.normalfogscale; } else if(param_00.sunfog_enabled) { param_00.end_suncolor = param_00.end_color; param_00.end_sundir = (0,0,0); param_00.end_sunbeginfadeangle = 0; param_00.end_sunendfadeangle = 90; param_00.end_sunfogscale = 1; } } var_05 = getent(param_00.target,"targetname"); var_06 = var_05.origin; var_07 = undefined; if(isdefined(var_05.target)) { var_08 = getent(var_05.target,"targetname"); var_07 = var_08.origin; } else { var_07 = var_06 + param_00.origin - var_06 * 2; } var_09 = distance(var_06,var_07); for(;;) { param_00 waittill("trigger",var_0A); var_0B = 0; while(var_0A istouching(param_00)) { var_0B = maps\_utility::get_progress(var_06,var_07,var_0A.origin,var_09); var_0B = clamp(var_0B,0,1); param_00 set_fog_progress(var_0B); wait 0.05; } if(var_0B > 0.5) { var_0B = 1; } else { var_0B = 0; } param_00 set_fog_progress(var_0B); } } //Function Number: 119 set_fog_progress(param_00) { var_01 = 1 - param_00; var_02 = self.start_neardist * var_01 + self.end_neardist * param_00; var_03 = self.start_fardist * var_01 + self.end_fardist * param_00; var_04 = self.start_color * var_01 + self.end_color * param_00; var_05 = self.start_opacity; var_06 = self.end_opacity; if(!isdefined(var_05)) { var_05 = 1; } if(!isdefined(var_06)) { var_06 = 1; } var_07 = var_05 * var_01 + var_06 * param_00; if(self.sunfog_enabled) { var_08 = self.start_suncolor * var_01 + self.end_suncolor * param_00; var_09 = self.start_sundir * var_01 + self.end_sundir * param_00; var_0A = self.start_sunbeginfadeangle * var_01 + self.end_sunbeginfadeangle * param_00; var_0B = self.start_sunendfadeangle * var_01 + self.end_sunendfadeangle * param_00; var_0C = self.start_sunfogscale * var_01 + self.end_sunfogscale * param_00; setexpfog(var_02,var_03,var_04[0],var_04[1],var_04[2],var_07,0.4,var_08[0],var_08[1],var_08[2],var_09,var_0A,var_0B,var_0C); return; } setexpfog(var_02,var_03,var_04[0],var_04[1],var_04[2],var_07,0.4); } //Function Number: 120 remove_level_first_frame() { wait 0.05; level.first_frame = -1; } //Function Number: 121 no_crouch_or_prone_think(param_00) { common_scripts\utility::array_thread(level.players,::no_crouch_or_prone_think_for_player,param_00); } //Function Number: 122 no_crouch_or_prone_think_for_player(param_00) { for(;;) { param_00 waittill("trigger",var_01); if(!isdefined(var_01)) { continue; } if(var_01 != self) { continue; } while(var_01 istouching(param_00)) { var_01 allowprone(0); var_01 allowcrouch(0); wait 0.05; } var_01 allowprone(1); var_01 allowcrouch(1); } } //Function Number: 123 no_prone_think(param_00) { common_scripts\utility::array_thread(level.players,::no_prone_think_for_player,param_00); } //Function Number: 124 no_prone_think_for_player(param_00) { for(;;) { param_00 waittill("trigger",var_01); if(!isdefined(var_01)) { continue; } if(var_01 != self) { continue; } while(var_01 istouching(param_00)) { var_01 allowprone(0); wait 0.05; } var_01 allowprone(1); } } //Function Number: 125 load_friendlies() { if(isdefined(game["total characters"])) { var_00 = game["total characters"]; } else { return; } var_01 = getaiarray("allies"); var_02 = var_01.size; var_03 = 0; var_04 = getspawnerteamarray("allies"); var_05 = var_04.size; var_06 = 0; for(;;) { if((var_02 <= 0 && var_05 <= 0) || var_00 <= 0) { return; } if(var_02 > 0) { if(isdefined(var_01[var_03].script_friendname)) { var_02--; var_03++; continue; } var_01[var_03] lib_0144::func_1E5D(); var_01[var_03] thread lib_0144::func_1E62(game["character" + var_00 - 1]); var_02--; var_03++; var_00--; continue; } if(var_05 > 0) { if(isdefined(var_04[var_06].script_friendname)) { var_05--; var_06++; continue; } var_07 = game["character" + var_00 - 1]; maps\_utility::precache(var_07["model"]); maps\_utility::precache(var_07["model"]); var_04[var_06] thread maps\_utility::spawn_setcharacter(game["character" + var_00 - 1]); var_05--; var_06++; var_00--; continue; } } } //Function Number: 126 check_flag_for_stat_tracking(param_00) { if(!common_scripts\utility::issuffix(param_00,"aa_")) { return; } [[ level.sp_stat_tracking_func ]](param_00); } //Function Number: 127 precache_script_models() { waittillframeend; if(!isdefined(level.scr_model)) { return; } var_00 = getarraykeys(level.scr_model); for(var_01 = 0;var_01 < var_00.size;var_01++) { if(isarray(level.scr_model[var_00[var_01]])) { for(var_02 = 0;var_02 < level.scr_model[var_00[var_01]].size;var_02++) { precachemodel(level.scr_model[var_00[var_01]][var_02]); } continue; } precachemodel(level.scr_model[var_00[var_01]]); } } //Function Number: 128 arcademode_save() { var_00 = []; if(var_7B[level.script]) { return; } wait 2.5; var_01 = "levelshots / autosave / autosave_" + level.script + "start"; savegame("levelstart",&"AUTOSAVE_LEVELSTART",var_01,1); } //Function Number: 129 player_death_detection() { setdvar("player_died_recently","0"); thread player_died_recently_degrades(); level maps\_utility::add_wait(::common_scripts\utility::flag_wait,"missionfailed"); level.player maps\_utility::add_wait(::maps\_utility::waittill_msg,"death"); maps\_utility::do_wait_any(); var_00 = []; setdvar("player_died_recently",var_7B[level.gameskill]); } //Function Number: 130 player_died_recently_degrades() { for(;;) { var_00 = getdvarint("player_died_recently",0); if(var_00 > 0) { var_00 = var_00 - 5; setdvar("player_died_recently",var_00); } wait 5; } } //Function Number: 131 trigger_spawngroup(param_00) { waittillframeend; var_01 = param_00.script_spawngroup; if(!isdefined(level.spawn_groups[var_01])) { return; } param_00 waittill("trigger"); var_02 = common_scripts\utility::random(level.spawn_groups[var_01]); foreach(var_04 in var_02) { var_04 maps\_utility::spawn_ai(); } } //Function Number: 132 recon_player() { self notify("new_recon_player"); self endon("new_recon_player"); self waittill("death",var_00,var_01,var_02); if(!isdefined(var_02)) { var_02 = "script_kill"; } var_03 = 0; var_04 = "none"; var_05 = (0,0,0); if(isdefined(var_00)) { var_04 = var_00.classname; var_05 = var_00.origin; var_06 = vectornormalize(var_05 - self.origin); var_07 = anglestoforward(self getplayerangles()); var_03 = vectordot(var_06,var_07); } reconspatialevent(self.origin,"script_player_death: playerid %s, enemy %s, enemyposition %v, enemydotproduct %f, cause %s, weapon %s",self.unique_id,var_04,var_05,var_03,var_01,var_02); if(isdefined(var_00)) { reconspatialevent(var_00.origin,"script_player_killer: playerid %s, enemy %s, playerposition %v, enemydotproduct %f, cause %s, weapon %s",self.unique_id,var_04,self.origin,var_03,var_01,var_02); } } //Function Number: 133 recon_player_downed() { self notify("new_player_downed_recon"); self endon("new_player_downed_recon"); self endon("death"); for(;;) { self waittill("player_downed"); var_00 = getlevelticks() * 0.05; var_01 = var_00; if(isdefined(self.last_downed_time)) { var_00 = var_01 - self.last_downed_time; } self.last_downed_time = var_01; reconspatialevent(self.origin,"script_player_downed: playerid %s, leveltime %d, deltatime %d",self.unique_id,var_01,var_00); } } //Function Number: 134 init_level_players() { level.players = getentarray("player","classname"); for(var_00 = 0;var_00 < level.players.size;var_00++) { level.players[var_00].unique_id = "player" + var_00; } level.player = level.players[0]; if(level.players.size > 1) { level.player2 = level.players[1]; } level notify("level.players initialized"); foreach(var_02 in level.players) { var_02 thread recon_player(); if(maps\_utility::is_specialop()) { var_02 thread recon_player_downed(); } } } //Function Number: 135 kill_all_players_trigger() { self waittill("trigger",var_00); maps\_utility::kill_wrapper(); } //Function Number: 136 trigger_vehicle_spline_spawn(param_00) { param_00 waittill("trigger"); var_01 = getentarray(param_00.target,"targetname"); foreach(var_03 in var_01) { var_03 thread maps\_vehicle::spawn_vehicle_and_attach_to_spline_path(70); wait 0.05; } } //Function Number: 137 trigger_vehicle_spawn(param_00) { param_00 waittill("trigger"); var_01 = getentarray(param_00.target,"targetname"); foreach(var_03 in var_01) { var_03 thread maps\_vehicle::spawn_vehicle_and_gopath(); wait 0.05; } } //Function Number: 138 trigger_dooropen(param_00) { param_00 waittill("trigger"); var_01 = getentarray(param_00.target,"targetname"); var_02 = []; foreach(var_04 in var_02) { var_05 = var_7B[var_04.script_noteworthy]; var_04 connectpaths(); var_04 rotateyaw(var_05,1,0,0.5); } } //Function Number: 139 trigger_glass_break(param_00) { var_01 = getglassarray(param_00.target); if(!isdefined(var_01) || var_01.size == 0) { return; } for(;;) { level waittill("glass_break",var_02); if(var_02 istouching(param_00)) { var_03 = var_02.origin; wait 0.05; var_04 = var_02.origin; var_05 = undefined; if(var_03 != var_04) { var_05 = var_04 - var_03; } if(isdefined(var_05)) { foreach(var_07 in var_01) { destroyglass(var_07,var_05); } break; } else { foreach(var_07 in var_01) { destroyglass(var_07); } break; } } } param_00 delete(); } //Function Number: 140 trigger_vehicle_getin_spawn(param_00) { var_01 = getentarray(param_00.target,"targetname"); foreach(var_03 in var_01) { var_04 = getentarray(var_03.target,"targetname"); foreach(var_06 in var_04) { if(!issubstr(var_06.code_classname,"actor")) { continue; } if(!var_06.spawnflags & 1) { continue; } var_06.dont_auto_ride = 1; } } param_00 waittill("trigger"); var_01 = getentarray(param_00.target,"targetname"); common_scripts\utility::array_thread(var_01,::maps\_utility::add_spawn_function,::vehicle_spawns_targets_and_rides); common_scripts\utility::array_thread(var_01,::maps\_utility::spawn_vehicle); } //Function Number: 141 vehicle_spawns_targets_and_rides() { var_00 = getentarray(self.target,"targetname"); var_01 = []; foreach(var_03 in var_00) { if(var_03.code_classname == "info_vehicle_node") { continue; } var_01[var_01.size] = var_03; } var_01 = maps\_utility::get_array_of_closest(self.origin,var_01); foreach(var_07, var_06 in var_01) { var_06 thread maps\_utility::add_spawn_function(::guy_spawns_and_gets_in_vehicle,self,var_07); } common_scripts\utility::array_thread(var_01,::maps\_utility::spawn_ai); self waittill("guy_entered"); wait 3; thread maps\_vehicle::vehicle_becomes_crashable(); if(!self.riders.size) { return; } maps\_vehicle::gopath(); maps\_vehicle::leave_path_for_spline_path(); } //Function Number: 142 guy_spawns_and_gets_in_vehicle(param_00,param_01) { maps\_vehicle::mount_snowmobile(param_00,param_01); } //Function Number: 143 watchweaponchange() { if(!isdefined(level.friendly_thermal_reflector_effect)) { level.friendly_thermal_reflector_effect = loadfx("misc/thermal_tapereflect_inverted"); } self endon("death"); var_00 = self getcurrentweapon(); if(weap_has_thermal(var_00)) { thread thermal_tracker(); } for(;;) { self waittill("weapon_change",var_01); if(weap_has_thermal(var_01)) { thread thermal_tracker(); continue; } self notify("acogThermalTracker"); } } //Function Number: 144 weap_has_thermal(param_00) { if(!isdefined(param_00)) { return 0; } if(param_00 == "none") { return 0; } if(weaponhasthermalscope(param_00)) { return 1; } return 0; } //Function Number: 145 thermal_tracker() { self endon("death"); self notify("acogThermalTracker"); self endon("acogThermalTracker"); var_00 = 0; for(;;) { var_01 = var_00; var_00 = self playerads(); if(turn_thermal_on(var_00,var_01)) { thermal_effectson(); } else if(turn_thermal_off(var_00,var_01)) { thermal_effectsoff(); } wait 0.05; } } //Function Number: 146 turn_thermal_on(param_00,param_01) { if(param_00 <= param_01) { return 0; } if(param_00 <= 0.65) { return 0; } return !isdefined(self.is_in_thermal_vision); } //Function Number: 147 turn_thermal_off(param_00,param_01) { if(param_00 >= param_01) { return 0; } if(param_00 >= 0.8) { return 0; } return isdefined(self.is_in_thermal_vision); } //Function Number: 148 thermal_effectson() { self.is_in_thermal_vision = 1; var_00 = getaiarray("allies"); foreach(var_02 in var_00) { if(isdefined(var_02.has_thermal_fx)) { continue; } var_02.has_thermal_fx = 1; var_02 thread loop_friendly_thermal_reflector_effect(self.unique_id); } if(maps\_utility::is_coop()) { var_04 = maps\_utility::get_other_player(self); if(!isdefined(var_04.has_thermal_fx)) { var_04.has_thermal_fx = 1; var_04 thread loop_friendly_thermal_reflector_effect(self.unique_id,self); } } } //Function Number: 149 thermal_effectsoff() { self.is_in_thermal_vision = undefined; level notify("thermal_fx_off" + self.unique_id); var_00 = getaiarray("allies"); for(var_01 = 0;var_01 < var_00.size;var_01++) { var_00[var_01].has_thermal_fx = undefined; } if(maps\_utility::is_coop()) { var_02 = maps\_utility::get_other_player(self); var_02.has_thermal_fx = undefined; } } //Function Number: 150 loop_friendly_thermal_reflector_effect(param_00,param_01) { if(isdefined(self.has_no_ir)) { return; } level endon("thermal_fx_off" + param_00); self endon("death"); for(;;) { if(isdefined(param_01)) { playfxontagforclients(level.friendly_thermal_reflector_effect,self,"J_Spine4",param_01); } else { playfxontag(level.friendly_thermal_reflector_effect,self,"J_Spine4"); } wait 0.2; } } //Function Number: 151 claymore_pickup_think_global() { precacheitem("claymore"); self endon("deleted"); self setcursorhint("HINT_NOICON"); self sethintstring(&"WEAPON_CLAYMORE_PICKUP"); self makeusable(); var_00 = weaponmaxammo("claymore") + weaponclipsize("claymore"); if(isdefined(self.script_ammo_clip)) { var_00 = self.script_ammo_clip; } while(var_00 > 0) { self waittill("trigger",var_01); var_01 playsound("weap_pickup"); var_02 = 0; if(!var_01 hasweapon("claymore")) { var_01 giveweapon("claymore"); } else { var_02 = var_01 getammocount("claymore"); } if(isdefined(var_00) && var_00 > 0) { var_00 = var_02 + var_00; var_03 = weaponmaxammo("claymore"); var_04 = weaponclipsize("claymore"); if(var_00 >= var_04) { var_00 = var_00 - var_04; var_01 setweaponammoclip("claymore",var_04); } if(var_00 >= var_03) { var_00 = var_00 - var_03; var_01 setweaponammostock("claymore",var_03); } else if(var_00 > 0) { var_01 setweaponammostock("claymore",var_00); var_00 = 0; } } else { var_01 givemaxammo("claymore"); } var_05 = 4; if(isdefined(var_01.remotemissile_actionslot) && var_01.remotemissile_actionslot == 4) { var_05 = 2; } var_01 setactionslot(var_05,"weapon","claymore"); var_01 switchtoweapon("claymore"); } if(isdefined(self.target)) { var_06 = getentarray(self.target,"targetname"); foreach(var_08 in var_06) { var_08 delete(); } } self makeunusable(); self delete(); } //Function Number: 152 ammo_cache_think_global() { self.use_trigger = spawn("script_model",self.origin + (0,0,28)); self.use_trigger setmodel("tag_origin"); self.use_trigger makeusable(); self.use_trigger setcursorhint("HINT_NOICON"); self.use_trigger sethintstring(&"WEAPON_CACHE_USE_HINT"); thread ammo_icon_think(); for(;;) { self.use_trigger waittill("trigger",var_00); self.use_trigger makeunusable(); var_00 playsound("player_refill_all_ammo"); var_00 disableweapons(); var_01 = var_00 getweaponslistall(); foreach(var_03 in var_01) { if(var_03 == "claymore") { continue; } if(var_03 == "c4") { continue; } var_00 givemaxammo(var_03); var_04 = weaponclipsize(var_03); if(isdefined(var_04)) { if(var_00 getweaponammoclip(var_03) < var_04) { var_00 setweaponammoclip(var_03,var_04); } } } wait 1.5; var_00 enableweapons(); self.use_trigger makeusable(); } } //Function Number: 153 ammo_icon_think() { var_00 = spawn("trigger_radius",self.origin,0,320,72); var_01 = newhudelem(); var_01 setshader("waypoint_ammo",1,1); var_01.alpha = 0; var_01.color = (1,1,1); var_01.x = self.origin[0]; var_01.y = self.origin[1]; var_01.z = self.origin[2] + 16; var_01 setwaypoint(1,1); self.ammo_icon = var_01; self.ammo_icon_trig = var_00; if(isdefined(self.icon_always_show) && self.icon_always_show) { ammo_icon_fade_in(var_01); return; } wait 0.05; for(;;) { var_00 waittill("trigger",var_02); if(!isplayer(var_02)) { continue; } while(var_02 istouching(var_00)) { var_03 = 1; var_04 = var_02 getcurrentweapon(); if(var_04 == "none") { var_03 = 0; } else if(var_02 getfractionmaxammo(var_04) > 0.9) { var_03 = 0; } if(maps\_utility::player_looking_at(self.origin,0.8,1) && var_03) { ammo_icon_fade_in(var_01); continue; } ammo_icon_fade_out(var_01); wait 0.25; } ammo_icon_fade_out(var_01); } } //Function Number: 154 ammo_icon_fade_in(param_00) { if(param_00.alpha != 0) { return; } param_00 fadeovertime(0.2); param_00.alpha = 0.3; wait 0.2; } //Function Number: 155 ammo_icon_fade_out(param_00) { if(param_00.alpha == 0) { return; } param_00 fadeovertime(0.2); param_00.alpha = 0; wait 0.2; } //Function Number: 156 trigger_multiple_visionset(param_00) { var_01 = 0; var_02 = undefined; var_03 = undefined; var_04 = undefined; if(isdefined(param_00.script_visionset_start) && isdefined(param_00.script_visionset_end)) { var_01 = 1; var_03 = getent(param_00.target,"targetname"); if(!isdefined(var_03)) { var_03 = common_scripts\utility::getstruct(param_00.target,"targetname"); } var_04 = getent(var_03.target,"targetname"); if(!isdefined(var_04)) { var_04 = common_scripts\utility::getstruct(var_03.target,"targetname"); } var_03 = var_03.origin; var_04 = var_04.origin; var_02 = distance(var_03,var_04); param_00 init_visionset_progress_trigger(); } var_05 = -1; for(;;) { param_00 waittill("trigger",var_06); if(isplayer(var_06)) { if(var_01) { var_07 = 0; while(var_06 istouching(param_00)) { var_07 = maps\_utility::get_progress(var_03,var_04,var_06.origin,var_02); var_07 = clamp(var_07,0,1); if(var_07 != var_05) { var_05 = var_07; var_06 vision_set_fog_progress(param_00,var_07); } wait 0.05; } if(var_07 < 0.5) { var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset_start,param_00.script_delay); } else { var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset_end,param_00.script_delay); } continue; } var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset,param_00.script_delay); } } } //Function Number: 157 init_visionset_progress_trigger() { if(!isdefined(self.script_delay)) { self.script_delay = 2; } var_00 = maps\_utility::get_vision_set_fog(self.script_visionset_start); var_01 = maps\_utility::get_vision_set_fog(self.script_visionset_end); if(!isdefined(var_00) || !isdefined(var_01)) { return; } var_02 = spawnstruct(); var_02.startdist = var_01.startdist - var_00.startdist; var_02.halfwaydist = var_01.halfwaydist - var_00.halfwaydist; var_02.red = var_01.red - var_00.red; var_02.blue = var_01.blue - var_00.blue; var_02.green = var_01.green - var_00.green; var_02.maxopacity = var_01.maxopacity - var_00.maxopacity; var_02.sunfogenabled = isdefined(var_00.sunfogenabled) || isdefined(var_01.sunfogenabled); var_03 = 0; if(isdefined(var_00.sunred)) { var_03 = var_00.sunred; } var_04 = 0; if(isdefined(var_01.sunred)) { var_04 = var_01.sunred; } var_02.sunred_start = var_03; var_02.sunred = var_04 - var_03; var_05 = 0; if(isdefined(var_00.sungreen)) { var_05 = var_00.sungreen; } var_06 = 0; if(isdefined(var_01.sungreen)) { var_06 = var_01.sungreen; } var_02.sungreen_start = var_05; var_02.sungreen = var_06 - var_05; var_07 = 0; if(isdefined(var_00.sunblue)) { var_07 = var_00.sunblue; } var_08 = 0; if(isdefined(var_01.sunblue)) { var_08 = var_01.sunblue; } var_02.sunblue_start = var_07; var_02.sunblue = var_08 - var_07; var_09 = (0,0,0); if(isdefined(var_00.sundir)) { var_09 = var_00.sundir; } var_0A = (0,0,0); if(isdefined(var_01.sundir)) { var_0A = var_01.sundir; } var_02.sundir_start = var_09; var_02.sundir = var_0A - var_09; var_0B = 0; if(isdefined(var_00.sunbeginfadeangle)) { var_0B = var_00.sunbeginfadeangle; } var_0C = 0; if(isdefined(var_01.sunbeginfadeangle)) { var_0C = var_01.sunbeginfadeangle; } var_02.sunbeginfadeangle_start = var_0B; var_02.sunbeginfadeangle = var_0C - var_0B; var_0D = 0; if(isdefined(var_00.var_1AF5)) { var_0D = var_00.var_1AF5; } var_0E = 0; if(isdefined(var_01.var_1AF5)) { var_0E = var_01.var_1AF5; } var_02.sunendfadeangle_start = var_0D; var_02.var_1AF5 = var_0E - var_0D; var_0F = 0; if(isdefined(var_00.normalfogscale)) { var_0F = var_00.normalfogscale; } var_10 = 0; if(isdefined(var_01.normalfogscale)) { var_10 = var_01.normalfogscale; } var_02.normalfogscale_start = var_0F; var_02.normalfogscale = var_10 - var_0F; self.visionset_diff = var_02; } //Function Number: 158 vision_set_fog_progress(param_00,param_01) { maps\_utility::init_self_visionset(); if(param_01 < 0.5) { self.vision_set_transition_ent.vision_set = param_00.script_visionset_start; } else { self.vision_set_transition_ent.vision_set = param_00.script_visionset_end; } self.vision_set_transition_ent.time = 0; if(param_00.script_visionset_start == param_00.script_visionset_end) { return; } self visionsetnakedforplayer_lerp(param_00.script_visionset_start,param_00.script_visionset_end,param_01); var_02 = maps\_utility::get_vision_set_fog(param_00.script_visionset_start); var_03 = maps\_utility::get_vision_set_fog(param_00.script_visionset_end); var_04 = param_00.visionset_diff; var_05 = spawnstruct(); var_05.startdist = var_02.startdist + var_04.startdist * param_01; var_05.halfwaydist = var_02.halfwaydist + var_04.halfwaydist * param_01; var_05.halfwaydist = max(1,var_05.halfwaydist); var_05.red = var_02.red + var_04.red * param_01; var_05.green = var_02.green + var_04.green * param_01; var_05.blue = var_02.blue + var_04.blue * param_01; var_05.maxopacity = var_02.maxopacity + var_04.maxopacity * param_01; if(var_04.sunfogenabled) { var_05.sunfogenabled = 1; var_05.sunred = var_04.sunred_start + var_04.sunred * param_01; var_05.sungreen = var_04.sungreen_start + var_04.sungreen * param_01; var_05.sunblue = var_04.sunblue_start + var_04.sunblue * param_01; var_05.sundir = var_04.sundir_start + var_04.sundir * param_01; var_05.sunbeginfadeangle = var_04.sunbeginfadeangle_start + var_04.sunbeginfadeangle * param_01; var_05.var_1AF5 = var_04.sunendfadeangle_start + var_04.var_1AF5 * param_01; var_05.normalfogscale = var_04.normalfogscale_start + var_04.normalfogscale * param_01; } maps\_utility::set_fog_to_ent_values(var_05,0.05); } //Function Number: 159 window_destroy() { var_00 = getglass(self.target); if(!isdefined(var_00)) { return; } level waittillmatch(var_00,"glass_destroyed"); self delete(); } //Function Number: 160 global_empty_callback(param_00,param_01,param_02,param_03,param_04) { } //Function Number: 161 trigger_multiple_compass(param_00) { var_01 = param_00.script_parameters; if(!isdefined(level.minimap_image)) { level.minimap_image = ""; } for(;;) { param_00 waittill("trigger"); if(level.minimap_image != var_01) { maps\_compass::setupminimap(var_01); } } } //Function Number: 162 assign_fx_to_trigger(param_00,param_01,param_02) { if(isdefined(param_00.v["soundalias"]) && param_00.v["soundalias"] != "nil") { if(!isdefined(param_00.v["stopable"]) || !param_00.v["stopable"]) { return; } } param_02.origin = param_00.v["origin"]; if(param_02 istouching(param_01)) { param_01.fx[param_01.fx.size] = param_00; } } //Function Number: 163 trigger_multiple_fx_volume(param_00) { var_01 = spawn("script_origin",(0,0,0)); param_00.fx = []; foreach(var_03 in level.createfxent) { assign_fx_to_trigger(var_03,param_00,var_01); } var_01 delete(); if(!isdefined(param_00.target)) { return; } var_05 = getentarray(param_00.target,"targetname"); foreach(var_07 in var_05) { switch(var_07.classname) { case "trigger_multiple_fx_volume_on": var_07 thread trigger_multiple_fx_trigger_on_think(param_00); break; case "trigger_multiple_fx_volume_off": var_07 thread trigger_multiple_fx_trigger_off_think(param_00); break; default: break; } } } //Function Number: 164 trigger_multiple_fx_trigger_on_think(param_00) { for(;;) { self waittill("trigger"); common_scripts\utility::array_thread(param_00.fx,::maps\_utility::restarteffect); wait 1; } } //Function Number: 165 trigger_multiple_fx_trigger_off_think(param_00) { wait 1; common_scripts\utility::array_thread(param_00.fx,::common_scripts\utility::pauseeffect); for(;;) { self waittill("trigger"); common_scripts\utility::array_thread(param_00.fx,::common_scripts\utility::pauseeffect); wait 1; } } //Function Number: 166 weapon_list_debug() { common_scripts\utility::create_dvar("weaponlist","0"); if(!getdvarint("weaponlist")) { return; } var_00 = getentarray(); var_01 = []; foreach(var_03 in var_00) { if(!isdefined(var_03.code_classname)) { continue; } if(issubstr(var_03.code_classname,"weapon")) { var_01[var_03.classname] = 1; } } foreach(var_06 in var_01) { } var_08 = getspawnerarray(); var_09 = []; foreach(var_0B in var_08) { var_09[var_0B.code_classname] = 1; } foreach(var_06 in var_09) { } } //Function Number: 167 slowmo_system_init() { level.slowmo = spawnstruct(); slowmo_system_defaults(); notifyoncommand("_cheat_player_press_slowmo","+melee"); notifyoncommand("_cheat_player_press_slowmo","+melee_breath"); notifyoncommand("_cheat_player_press_slowmo","+melee_zoom"); } //Function Number: 168 slowmo_system_defaults() { level.slowmo.lerp_time_in = 0; level.slowmo.lerp_time_out = 0.25; level.slowmo.speed_slow = 0.4; level.slowmo.speed_norm = 1; } //Function Number: 169 add_no_game_starts() { var_00 = getentarray("script_origin_start_nogame","classname"); if(!var_00.size) { return; } foreach(var_02 in var_00) { if(!isdefined(var_02.script_startname)) { continue; } maps\_utility::add_start("no_game_" + var_02.script_startname,::start_nogame); } } //Function Number: 170 do_no_game_start() { if(!maps\_utility::is_no_game_start()) { return; } setsaveddvar("ufoHitsTriggers","1"); level.stop_load = 1; if(isdefined(level.custom_no_game_setupfunc)) { level [[ level.custom_no_game_setupfunc ]](); } maps\_loadout::init_loadout(); thread maps\_audio::aud_init(); maps\_global_fx::main(); do_no_game_start_teleport(); common_scripts\utility::array_call(getentarray("truckjunk","targetname"),::delete); common_scripts\utility::array_call(getentarray("truckjunk","script_noteworthy"),::delete); level waittill("eternity"); } //Function Number: 171 do_no_game_start_teleport() { var_00 = getentarray("script_origin_start_nogame","classname"); if(!var_00.size) { return; } var_00 = sortbydistance(var_00,level.player.origin); if(level.start_point == "no_game") { level.player maps\_utility::teleport_player(var_00[0]); return; } var_01 = getsubstr(level.start_point,8); var_02 = 0; foreach(var_04 in var_00) { if(!isdefined(var_04.script_startname)) { continue; } if(var_01 != var_04.script_startname) { continue; } if(isdefined(var_04.script_visionset)) { maps\_utility::vision_set_fog_changes(var_04.script_visionset,0); } level.player maps\_utility::teleport_player(var_04); var_02 = 1; break; } if(!var_02) { level.player maps\_utility::teleport_player(var_00[0]); } }