1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-07-03 18:39:34 -05:00

MOTD: change adjacent zones

Containment on Docks: add Docks Gates zone
This commit is contained in:
Jbleezy
2023-03-17 14:14:06 -07:00
parent 7dfb536790
commit 34c8ea393c
4 changed files with 248 additions and 14 deletions

View File

@ -466,6 +466,8 @@
* Plane parts must be all acquired to craft * Plane parts must be all acquired to craft
* Plane fuel automatically picked up * Plane fuel automatically picked up
* Players no longer respawn in the Acid Trap * Players no longer respawn in the Acid Trap
* Zombies spawn in the Docks zone when in the Docks Gates zone
* Zombies spawn in the Docks Gates zone when in the Docks zone
#### Cell Block #### Cell Block
* Added Smoke Grenades to the Mystery Box * Added Smoke Grenades to the Mystery Box

View File

@ -59,7 +59,7 @@ precache()
main() main()
{ {
enable_zones(); flag_set("gondola_roof_to_dock");
init_wallbuys(); init_wallbuys();
init_barriers(); init_barriers();
set_box_weapons(); set_box_weapons();
@ -90,16 +90,6 @@ set_box_weapons()
} }
} }
enable_zones()
{
zone_init( "zone_dock" );
enable_zone( "zone_dock" );
zone_init( "zone_dock_gondola" );
enable_zone( "zone_dock_gondola" );
zone_init( "zone_dock_puzzle" );
flag_set( "gondola_roof_to_dock" );
}
init_wallbuys() init_wallbuys()
{ {
scripts\zm\replaced\utility::wallbuy( "m14_zm", "m14", "weapon_upgrade", ( 305, 6376, 319 ), ( 0, -80, 0 ) ); scripts\zm\replaced\utility::wallbuy( "m14_zm", "m14", "weapon_upgrade", ( 305, 6376, 319 ), ( 0, -80, 0 ) );

View File

@ -2666,6 +2666,11 @@ containment_think()
player.obj_waypoint.z += 200; player.obj_waypoint.z += 200;
} }
if(level.script == "zm_prison" && zone_name == "zone_dock_puzzle")
{
player.obj_waypoint.z -= 250;
}
player.obj_waypoint setWaypoint(1, "waypoint_revive"); player.obj_waypoint setWaypoint(1, "waypoint_revive");
} }
} }
@ -2918,7 +2923,7 @@ containment_get_zones()
{ {
if (getDvar("ui_zm_mapstartlocation_fake") == "docks") if (getDvar("ui_zm_mapstartlocation_fake") == "docks")
{ {
containment_zones = array("zone_dock_gondola", "zone_studio", "zone_citadel_basement_building"); containment_zones = array("zone_dock_gondola", "zone_dock_puzzle", "zone_studio", "zone_citadel_basement_building");
} }
else else
{ {

View File

@ -30,6 +30,7 @@ main()
replaceFunc(maps\mp\zombies\_zm_riotshield_prison::trackriotshield, scripts\zm\replaced\_zm_riotshield_prison::trackriotshield); replaceFunc(maps\mp\zombies\_zm_riotshield_prison::trackriotshield, scripts\zm\replaced\_zm_riotshield_prison::trackriotshield);
replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::init, scripts\zm\replaced\_zm_weap_riotshield_prison::init); replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::init, scripts\zm\replaced\_zm_weap_riotshield_prison::init);
replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::player_damage_shield, scripts\zm\replaced\_zm_weap_riotshield_prison::player_damage_shield); replaceFunc(maps\mp\zombies\_zm_weap_riotshield_prison::player_damage_shield, scripts\zm\replaced\_zm_weap_riotshield_prison::player_damage_shield);
replaceFunc(maps\mp\zombies\_zm_zonemgr::manage_zones, ::manage_zones);
} }
init() init()
@ -42,8 +43,6 @@ init()
level.zombie_powerups["meat_stink"].model_name = "t6_wpn_zmb_severedhead_world"; level.zombie_powerups["meat_stink"].model_name = "t6_wpn_zmb_severedhead_world";
add_adjacent_zone( "zone_dock", "zone_dock_puzzle", "always_on" ); // "docks_inner_gate_unlocked"
remove_acid_trap_player_spawn(); remove_acid_trap_player_spawn();
tower_trap_changes(); tower_trap_changes();
@ -615,3 +614,241 @@ craftabletrigger_update_prompt( player )
return can_use; return can_use;
} }
manage_zones( initial_zone )
{
level.zone_manager_init_func = ::working_zone_init;
deactivate_initial_barrier_goals();
zone_choke = 0;
spawn_points = maps\mp\gametypes_zm\_zm_gametype::get_player_spawns_for_gametype();
for ( i = 0; i < spawn_points.size; i++ )
{
assert( isdefined( spawn_points[i].script_noteworthy ), "player_respawn_point: You must specify a script noteworthy with the zone name" );
spawn_points[i].locked = 1;
}
if ( isdefined( level.zone_manager_init_func ) )
[[ level.zone_manager_init_func ]]();
if ( isarray( initial_zone ) )
{
for ( i = 0; i < initial_zone.size; i++ )
{
zone_init( initial_zone[i] );
enable_zone( initial_zone[i] );
}
}
else
{
zone_init( initial_zone );
enable_zone( initial_zone );
}
setup_zone_flag_waits();
zkeys = getarraykeys( level.zones );
level.zone_keys = zkeys;
level.newzones = [];
for ( z = 0; z < zkeys.size; z++ )
level.newzones[zkeys[z]] = spawnstruct();
oldzone = undefined;
flag_set( "zones_initialized" );
flag_wait( "begin_spawning" );
while ( getdvarint( _hash_10873CCA ) == 0 || getdvarint( _hash_762F1309 ) != 0 )
{
for ( z = 0; z < zkeys.size; z++ )
{
level.newzones[zkeys[z]].is_active = 0;
level.newzones[zkeys[z]].is_occupied = 0;
}
a_zone_is_active = 0;
a_zone_is_spawning_allowed = 0;
level.zone_scanning_active = 1;
for ( z = 0; z < zkeys.size; z++ )
{
zone = level.zones[zkeys[z]];
newzone = level.newzones[zkeys[z]];
if ( !zone.is_enabled )
continue;
if ( isdefined( level.zone_occupied_func ) )
newzone.is_occupied = [[ level.zone_occupied_func ]]( zkeys[z] );
else
newzone.is_occupied = player_in_zone( zkeys[z] );
if ( newzone.is_occupied )
{
newzone.is_active = 1;
a_zone_is_active = 1;
if ( zone.is_spawning_allowed )
a_zone_is_spawning_allowed = 1;
if ( !isdefined( oldzone ) || oldzone != newzone )
{
level notify( "newzoneActive", zkeys[z] );
oldzone = newzone;
}
azkeys = getarraykeys( zone.adjacent_zones );
for ( az = 0; az < zone.adjacent_zones.size; az++ )
{
if ( zone.adjacent_zones[azkeys[az]].is_connected && level.zones[azkeys[az]].is_enabled )
{
level.newzones[azkeys[az]].is_active = 1;
if ( level.zones[azkeys[az]].is_spawning_allowed )
a_zone_is_spawning_allowed = 1;
}
}
}
zone_choke++;
if ( zone_choke >= 3 )
{
zone_choke = 0;
wait 0.05;
}
}
level.zone_scanning_active = 0;
for ( z = 0; z < zkeys.size; z++ )
{
level.zones[zkeys[z]].is_active = level.newzones[zkeys[z]].is_active;
level.zones[zkeys[z]].is_occupied = level.newzones[zkeys[z]].is_occupied;
}
if ( !a_zone_is_active || !a_zone_is_spawning_allowed )
{
if ( isarray( initial_zone ) )
{
level.zones[initial_zone[0]].is_active = 1;
level.zones[initial_zone[0]].is_occupied = 1;
level.zones[initial_zone[0]].is_spawning_allowed = 1;
}
else
{
level.zones[initial_zone].is_active = 1;
level.zones[initial_zone].is_occupied = 1;
level.zones[initial_zone].is_spawning_allowed = 1;
}
}
[[ level.create_spawner_list_func ]]( zkeys );
level.active_zone_names = maps\mp\zombies\_zm_zonemgr::get_active_zone_names();
wait 1;
}
}
working_zone_init()
{
flag_init( "always_on" );
flag_set( "always_on" );
if ( is_gametype_active( "zgrief" ) )
{
a_s_spawner = getstructarray( "zone_cellblock_west_roof_spawner", "targetname" );
foreach ( spawner in a_s_spawner )
{
if ( isdefined( spawner.script_parameters ) && spawner.script_parameters == "zclassic_prison" )
spawner structdelete();
}
}
if ( is_classic() )
add_adjacent_zone( "zone_library", "zone_start", "always_on" );
else
{
add_adjacent_zone( "zone_library", "zone_cellblock_west", "activate_cellblock_west" );
add_adjacent_zone( "zone_library", "zone_start", "activate_cellblock_west" );
add_adjacent_zone( "zone_cellblock_east", "zone_start", "activate_cellblock_east" );
add_adjacent_zone( "zone_library", "zone_start", "activate_cellblock_east" );
}
add_adjacent_zone( "zone_library", "zone_cellblock_west", "activate_cellblock_west" );
add_adjacent_zone( "zone_cellblock_west", "zone_cellblock_west_barber", "activate_cellblock_barber" );
add_adjacent_zone( "zone_cellblock_west_warden", "zone_cellblock_west_barber", "activate_cellblock_barber" );
add_adjacent_zone( "zone_cellblock_west_warden", "zone_cellblock_west_barber", "activate_cellblock_gondola" );
add_adjacent_zone( "zone_cellblock_west", "zone_cellblock_west_gondola", "activate_cellblock_gondola" );
add_adjacent_zone( "zone_cellblock_west_barber", "zone_cellblock_west_gondola", "activate_cellblock_gondola" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_west_barber", "activate_cellblock_gondola" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_east", "activate_cellblock_gondola" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_infirmary", "activate_cellblock_infirmary" );
add_adjacent_zone( "zone_infirmary_roof", "zone_infirmary", "activate_cellblock_infirmary" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_west_barber", "activate_cellblock_infirmary" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_west", "activate_cellblock_infirmary" );
add_adjacent_zone( "zone_start", "zone_cellblock_east", "activate_cellblock_east" );
add_adjacent_zone( "zone_cellblock_west_barber", "zone_cellblock_west_warden", "activate_cellblock_infirmary" );
add_adjacent_zone( "zone_cellblock_west_barber", "zone_cellblock_east", "activate_cellblock_east_west" );
add_adjacent_zone( "zone_cellblock_west_barber", "zone_cellblock_west_warden", "activate_cellblock_east_west" );
add_adjacent_zone( "zone_cellblock_west_warden", "zone_warden_office", "activate_warden_office" );
add_adjacent_zone( "zone_cellblock_west_warden", "zone_citadel_warden", "activate_cellblock_citadel" );
add_adjacent_zone( "zone_cellblock_west_warden", "zone_cellblock_west_barber", "activate_cellblock_citadel" );
add_adjacent_zone( "zone_citadel", "zone_citadel_warden", "activate_cellblock_citadel" );
add_adjacent_zone( "zone_citadel", "zone_citadel_shower", "activate_cellblock_citadel" );
add_adjacent_zone( "zone_cellblock_east", "zone_cafeteria", "activate_cafeteria" );
add_adjacent_zone( "zone_cafeteria", "zone_cafeteria_end", "activate_cafeteria" );
add_adjacent_zone( "zone_cellblock_east", "cellblock_shower", "activate_shower_room" );
add_adjacent_zone( "cellblock_shower", "zone_citadel_shower", "activate_shower_citadel" );
add_adjacent_zone( "zone_citadel_shower", "zone_citadel", "activate_shower_citadel" );
add_adjacent_zone( "zone_citadel", "zone_citadel_warden", "activate_shower_citadel" );
add_adjacent_zone( "zone_cafeteria", "zone_infirmary", "activate_infirmary" );
add_adjacent_zone( "zone_cafeteria", "zone_cafeteria_end", "activate_infirmary" );
add_adjacent_zone( "zone_infirmary_roof", "zone_infirmary", "activate_infirmary" );
add_adjacent_zone( "zone_roof", "zone_roof_infirmary", "activate_roof" );
add_adjacent_zone( "zone_roof_infirmary", "zone_infirmary_roof", "activate_roof" );
add_adjacent_zone( "zone_citadel", "zone_citadel_stairs", "activate_citadel_stair" );
add_adjacent_zone( "zone_citadel", "zone_citadel_shower", "activate_citadel_stair" );
add_adjacent_zone( "zone_citadel", "zone_citadel_warden", "activate_citadel_stair" );
add_adjacent_zone( "zone_citadel_stairs", "zone_citadel_basement", "activate_citadel_basement" );
add_adjacent_zone( "zone_citadel_basement", "zone_citadel_basement_building", "activate_citadel_basement" );
add_adjacent_zone( "zone_citadel_basement", "zone_citadel_basement_building", "activate_basement_building" );
add_adjacent_zone( "zone_citadel_basement_building", "zone_studio", "activate_basement_building" );
add_adjacent_zone( "zone_citadel_basement", "zone_studio", "activate_basement_building" );
add_adjacent_zone( "zone_citadel_basement_building", "zone_dock_gondola", "activate_basement_gondola" );
add_adjacent_zone( "zone_citadel_basement", "zone_citadel_basement_building", "activate_basement_gondola" );
add_adjacent_zone( "zone_dock", "zone_dock_gondola", "activate_basement_gondola" );
add_adjacent_zone( "zone_studio", "zone_dock", "activate_dock_sally" );
add_adjacent_zone( "zone_dock_gondola", "zone_dock", "activate_dock_sally" );
add_adjacent_zone( "zone_dock", "zone_dock_gondola", "gondola_roof_to_dock" );
add_adjacent_zone( "zone_cellblock_west", "zone_cellblock_west_gondola", "gondola_dock_to_roof" );
add_adjacent_zone( "zone_cellblock_west_barber", "zone_cellblock_west_gondola", "gondola_dock_to_roof" );
add_adjacent_zone( "zone_cellblock_west_barber", "zone_cellblock_west_warden", "gondola_dock_to_roof" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_east", "gondola_dock_to_roof" );
if ( is_classic() )
add_adjacent_zone( "zone_gondola_ride", "zone_gondola_ride", "gondola_ride_zone_enabled" );
if ( is_classic() )
{
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_west_gondola_dock", "activate_cellblock_infirmary" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_west_gondola_dock", "activate_cellblock_gondola" );
add_adjacent_zone( "zone_cellblock_west_gondola", "zone_cellblock_west_gondola_dock", "gondola_dock_to_roof" );
}
// else if ( is_gametype_active( "zgrief" ) )
// {
// playable_area = getentarray( "player_volume", "script_noteworthy" );
// foreach ( area in playable_area )
// {
// if ( isdefined( area.script_parameters ) && area.script_parameters == "classic_only" )
// area delete();
// }
// }
add_adjacent_zone( "zone_golden_gate_bridge", "zone_golden_gate_bridge", "activate_player_zone_bridge" );
add_adjacent_zone( "zone_dock", "zone_dock_puzzle", "docks_inner_gate_unlocked" );
}