#include maps/mp/zombies/_zm_utility; #include common_scripts/utility; #include maps/mp/_utility; #include maps/mp/zombies/_zm_buildables; #include maps/mp/zombies/_zm_game_module; #include maps/mp/zombies/_zm_ai_basic; #include maps/mp/gametypes_zm/_weapons; init() { level.player_out_of_playable_area_monitor = 0; level.perk_purchase_limit = 9; thread gscRestart(); thread setPlayersToSpectator(); level thread onplayerconnected(); level thread openAllDoors(); level thread turnOnPower(); level thread zombies_override(); setDvar( "scr_screecher_ignore_player", 1 ); } onplayerconnected() { for ( ;; ) { level waittill( "connected", player ); player thread onplayerspawned(); player thread [[ level.givecustomcharacters ]](); player [[ level.spawnplayer ]](); } } onplayerspawned() { for ( ;; ) { self waittill( "spawned_player" ); self thread getAllPerks(); } } gscRestart() { level waittill( "end_game" ); setDvar( "customMapsMapRestarted", 1 ); wait 10; map_restart( false ); } setPlayersToSpectator() { level.no_end_game_check = 1; wait 3; players = get_players(); i = 0; while ( i < players.size ) { if ( i == 0 ) { i++; } players[ i ] setToSpectator(); i++; } wait 5; level.no_end_game_check = 0; spawnAllPlayers(); } setToSpectator() { self.sessionstate = "spectator"; if (isDefined(self.is_playing)) { self.is_playing = false; } } spawnAllPlayers() { players = get_players(); i = 0; while ( i < players.size ) { if ( players[ i ].sessionstate == "spectator" && isDefined( players[ i ].spectator_respawn ) ) { players[ i ] [[ level.spawnplayer ]](); if ( level.script != "zm_tomb" || level.script != "zm_prison" || !is_classic() ) { thread maps\mp\zombies\_zm::refresh_player_navcard_hud(); } } i++; } level.no_end_game_check = 0; } openAllDoors() { if(!isDefined(level.varsArray["doors"])) { level.varsArray["doors"]=true; setdvar("zombie_unlock_all",1); wait .05; Triggers=StrTok("zombie_doors|zombie_door|zombie_airlock_buy|zombie_debris|flag_blocker|window_shutter|zombie_trap","|"); for(a=0;a