1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-10 15:17:57 -05:00

Move grief code to grief script

This commit is contained in:
Jbleezy
2021-12-08 20:30:44 -08:00
parent 61d8cf9cf9
commit 9912442b39
2 changed files with 319 additions and 318 deletions

View File

@ -141,7 +141,6 @@ post_all_players_spawned()
jetgun_remove_drop_fn();
depot_remove_lava_collision();
depot_grief_close_local_electric_doors();
town_move_staminup_machine();
@ -156,10 +155,6 @@ post_all_players_spawned()
buried_turn_power_on();
buried_deleteslothbarricades();
borough_move_quickrevive_machine();
borough_move_speedcola_machine();
borough_move_staminup_machine();
tomb_remove_weighted_random_perks();
tomb_challenges_changes();
tomb_soul_box_changes();
@ -181,8 +176,6 @@ post_all_players_spawned()
level thread town_move_tombstone_machine();
level thread depot_grief_link_nodes();
level thread highrise_solo_revive_fix();
level thread prison_auto_refuel_plane();
@ -4787,40 +4780,6 @@ depot_remove_lava_collision()
collision3 setmodel( "collision_wall_512x512x10_standard" );
}
depot_grief_close_local_electric_doors()
{
if(!(level.scr_zm_ui_gametype == "zgrief" && level.scr_zm_map_start_location == "transit"))
{
return;
}
zombie_doors = getentarray( "zombie_door", "targetname" );
foreach (door in zombie_doors)
{
if ( isDefined( door.script_noteworthy ) && door.script_noteworthy == "local_electric_door" )
{
door delete();
}
}
}
depot_grief_link_nodes()
{
if(!(level.scr_zm_ui_gametype == "zgrief" && level.scr_zm_map_start_location == "transit"))
{
return;
}
flag_wait( "initial_blackscreen_passed" );
wait 0.05;
nodes = getnodearray( "classic_only_traversal", "targetname" );
foreach (node in nodes)
{
link_nodes( node, getnode( node.target, "targetname" ) );
}
}
town_move_tombstone_machine()
{
if (!(level.scr_zm_ui_gametype == "zstandard" && level.scr_zm_map_start_location == "town"))
@ -5325,283 +5284,6 @@ _is_player_in_zombie_stink( a_points )
return b_is_in_stink;
}
borough_move_quickrevive_machine()
{
if (!(!is_classic() && level.scr_zm_map_start_location == "street"))
{
return;
}
perk_struct = undefined;
structs = getstructarray("zm_perk_machine", "targetname");
foreach (struct in structs)
{
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
{
if (struct.script_noteworthy == "specialty_quickrevive" && IsSubStr(struct.script_string, "zclassic"))
{
perk_struct = struct;
break;
}
}
}
if(!IsDefined(perk_struct))
{
return;
}
// delete old machine
vending_triggers = getentarray( "zombie_vending", "targetname" );
for (i = 0; i < vending_trigger.size; i++)
{
trig = vending_triggers[i];
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_quickrevive")
{
trig.clip delete();
trig.machine delete();
trig.bump delete();
trig delete();
break;
}
}
// spawn new machine
use_trigger = spawn( "trigger_radius_use", perk_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
use_trigger.targetname = "zombie_vending";
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
use_trigger triggerignoreteam();
perk_machine = spawn( "script_model", perk_struct.origin );
perk_machine.angles = perk_struct.angles;
perk_machine setmodel( perk_struct.model );
bump_trigger = spawn( "trigger_radius", perk_struct.origin + AnglesToRight(perk_struct.angles) * 32, 0, 35, 32 );
bump_trigger.script_activated = 1;
bump_trigger.script_sound = "zmb_perks_bump_bottle";
bump_trigger.targetname = "audio_bump_trigger";
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
collision = spawn( "script_model", perk_struct.origin, 1 );
collision.angles = perk_struct.angles;
collision setmodel( "zm_collision_perks1" );
collision.script_noteworthy = "clip";
collision disconnectpaths();
use_trigger.clip = collision;
use_trigger.machine = perk_machine;
use_trigger.bump = bump_trigger;
if ( isDefined( perk_struct.blocker_model ) )
{
use_trigger.blocker_model = perk_struct.blocker_model;
}
if ( isDefined( perk_struct.script_int ) )
{
perk_machine.script_int = perk_struct.script_int;
}
if ( isDefined( perk_struct.turn_on_notify ) )
{
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
}
use_trigger.script_sound = "mus_perks_revive_jingle";
use_trigger.script_string = "revive_perk";
use_trigger.script_label = "mus_perks_revive_sting";
use_trigger.target = "vending_revive";
perk_machine.script_string = "revive_perk";
perk_machine.targetname = "vending_revive";
bump_trigger.script_string = "revive_perk";
level thread maps/mp/zombies/_zm_perks::turn_revive_on();
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, ::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
}
borough_move_speedcola_machine()
{
if (!(!is_classic() && level.scr_zm_map_start_location == "street"))
{
return;
}
perk_struct = undefined;
structs = getstructarray("zm_perk_machine", "targetname");
foreach (struct in structs)
{
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
{
if (struct.script_noteworthy == "specialty_fastreload" && IsSubStr(struct.script_string, "zclassic"))
{
perk_struct = struct;
break;
}
}
}
if(!IsDefined(perk_struct))
{
return;
}
// delete old machine
vending_triggers = getentarray( "zombie_vending", "targetname" );
for (i = 0; i < vending_trigger.size; i++)
{
trig = vending_triggers[i];
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_fastreload")
{
trig.clip delete();
trig.machine delete();
trig.bump delete();
trig delete();
break;
}
}
// spawn new machine
use_trigger = spawn( "trigger_radius_use", perk_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
use_trigger.targetname = "zombie_vending";
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
use_trigger triggerignoreteam();
perk_machine = spawn( "script_model", perk_struct.origin );
perk_machine.angles = perk_struct.angles;
perk_machine setmodel( perk_struct.model );
bump_trigger = spawn( "trigger_radius", perk_struct.origin + AnglesToRight(perk_struct.angles) * 32, 0, 35, 32 );
bump_trigger.script_activated = 1;
bump_trigger.script_sound = "zmb_perks_bump_bottle";
bump_trigger.targetname = "audio_bump_trigger";
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
collision = spawn( "script_model", perk_struct.origin, 1 );
collision.angles = perk_struct.angles;
collision setmodel( "zm_collision_perks1" );
collision.script_noteworthy = "clip";
collision disconnectpaths();
use_trigger.clip = collision;
use_trigger.machine = perk_machine;
use_trigger.bump = bump_trigger;
if ( isDefined( perk_struct.blocker_model ) )
{
use_trigger.blocker_model = perk_struct.blocker_model;
}
if ( isDefined( perk_struct.script_int ) )
{
perk_machine.script_int = perk_struct.script_int;
}
if ( isDefined( perk_struct.turn_on_notify ) )
{
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
}
use_trigger.script_sound = "mus_perks_speed_jingle";
use_trigger.script_string = "speedcola_perk";
use_trigger.script_label = "mus_perks_speed_sting";
use_trigger.target = "vending_sleight";
perk_machine.script_string = "speedcola_perk";
perk_machine.targetname = "vending_sleight";
bump_trigger.script_string = "speedcola_perk";
level thread maps/mp/zombies/_zm_perks::turn_sleight_on();
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, ::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
}
borough_move_staminup_machine()
{
if (!(!is_classic() && level.scr_zm_map_start_location == "street"))
{
return;
}
perk_struct = undefined;
perk_location_struct = undefined;
structs = getstructarray("zm_perk_machine", "targetname");
foreach (struct in structs)
{
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
{
if (struct.script_noteworthy == "specialty_longersprint" && IsSubStr(struct.script_string, "zclassic"))
{
perk_struct = struct;
}
else if (struct.script_noteworthy == "specialty_quickrevive" && IsSubStr(struct.script_string, "zgrief"))
{
perk_location_struct = struct;
}
}
}
if(!IsDefined(perk_struct) || !IsDefined(perk_location_struct))
{
return;
}
// delete old machine
vending_triggers = getentarray( "zombie_vending", "targetname" );
for (i = 0; i < vending_trigger.size; i++)
{
trig = vending_triggers[i];
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_longersprint")
{
trig.clip delete();
trig.machine delete();
trig.bump delete();
trig delete();
break;
}
}
// spawn new machine
use_trigger = spawn( "trigger_radius_use", perk_location_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
use_trigger.targetname = "zombie_vending";
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
use_trigger triggerignoreteam();
perk_machine = spawn( "script_model", perk_location_struct.origin );
perk_machine.angles = perk_location_struct.angles;
perk_machine setmodel( perk_struct.model );
bump_trigger = spawn( "trigger_radius", perk_location_struct.origin + AnglesToRight(perk_location_struct.angles) * 32, 0, 35, 32 );
bump_trigger.script_activated = 1;
bump_trigger.script_sound = "zmb_perks_bump_bottle";
bump_trigger.targetname = "audio_bump_trigger";
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
collision = spawn( "script_model", perk_location_struct.origin, 1 );
collision.angles = perk_location_struct.angles;
collision setmodel( "zm_collision_perks1" );
collision.script_noteworthy = "clip";
collision disconnectpaths();
use_trigger.clip = collision;
use_trigger.machine = perk_machine;
use_trigger.bump = bump_trigger;
if ( isDefined( perk_struct.blocker_model ) )
{
use_trigger.blocker_model = perk_struct.blocker_model;
}
if ( isDefined( perk_struct.script_int ) )
{
perk_machine.script_int = perk_struct.script_int;
}
if ( isDefined( perk_struct.turn_on_notify ) )
{
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
}
use_trigger.script_sound = "mus_perks_stamin_jingle";
use_trigger.script_string = "marathon_perk";
use_trigger.script_label = "mus_perks_stamin_sting";
use_trigger.target = "vending_marathon";
perk_machine.script_string = "marathon_perk";
perk_machine.targetname = "vending_marathon";
bump_trigger.script_string = "marathon_perk";
level thread maps/mp/zombies/_zm_perks::turn_marathon_on();
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, ::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
}
tomb_increase_solo_door_prices()
{
if(!(is_classic() && level.scr_zm_map_start_location == "tomb"))

View File

@ -28,12 +28,20 @@ init()
setDvar( "zombies_minplayers", 2 );
}
depot_close_local_electric_doors();
borough_move_quickrevive_machine();
borough_move_speedcola_machine();
borough_move_staminup_machine();
level thread on_player_connect();
level thread grief_score_hud();
level thread set_grief_vars();
level thread init_round_start_wait(5);
level thread unlimited_zombies();
//level thread spawn_bots(7);
level thread depot_link_nodes();
}
on_player_connect()
@ -941,6 +949,317 @@ handle_post_board_repair_rewards( cost, zbarrier )
}
}
depot_close_local_electric_doors()
{
if(level.scr_zm_map_start_location != "transit")
{
return;
}
zombie_doors = getentarray( "zombie_door", "targetname" );
foreach (door in zombie_doors)
{
if ( isDefined( door.script_noteworthy ) && door.script_noteworthy == "local_electric_door" )
{
door delete();
}
}
}
depot_link_nodes()
{
if(level.scr_zm_map_start_location != "transit")
{
return;
}
flag_wait( "initial_blackscreen_passed" );
wait 0.05;
nodes = getnodearray( "classic_only_traversal", "targetname" );
foreach (node in nodes)
{
link_nodes( node, getnode( node.target, "targetname" ) );
}
}
borough_move_quickrevive_machine()
{
if (level.scr_zm_map_start_location != "street")
{
return;
}
perk_struct = undefined;
structs = getstructarray("zm_perk_machine", "targetname");
foreach (struct in structs)
{
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
{
if (struct.script_noteworthy == "specialty_quickrevive" && IsSubStr(struct.script_string, "zclassic"))
{
perk_struct = struct;
break;
}
}
}
if(!IsDefined(perk_struct))
{
return;
}
// delete old machine
vending_triggers = getentarray( "zombie_vending", "targetname" );
for (i = 0; i < vending_trigger.size; i++)
{
trig = vending_triggers[i];
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_quickrevive")
{
trig.clip delete();
trig.machine delete();
trig.bump delete();
trig delete();
break;
}
}
// spawn new machine
use_trigger = spawn( "trigger_radius_use", perk_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
use_trigger.targetname = "zombie_vending";
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
use_trigger triggerignoreteam();
perk_machine = spawn( "script_model", perk_struct.origin );
perk_machine.angles = perk_struct.angles;
perk_machine setmodel( perk_struct.model );
bump_trigger = spawn( "trigger_radius", perk_struct.origin + AnglesToRight(perk_struct.angles) * 32, 0, 35, 32 );
bump_trigger.script_activated = 1;
bump_trigger.script_sound = "zmb_perks_bump_bottle";
bump_trigger.targetname = "audio_bump_trigger";
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
collision = spawn( "script_model", perk_struct.origin, 1 );
collision.angles = perk_struct.angles;
collision setmodel( "zm_collision_perks1" );
collision.script_noteworthy = "clip";
collision disconnectpaths();
use_trigger.clip = collision;
use_trigger.machine = perk_machine;
use_trigger.bump = bump_trigger;
if ( isDefined( perk_struct.blocker_model ) )
{
use_trigger.blocker_model = perk_struct.blocker_model;
}
if ( isDefined( perk_struct.script_int ) )
{
perk_machine.script_int = perk_struct.script_int;
}
if ( isDefined( perk_struct.turn_on_notify ) )
{
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
}
use_trigger.script_sound = "mus_perks_revive_jingle";
use_trigger.script_string = "revive_perk";
use_trigger.script_label = "mus_perks_revive_sting";
use_trigger.target = "vending_revive";
perk_machine.script_string = "revive_perk";
perk_machine.targetname = "vending_revive";
bump_trigger.script_string = "revive_perk";
level thread maps/mp/zombies/_zm_perks::turn_revive_on();
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, scripts/zm/main/_zm_reimagined::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
}
borough_move_speedcola_machine()
{
if (level.scr_zm_map_start_location != "street")
{
return;
}
perk_struct = undefined;
structs = getstructarray("zm_perk_machine", "targetname");
foreach (struct in structs)
{
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
{
if (struct.script_noteworthy == "specialty_fastreload" && IsSubStr(struct.script_string, "zclassic"))
{
perk_struct = struct;
break;
}
}
}
if(!IsDefined(perk_struct))
{
return;
}
// delete old machine
vending_triggers = getentarray( "zombie_vending", "targetname" );
for (i = 0; i < vending_trigger.size; i++)
{
trig = vending_triggers[i];
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_fastreload")
{
trig.clip delete();
trig.machine delete();
trig.bump delete();
trig delete();
break;
}
}
// spawn new machine
use_trigger = spawn( "trigger_radius_use", perk_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
use_trigger.targetname = "zombie_vending";
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
use_trigger triggerignoreteam();
perk_machine = spawn( "script_model", perk_struct.origin );
perk_machine.angles = perk_struct.angles;
perk_machine setmodel( perk_struct.model );
bump_trigger = spawn( "trigger_radius", perk_struct.origin + AnglesToRight(perk_struct.angles) * 32, 0, 35, 32 );
bump_trigger.script_activated = 1;
bump_trigger.script_sound = "zmb_perks_bump_bottle";
bump_trigger.targetname = "audio_bump_trigger";
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
collision = spawn( "script_model", perk_struct.origin, 1 );
collision.angles = perk_struct.angles;
collision setmodel( "zm_collision_perks1" );
collision.script_noteworthy = "clip";
collision disconnectpaths();
use_trigger.clip = collision;
use_trigger.machine = perk_machine;
use_trigger.bump = bump_trigger;
if ( isDefined( perk_struct.blocker_model ) )
{
use_trigger.blocker_model = perk_struct.blocker_model;
}
if ( isDefined( perk_struct.script_int ) )
{
perk_machine.script_int = perk_struct.script_int;
}
if ( isDefined( perk_struct.turn_on_notify ) )
{
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
}
use_trigger.script_sound = "mus_perks_speed_jingle";
use_trigger.script_string = "speedcola_perk";
use_trigger.script_label = "mus_perks_speed_sting";
use_trigger.target = "vending_sleight";
perk_machine.script_string = "speedcola_perk";
perk_machine.targetname = "vending_sleight";
bump_trigger.script_string = "speedcola_perk";
level thread maps/mp/zombies/_zm_perks::turn_sleight_on();
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, scripts/zm/main/_zm_reimagined::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
}
borough_move_staminup_machine()
{
if (level.scr_zm_map_start_location != "street")
{
return;
}
perk_struct = undefined;
perk_location_struct = undefined;
structs = getstructarray("zm_perk_machine", "targetname");
foreach (struct in structs)
{
if (IsDefined(struct.script_noteworthy) && IsDefined(struct.script_string))
{
if (struct.script_noteworthy == "specialty_longersprint" && IsSubStr(struct.script_string, "zclassic"))
{
perk_struct = struct;
}
else if (struct.script_noteworthy == "specialty_quickrevive" && IsSubStr(struct.script_string, "zgrief"))
{
perk_location_struct = struct;
}
}
}
if(!IsDefined(perk_struct) || !IsDefined(perk_location_struct))
{
return;
}
// delete old machine
vending_triggers = getentarray( "zombie_vending", "targetname" );
for (i = 0; i < vending_trigger.size; i++)
{
trig = vending_triggers[i];
if (IsDefined(trig.script_noteworthy) && trig.script_noteworthy == "specialty_longersprint")
{
trig.clip delete();
trig.machine delete();
trig.bump delete();
trig delete();
break;
}
}
// spawn new machine
use_trigger = spawn( "trigger_radius_use", perk_location_struct.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, 40, 70 );
use_trigger.targetname = "zombie_vending";
use_trigger.script_noteworthy = perk_struct.script_noteworthy;
use_trigger triggerignoreteam();
perk_machine = spawn( "script_model", perk_location_struct.origin );
perk_machine.angles = perk_location_struct.angles;
perk_machine setmodel( perk_struct.model );
bump_trigger = spawn( "trigger_radius", perk_location_struct.origin + AnglesToRight(perk_location_struct.angles) * 32, 0, 35, 32 );
bump_trigger.script_activated = 1;
bump_trigger.script_sound = "zmb_perks_bump_bottle";
bump_trigger.targetname = "audio_bump_trigger";
bump_trigger thread maps/mp/zombies/_zm_perks::thread_bump_trigger();
collision = spawn( "script_model", perk_location_struct.origin, 1 );
collision.angles = perk_location_struct.angles;
collision setmodel( "zm_collision_perks1" );
collision.script_noteworthy = "clip";
collision disconnectpaths();
use_trigger.clip = collision;
use_trigger.machine = perk_machine;
use_trigger.bump = bump_trigger;
if ( isDefined( perk_struct.blocker_model ) )
{
use_trigger.blocker_model = perk_struct.blocker_model;
}
if ( isDefined( perk_struct.script_int ) )
{
perk_machine.script_int = perk_struct.script_int;
}
if ( isDefined( perk_struct.turn_on_notify ) )
{
perk_machine.turn_on_notify = perk_struct.turn_on_notify;
}
use_trigger.script_sound = "mus_perks_stamin_jingle";
use_trigger.script_string = "marathon_perk";
use_trigger.script_label = "mus_perks_stamin_sting";
use_trigger.target = "vending_marathon";
perk_machine.script_string = "marathon_perk";
perk_machine.targetname = "vending_marathon";
bump_trigger.script_string = "marathon_perk";
level thread maps/mp/zombies/_zm_perks::turn_marathon_on();
use_trigger thread maps/mp/zombies/_zm_perks::vending_trigger_think();
use_trigger thread maps/mp/zombies/_zm_perks::electric_perks_dialog();
powered_on = maps/mp/zombies/_zm_perks::get_perk_machine_start_state( use_trigger.script_noteworthy );
maps/mp/zombies/_zm_power::add_powered_item( maps/mp/zombies/_zm_power::perk_power_on, scripts/zm/main/_zm_reimagined::perk_power_off, maps/mp/zombies/_zm_power::perk_range, maps/mp/zombies/_zm_power::cost_low_if_local, 0, powered_on, use_trigger );
}
spawn_bots(num)
{
level waittill( "connected", player );