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

Add Encounter Pro

This commit is contained in:
Jbleezy 2022-08-11 18:05:00 -07:00
parent ef1c48db1c
commit 799bf28803
7 changed files with 219 additions and 12 deletions

View File

@ -511,4 +511,14 @@
* Zombies only go after players in the containment zone
* Players in the containment zone gain 50 points when their team gains score
* Players respawn after being down for 10 seconds
* Players retain perks
* Players retain perks
### Encounter Pro
* 100 player health
* Added Juggernog and Speed Cola on all maps
* Removed all perks except for Juggernog and Speed Cola
* Removed Pack-a-Punch
* Removed Mystery Box
* Removed powerups
* Removed buildables
* Power Station: disabled door to Power Station zone

View File

@ -181,10 +181,46 @@ buildbuildables()
// }
// }
//buildbuildable( "headchopper_zm" );
buildbuildable( "springpad_zm" );
buildbuildable( "subwoofer_zm" );
buildbuildable( "turbine" );
if(is_true(level.scr_zm_ui_gametype_pro))
{
//removebuildable( "headchopper_zm" );
removebuildable( "springpad_zm" );
removebuildable( "subwoofer_zm" );
removebuildable( "turbine" );
}
else
{
//buildbuildable( "headchopper_zm" );
buildbuildable( "springpad_zm" );
buildbuildable( "subwoofer_zm" );
buildbuildable( "turbine" );
}
}
removebuildable( buildable )
{
player = get_players()[ 0 ];
_a197 = level.buildable_stubs;
_k197 = getFirstArrayKey( _a197 );
while ( isDefined( _k197 ) )
{
stub = _a197[ _k197 ];
if ( !isDefined( buildable ) || stub.equipname == buildable )
{
if ( isDefined( buildable ) || stub.persistent != 3 )
{
_a206 = stub.buildablezone.pieces;
_k206 = getFirstArrayKey( _a206 );
while ( isDefined( _k206 ) )
{
piece = _a206[ _k206 ];
piece maps/mp/zombies/_zm_buildables::piece_unspawn();
_k206 = getNextArrayKey( _a206, _k206 );
}
}
}
_k197 = getNextArrayKey( _a197, _k197 );
}
}
disable_tunnels()

View File

@ -49,6 +49,7 @@ main()
replaceFunc(maps/mp/zombies/_zm_weapons::get_upgraded_ammo_cost, scripts/zm/replaced/_zm_weapons::get_upgraded_ammo_cost);
replaceFunc(maps/mp/zombies/_zm_weapons::makegrenadedudanddestroy, scripts/zm/replaced/_zm_weapons::makegrenadedudanddestroy);
replaceFunc(maps/mp/zombies/_zm_weapons::createballisticknifewatcher_zm, scripts/zm/replaced/_zm_weapons::createballisticknifewatcher_zm);
replaceFunc(maps/mp/zombies/_zm_magicbox::treasure_chest_init, scripts/zm/replaced/_zm_magicbox::treasure_chest_init);
replaceFunc(maps/mp/zombies/_zm_magicbox::treasure_chest_move, scripts/zm/replaced/_zm_magicbox::treasure_chest_move);
replaceFunc(maps/mp/zombies/_zm_magicbox::treasure_chest_timeout, scripts/zm/replaced/_zm_magicbox::treasure_chest_timeout);
replaceFunc(maps/mp/zombies/_zm_magicbox::timer_til_despawn, scripts/zm/replaced/_zm_magicbox::timer_til_despawn);
@ -79,9 +80,17 @@ init()
{
level.reimagined_version = "";
level.using_solo_revive = 0;
level.player_starting_health = 150;
level.claymores_max_per_player = 20;
if(getDvar("g_gametype") == "zgrief" && is_true(level.scr_zm_ui_gametype_pro))
{
level.player_starting_health = 100;
}
else
{
level.player_starting_health = 150;
}
setscoreboardcolumns_gametype();
set_lethal_grenade_init();
set_dvars();

View File

@ -14,7 +14,16 @@ struct_init()
scripts/zm/replaced/utility::register_perk_struct( "specialty_armorvest", "zombie_vending_jugg", ( 10952, 8055, -565 ), ( 0, 270, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_quickrevive", "zombie_vending_quickrevive", ( 11855, 7308, -758 ), ( 0, 220, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_fastreload", "zombie_vending_sleight", ( 11571, 7723, -757 ), ( 0, 0, 0 ) );
if(getDvar("g_gametype") == "zgrief" && getDvarIntDefault("ui_gametype_pro", 0))
{
scripts/zm/replaced/utility::register_perk_struct( "specialty_fastreload", "zombie_vending_sleight", ( 11030, 7410, -573 ), ( 0, 215, 0 ) );
}
else
{
scripts/zm/replaced/utility::register_perk_struct( "specialty_fastreload", "zombie_vending_sleight", ( 11571, 7723, -757 ), ( 0, 0, 0 ) );
}
scripts/zm/replaced/utility::register_perk_struct( "specialty_rof", "zombie_vending_doubletap2", ( 11414, 8930, -352 ), ( 0, 0, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_scavenger", "zombie_vending_tombstone", ( 10946, 8308.77, -408 ), ( 0, 270, 0 ) );
scripts/zm/replaced/utility::register_perk_struct( "specialty_weapupgrade", "p6_anim_zm_buildable_pap_on", ( 12333, 8158, -752 ), ( 0, 180, 0 ) );
@ -79,6 +88,18 @@ init_barriers()
scripts/zm/replaced/utility::barrier( "collision_player_wall_512x512x10", origin + (anglesToForward(angles) * -128) + (anglesToUp(angles) * 256), angles );
scripts/zm/replaced/utility::barrier( "collision_player_wall_512x512x10", origin + (anglesToForward(angles) * 64) + (anglesToUp(angles) * 256), angles );
scripts/zm/replaced/utility::barrier( "p6_zm_rocks_large_cluster_01", origin + (anglesToForward(angles) * -176) + (anglesToRight(angles) * -368) + (anglesToUp(angles) * 256), angles + (0, -15, 0) );
if(getDvar("g_gametype") == "zgrief" && getDvarIntDefault("ui_gametype_pro", 0))
{
door_trigs = getentarray( "zombie_door", "targetname" );
foreach ( door_trig in door_trigs )
{
if ( door_trig.target == "pow_door_rr" )
{
door_trig delete();
}
}
}
}
show_powerswitch()

View File

@ -2,6 +2,62 @@
#include common_scripts\utility;
#include maps\mp\zombies\_zm_utility;
treasure_chest_init( start_chest_name )
{
flag_init( "moving_chest_enabled" );
flag_init( "moving_chest_now" );
flag_init( "chest_has_been_used" );
level.chest_moves = 0;
level.chest_level = 0;
if ( level.chests.size == 0 )
{
return;
}
i = 0;
while ( i < level.chests.size )
{
level.chests[ i ].box_hacks = [];
level.chests[ i ].orig_origin = level.chests[ i ].origin;
level.chests[ i ] maps/mp/zombies/_zm_magicbox::get_chest_pieces();
if ( isDefined( level.chests[ i ].zombie_cost ) )
{
level.chests[ i ].old_cost = level.chests[ i ].zombie_cost;
i++;
continue;
}
else
{
level.chests[ i ].old_cost = 950;
}
i++;
}
if ( (getDvar("g_gametype") == "zgrief" && getDvarIntDefault("ui_gametype_pro", 0)) || !level.enable_magic )
{
_a102 = level.chests;
_k102 = getFirstArrayKey( _a102 );
while ( isDefined( _k102 ) )
{
chest = _a102[ _k102 ];
chest maps/mp/zombies/_zm_magicbox::hide_chest();
_k102 = getNextArrayKey( _a102, _k102 );
}
return;
}
level.chest_accessed = 0;
if ( level.chests.size > 1 )
{
flag_set( "moving_chest_enabled" );
level.chests = array_randomize( level.chests );
}
else
{
level.chest_index = 0;
level.chests[ 0 ].no_fly_away = 1;
}
maps/mp/zombies/_zm_magicbox::init_starting_chest_location( start_chest_name );
array_thread( level.chests, maps/mp/zombies/_zm_magicbox::treasure_chest_think );
}
treasure_chest_move( player_vox )
{
level waittill( "weapon_fly_away_start" );

View File

@ -317,6 +317,67 @@ initialize_custom_perk_arrays()
struct.scr_zm_ui_gametype = "zclassic";
struct.scr_zm_map_start_location = "processing";
move_perk_machine("zm_buried", "street", "specialty_fastreload", struct);
if(getDvar("g_gametype") == "zgrief" && getDvarIntDefault("ui_gametype_pro", 0))
{
add_missing_perk_machines();
remove_perk_machines();
}
}
add_missing_perk_machines()
{
structs = getStructArray("zm_perk_machine", "targetname");
foreach(struct in structs)
{
if((level.script == "zm_transit" && level.scr_zm_map_start_location == "transit"))
{
if(isDefined(struct.script_noteworthy) && struct.script_noteworthy == "specialty_quickrevive")
{
if(isDefined(struct.script_string) && isSubStr(struct.script_string, "zclassic_perks_transit"))
{
struct.script_noteworthy = "specialty_armorvest";
struct.script_string += " zgrief_perks_transit";
}
}
if(isDefined(struct.script_noteworthy) && struct.script_noteworthy == "specialty_fastreload")
{
if(isDefined(struct.script_string) && isSubStr(struct.script_string, "zclassic_perks_transit"))
{
struct.script_string += " zgrief_perks_transit";
struct.origin = (-6304, 5363, -57);
struct.angles += (0, 180, 0);
}
}
}
else if((level.script == "zm_prison" && level.scr_zm_map_start_location == "cellblock"))
{
if(isDefined(struct.script_noteworthy) && struct.script_noteworthy == "specialty_rof")
{
if(isDefined(struct.script_string) && isSubStr(struct.script_string, "zgrief_perks_cellblock"))
{
struct.script_noteworthy = "specialty_armorvest";
struct.origin = (1411, 9663, 1335);
struct.angles += (0, 180, 0);
}
}
}
}
}
remove_perk_machines()
{
exceptions = array("specialty_armorvest", "specialty_fastreload");
structs = getStructArray("zm_perk_machine", "targetname");
foreach(struct in structs)
{
if(isDefined(struct.script_noteworthy) && !isInArray(exceptions, struct.script_noteworthy))
{
struct.script_string = "";
}
}
}
move_perk_machine(map, location, perk, move_struct)

View File

@ -316,6 +316,7 @@ set_grief_vars()
gamemodes = strTok(getDvar("ui_gametype_obj"), " ");
level.scr_zm_ui_gametype_obj = random(gamemodes);
level.scr_zm_ui_gametype_pro = getDvarIntDefault("ui_gametype_pro", 0);
level.noroundnumber = 1;
level.zombie_powerups["meat_stink"].solo = 1;
@ -398,6 +399,11 @@ set_grief_vars()
level.player_starting_points = 10000;
}
if(level.scr_zm_ui_gametype_pro)
{
level.zombie_vars["zombie_powerup_drop_max_per_round"] = 0;
}
level.zombie_vars["zombie_powerup_drop_increment"] = level.player_starting_points * 4;
if(is_respawn_gamemode())
@ -1381,26 +1387,34 @@ grief_intro_text()
get_gamemode_display_name()
{
name = "";
if(level.scr_zm_ui_gametype_obj == "zgrief")
{
return "Grief";
name = "Grief";
}
else if(level.scr_zm_ui_gametype_obj == "zsnr")
{
return "Search & Rezurrect";
name = "Search & Rezurrect";
}
else if(level.scr_zm_ui_gametype_obj == "zrace")
{
return "Race";
name = "Race";
}
else if(level.scr_zm_ui_gametype_obj == "zmeat")
{
return "Meat";
name = "Meat";
}
else if(level.scr_zm_ui_gametype_obj == "zcontainment")
{
return "Containment";
name = "Containment";
}
if(level.scr_zm_ui_gametype_pro)
{
name += " Pro";
}
return name;
}
is_respawn_gamemode()