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

Tranzit: add Tunnel location

This commit is contained in:
Jbleezy
2022-08-12 22:20:26 -07:00
parent 0f30dd6f82
commit 965d71b514
5 changed files with 301 additions and 4 deletions

View File

@ -58,7 +58,7 @@
* Can shoot while looking at other players
* Increased mantle speed
* Increased ladder climb speed
* Start with semtex on maps that have semtex
* Start with Semtex on maps that have Semtex
* Entering and exiting last stand no longer refills last stand weapon clip automatically
* Decreased friendly player name fade out time from 1.5 seconds to 0.25 seconds
* Removed enemy player name fade in time
@ -380,6 +380,12 @@
* Moved Tombstone Soda to the laundry room front door
* Grief: added Tombstone Soda
#### Tunnel
* Added Survival and Grief gamemodes
* Wallbuys: M14, Olympia, M16, MP5, Semtex
* Perks: Juggernog, Quick Revive, Speed Cola, Double Tap, Stamin-Up
* Pack-a-Punch
### Die Rise
* Zombies no longer spawn in the Upper Blue Highrise zone when in the Trample Steam zone
* Zombies no longer spawn in the zone next to the AN94 when in the AN94 zone while the debris is closed

View File

@ -0,0 +1,258 @@
#include maps/mp/zombies/_zm_game_module;
#include maps/mp/zombies/_zm_utility;
#include common_scripts/utility;
#include maps/mp/_utility;
#include maps/mp/zombies/_zm;
#include maps/mp/zombies/_zm_zonemgr;
#include scripts/zm/replaced/utility;
#include scripts/zm/locs/loc_common;
struct_init()
{
replaceFunc(maps/mp/zombies/_zm_zonemgr::manage_zones, ::manage_zones);
scripts/zm/replaced/utility::register_perk_struct( "specialty_armorvest", "zombie_vending_jugg", ( -11541, -2630, 194 ), ( 0, -180, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_quickrevive", "zombie_vending_quickrevive", ( -10780, -2565, 224 ), ( 0, 270, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_fastreload", "zombie_vending_sleight", ( -11373, -1674, 192 ), ( 0, -89, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_rof", "zombie_vending_doubletap2", ( -11170, -590, 196 ), ( 0, -10, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_longersprint", "zombie_vending_marathon", ( -11681, -734, 228 ), ( 0, -19, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_weapupgrade", "p6_anim_zm_buildable_pap_on", ( -11301, -2096, 184 ), ( 0, 115, 0 ) );
ind = 0;
respawnpoints = maps/mp/gametypes_zm/_zm_gametype::get_player_spawns_for_gametype();
for(i = 0; i < respawnpoints.size; i++)
{
if(respawnpoints[i].script_noteworthy == "zone_amb_tunnel")
{
ind = i;
break;
}
}
respawn_array = getstructarray(respawnpoints[ind].target, "targetname");
foreach(respawn in respawn_array)
{
// if(respawn.script_int == 2)
// {
// respawn.angles += (0, 180, 0);
// }
scripts/zm/replaced/utility::register_map_initial_spawnpoint( respawn.origin, respawn.angles, respawn.script_int );
}
}
precache()
{
}
main()
{
init_wallbuys();
init_barriers();
thread disable_zombie_spawn_locations();
scripts/zm/locs/loc_common::init();
}
init_wallbuys()
{
scripts/zm/replaced/utility::wallbuy( "m14_zm", "m14", "weapon_upgrade", ( -11166, -2844, 247 ), ( 0, -86, 0 ) );
scripts/zm/replaced/utility::wallbuy( "rottweil72_zm", "olympia", "weapon_upgrade", ( -10787, -1430, 247 ), ( 0, 88, 0 ) );
scripts/zm/replaced/utility::wallbuy( "mp5k_zm", "mp5", "weapon_upgrade", ( -10656, -752, 247 ), ( 0, 83, 0 ) );
scripts/zm/replaced/utility::wallbuy( "m16_zm", "m16", "weapon_upgrade", ( -11839, -1695.1, 287 ), ( 0, 270, 0 ) );
scripts/zm/replaced/utility::wallbuy( "sticky_grenade_zm", "sticky_grenade", "weapon_upgrade", ( -11839, -2406, 283 ), ( 0, -93, 0 ) );
}
init_barriers()
{
origin = ( -11270, -500, 255 );
angles = ( 0, 195, 0 );
scripts/zm/replaced/utility::barrier( "collision_player_wall_512x512x10", origin + (anglesToRight(angles) * -25) + (anglesToForward(angles) * 150), angles );
scripts/zm/replaced/utility::barrier( "veh_t6_civ_60s_coupe_dead", origin + (anglesToUp(angles) * -63) + (anglesToForward(angles) * 125) + (anglesToRight(angles) * 25), angles );
scripts/zm/replaced/utility::barrier( "veh_t6_civ_smallwagon_dead", origin + (anglesToUp(angles) * -63) + (anglesToForward(angles) * -30) + (anglesToRight(angles) * 50), angles + (0, -90, 0) );
origin = ( -10750, -3275, 255 );
angles = ( 0, 195, 0 );
scripts/zm/replaced/utility::barrier( "collision_player_wall_512x512x10", origin + (anglesToRight(angles) * 55), angles );
scripts/zm/replaced/utility::barrier( "veh_t6_civ_movingtrk_cab_dead", origin, angles );
}
disable_zombie_spawn_locations()
{
wait 10;
player = get_players()[0];
player notify( "stop_player_out_of_playable_area_monitor" );
for ( z = 0; z < level.zone_keys.size; z++ )
{
zone = level.zones[ level.zone_keys[ z ] ];
if(zone == "zone_amb_tunnel")
{
i = 0;
while ( i < zone.spawn_locations.size )
{
if ( zone.spawn_locations[ i ].origin == ( -11447, -3424, 254.2 ) )
{
zone.spawn_locations[ i ].is_enabled = false;
}
else if ( zone.spawn_locations[ i ].origin == ( -11093, 393, 192 ) )
{
zone.spawn_locations[ i ].is_enabled = false;
}
else if ( zone.spawn_locations[ i ].origin == ( -10944, -3846, 221.14 ) )
{
zone.spawn_locations[ i ].is_enabled = false;
}
else if ( zone.spawn_locations[ i ].origin == ( -10836, 1195, 209.7 ) )
{
zone.spawn_locations[ i ].is_enabled = false;
}
else if ( zone.spawn_locations[ i ].origin == ( -11251, -4397, 200.02 ) )
{
zone.spawn_locations[ i ].is_enabled = false;
}
else if ( zone.spawn_locations[ i ].origin == ( -11334, -5280, 212.7 ) )
{
zone.spawn_locations[ i ].is_enabled = false;
}
else if ( zone.spawn_locations[ i ].origin == ( -11347, -3134, 283.9 ) )
{
zone.spawn_locations[ i ].is_enabled = false;
}
i++;
}
}
}
}
manage_zones( initial_zone )
{
initial_zone = [];
initial_zone[0] = "zone_amb_tunnel";
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++ )
{
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( "noclip" ) == 0 || getDvarInt( "notarget" ) != 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;
z = 0;
while ( z < zkeys.size )
{
zone = level.zones[ zkeys[ z ] ];
newzone = level.newzones[ zkeys[ z ] ];
if( !zone.is_enabled )
{
z++;
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;
}
z++;
}
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;
}
}

View File

@ -176,9 +176,13 @@ wallbuy( weapon_name, target, targetname, origin, angles )
unitrigger_stub.angles = angles;
model_name = undefined;
if ( weapon_name == "claymore_zm" )
if ( weapon_name == "sticky_grenade_zm" )
{
model_name = "t6_wpn_claymore_world"; // getWeaponModel for claymore is wrong model
model_name = "semtex_bag";
}
else if ( weapon_name == "claymore_zm" )
{
model_name = "t6_wpn_claymore_world";
}
wallmodel = spawn_weapon_model( weapon_name, model_name, origin, angles );
@ -197,7 +201,7 @@ wallbuy( weapon_name, target, targetname, origin, angles )
unitrigger_stub.targetname = targetname;
unitrigger_stub.cursor_hint = "HINT_NOICON";
// move model foreward so it always shows in front of chalk
// move model forward so it always shows in front of chalk
move_amount = anglesToRight( wallmodel.angles ) * -0.3;
wallmodel.origin += move_amount;
unitrigger_stub.origin += move_amount;
@ -289,6 +293,11 @@ wallbuy( weapon_name, target, targetname, origin, angles )
chalk_fx = weapon_name + "_fx";
level thread playchalkfx( chalk_fx, origin, angles );
if(weaponType(weapon_name) == "grenade")
{
unitrigger_stub thread wallbuy_grenade_model_fix();
}
}
playchalkfx( effect, origin, angles )
@ -302,6 +311,21 @@ playchalkfx( effect, origin, angles )
}
}
// fixes grenade wallbuy model doing first trigger animation everytime
wallbuy_grenade_model_fix()
{
model = getent(self.target, "targetname");
if(!isDefined(model))
{
return;
}
model waittill("movedone");
self.target = undefined;
}
barrier( model, origin, angles, not_solid )
{
if ( !isDefined( level.survival_barriers ) )

View File

@ -15,6 +15,7 @@
#include scripts/zm/locs/zm_transit_loc_diner;
#include scripts/zm/locs/zm_transit_loc_power;
#include scripts/zm/locs/zm_transit_loc_tunnel;
init()
{
@ -29,15 +30,19 @@ init()
add_map_location_gamemode( "zstandard", "town", maps/mp/zm_transit_standard_town::precache, maps/mp/zm_transit_standard_town::main );
add_map_location_gamemode( "zstandard", "diner", scripts/zm/locs/zm_transit_loc_diner::precache, scripts/zm/locs/zm_transit_loc_diner::main );
add_map_location_gamemode( "zstandard", "power", scripts/zm/locs/zm_transit_loc_power::precache, scripts/zm/locs/zm_transit_loc_power::main );
add_map_location_gamemode( "zstandard", "tunnel", scripts/zm/locs/zm_transit_loc_tunnel::precache, scripts/zm/locs/zm_transit_loc_tunnel::main );
add_map_location_gamemode( "zgrief", "transit", maps/mp/zm_transit_grief_station::precache, maps/mp/zm_transit_grief_station::main );
add_map_location_gamemode( "zgrief", "farm", maps/mp/zm_transit_grief_farm::precache, maps/mp/zm_transit_grief_farm::main );
add_map_location_gamemode( "zgrief", "town", maps/mp/zm_transit_grief_town::precache, maps/mp/zm_transit_grief_town::main );
add_map_location_gamemode( "zgrief", "diner", scripts/zm/locs/zm_transit_loc_diner::precache, scripts/zm/locs/zm_transit_loc_diner::main );
add_map_location_gamemode( "zgrief", "power", scripts/zm/locs/zm_transit_loc_power::precache, scripts/zm/locs/zm_transit_loc_power::main );
add_map_location_gamemode( "zgrief", "tunnel", scripts/zm/locs/zm_transit_loc_tunnel::precache, scripts/zm/locs/zm_transit_loc_tunnel::main );
scripts/zm/replaced/utility::add_struct_location_gamemode_func( "zstandard", "diner", scripts/zm/locs/zm_transit_loc_diner::struct_init );
scripts/zm/replaced/utility::add_struct_location_gamemode_func( "zgrief", "diner", scripts/zm/locs/zm_transit_loc_diner::struct_init );
scripts/zm/replaced/utility::add_struct_location_gamemode_func( "zstandard", "power", scripts/zm/locs/zm_transit_loc_power::struct_init );
scripts/zm/replaced/utility::add_struct_location_gamemode_func( "zgrief", "power", scripts/zm/locs/zm_transit_loc_power::struct_init );
scripts/zm/replaced/utility::add_struct_location_gamemode_func( "zstandard", "tunnel", scripts/zm/locs/zm_transit_loc_tunnel::struct_init );
scripts/zm/replaced/utility::add_struct_location_gamemode_func( "zgrief", "tunnel", scripts/zm/locs/zm_transit_loc_tunnel::struct_init );
}

View File

@ -2385,6 +2385,10 @@ containment_init()
{
level.containment_zones = array("zone_town_north", "zone_town_south", "zone_town_east", "zone_town_west", "zone_bar", "zone_town_barber", "zone_ban");
}
else if(level.scr_zm_map_start_location == "tunnel")
{
level.containment_zones = array("zone_amb_tunnel");
}
}
else if(level.script == "zm_prison")
{