1
0
mirror of https://github.com/JezuzLizard/BO2-Reimagined.git synced 2025-06-30 00:50:20 -05:00
Files
BO2-Reimagined/scripts/zm/replaced/zm_buried_grief_street.gsc
2023-04-03 01:10:41 -07:00

351 lines
12 KiB
Plaintext

#include maps\mp\gametypes_zm\_zm_gametype;
#include maps\mp\zombies\_zm_buildables;
#include maps\mp\zombies\_zm_magicbox;
#include maps\mp\zombies\_zm_equip_subwoofer;
#include maps\mp\zombies\_zm_equip_springpad;
#include maps\mp\zombies\_zm_equip_turbine;
#include maps\mp\zombies\_zm_equip_headchopper;
#include maps\mp\zm_buried_buildables;
#include maps\mp\zm_buried_gamemodes;
#include maps\mp\zombies\_zm_race_utility;
#include maps\mp\zombies\_zm_utility;
#include common_scripts\utility;
#include maps\mp\_utility;
precache()
{
if (getDvar("ui_zm_mapstartlocation_fake") == "maze")
{
scripts\zm\locs\zm_buried_loc_maze::precache();
return;
}
precachemodel( "collision_wall_128x128x10_standard" );
precachemodel( "collision_wall_256x256x10_standard" );
precachemodel( "collision_wall_512x512x10_standard" );
precachemodel( "zm_collision_buried_street_grief" );
precachemodel( "p6_zm_bu_buildable_bench_tarp" );
trig = spawn( "script_model", (1288, 1485, 59) );
trig.angles = (0, 0, 0);
trig.script_angles = (0, 70, 0);
trig.targetname = "headchopper_buildable_trigger";
trig.target = "buildable_headchopper";
ent = spawn( "script_model", (1271.89, 1495.38, 77.78) );
ent.angles = (61.5365, 340.343, 0.216167);
ent.targetname = "buildable_headchopper";
ent.target = "headchopper_bench";
ent setmodel( "t6_wpn_zmb_chopper" );
level.chalk_buildable_pieces_hide = 1;
griefbuildables = array( "chalk", "turbine", "springpad_zm", "subwoofer_zm", "headchopper_zm" );
maps\mp\zm_buried_buildables::include_buildables( griefbuildables );
maps\mp\zm_buried_buildables::init_buildables( griefbuildables );
maps\mp\zombies\_zm_equip_turbine::init();
maps\mp\zombies\_zm_equip_turbine::init_animtree();
maps\mp\zombies\_zm_equip_springpad::init( &"ZM_BURIED_EQ_SP_PHS", &"ZM_BURIED_EQ_SP_HTS" );
maps\mp\zombies\_zm_equip_subwoofer::init( &"ZM_BURIED_EQ_SW_PHS", &"ZM_BURIED_EQ_SW_HTS" );
maps\mp\zombies\_zm_equip_headchopper::init( &"ZM_BURIED_EQ_HC_PHS", &"ZM_BURIED_EQ_HC_HTS" );
}
main()
{
if (getDvar("ui_zm_mapstartlocation_fake") == "maze")
{
scripts\zm\locs\zm_buried_loc_maze::main();
return;
}
level.buildables_built[ "pap" ] = 1;
level.equipment_team_pick_up = 1;
level.zones["zone_mansion"].is_enabled = 0;
level thread maps\mp\zombies\_zm_buildables::think_buildables();
maps\mp\gametypes_zm\_zm_gametype::setup_standard_objects( "street" );
street_treasure_chest_init();
deleteslothbarricades();
disable_tunnels();
powerswitchstate( 1 );
level.enemy_location_override_func = ::enemy_location_override;
spawnmapcollision( "zm_collision_buried_street_grief" );
flag_wait( "initial_blackscreen_passed" );
flag_wait( "start_zombie_round_logic" );
wait 1;
builddynamicwallbuys();
buildbuildables();
turnperkon( "revive" );
turnperkon( "doubletap" );
turnperkon( "marathon" );
turnperkon( "juggernog" );
turnperkon( "sleight" );
turnperkon( "additionalprimaryweapon" );
turnperkon( "Pack_A_Punch" );
}
enemy_location_override( zombie, enemy )
{
location = enemy.origin;
if ( isDefined( self.reroute ) && self.reroute )
{
if ( isDefined( self.reroute_origin ) )
{
location = self.reroute_origin;
}
}
return location;
}
street_treasure_chest_init()
{
start_chest = getstruct( "start_chest", "script_noteworthy" );
court_chest = getstruct( "courtroom_chest1", "script_noteworthy" );
jail_chest = getstruct( "jail_chest1", "script_noteworthy" );
gun_chest = getstruct( "gunshop_chest", "script_noteworthy" );
setdvar( "disableLookAtEntityLogic", 1 );
level.chests = [];
level.chests[ level.chests.size ] = start_chest;
level.chests[ level.chests.size ] = court_chest;
level.chests[ level.chests.size ] = jail_chest;
level.chests[ level.chests.size ] = gun_chest;
chest_names = array("start_chest", "courtroom_chest1", "jail_chest1", "gunshop_chest");
chest_name = random(chest_names);
maps\mp\zombies\_zm_magicbox::treasure_chest_init( chest_name );
}
builddynamicwallbuys()
{
builddynamicwallbuy( "morgue", "pdw57_zm" );
builddynamicwallbuy( "church", "svu_zm" );
builddynamicwallbuy( "mansion", "an94_zm" );
level notify("dynamicwallbuysbuilt");
}
builddynamicwallbuy( location, weaponname )
{
foreach ( stub in level.chalk_builds )
{
wallbuy = getstruct( stub.target, "targetname" );
if ( isDefined( wallbuy.script_location ) && wallbuy.script_location == location )
{
spawned_wallbuy = undefined;
for ( i = 0; i < level._spawned_wallbuys.size; i++ )
{
if ( level._spawned_wallbuys[ i ].target == wallbuy.targetname )
{
spawned_wallbuy = level._spawned_wallbuys[ i ];
break;
}
}
if ( !isDefined( spawned_wallbuy ) )
{
origin = wallbuy.origin;
// center wallbuy chalk and model, and adjust wallbuy trigger
if(weaponname == "pdw57_zm")
{
origin += anglesToForward(wallbuy.angles) * 12;
wallbuy.origin += anglesToForward(wallbuy.angles) * 3;
}
else if(weaponname == "svu_zm")
{
origin += anglesToForward(wallbuy.angles) * 24;
wallbuy.origin += anglesToForward(wallbuy.angles) * 15;
}
struct = spawnStruct();
struct.target = wallbuy.targetname;
level._spawned_wallbuys[level._spawned_wallbuys.size] = struct;
// move model foreward so it always shows in front of chalk
model = spawn_weapon_model( weaponname, undefined, origin + anglesToRight(wallbuy.angles) * -0.25, wallbuy.angles );
model.targetname = struct.target;
model setmodel( getWeaponModel(weaponname) );
model useweaponhidetags( weaponname );
model hide();
chalk_fx = weaponname + "_fx";
thread scripts\zm\replaced\utility::playchalkfx( chalk_fx, origin, wallbuy.angles );
}
maps\mp\zombies\_zm_weapons::add_dynamic_wallbuy( weaponname, wallbuy.targetname, 1 );
thread wait_and_remove( stub, stub.buildablezone.pieces[ 0 ] );
}
}
}
buildbuildables()
{
buildbuildable( "headchopper_zm" );
buildbuildable( "springpad_zm" );
buildbuildable( "subwoofer_zm" );
buildbuildable( "turbine" );
}
disable_tunnels()
{
// stables tunnel entrance
origin = (-1502, -262, 26);
angles = ( 0, 90, 5 );
collision = spawn( "script_model", origin + anglesToUp(angles) * 64 );
collision.angles = angles;
collision setmodel( "collision_wall_128x128x10_standard" );
model = spawn( "script_model", origin + (0, 60, 0) );
model.angles = angles;
model setmodel( "p6_zm_bu_wood_door_bare" );
model = spawn( "script_model", origin + (0, -60, 0) );
model.angles = angles;
model setmodel( "p6_zm_bu_wood_door_bare_right" );
// stables tunnel exit
origin = (-22, -1912, 269);
angles = ( 0, -90, -10 );
collision = spawn( "script_model", origin + anglesToUp(angles) * 128 );
collision.angles = angles;
collision setmodel( "collision_wall_256x256x10_standard" );
model = spawn( "script_model", origin );
model.angles = angles;
model setmodel( "p6_zm_bu_sloth_blocker_medium" );
// saloon tunnel entrance
origin = (488, -1778, 188);
angles = ( 0, 0, -10 );
collision = spawn( "script_model", origin + anglesToUp(angles) * 64 );
collision.angles = angles;
collision setmodel( "collision_wall_128x128x10_standard" );
model = spawn( "script_model", origin );
model.angles = angles;
model setmodel( "p6_zm_bu_sloth_blocker_medium" );
// saloon tunnel exit
origin = (120, -1984, 228);
angles = ( 0, 45, -10 );
collision = spawn( "script_model", origin + anglesToUp(angles) * 128 );
collision.angles = angles;
collision setmodel( "collision_wall_256x256x10_standard" );
model = spawn( "script_model", origin );
model.angles = angles;
model setmodel( "p6_zm_bu_sloth_blocker_medium" );
// main tunnel saloon side
origin = (770, -863, 320);
angles = ( 0, 180, -35 );
collision = spawn( "script_model", origin + anglesToUp(angles) * 128 );
collision.angles = angles;
collision setmodel( "collision_wall_256x256x10_standard" );
model = spawn( "script_model", origin );
model.angles = angles;
model setmodel( "p6_zm_bu_sloth_blocker_medium" );
// main tunnel courthouse side
origin = (349, 579, 240);
angles = ( 0, 0, -10 );
collision = spawn( "script_model", origin + anglesToUp(angles) * 64 );
collision.angles = angles;
collision setmodel( "collision_wall_128x128x10_standard" );
model = spawn( "script_model", origin );
model.angles = angles;
model setmodel( "p6_zm_bu_sloth_blocker_medium" );
// main tunnel above general store
origin = (-123, -801, 326);
angles = ( 0, 0, 90 );
collision = spawn( "script_model", origin );
collision.angles = angles;
collision setmodel( "collision_wall_128x128x10_standard" );
// main tunnel above jail
origin = (-852, 408, 379);
angles = ( 0, 0, 90 );
collision = spawn( "script_model", origin );
collision.angles = angles;
collision setmodel( "collision_wall_512x512x10_standard" );
// main tunnel above stables
origin = (-713, -313, 287);
angles = ( 0, 0, 90 );
collision = spawn( "script_model", origin );
collision.angles = angles;
collision setmodel( "collision_wall_128x128x10_standard" );
// gunsmith debris
debris_trigs = getentarray( "zombie_debris", "targetname" );
foreach ( debris_trig in debris_trigs )
{
if ( debris_trig.target == "pf728_auto2534" )
{
debris_trig delete();
}
}
// bank top
model = spawn( "script_model", (-371.839, -448.016, 224.125));
model.angles = (0, 180, -90);
model setmodel("p6_zm_bu_wood_planks_106x171");
model = spawn( "script_model", (-381.252, -443.056, 144.125), 1);
model.angles = (0, 0, 0);
model setmodel("collision_clip_wall_128x128x10");
model disconnectpaths();
// bank tunnel
model = spawn( "script_model", (-54.6069, -1129.47, 6.125));
model.angles = (0, 0, 0);
model setmodel("p6_zm_bu_wood_planks_106x171");
model = spawn( "script_model", (-92.6853, -1075.92, 8.125));
model.angles = (0, 140, 0);
model setmodel("p6_zm_bu_sloth_blocker_medium");
model = spawn( "script_model", (-40.3028, -1158.31, 3.125));
model.angles = (0, -90, -15);
model setmodel("p6_zm_bu_victorian_couch");
model = spawn( "script_model", (-75.4725, -1156.37, 52.125));
model.angles = (0, 0, 180);
model setmodel("p6_zm_work_bench");
model = spawn( "script_model", (-53.4637, -1165.89, 8.125), 1);
model.angles = (0, 0, 0);
model setmodel("collision_clip_64x64x128");
model disconnectpaths();
// zombie spawns
level.zones["zone_tunnel_gun2saloon"].is_enabled = 0;
level.zones["zone_tunnel_gun2saloon"].is_spawning_allowed = 0;
level.zones["zone_tunnel_gun2stables"].is_enabled = 0;
level.zones["zone_tunnel_gun2stables"].is_spawning_allowed = 0;
level.zones["zone_tunnel_gun2stables2"].is_enabled = 0;
level.zones["zone_tunnel_gun2stables2"].is_spawning_allowed = 0;
level.zones["zone_tunnels_center"].is_enabled = 0;
level.zones["zone_tunnels_center"].is_spawning_allowed = 0;
level.zones["zone_tunnels_north"].is_enabled = 0;
level.zones["zone_tunnels_north"].is_spawning_allowed = 0;
level.zones["zone_tunnels_north2"].is_enabled = 0;
level.zones["zone_tunnels_north2"].is_spawning_allowed = 0;
level.zones["zone_tunnels_south"].is_enabled = 0;
level.zones["zone_tunnels_south"].is_spawning_allowed = 0;
level.zones["zone_tunnels_south2"].is_enabled = 0;
level.zones["zone_tunnels_south2"].is_spawning_allowed = 0;
level.zones["zone_tunnels_south3"].is_enabled = 0;
level.zones["zone_tunnels_south3"].is_spawning_allowed = 0;
level.zones["zone_bank"].is_enabled = 0;
level.zones["zone_bank"].is_spawning_allowed = 0;
foreach ( spawn_location in level.zones["zone_stables"].spawn_locations )
{
if ( spawn_location.origin == ( -1551, -611, 36.69 ) )
{
spawn_location.is_enabled = false;
}
}
// player spawns
invalid_zones = array("zone_start", "zone_tunnels_center", "zone_tunnels_north", "zone_tunnels_south");
spawn_points = maps\mp\gametypes_zm\_zm_gametype::get_player_spawns_for_gametype();
foreach(spawn_point in spawn_points)
{
if(isinarray(invalid_zones, spawn_point.script_noteworthy))
{
spawn_point.locked = 1;
}
}
}