diff --git a/scripts/zm/main/_zm_reimagined.gsc b/scripts/zm/main/_zm_reimagined.gsc index f8530eea..d6cba223 100644 --- a/scripts/zm/main/_zm_reimagined.gsc +++ b/scripts/zm/main/_zm_reimagined.gsc @@ -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")) diff --git a/scripts/zm/main/_zm_reimagined_zgrief.gsc b/scripts/zm/main/_zm_reimagined_zgrief.gsc index 46411fd2..bf42fadc 100644 --- a/scripts/zm/main/_zm_reimagined_zgrief.gsc +++ b/scripts/zm/main/_zm_reimagined_zgrief.gsc @@ -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 );