Opera House Testing: help needed
Posted: Sun Feb 01, 2004 5:26 pm
Can someone help me with testing The Opera House script?
I believe that all server crashes while running this map were caused
by a previous script. I'd like to update the map, but I have to test the
new script first. Unfortunatelly I can't do it on my own (slow modem
connection). Here comes the code:
********The_Opera_House.scr ********
I believe that all server crashes while running this map were caused
by a previous script. I'd like to update the map, but I have to test the
new script first. Unfortunatelly I can't do it on my own (slow modem
connection). Here comes the code:
********The_Opera_House.scr ********
Code: Select all
// THE OPERA
// ARCHITECTURE: Draska
// SCRIPTING: Bjarne Gr?nnevik
// TEXTURES: Draska
main:
level waittill prespawn
thread define_level_constants
exec global/DMprecache.scr
exec global/ambient.scr obj_team4
exec global/door_locked.scr::lock
thread setup_sound_aliases
thread setup_initial_spawns
thread global/exploder.scr::main
level waittill spawn
thread dam_operate
thread detonator
thread door_prep
thread elevator1_preparation
thread elevator2_preparation
thread elevator3_preparation
level waittill roundstart
$house_explode thread global/obj_dm.scr::bomb_thinker
$depot2_boom thread global/obj_dm.scr::bomb_thinker
$house_explode thread axis_win_timer
thread allies_win_bomb $house_explode $depot2_boom
thread bomb1_exploded $house_explode
thread bomb2_exploded $depot2_boom
thread shingle_setup
end
//*************
//***WINDA 1***
//*************
elevator1_preparation:
//********* BIND ***************
$elevator1_light light 40 40 40 250
$elevator1_lamp bind $elevator1_cabin
$elevator1_light bind $elevator1_cabin
$elevator1_switch_int bind $elevator1_cabin
$elevator1_switch_int anim off
$winda5_off_trigger.origin = $winda5_off_trigger.origin + ( 0.0 0.0 592.0 )
$winda5_off_trigger bind $elevator1_cabin
//*********** Cage ***************
thread elevator1_move_up
thread elevator1_standby
thread elevator1_call_up_standby
thread elevator1_call_down_standby
iprintln "elevator1 prepared"
end
elevator1_standby:
$winda5_off_trigger triggerable
while(true) {
$winda5_off_trigger waittill trigger
iprintln "elevator1 internal triggered"
if($elevator1_cabin.state == level.STATE_DOWN) {
waitthread elevator1_move_up
} else {
if($elevator1_cabin.state == level.STATE_UP) {
waitthread elevator1_move_down
} else {
// Elevator is moving ignore the triggering
}
}
waitframe
}
end
elevator1_call_up_standby:
$elevator1_trigger triggerable
while(true) {
$elevator1_trigger waittill trigger
iprintln "elevator1 upper triggered"
if($elevator1_cabin.state == level.STATE_DOWN) {
waitthread elevator1_move_up
} else {
$elevator1_trigger playsound m6l2b_generator_off
}
waitframe
}
end
elevator1_call_down_standby:
$winda1_off_trigger triggerable
while(true) {
$winda1_off_trigger waittill trigger
iprintln "elevator1 lower triggered"
if($elevator1_cabin.state == level.STATE_UP) {
waitthread elevator1_move_down
} else {
$winda1_off_trigger playsound m6l2b_generator_off
}
waitframe
}
end
elevator1_move_down:
//-----INT SWITCH----------
$elevator1_switch_int playsound alarm_switch
$elevator1_switch_int anim turn
//-----EXT SWITCH----------
$elevator1_switch_ext playsound alarm_switch
$elevator1_switch_ext anim turn
wait 1
$elevator1_switch_int anim on
$elevator1_switch_ext anim on
//------WROTA--------------
$elevator1_door_upright playsound elevator_gate
$elevator1_door_upright moveto $elevator1_way_upright_close
$elevator1_door_upright move
$elevator1_door_upleft moveto $elevator1_way_upleft_close
$elevator1_door_upleft waitmove
wait 1
//-----KABINA------------
$elevator1_cabin time 4
$elevator1_cabin moveto $elevator1_waypoint_down
$elevator1_cabin playsound elevator_run
$elevator1_cabin waitmove
wait 1
//------SWICZE OFF------
$elevator1_switch_int anim off
$elevator1_switch_ext anim off
wait 1
$elevator1_door_downright playsound elevator_gate
$elevator1_door_downright moveto $elevator1_way_downright_open
$elevator1_door_downright move
$elevator1_door_downleft moveto $elevator1_way_downleft_open
$elevator1_door_downleft waitmove
$elevator1_cabin.state = level.STATE_DOWN
end
elevator1_move_up:
//-----INT SWITCH----------
$elevator1_switch_int playsound alarm_switch
$elevator1_switch_int anim turn
//-----EXT SWITCH----------
$elevator1_switch_ext playsound alarm_switch
$elevator1_switch_ext anim turn
wait 1
$elevator1_switch_int anim on
$elevator1_switch_ext anim on
wait 1
//------WROTA--------------
$elevator1_door_downright playsound elevator_gate
$elevator1_door_downright moveto $elevator1_way_downright_close
$elevator1_door_downright move
$elevator1_door_downleft moveto $elevator1_way_downleft_close
$elevator1_door_downleft waitmove
wait 1
//-------KABINA-----------------
$elevator1_cabin time 4
$elevator1_cabin moveto $elevator1_waypoint_up
$elevator1_cabin playsound elevator_run
$elevator1_cabin waitmove
//------SWICZE OFF------
$elevator1_switch_int anim off
$elevator1_switch_ext anim off
wait 1
//-----WROTA OPEN-------
$elevator1_door_upright playsound elevator_gate
$elevator1_door_upright moveto $elevator1_way_upright_open
$elevator1_door_upright move
$elevator1_door_upleft moveto $elevator1_way_upleft_open
$elevator1_door_upleft waitmove
$elevator1_cabin.state = level.STATE_UP
end
//*************
//***WINDA 2***
//*************
elevator2_preparation:
//********* BIND ***************
$elevator2_light light 40 40 40 250
$elevator2_lamp bind $elevator2_cabin
$elevator2_light bind $elevator2_cabin
$elevator2_switch_int bind $elevator2_cabin
$elevator2_switch_int anim off
$winda6_off_trigger bind $elevator2_cabin
//*********** Cage ***************
thread elevator2_move_up
thread elevator2_standby
thread elevator2_call_up_standby
thread elevator2_call_down_standby
iprintln "elevator2 prepared"
end
elevator2_standby:
$winda6_off_trigger triggerable
while(true) {
$winda6_off_trigger waittill trigger
iprintln "elevator2 internal triggered"
if($elevator2_cabin.state == level.STATE_DOWN) {
waitthread elevator2_move_up
} else {
if($elevator2_cabin.state == level.STATE_UP) {
waitthread elevator2_move_down
} else {
// Elevator is moving ignore the triggering
}
}
waitframe
}
end
elevator2_call_up_standby:
$elevator2_trigger triggerable
while(true) {
$elevator2_trigger waittill trigger
iprintln "elevator2 upper triggered"
if($elevator2_cabin.state == level.STATE_DOWN) {
waitthread elevator2_move_up
} else {
$elevator2_trigger playsound m6l2b_generator_off
}
waitframe
}
end
elevator2_call_down_standby:
$winda2_off_trigger triggerable
while(true) {
$winda2_off_trigger waittill trigger
iprintln "elevator2 lower triggered"
if($elevator2_cabin.state == level.STATE_UP) {
waitthread elevator2_move_down
} else {
$winda2_off_trigger playsound m6l2b_generator_off
}
waitframe
}
end
elevator2_move_down:
//-----INT SWITCH----------
$elevator2_switch_int playsound alarm_switch
$elevator2_switch_int anim turn
//-----EXT SWITCH----------
$elevator2_switch_ext playsound alarm_switch
$elevator2_switch_ext anim turn
wait 1
$elevator2_switch_int anim on
$elevator2_switch_ext anim on
//------WROTA--------------
$elevator2_door_upright playsound elevator_gate
$elevator2_door_upright moveto $elevator2_way_upright_close
$elevator2_door_upright move
$elevator2_door_upleft moveto $elevator2_way_upleft_close
$elevator2_door_upleft waitmove
wait 1
//-----KABINA------------
$elevator2_cabin time 4
$elevator2_cabin moveto $elevator2_waypoint_down
$elevator2_cabin playsound elevator_run
$elevator2_cabin waitmove
wait 1
//------SWICZE OFF------
$elevator2_switch_int anim off
$elevator2_switch_ext anim off
wait 1
$elevator2_door_downright playsound elevator_gate
$elevator2_door_downright moveto $elevator2_way_downright_open
$elevator2_door_downright move
$elevator2_door_downleft moveto $elevator2_way_downleft_open
$elevator2_door_downleft waitmove
$elevator2_cabin.state = level.STATE_DOWN
end
elevator2_move_up:
//-----INT SWITCH----------
$elevator2_switch_int playsound alarm_switch
$elevator2_switch_int anim turn
//-----EXT SWITCH----------
$elevator2_switch_ext playsound alarm_switch
$elevator2_switch_ext anim turn
wait 1
$elevator2_switch_int anim on
$elevator2_switch_ext anim on
wait 1
//------WROTA--------------
$elevator2_door_downright playsound elevator_gate
$elevator2_door_downright moveto $elevator2_way_downright_close
$elevator2_door_downright move
$elevator2_door_downleft moveto $elevator2_way_downleft_close
$elevator2_door_downleft waitmove
wait 1
//-------KABINA-----------------
$elevator2_cabin time 4
$elevator2_cabin moveto $elevator2_waypoint_up
$elevator2_cabin playsound elevator_run
$elevator2_cabin waitmove
//------SWICZE OFF------
$elevator2_switch_int anim off
$elevator2_switch_ext anim off
wait 1
//-----WROTA OPEN-------
$elevator2_door_upright playsound elevator_gate
$elevator2_door_upright moveto $elevator2_way_upright_open
$elevator2_door_upright move
$elevator2_door_upleft moveto $elevator2_way_upleft_open
$elevator2_door_upleft waitmove
$elevator2_cabin.state = level.STATE_UP
end
//*************
//***WINDA 3***
//*************
elevator3_preparation:
//********* BIND ***************
$elevator3_light light 40 40 40 250
$elevator3_lamp bind $elevator3_cabin
$elevator3_light bind $elevator3_cabin
$elevator3_switch_int bind $elevator3_cabin
$elevator3_switch_int anim off
$winda7_off_trigger bind $elevator3_cabin
//*********** Cage ***************
thread elevator3_move_up
thread elevator3_standby
thread elevator3_call_up_standby
thread elevator3_call_down_standby
iprintln "elevator3 prepared"
end
elevator3_standby:
$winda7_off_trigger triggerable
while(true) {
$winda7_off_trigger waittill trigger
iprintln "elevator3 internal triggered"
if($elevator3_cabin.state == level.STATE_DOWN) {
waitthread elevator3_move_up
} else {
if($elevator3_cabin.state == level.STATE_UP) {
waitthread elevator3_move_down
} else {
// Elevator is moving ignore the triggering
}
}
waitframe
}
end
elevator3_call_up_standby:
$elevator3_trigger triggerable
while(true) {
$elevator3_trigger waittill trigger
iprintln "elevator3 upper triggered"
if($elevator3_cabin.state == level.STATE_DOWN) {
waitthread elevator3_move_up
} else {
$elevator3_trigger playsound m6l2b_generator_off
}
waitframe
}
end
elevator3_call_down_standby:
$winda3_off_trigger triggerable
while(true) {
$winda3_off_trigger waittill trigger
iprintln "elevator3 lower triggered"
if($elevator3_cabin.state == level.STATE_UP) {
waitthread elevator3_move_down
} else {
$winda3_off_trigger playsound m6l2b_generator_off
}
waitframe
}
end
elevator3_move_down:
//-----INT SWITCH----------
$elevator3_switch_int playsound alarm_switch
$elevator3_switch_int anim turn
//-----EXT SWITCH----------
$elevator3_switch_ext playsound alarm_switch
$elevator3_switch_ext anim turn
wait 1
$elevator3_switch_int anim on
$elevator3_switch_ext anim on
//------WROTA--------------
$elevator3_door_upright playsound elevator_gate
$elevator3_door_upright moveto $elevator3_way_upright_close
$elevator3_door_upright move
$elevator3_door_upleft moveto $elevator3_way_upleft_close
$elevator3_door_upleft waitmove
wait 1
//-----KABINA------------
$elevator3_cabin time 4
$elevator3_cabin moveto $elevator3_waypoint_down
$elevator3_cabin playsound elevator_run
$elevator3_cabin waitmove
wait 1
//------SWICZE OFF------
$elevator3_switch_int anim off
$elevator3_switch_ext anim off
wait 1
$elevator3_door_downright playsound elevator_gate
$elevator3_door_downright moveto $elevator3_way_downright_open
$elevator3_door_downright move
$elevator3_door_downleft moveto $elevator3_way_downleft_open
$elevator3_door_downleft waitmove
$elevator3_cabin.state = level.STATE_DOWN
end
elevator3_move_up:
//-----INT SWITCH----------
$elevator3_switch_int playsound alarm_switch
$elevator3_switch_int anim turn
//-----EXT SWITCH----------
$elevator3_switch_ext playsound alarm_switch
$elevator3_switch_ext anim turn
wait 1
$elevator3_switch_int anim on
$elevator3_switch_ext anim on
wait 1
//------WROTA--------------
$elevator3_door_downright playsound elevator_gate
$elevator3_door_downright moveto $elevator3_way_downright_close
$elevator3_door_downright move
$elevator3_door_downleft moveto $elevator3_way_downleft_close
$elevator3_door_downleft waitmove
wait 1
//-------KABINA-----------------
$elevator3_cabin time 4
$elevator3_cabin moveto $elevator3_waypoint_up
$elevator3_cabin playsound elevator_run
$elevator3_cabin waitmove
//------SWICZE OFF------
$elevator3_switch_int anim off
$elevator3_switch_ext anim off
wait 1
//-----WROTA OPEN-------
$elevator3_door_upright playsound elevator_gate
$elevator3_door_upright moveto $elevator3_way_upright_open
$elevator3_door_upright move
$elevator3_door_upleft moveto $elevator3_way_upleft_open
$elevator3_door_upleft waitmove
$elevator3_cabin.state = level.STATE_UP
end
// Axis Victory
axis_win_timer:
level waittill axiswin
end
// Allies Victory
allies_win_bomb local.bomb1 local.bomb2:
while (local.bomb1.exploded != 1)
waitframe
while (local.bomb2.exploded != 1)
waitframe
teamwin allies
end
//*** --------------------------------------------
//*** "Depot One Boom"
//*** --------------------------------------------
bomb1_exploded local.bomb1:
while (local.bomb1.exploded != 1)
wait .1
iprintlnbold "Allies have destroyed Western Depot!"
end
//*** --------------------------------------------
//*** "Depot Two Boom"
//*** --------------------------------------------
bomb2_exploded local.bomb2:
while (local.bomb2.exploded != 1)
wait .1
iprintlnbold "Allies have destroyed Northern Depot!"
thread switch_to_forward_spawns
end
//***---------------------------------------
//***---------"Bangalore"-------------------
//***---------------------------------------
shingle_setup:
thread shingle_here_start
thread shingle_there_start
end
shingle_here_start:
$bangalore_trigger_here waittill trigger
while (parm.other.dmteam != allies) {
$bangalore_trigger_here waittill trigger
}
$bangalore_here playsound plantbomb1
$bangalore_here remove
$bangalore_nopulse_here show
wait 8
$bangalore_explosion_here1 anim start
$bangalore_explosion_here2 anim start
radiusdamage $bangalore_explosion_here2.origin 640 384
$bangalore_nopulse_here remove
$barbwire_clip_here remove
$barbwire_here remove
end
shingle_there_start:
$bangalore_trigger_there waittill trigger
while (parm.other.dmteam != allies) {
$bangalore_trigger_there waittill trigger
}
$bangalore_there playsound plantbomb1
$bangalore_there remove
$bangalore_nopulse_there show
wait 8
$bangalore_explosion_there1 anim start
$bangalore_explosion_there2 anim start
radiusdamage $bangalore_explosion_there2.origin 640 384
$bangalore_nopulse_there remove
$barbwire_clip_there remove
$barbwire_there remove
end
//--------DETONATOR----------
detonator:
$most_trigger triggerable
$most_trigger waittill trigger
$most_trigger nottriggerable
$detonator1 playsound track_switch2
$detonator1 movedown 10
$detonator1 waitmove
$most_trigger remove
exec global/exploder.scr::explode 3
radiusdamage $most_epic 350 600
end
dam_operate:
//-----TRIGGER---------
$dam_trigger triggerable
$dam_trigger waittill trigger
//-----SWITCH-----------
$dam_switch playsound track_switch1
$dam_switch anim move
//-----DAM GATE----------
$dam_gate playsound elevator_run
$dam_gate moveup 100
$dam_gate time 7
$dam_gate move
//-----WATER---------
$woda movedown 54
$woda time 8
$woda move
end
door_prep:
$left_door time 3
$right_door time 3
thread door_close
thread door_standby
end
door_standby:
while(true) {
$door_trigger waittill trigger
if(level.opera_door_state == level.STATE_CLOSE) {
waitthread door_open
} else {
if(level.opera_door_state == level.STATE_OPEN) {
waitthread door_close
} else {
// Door is moving ignore the triggering
}
}
waitframe
}
end
door_open:
level.opera_door_state = level.STATE_MOVING
iprintln "...door opening"
$door_switch playsound alarm_switch
$door_switch anim turn
wait 1
$door_switch anim on
$left_door moveto $leftdoor_left
$left_door move
$right_door moveto $rightdoor_right
$right_door playsound door_vault_roll_open
$right_door waitmove
level.opera_door_state = level.STATE_OPEN
end
door_close:
level.opera_door_state = level.STATE_MOVING
$door_switch playsound alarm_switch
$door_switch anim turn
wait 1
$door_switch anim on
$left_door moveto $leftdoor_right
$left_door move
$right_door moveto $rightdoor_left
$right_door playsound door_vault_roll_close
$right_door waitmove
level.opera_door_state = level.STATE_CLOSE
end
//************
// * UTILITIES *
//**********************************************
define_level_constants:
level.STATE_OPEN = 1
level.STATE_CLOSE = 0
level.STATE_MOVING = -1
level.STATE_UP = 1
level.STATE_DOWN = 0
level.script = maps/obj/The_Opera_House.scr
level.bomb_damage = 400
level.bomb_explosion_radius = 640
level.defusing_team = "axis"
level.planting_team = "allies"
level.targets_to_destroy = 2
level.dmrespawning = 1
level.dmroundlimit = 20
level.clockside = axis
setcvar "g_obj_alliedtext1" "Destroy German"
setcvar "g_obj_alliedtext2" " ammo depots "
setcvar "g_obj_alliedtext3" " "
setcvar "g_obj_axistext1" "Defend ammo depots"
setcvar "g_obj_axistext2" " "
setcvar "g_obj_axistext3" " "
setcvar "g_scoreboardpic" "opera_score"
end
setup_sound_aliases:
local.master = spawn ScriptMaster
//local.master aliascache soundalias wavfile soundparms numbers channel loaded maps "mapname"
local.master aliascache elevator_run sound/mechanics/Mec_ElevatorRun_01.wav soundparms 1.5 0.0 1.0 0.0 800 3000 auto loaded maps "obj dm"
local.master aliascache elevator_gate sound/mechanics/Mec_ElevatorGate_03.wav soundparms 1.5 0.0 1.0 0.0 300 3000 auto loaded maps "obj dm"
local.master aliascache arty_exp_water1 sound/weapons/explo/exp_water_01.wav soundparms 1.0 0.2 0.8 0.4 1000 8000 weapon loaded maps "obj dm"
local.master aliascache arty_exp_water2 sound/weapons/explo/exp_water_02.wav soundparms 1.0 0.2 0.8 0.4 1000 8000 weapon loaded maps "obj dm"
local.master aliascache arty_exp_water3 sound/weapons/explo/exp_water_03.wav soundparms 1.0 0.2 0.8 0.4 1000 8000 weapon loaded maps "obj dm"
local.master aliascache track_switch2 sound/mechanics/M1_LeverPull.wav soundparms 1.2 0.0 1.0 0.0 320 2200 auto loaded maps "obj dm"
local.master aliascache fence_roll_open sound/mechanics/Fence_Open.wav soundparms 1.2 0.0 1.1 0.0 160 1600 item loaded maps "obj dm"
local.master aliascache door_vault_roll_open sound/mechanics/m6l3a_SlidingDoors_Open.wav soundparms 1.0 0.0 1.0 0.0 160 1600 item loaded maps "obj dm"
local.master aliascache door_vault_roll_close sound/mechanics/m6l3a_SlidingDoors_Close.wav soundparms 1.0 0.0 1.0 0.0 160 1600 item loaded maps "obj dm"
local.master aliascache track_switch1 sound/mechanics/M4_TrackLever.wav soundparms 1.2 0.0 1.2 0.0 320 2200 auto loaded maps "obj dm"
local.master aliascache track_switching sound/mechanics/M4_TrainTrackSlide.wav soundparms 1.2 0.0 1.2 0.0 320 2200 auto loaded maps "obj dm"
local.master aliascache m6l2b_generator_off sound/mechanics/Mec_GeneratorOff_01.wav soundparms 1.5 0.0 1.0 0.0 160 6000 item loaded maps "obj dm"
local.master aliascache stonecrash01 sound/weapons/explo/Explo_StoneMed1.wav soundparms 0.6 0.4 1.0 0.4 2000 8000 auto loaded maps "obj dm"
local.master aliascache stonecrash02 sound/weapons/explo/Explo_StoneMed2.wav soundparms 0.6 0.4 1.0 0.4 2000 8000 auto loaded maps "obj dm"
local.master aliascache stonecrash03 sound/weapons/explo/Explo_StoneMed1.wav soundparms 0.6 0.4 1.0 0.4 2000 8000 auto loaded maps "obj dm"
local.master aliascache stonesmall01 sound/mechanics/Obj_BreakStoneSml_01.wav soundparms 0.6 0.4 1.0 0.4 1000 8000 auto loaded maps "obj dm"
local.master aliascache stonesmall02 sound/mechanics/Obj_BreakStoneSml_02.wav soundparms 0.6 0.4 1.0 0.4 1000 8000 auto loaded maps "obj dm"
local.master aliascache stonesmall03 sound/mechanics/Obj_BreakStoneSml_03.wav soundparms 0.6 0.4 1.0 0.4 1000 8000 auto loaded maps "obj dm"
local.master aliascache stonesmall04 sound/mechanics/Obj_BreakStoneSml_04.wav soundparms 0.6 0.4 1.0 0.4 1000 8000 auto loaded maps "obj dm"
local.master aliascache stonesmall05 sound/mechanics/Obj_BreakStoneSml_01.wav soundparms 0.6 0.4 1.0 0.4 1000 8000 auto loaded maps "obj dm"
local.master aliascache explode_tank1 sound/weapons/explo/Explo_MetalMed1.wav soundparms 0.9 0.2 0.8 0.2 1500 9000 weapon loaded maps "obj dm"
local.master aliascache explode_tank2 sound/weapons/explo/Explo_MetalMed2.wav soundparms 0.9 0.2 0.8 0.2 1500 9000 weapon loaded maps "obj dm"
local.master aliascache explode_tank3 sound/weapons/explo/Explo_MetalMed3.wav soundparms 0.9 0.2 0.8 0.2 1500 9000 weapon loaded maps "obj dm"
local.master aliascache explode_tank4 sound/weapons/explo/Explo_MetalMed4.wav soundparms 0.9 0.2 0.8 0.2 1500 9000 weapon loaded maps "obj dm"
// local.master remove // edit: omit this line
end
setup_initial_spawns:
$spawn_allies17 disablespawn
$spawn_allies18 disablespawn
$spawn_allies19 disablespawn
$spawn_allies20 disablespawn
$spawn_allies21 disablespawn
$spawn_allies22 disablespawn
$spawn_allies23 disablespawn
$spawn_allies24 disablespawn
$spawn_allies25 disablespawn
$spawn_allies26 disablespawn
$spawn_allies27 disablespawn
$spawn_allies28 disablespawn
$spawn_allies29 disablespawn
$spawn_allies30 disablespawn
$spawn_allies31 disablespawn
$spawn_allies32 disablespawn
end
switch_to_forward_spawns:
$spawn_allies1 disablespawn
$spawn_allies2 disablespawn
$spawn_allies3 disablespawn
$spawn_allies4 disablespawn
$spawn_allies5 disablespawn
$spawn_allies6 disablespawn
$spawn_allies7 disablespawn
$spawn_allies8 disablespawn
$spawn_allies9 disablespawn
$spawn_allies10 disablespawn
$spawn_allies11 disablespawn
$spawn_allies12 disablespawn
$spawn_allies13 disablespawn
$spawn_allies14 disablespawn
$spawn_allies15 disablespawn
$spawn_allies16 disablespawn
$spawn_allies17 enablespawn
$spawn_allies18 enablespawn
$spawn_allies19 enablespawn
$spawn_allies20 enablespawn
$spawn_allies21 enablespawn
$spawn_allies22 enablespawn
$spawn_allies23 enablespawn
$spawn_allies24 enablespawn
$spawn_allies25 enablespawn
$spawn_allies26 enablespawn
$spawn_allies27 enablespawn
$spawn_allies28 enablespawn
$spawn_allies29 enablespawn
$spawn_allies30 enablespawn
$spawn_allies31 enablespawn
$spawn_allies32 enablespawn
end.