diff --git a/README.md b/README.md index 8dab5785..d9075510 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ * Survival: removed Galvaknuckles wallbuy #### Bus Depot +* Power doors open when door is opened * Lava pit is now accessible ### Die Rise diff --git a/maps/mp/zm_transit_grief_station.gsc b/maps/mp/zm_transit_grief_station.gsc index 510d4342..9840b55e 100644 --- a/maps/mp/zm_transit_grief_station.gsc +++ b/maps/mp/zm_transit_grief_station.gsc @@ -25,17 +25,15 @@ main() maps/mp/gametypes_zm/_zm_gametype::setup_standard_objects( "station" ); station_treasure_chest_init(); level.enemy_location_override_func = ::enemy_location_override; - collision = spawn( "script_model", ( -6896, 4744, 0 ), 1 ); - collision setmodel( "zm_collision_transit_busdepot_survival" ); - collision disconnectpaths(); + //collision = spawn( "script_model", ( -6896, 4744, 0 ), 1 ); + //collision setmodel( "zm_collision_transit_busdepot_survival" ); + //collision disconnectpaths(); + remove_lava_collision(); flag_wait( "initial_blackscreen_passed" ); - nodes = getnodearray( "classic_only_traversal", "targetname" ); - foreach ( node in nodes ) - { - unlink_nodes( node, getnode( node.target, "targetname" ) ); - } level thread maps/mp/zombies/_zm_perks::perk_machine_removal( "specialty_quickrevive", "p_glo_tools_chest_tall" ); - maps/mp/zombies/_zm_game_module::turn_power_on_and_open_doors(); + flag_set( "power_on" ); + level setclientfield( "zombie_power_on", 1 ); + level thread open_electric_doors_on_door_opened(); } enemy_location_override( zombie, enemy ) @@ -49,4 +47,72 @@ enemy_location_override( zombie, enemy ) } } return location; +} + +remove_lava_collision() +{ + ents = getEntArray( "script_model", "classname"); + foreach (ent in ents) + { + if (IsDefined(ent.model)) + { + if (ent.model == "zm_collision_transit_busdepot_survival") + { + ent delete(); + } + else if (ent.model == "veh_t6_civ_smallwagon_dead" && ent.origin[0] == -6663.96 && ent.origin[1] == 4816.34) + { + ent delete(); + } + else if (ent.model == "veh_t6_civ_microbus_dead" && ent.origin[0] == -6807.05 && ent.origin[1] == 4765.23) + { + ent delete(); + } + else if (ent.model == "veh_t6_civ_movingtrk_cab_dead" && ent.origin[0] == -6652.9 && ent.origin[1] == 4767.7) + { + ent delete(); + } + else if (ent.model == "p6_zm_rocks_small_cluster_01") + { + ent delete(); + } + } + } + + // spawn in new map edge collisions + // the lava collision and the map edge collisions are all the same entity + collision1 = spawn( "script_model", ( -5898, 4653, 0 ) ); + collision1.angles = (0, 55, 0); + collision1 setmodel( "collision_wall_512x512x10_standard" ); + collision2 = spawn( "script_model", ( -8062, 4700, 0 ) ); + collision2.angles = (0, 70, 0); + collision2 setmodel( "collision_wall_512x512x10_standard" ); + collision3 = spawn( "script_model", ( -7881, 5200, 0 ) ); + collision3.angles = (0, 70, 0); + collision3 setmodel( "collision_wall_512x512x10_standard" ); +} + +open_electric_doors_on_door_opened() +{ + level.local_doors_stay_open = 1; + door = undefined; + zombie_doors = getentarray( "zombie_door", "targetname" ); + foreach ( door in zombie_doors ) + { + if(door.target == "busstop_doors") + { + break; + } + } + + door waittill( "door_opened" ); + + zombie_doors = getentarray( "zombie_door", "targetname" ); + foreach ( door in zombie_doors ) + { + if ( isDefined( door.script_noteworthy ) && door.script_noteworthy == "local_electric_door" ) + { + door notify( "local_power_on" ); + } + } } \ No newline at end of file diff --git a/maps/mp/zm_transit_standard_station.gsc b/maps/mp/zm_transit_standard_station.gsc index e326a83c..0fbfc7e9 100644 --- a/maps/mp/zm_transit_standard_station.gsc +++ b/maps/mp/zm_transit_standard_station.gsc @@ -24,21 +24,15 @@ main() maps/mp/gametypes_zm/_zm_gametype::setup_standard_objects( "station" ); station_treasure_chest_init(); level.enemy_location_override_func = ::enemy_location_override; - collision = spawn( "script_model", ( -6896, 4744, 0 ), 1 ); - collision setmodel( "zm_collision_transit_busdepot_survival" ); - collision disconnectpaths(); + //collision = spawn( "script_model", ( -6896, 4744, 0 ), 1 ); + //collision setmodel( "zm_collision_transit_busdepot_survival" ); + //collision disconnectpaths(); + remove_lava_collision(); flag_wait( "initial_blackscreen_passed" ); level thread maps/mp/zombies/_zm_perks::perk_machine_removal( "specialty_quickrevive", "p_glo_tools_chest_tall" ); flag_set( "power_on" ); level setclientfield( "zombie_power_on", 1 ); - zombie_doors = getentarray( "zombie_door", "targetname" ); - foreach ( door in zombie_doors ) - { - if ( isDefined( door.script_noteworthy ) && door.script_noteworthy == "local_electric_door" ) - { - door trigger_off(); - } - } + level thread open_electric_doors_on_door_opened(); } enemy_location_override( zombie, enemy ) @@ -52,4 +46,72 @@ enemy_location_override( zombie, enemy ) } } return location; +} + +remove_lava_collision() +{ + ents = getEntArray( "script_model", "classname"); + foreach (ent in ents) + { + if (IsDefined(ent.model)) + { + if (ent.model == "zm_collision_transit_busdepot_survival") + { + ent delete(); + } + else if (ent.model == "veh_t6_civ_smallwagon_dead" && ent.origin[0] == -6663.96 && ent.origin[1] == 4816.34) + { + ent delete(); + } + else if (ent.model == "veh_t6_civ_microbus_dead" && ent.origin[0] == -6807.05 && ent.origin[1] == 4765.23) + { + ent delete(); + } + else if (ent.model == "veh_t6_civ_movingtrk_cab_dead" && ent.origin[0] == -6652.9 && ent.origin[1] == 4767.7) + { + ent delete(); + } + else if (ent.model == "p6_zm_rocks_small_cluster_01") + { + ent delete(); + } + } + } + + // spawn in new map edge collisions + // the lava collision and the map edge collisions are all the same entity + collision1 = spawn( "script_model", ( -5898, 4653, 0 ) ); + collision1.angles = (0, 55, 0); + collision1 setmodel( "collision_wall_512x512x10_standard" ); + collision2 = spawn( "script_model", ( -8062, 4700, 0 ) ); + collision2.angles = (0, 70, 0); + collision2 setmodel( "collision_wall_512x512x10_standard" ); + collision3 = spawn( "script_model", ( -7881, 5200, 0 ) ); + collision3.angles = (0, 70, 0); + collision3 setmodel( "collision_wall_512x512x10_standard" ); +} + +open_electric_doors_on_door_opened() +{ + level.local_doors_stay_open = 1; + door = undefined; + zombie_doors = getentarray( "zombie_door", "targetname" ); + foreach ( door in zombie_doors ) + { + if(door.target == "busstop_doors") + { + break; + } + } + + door waittill( "door_opened" ); + + zombie_doors = getentarray( "zombie_door", "targetname" ); + foreach ( door in zombie_doors ) + { + if ( isDefined( door.script_noteworthy ) && door.script_noteworthy == "local_electric_door" ) + { + door notify( "local_power_on" ); + } + } } \ No newline at end of file diff --git a/scripts/zm/main/_zm_reimagined.gsc b/scripts/zm/main/_zm_reimagined.gsc index 92565b5c..38b4b707 100644 --- a/scripts/zm/main/_zm_reimagined.gsc +++ b/scripts/zm/main/_zm_reimagined.gsc @@ -144,8 +144,6 @@ post_all_players_spawned() jetgun_remove_forced_weapon_switch(); jetgun_remove_drop_fn(); - depot_remove_lava_collision(); - town_move_staminup_machine(); tombstone_disable_suicide(); @@ -4471,12 +4469,11 @@ transit_power_local_electric_doors_globally() return; } - local_power = []; - for ( ;; ) { flag_wait( "power_on" ); + local_power = []; zombie_doors = getentarray( "zombie_door", "targetname" ); for ( i = 0; i < zombie_doors.size; i++ ) { @@ -4493,7 +4490,6 @@ transit_power_local_electric_doors_globally() maps/mp/zombies/_zm_power::end_local_power( local_power[i] ); local_power[i] = undefined; } - local_power = []; } } @@ -4594,54 +4590,6 @@ transit_b23r_hint_string_fix() } } -depot_remove_lava_collision() -{ - if(!(!is_classic() && level.scr_zm_map_start_location == "transit")) - { - return; - } - - ents = getEntArray( "script_model", "classname"); - foreach (ent in ents) - { - if (IsDefined(ent.model)) - { - if (ent.model == "zm_collision_transit_busdepot_survival") - { - ent delete(); - } - else if (ent.model == "veh_t6_civ_smallwagon_dead" && ent.origin[0] == -6663.96 && ent.origin[1] == 4816.34) - { - ent delete(); - } - else if (ent.model == "veh_t6_civ_microbus_dead" && ent.origin[0] == -6807.05 && ent.origin[1] == 4765.23) - { - ent delete(); - } - else if (ent.model == "veh_t6_civ_movingtrk_cab_dead" && ent.origin[0] == -6652.9 && ent.origin[1] == 4767.7) - { - ent delete(); - } - else if (ent.model == "p6_zm_rocks_small_cluster_01") - { - ent delete(); - } - } - } - - // spawn in new map edge collisions - // the lava collision and the map edge collisions are all the same entity - collision1 = spawn( "script_model", ( -5898, 4653, 0 ) ); - collision1.angles = (0, 55, 0); - collision1 setmodel( "collision_wall_512x512x10_standard" ); - collision2 = spawn( "script_model", ( -8062, 4700, 0 ) ); - collision2.angles = (0, 70, 0); - collision2 setmodel( "collision_wall_512x512x10_standard" ); - collision3 = spawn( "script_model", ( -7881, 5200, 0 ) ); - collision3.angles = (0, 70, 0); - collision3 setmodel( "collision_wall_512x512x10_standard" ); -} - town_move_tombstone_machine() { if (!(level.scr_zm_ui_gametype == "zstandard" && level.scr_zm_map_start_location == "town")) diff --git a/scripts/zm/main/_zm_reimagined_zgrief.gsc b/scripts/zm/main/_zm_reimagined_zgrief.gsc index c9adeced..7fb40ed5 100644 --- a/scripts/zm/main/_zm_reimagined_zgrief.gsc +++ b/scripts/zm/main/_zm_reimagined_zgrief.gsc @@ -33,8 +33,6 @@ init() setroundsplayed(level.round_number); // don't show first round animation - depot_close_local_electric_doors(); - borough_move_quickrevive_machine(); borough_move_speedcola_machine(); borough_move_staminup_machine(); @@ -44,8 +42,6 @@ init() level thread round_start_wait(5, true); level thread unlimited_zombies(); //level thread spawn_bots(7); - - level thread depot_link_nodes(); } set_team() @@ -1366,40 +1362,6 @@ 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")