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:
@ -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
|
||||
|
258
scripts/zm/locs/zm_transit_loc_tunnel.gsc
Normal file
258
scripts/zm/locs/zm_transit_loc_tunnel.gsc
Normal 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;
|
||||
}
|
||||
}
|
@ -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 ) )
|
||||
|
@ -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 );
|
||||
}
|
@ -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")
|
||||
{
|
||||
|
Reference in New Issue
Block a user