// IW6 GSC SOURCE // Generated by https://github.com/xensik/gsc-tool main() { maps\mp\mp_dome_ns_precache::main(); anim_precache(); maps\createart\mp_dome_ns_art::main(); maps\mp\mp_dome_ns_fx::main(); common_scripts\_pipes::main(); level.mapcustomcratefunc = ::dome_nscustomcratefunc; level.mapcustomkillstreakfunc = ::dome_nscustomkillstreakfunc; level.mapcustombotkillstreakfunc = ::dome_nscustombotkillstreakfunc; level.deployableboxgiveweaponfunc = maps\mp\mp_alien_weapon::give_alien_weapon; maps\mp\_load::main(); mp_dome_ns_flag_init(); setdvar( "r_globalGenericMaterialScale", 4.0 ); maps\mp\_compass::setupminimap( "compass_map_mp_dome_ns" ); setdvar( "r_lightGridEnableTweaks", 1 ); setdvar( "r_lightGridIntensity", 1.33 ); setdvar( "r_reactiveMotionWindAmplitudeScale", 0.4 ); setdvar( "r_reactiveMotionPlayerRadius", 20.0 ); game["attackers"] = "allies"; game["defenders"] = "axis"; alien_weapon_setup(); thread auto_door_setup(); thread crane_platform(); thread always_open_door(); maps\mp\mp_alien_weapon::init(); if ( level.ps3 ) { setdvar( "sm_sunShadowScale", "0.3" ); setdvar( "sm_sunsamplesizenear", ".15" ); } else if ( level.xenon ) { setdvar( "sm_sunShadowScale", "0.55" ); setdvar( "sm_sunsamplesizenear", ".25" ); } else setdvar( "sm_sunShadowScale", "1.0" ); maps\mp\_utility::setdvar_cg_ng( "r_specularColorScale", 3.0, 7.5 ); level.pipesdamage = 0; thread maps\mp\_dlcalienegg::setupeggformap( "alienEasterEgg" ); } mp_dome_ns_flag_init() { common_scripts\utility::flag_init( "crane_usable" ); common_scripts\utility::flag_init( "misters_on" ); } set_up_shootable_pipes() { var_0 = getentarray( "pipe_shootable", "targetname" ); foreach ( var_2 in var_0 ) var_2.script_noteworthy = "steam"; } anim_precache() { precachempanim( "mp_dome_ns_crane_cargo_01" ); precachempanim( "mp_dome_ns_crane_cargo_02" ); precachempanim( "mp_dome_ns_crane_cargo_start" ); precachempanim( "mp_dome_ns_crane_01" ); precachempanim( "mp_dome_ns_crane_02" ); precachempanim( "mp_dome_ns_crane_start" ); precachempanim( "mp_dome_ns_showerdoor_open_l" ); precachempanim( "mp_dome_ns_showerdoor_close_l" ); precachempanim( "mp_dome_ns_showerdoor_open_r" ); precachempanim( "mp_dome_ns_showerdoor_close_r" ); precachemodel( "mp_dns_crane_debris" ); } alien_weapon_setup() { var_0 = getent( "alien_weapon_trigger", "targetname" ); thread alien_weapon_trigger_watcher( var_0 ); } alien_weapon_trigger_watcher( var_0 ) { var_0 makeunusable(); common_scripts\utility::flag_wait( "crane_usable" ); var_1 = getent( "platform_origin", "targetname" ); var_0 makeusable(); var_0 enablelinkto(); var_0 linkto( var_1 ); var_0 sethintstring( &"MP_DOME_NS_GET_ALIEN_GUN" ); for (;;) { if ( level.remaining_alien_weapons == 0 ) break; var_0 waittill( "trigger", var_2 ); var_2 maps\mp\mp_alien_weapon::give_alien_weapon(); } var_3 = getent( "alien_gun_model", "targetname" ); var_3 hide(); var_0 makeunusable(); var_0 sethintstring( "" ); } #using_animtree("animated_props_dlc2"); crane_platform() { thread crane_available_check(); var_0 = getent( "het_bed_proxy", "targetname" ); var_0 delete(); var_1 = 2; level.platform_lights = []; var_2 = getent( "platform_origin", "targetname" ); var_3 = getent( "moving_platform_model", "targetname" ); var_4 = getent( "alien_gun_model", "targetname" ); var_5 = getent( "platform_sfx_origin", "targetname" ); var_6 = getent( "platform_death_trigger", "targetname" ); var_7 = getent( "dome_crane", "targetname" ); var_8 = getentarray( "moving_platform", "targetname" ); var_8[var_8.size] = var_3; var_8[var_8.size] = var_4; var_9 = getent( "side_blockerB", "targetname" ); var_10 = getent( "arm_base_jnt_collision", "targetname" ); var_11 = getent( "arm_mid_jnt_collision", "targetname" ); var_12 = getent( "arm_end_jnt_collision", "targetname" ); var_13 = getent( "operators_cab_jnt_collision", "targetname" ); var_14 = getent( "hook_jnt_collision", "targetname" ); var_10 linkto( var_7, "arm_base_jnt" ); var_11 linkto( var_7, "arm_mid_jnt" ); var_12 linkto( var_7, "arm_end_jnt" ); var_13 linkto( var_7, "operators_cab_jnt" ); var_14 linkto( var_7, "hook_jnt" ); var_10.destroyairdroponcollision = 1; var_11.destroyairdroponcollision = 1; var_12.destroyairdroponcollision = 1; var_13.destroyairdroponcollision = 1; var_14.destroyairdroponcollision = 1; var_10.no_moving_platfrom_death = 1; var_11.no_moving_platfrom_death = 1; var_12.no_moving_platfrom_death = 1; var_13.no_moving_platfrom_death = 1; var_14.no_moving_platfrom_death = 1; var_15 = getentarray( "gate_watcher", "targetname" ); var_16 = getent( "crane_occupied_watcher", "targetname" ); foreach ( var_18 in var_15 ) { var_18 enablelinkto(); var_18 linkto( var_2 ); } var_6 enablelinkto(); var_6 linkto( var_2 ); var_16 enablelinkto(); var_16 linkto( var_2 ); thread disable_drones_watcher( var_16 ); common_scripts\utility::waitframe(); var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_start" ); var_7 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_start" ); wait 1; foreach ( var_21 in var_8 ) { var_21 linkto( var_2, "tag_origin" ); var_21.destroyairdroponcollision = 1; } var_5 linkto( var_2, "tag_origin" ); var_9 solid(); var_9 connectpaths(); var_9 notsolid(); var_23 = getent( "crane_gate_blocker", "targetname" ); var_23 linkto( var_2 ); var_23.no_moving_platfrom_death = 1; var_24 = getent( "crane_audio_org", "targetname" ); var_25 = 1; common_scripts\utility::flag_wait( "crane_usable" ); objective_add( 31, "active", var_3.origin, "waypoint_man_basket" ); objective_onentitywithrotation( 31, var_3 ); var_23 unlink(); var_23 notsolid(); wait 0.1; var_23 linkto( var_2 ); var_26 = getent( "platform_toggle_triggerA", "targetname" ); var_26 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" ); var_26 makeusable(); var_27 = getent( "platform_toggle_triggerB", "targetname" ); var_27 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" ); var_27 makeunusable(); thread gate_watcher( var_15, var_26 ); thread gate_watcher( var_15, var_27 ); for (;;) { level waittill( "crane_triggered" ); thread fx_crane_light( var_5 ); crane_gate_move( var_23, var_2, "down" ); if ( var_25 == 1 ) { var_26 playsound( "scn_crane_button_activate" ); var_26 makeunusable(); var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_01" ); var_3 scriptmodelplayanim( "mp_dome_ns_crane_cargo_01_gate" ); var_7 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_01" ); var_28 = getanimlength( %mp_dome_ns_crane_cargo_01_gate ); var_29 = getnotetracktimes( %mp_dome_ns_crane_cargo_01_gate, "gate_open" ); var_30 = var_28 * var_29[0]; } else { var_27 playsound( "scn_crane_button_activate" ); var_27 makeunusable(); var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_02" ); var_3 scriptmodelplayanim( "mp_dome_ns_crane_cargo_02_gate" ); var_7 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_02" ); var_29 = getnotetracktimes( %mp_dome_ns_crane_cargo_02_gate, "gate_open" ); var_28 = getanimlength( %mp_dome_ns_crane_cargo_02_gate ); var_30 = var_28 * var_29[0]; var_9 solid(); var_9 connectpaths(); var_9 notsolid(); } thread sfx_crane_bar( var_25, 0, "down" ); var_24 thread sfx_crane_start(); var_5 thread sfx_crane_platform_start(); foreach ( var_21 in var_8 ) { var_21.unresolved_collision_func = ::crane_damage_manager; var_21.unresolved_collision_notify_min = 1; var_21.unresolved_collision_kill = 1; var_21.owner = level.triggerer; } thread sfx_crane_bar( var_25, var_30, "up" ); wait( var_30 ); crane_gate_move( var_23, var_2, "up" ); var_6 thread death_trigger_manager(); if ( var_25 == 1 ) { var_9 solid(); var_9 disconnectpaths(); var_9 notsolid(); var_33 = var_28 - var_30; var_24 thread sfx_crane_stop( var_33, 2 ); var_5 thread sfx_crane_stop_impt( var_33, 0.2 ); } else { var_33 = var_28 - var_30; var_24 thread sfx_crane_stop( var_33, 1.8 ); var_5 thread sfx_crane_stop_impt( var_33, 0.4 ); } wait( var_28 - var_30 ); wait( var_1 ); if ( var_25 == 1 ) { var_27 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" ); var_27 makeusable(); } else { var_26 sethintstring( &"MP_DOME_NS_ACTIVATE_CRANE" ); var_26 makeusable(); } var_25 = var_25 * -1; level notify( "platform_move_done" ); } } death_trigger_manager() { level endon( "platform_move_done" ); for (;;) { var_0 = []; var_1 = maps\mp\agents\_agent_utility::getactiveagentsoftype( "all" ); var_1 = common_scripts\utility::array_combine( var_1, level.players ); foreach ( var_3 in var_1 ) { if ( isplayer( var_3 ) && ( var_3.sessionstate == "intermission" || var_3.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_3 ) ) ) var_1 = common_scripts\utility::array_remove( var_1, var_3 ); } var_0 = self getistouchingentities( var_1 ); foreach ( var_3 in var_0 ) crane_damage_manager( var_3 ); wait 0.1; } } disable_drones_watcher( var_0 ) { for (;;) { if ( isdefined( level.players ) ) break; wait 1; } for (;;) { var_1 = var_0 getistouchingentities( level.players ); foreach ( var_3 in var_1 ) { if ( isdefined( var_3.drones_disabled ) ) continue; var_3.drones_disabled = 1; var_3.seekers_disabled = 1; var_3 thread enable_drones_watcher( var_0 ); } wait 0.05; } } enable_drones_watcher( var_0 ) { if ( !isplayer( self ) ) self endon( "death" ); self endon( "disconnect" ); while ( self istouching( var_0 ) ) wait 0.05; self.drones_disabled = undefined; self.seekers_disabled = undefined; } gate_watcher( var_0, var_1 ) { for (;;) { var_1 waittill( "trigger", var_2 ); var_3 = []; var_4 = []; var_5 = level.players; foreach ( var_7 in var_5 ) { if ( var_7.sessionstate == "intermission" || var_7.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_7 ) ) var_7 = common_scripts\utility::array_remove( var_5, var_7 ); } foreach ( var_10 in var_0 ) { var_4 = var_10 getistouchingentities( var_5 ); var_3 = common_scripts\utility::array_combine( var_3, var_4 ); } if ( var_3.size > 0 ) { var_2 playsoundtoplayer( "alien_miasma_alarm", var_2 ); continue; } level notify( "crane_triggered" ); level.triggerer = var_2; } } crane_gate_move( var_0, var_1, var_2 ) { if ( var_2 == "up" ) { level notify( "basket_descending" ); var_0 notsolid(); } else var_0 solid(); } crane_available_check() { var_0 = getent( "moving_platform_model", "targetname" ); var_1 = getent( "platform_origin", "targetname" ); var_2 = getent( "dome_crane", "targetname" ); level.crane_targets = 3; thread crane_target_setup( "crane_target_1", "arm_base_jnt", 5 ); thread crane_target_setup( "crane_target_2", "arm_mid_jnt", 6 ); thread crane_target_setup( "crane_target_3", "arm_end_jnt", 7 ); while ( level.crane_targets == 3 ) { if ( getdvarint( "scr_activateCrane" ) == 1 ) break; wait 0.05; } var_0 playsound( "scn_dome_crane_platform_01" ); var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_drop1" ); var_0 scriptmodelplayanim( "mp_dome_ns_crane_cargo_drop1_gate" ); var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop1" ); var_3 = getanimlength( %mp_dome_ns_crane_drop1 ); wait( var_3 ); while ( level.crane_targets == 2 ) { if ( getdvarint( "scr_activateCrane" ) == 1 ) break; wait 0.05; } var_0 playsound( "scn_dome_crane_platform_02" ); var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_drop2" ); var_0 scriptmodelplayanim( "mp_dome_ns_crane_cargo_drop2_gate" ); var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop2" ); var_3 = getanimlength( %mp_dome_ns_crane_drop2 ); wait( var_3 ); while ( level.crane_targets == 1 ) { if ( getdvarint( "scr_activateCrane" ) == 1 ) break; wait 0.05; } var_0 playsound( "scn_dome_crane_platform_03" ); var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_cargo_drop3" ); var_0 scriptmodelplayanim( "mp_dome_ns_crane_cargo_drop3_gate" ); var_2 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop3" ); var_4 = spawn( "script_model", var_2.origin ); var_4.angles = var_2.angles; var_4 setmodel( "mp_dns_crane_debris" ); var_4 scriptmodelplayanimdeltamotion( "mp_dome_ns_crane_drop3_debris" ); var_3 = getanimlength( %mp_dome_ns_crane_drop3 ); wait( var_3 - 0.8 ); common_scripts\utility::exploder( 4 ); wait 0.2; var_5 = getentarray( "crane_platform_blocker", "targetname" ); var_6 = getnodearray( "traverse_platform", "targetname" ); foreach ( var_8 in var_6 ) connectnodepair( var_8, getnode( var_8.target, "targetname" ) ); var_10 = getnodearray( "no_agent_spawn_node", "script_noteworthy" ); var_10 common_scripts\utility::array_combine( var_10, var_6 ); foreach ( var_8 in var_10 ) var_8.no_agent_spawn = 1; foreach ( var_14 in var_5 ) { if ( var_14.classname == "script_brushmodel" ) var_14 connectpaths(); var_14 delete(); } wait 1; common_scripts\utility::flag_set( "crane_usable" ); var_0 man_cage_button_fx(); } man_cage_button_fx() { common_scripts\utility::flag_wait( "crane_usable" ); for (;;) { stopfxontag( level._effect["vfx_red_light"], self, "tag_fx_red" ); playfxontag( level._effect["vfx_green_light"], self, "tag_fx_green" ); level waittill( "crane_triggered" ); playfxontag( level._effect["vfx_red_light"], self, "tag_fx_red" ); stopfxontag( level._effect["vfx_green_light"], self, "tag_fx_green" ); level waittill( "platform_move_done" ); } } crane_target_setup( var_0, var_1, var_2 ) { var_3 = getent( var_0, "targetname" ); var_4 = getent( "dome_crane", "targetname" ); var_3 linkto( var_4, var_1 ); if ( level.gametype == "oic" || level.gametype == "gun" || level.gametype == "infect" || level.gametype == "horde" || level.gametype == "sotf" || level.gametype == "sotf_ffa" || maps\mp\_utility::ismlgmatch() ) { var_3 delete(); return; } var_3 setcandamage( 1 ); var_3.health = 100000; for (;;) { var_3 waittill( "damage", var_5, var_6, var_7, var_8, var_9 ); if ( var_5 >= 75 && ( var_9 == "MOD_EXPLOSIVE" || var_9 == "MOD_PROJECTILE_SPLASH" || var_9 == "MOD_PROJECTILE" || var_9 == "MOD_GRENADE_SPLASH" || var_9 == "MOD_GRENADE" || var_9 == "SPLASH" ) ) { var_3 playsound( "scn_dome_crane_explo_01" ); var_3 delete(); level.crane_targets--; common_scripts\utility::exploder( var_2 ); break; } } } crane_damage_manager( var_0 ) { if ( isdefined( level.triggerer ) ) { if ( isdefined( var_0.team ) && var_0.team == level.triggerer.team ) var_0 dodamage( 1000, var_0.origin, self, self, "MOD_CRUSH" ); else var_0 dodamage( 1000, var_0.origin, level.triggerer, self, "MOD_CRUSH" ); } else var_0 dodamage( 1000, var_0.origin, undefined, undefined, "MOD_CRUSH" ); } clean_tube_watcher() { var_0 = getent( "trigger_clean_tube_spray", "targetname" ); for (;;) { var_1 = []; var_2 = maps\mp\agents\_agent_utility::getactiveagentsoftype( "all" ); var_2 = common_scripts\utility::array_combine( var_2, level.players ); var_2 = common_scripts\utility::array_combine( var_2, level.remote_uav ); foreach ( var_4 in var_2 ) { if ( isplayer( var_4 ) && ( var_4.sessionstate == "intermission" || var_4.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_4 ) ) ) var_2 = common_scripts\utility::array_remove( var_2, var_4 ); } common_scripts\utility::waitframe(); var_1 = var_0 getistouchingentities( var_2 ); foreach ( var_4 in var_1 ) { if ( isplayer( var_4 ) ) var_4.drones_disabled = 1; var_4 thread enable_drones_watcher( var_0 ); } if ( var_1.size > 0 ) { activateclientexploder( 70 ); thread sfx_misters_on(); } else thread sfx_misters_off(); wait 0.75; } } door_trigger_watcher( var_0 ) { for (;;) { var_1 = maps\mp\agents\_agent_utility::getactiveagentsoftype( "all" ); var_1 = common_scripts\utility::array_combine( var_1, level.players ); var_1 = common_scripts\utility::array_combine( var_1, level.remote_uav ); foreach ( var_3 in var_1 ) { if ( isplayer( var_3 ) && ( var_3.sessionstate == "intermission" || var_3.sessionstate == "spectator" || !maps\mp\_utility::isreallyalive( var_3 ) ) ) var_1 = common_scripts\utility::array_remove( var_1, var_3 ); } common_scripts\utility::waitframe(); var_5 = var_0 getistouchingentities( var_1 ); if ( var_5.size == 0 ) var_0 notify( "unoccupied" ); else var_0 notify( "occupied" ); wait 0.25; } } always_open_door() { var_0 = getent( "door_open_right", "targetname" ); var_1 = getent( "door_open_left", "targetname" ); var_0 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_l" ); var_1 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_r" ); } auto_door_setup() { for (;;) { if ( isdefined( level.players ) ) break; wait 1; } thread clean_tube_watcher(); var_0 = getentarray( "trigger_automatic_door", "targetname" ); foreach ( var_2 in var_0 ) { thread door_trigger_watcher( var_2 ); thread auto_door_manager( var_2 ); } } auto_door_manager( var_0 ) { var_1 = 2; var_2 = getentarray( var_0.target, "targetname" ); var_3 = 1; var_4 = 1; var_5 = 1; var_6 = 1; var_7 = 1; var_8 = 1; var_9 = 1; var_10 = 1; foreach ( var_12 in var_2 ) { var_13 = var_12.script_parameters; if ( var_12.script_parameters == "door_left;" ) var_14 = var_12; if ( !isdefined( var_13 ) ) var_13 = ""; var_15 = strtok( var_13, ";" ); foreach ( var_17 in var_15 ) { if ( var_15[0] == "door_left" ) var_3 = var_12; if ( var_15[0] == "door_right" ) var_4 = var_12; if ( var_15[0] == "closed_left" ) var_5 = var_12; if ( var_15[0] == "closed_right" ) var_6 = var_12; if ( var_15[0] == "open_left" ) var_7 = var_12; if ( var_15[0] == "open_right" ) var_8 = var_12; if ( var_15[0] == "door_animated_right" ) var_9 = var_12; if ( var_15[0] == "door_animated_left" ) var_10 = var_12; } } common_scripts\utility::waitframe(); var_3 connectpaths(); var_4 connectpaths(); var_20 = var_6.origin; var_3 linkto( var_5 ); var_4 linkto( var_6 ); for (;;) { var_0 waittill( "occupied" ); var_3 maps\mp\_movers::notify_moving_platform_invalid(); var_4 maps\mp\_movers::notify_moving_platform_invalid(); var_5 moveto( var_7.origin, 0.5 ); var_6 moveto( var_8.origin, 0.5 ); var_10 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_r" ); var_9 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_open_l" ); var_10 playsound( "scn_dome_ns_glass_door_open" ); var_9 playsound( "scn_dome_ns_glass_door_open" ); wait 0.5; wait( var_1 ); var_0 waittill( "unoccupied" ); var_5 moveto( var_20, 0.5 ); var_6 moveto( var_20, 0.5 ); var_10 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_close_r" ); var_9 scriptmodelplayanimdeltamotion( "mp_dome_ns_showerdoor_close_l" ); var_10 playsound( "scn_dome_ns_glass_door_close" ); var_9 playsound( "scn_dome_ns_glass_door_close" ); wait 0.5; wait 0.1; } } fx_crane_light( var_0 ) { playfxontag( level._effect["vfx_dome_ns_man_cage_flare"], var_0, "tag_origin" ); level waittill( "platform_move_done" ); stopfxontag( level._effect["vfx_dome_ns_man_cage_flare"], var_0, "tag_origin" ); } dome_nscustomcratefunc() { if ( !isdefined( game["player_holding_level_killstreak"] ) ) game["player_holding_level_killstreak"] = 0; if ( !maps\mp\_utility::allowlevelkillstreaks() || game["player_holding_level_killstreak"] ) return; maps\mp\killstreaks\_airdrop::addcratetype( "airdrop_assault", "dome_seekers", 200, maps\mp\killstreaks\_airdrop::killstreakcratethink, maps\mp\killstreaks\_airdrop::get_friendly_crate_model(), maps\mp\killstreaks\_airdrop::get_enemy_crate_model(), &"MP_DOME_NS_SEEKERS_PICKUP" ); level thread watch_for_dome_ns_alien_dog_crate(); } watch_for_dome_ns_alien_dog_crate() { for (;;) { level waittill( "createAirDropCrate", var_0 ); if ( isdefined( var_0 ) && isdefined( var_0.cratetype ) && var_0.cratetype == "dome_seekers" ) { maps\mp\killstreaks\_airdrop::changecrateweight( "airdrop_assault", "dome_seekers", 0 ); var_1 = wait_for_capture( var_0 ); if ( !var_1 ) maps\mp\killstreaks\_airdrop::changecrateweight( "airdrop_assault", "dome_seekers", 200 ); else game["player_holding_level_killstreak"] = 1; } } } wait_for_capture( var_0 ) { var_1 = watch_for_air_drop_death( var_0 ); return !isdefined( var_1 ); } watch_for_air_drop_death( var_0 ) { var_0 endon( "captured" ); var_0 waittill( "death" ); waittillframeend; return 1; } dome_nscustomkillstreakfunc() { level.killstreakweildweapons["killstreak_level_event_mp"] = "dome_seekers"; level.killstreakfuncs["dome_seekers"] = ::tryusealien; } tryusealien( var_0, var_1 ) { if ( getdvarint( "scr_alienDebugMode" ) == 1 ) var_2 = 1; else var_2 = 3; if ( maps\mp\agents\_agent_utility::getnumactiveagents() + var_2 >= 5 ) { self iprintlnbold( &"KILLSTREAKS_AGENT_MAX" ); return 0; } var_3 = maps\mp\agents\_agent_utility::getvalidspawnpathnodenearplayer( 1 ); if ( !isdefined( var_3 ) || isdefined( self.seekers_disabled ) ) { self iprintlnbold( &"MP_DOME_NS_SEEKERS_UNAVAILABLE" ); return 0; } thread maps\mp\mp_dome_ns_alien::usealien( var_3, var_2 ); return 1; } dome_nscustombotkillstreakfunc() { maps\mp\bots\_bots_ks::bot_register_killstreak_func( "dome_seekers", maps\mp\bots\_bots_ks::bot_killstreak_simple_use ); } sfx_misters_on() { if ( common_scripts\utility::flag( "misters_on" ) ) return; common_scripts\utility::flag_set( "misters_on" ); if ( !isdefined( level.mister_01 ) ) level.mister_01 = spawn( "script_origin", ( 1735, 1546, -133 ) ); if ( !isdefined( level.mister_02 ) ) level.mister_02 = spawn( "script_origin", ( 1745, 1707, -140 ) ); if ( !isdefined( level.mister_03 ) ) level.mister_03 = spawn( "script_origin", ( 1753, 1835, -140 ) ); if ( !isdefined( level.mister_04 ) ) level.mister_04 = spawn( "script_origin", ( 1698, 1952, -140 ) ); if ( !isdefined( level.mister_05 ) ) level.mister_05 = spawn( "script_origin", ( 1540, 1981, -133 ) ); level.mister_01 playloopsound( "emt_dome_ns_mist_01" ); level.mister_02 playloopsound( "emt_dome_ns_mist_02" ); level.mister_03 playloopsound( "emt_dome_ns_mist_03" ); level.mister_04 playloopsound( "emt_dome_ns_mist_01" ); level.mister_05 playloopsound( "emt_dome_ns_mist_02" ); } sfx_misters_off() { if ( !common_scripts\utility::flag( "misters_on" ) ) return; common_scripts\utility::flag_clear( "misters_on" ); level.mister_01 stoploopsound(); level.mister_02 stoploopsound(); level.mister_03 stoploopsound(); level.mister_04 stoploopsound(); level.mister_05 stoploopsound(); } sfx_crane_start() { wait 0.3; self playsound( "scn_crane_start" ); wait 2.4; self playloopsound( "scn_crane_mvmt_lp" ); } sfx_crane_platform_start() { self playsound( "scn_crane_platform_start" ); thread sfx_crane_rattle(); } sfx_crane_stop( var_0, var_1 ) { wait( var_0 - var_1 ); self playsound( "scn_crane_stop" ); wait 0.3; self stoploopsound( "scn_crane_mvmt_lp" ); } sfx_crane_stop_impt( var_0, var_1 ) { wait( var_0 - var_1 ); self playsound( "scn_crane_stop_impt" ); } sfx_crane_rattle() { wait 3; wait( randomintrange( 3, 4 ) ); self playsound( "scn_crane_rattle" ); wait( randomintrange( 9, 12 ) ); self playsound( "scn_crane_rattle" ); wait( randomintrange( 9, 11 ) ); self playsound( "scn_crane_rattle" ); wait 7.5; self playsound( "scn_crane_rattle" ); } sfx_crane_bar( var_0, var_1, var_2 ) { if ( var_2 == "up" ) { wait( var_1 - 0.8 ); if ( var_0 == 1 ) { var_3 = ( -296, 1403, -200 ); var_4 = ( -362, 1285, -200 ); } else { var_3 = ( 970, 292, -245 ); var_4 = ( 1086, 253, -245 ); } var_5 = "scn_crane_bar_up"; var_6 = "scn_crane_bar_down"; } else { wait 0.12; if ( var_0 == 1 ) { var_3 = ( 970, 292, -250 ); var_4 = ( 1090, 266, -250 ); } else { var_3 = ( -281, 1391, -200 ); var_4 = ( -345, 1283, -200 ); } var_5 = "scn_crane_bar_down"; var_6 = "scn_crane_bar_up"; } if ( !isdefined( level.sfx_crane_bar_01 ) ) level.sfx_crane_bar_01 = spawn( "script_origin", var_3 ); if ( !isdefined( level.sfx_crane_bar_02 ) ) level.sfx_crane_bar_02 = spawn( "script_origin", var_4 ); level.sfx_crane_bar_01 playsound( var_5 ); level.sfx_crane_bar_02 playsound( var_6 ); wait 2; level.sfx_crane_bar_01 delete(); level.sfx_crane_bar_02 delete(); }