mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-10 07:08:06 -05:00
487 lines
12 KiB
Plaintext
487 lines
12 KiB
Plaintext
#include maps\mp\gametypes_zm\zmeat;
|
|
#include maps\mp\zm_alcatraz_traps;
|
|
#include maps\mp\zombies\_zm_game_module;
|
|
#include maps\mp\zombies\_zm_blockers;
|
|
#include maps\mp\zombies\_zm_ai_brutus;
|
|
#include maps\mp\gametypes_zm\_zm_gametype;
|
|
#include maps\mp\zombies\_zm_magicbox;
|
|
#include maps\mp\zombies\_zm_weapons;
|
|
#include maps\mp\zm_prison;
|
|
#include maps\mp\zombies\_zm_race_utility;
|
|
#include maps\mp\zombies\_zm_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\mp\_utility;
|
|
|
|
precache()
|
|
{
|
|
|
|
}
|
|
|
|
zgrief_preinit()
|
|
{
|
|
registerclientfield("toplayer", "meat_stink", 1, 1, "int");
|
|
level.givecustomloadout = maps\mp\zm_prison::givecustomloadout;
|
|
zgrief_init();
|
|
}
|
|
|
|
zgrief_init()
|
|
{
|
|
encounter_init();
|
|
}
|
|
|
|
encounter_init()
|
|
{
|
|
level.precachecustomcharacters = ::precache_team_characters;
|
|
level.givecustomcharacters = ::give_team_characters;
|
|
level.gamemode_post_spawn_logic = ::give_player_shiv;
|
|
}
|
|
|
|
precache_team_characters()
|
|
{
|
|
precachemodel("c_zom_player_grief_guard_fb");
|
|
precachemodel("c_zom_oleary_shortsleeve_viewhands");
|
|
precachemodel("c_zom_player_grief_inmate_fb");
|
|
precachemodel("c_zom_grief_guard_viewhands");
|
|
}
|
|
|
|
give_team_characters()
|
|
{
|
|
self detachall();
|
|
self set_player_is_female(0);
|
|
|
|
if (!isDefined(self.characterindex))
|
|
{
|
|
self.characterindex = 1;
|
|
|
|
if (self.team == "axis")
|
|
{
|
|
self.characterindex = 0;
|
|
}
|
|
}
|
|
|
|
switch (self.characterindex)
|
|
{
|
|
case 0:
|
|
case 2:
|
|
self setmodel("c_zom_player_grief_inmate_fb");
|
|
self.voice = "american";
|
|
self.skeleton = "base";
|
|
self setviewmodel("c_zom_oleary_shortsleeve_viewhands");
|
|
self.characterindex = 0;
|
|
break;
|
|
|
|
case 1:
|
|
case 3:
|
|
self setmodel("c_zom_player_grief_guard_fb");
|
|
self.voice = "american";
|
|
self.skeleton = "base";
|
|
self setviewmodel("c_zom_grief_guard_viewhands");
|
|
self.characterindex = 1;
|
|
break;
|
|
}
|
|
|
|
self setmovespeedscale(1);
|
|
self setsprintduration(4);
|
|
self setsprintcooldown(0);
|
|
}
|
|
|
|
give_player_shiv()
|
|
{
|
|
self takeweapon("knife_zm");
|
|
self giveweapon("knife_zm_alcatraz");
|
|
}
|
|
|
|
grief_treasure_chest_init()
|
|
{
|
|
chest1 = getstruct("start_chest", "script_noteworthy");
|
|
chest2 = getstruct("cafe_chest", "script_noteworthy");
|
|
setdvar("disableLookAtEntityLogic", 1);
|
|
level.chests = [];
|
|
level.chests[level.chests.size] = chest1;
|
|
level.chests[level.chests.size] = chest2;
|
|
maps\mp\zombies\_zm_magicbox::treasure_chest_init("start_chest");
|
|
}
|
|
|
|
main()
|
|
{
|
|
maps\mp\gametypes_zm\_zm_gametype::setup_standard_objects("cellblock");
|
|
grief_treasure_chest_init();
|
|
precacheshader("zm_al_wth_zombie");
|
|
array_thread(level.zombie_spawners, ::add_spawn_function, ::remove_zombie_hats_for_grief);
|
|
maps\mp\zombies\_zm_ai_brutus::precache();
|
|
maps\mp\zombies\_zm_ai_brutus::init();
|
|
level.enemy_location_override_func = ::enemy_location_override;
|
|
level._effect["butterflies"] = loadfx("maps/zombie_alcatraz/fx_alcatraz_skull_elec");
|
|
a_t_door_triggers = getentarray("zombie_door", "targetname");
|
|
triggers = a_t_door_triggers;
|
|
i = 0;
|
|
|
|
while (i < triggers.size)
|
|
{
|
|
if (isDefined(triggers[i].script_flag))
|
|
{
|
|
if (triggers[i].script_flag == "activate_cellblock_citadel" || triggers[i].script_flag == "activate_shower_room" || triggers[i].script_flag == "activate_cellblock_infirmary" || triggers[i].script_flag == "activate_infirmary")
|
|
{
|
|
triggers[i] delete();
|
|
i++;
|
|
continue;
|
|
}
|
|
|
|
if (triggers[i].script_flag == "activate_cafeteria" || triggers[i].script_flag == "activate_cellblock_east" || triggers[i].script_flag == "activate_cellblock_west" || triggers[i].script_flag == "activate_cellblock_barber" || triggers[i].script_flag == "activate_cellblock_gondola" || triggers[i].script_flag == "activate_cellblock_east_west" || triggers[i].script_flag == "activate_warden_office")
|
|
{
|
|
i++;
|
|
continue;
|
|
}
|
|
|
|
if (isDefined(triggers[i].target))
|
|
{
|
|
str_target = triggers[i].target;
|
|
a_door_and_clip = getentarray(str_target, "targetname");
|
|
|
|
foreach (ent in a_door_and_clip)
|
|
{
|
|
ent delete();
|
|
}
|
|
}
|
|
|
|
triggers[i] delete();
|
|
}
|
|
|
|
i++;
|
|
}
|
|
|
|
a_t_doors = getentarray("zombie_door", "targetname");
|
|
|
|
foreach (t_door in a_t_doors)
|
|
{
|
|
if (isDefined(t_door.script_flag))
|
|
{
|
|
if (t_door.script_flag == "activate_cellblock_east_west" || t_door.script_flag == "activate_cellblock_barber")
|
|
{
|
|
t_door maps\mp\zombies\_zm_blockers::door_opened(self.zombie_cost);
|
|
}
|
|
}
|
|
}
|
|
|
|
zbarriers = getzbarrierarray();
|
|
a_str_zones = [];
|
|
a_str_zones[0] = "zone_start";
|
|
a_str_zones[1] = "zone_library";
|
|
a_str_zones[2] = "zone_cafeteria";
|
|
a_str_zones[3] = "zone_cafeteria_end";
|
|
a_str_zones[4] = "zone_warden_office";
|
|
a_str_zones[5] = "zone_cellblock_east";
|
|
a_str_zones[6] = "zone_cellblock_west_warden";
|
|
a_str_zones[7] = "zone_cellblock_west_barber";
|
|
a_str_zones[8] = "zone_cellblock_west";
|
|
a_str_zones[9] = "zone_cellblock_west_gondola";
|
|
|
|
foreach (barrier in zbarriers)
|
|
{
|
|
if (isDefined(barrier.script_noteworthy) && barrier.script_noteworthy == "cafe_chest_zbarrier" || isDefined(barrier.script_noteworthy) && barrier.script_noteworthy == "start_chest_zbarrier")
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
str_model = barrier.model;
|
|
b_delete_barrier = 1;
|
|
|
|
if (isdefined(barrier.script_string))
|
|
{
|
|
for (i = 0; i < a_str_zones.size; i++)
|
|
{
|
|
if (str_model == a_str_zones[i])
|
|
{
|
|
b_delete_barrier = 0;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (b_delete_barrier == 1)
|
|
{
|
|
barrier delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
t_temp = getent("tower_trap_activate_trigger", "targetname");
|
|
t_temp delete();
|
|
t_temp = getent("tower_trap_range_trigger", "targetname");
|
|
t_temp delete();
|
|
e_model = getent("trap_control_docks", "targetname");
|
|
e_model delete();
|
|
e_brush = getent("tower_shockbox_door", "targetname");
|
|
e_brush delete();
|
|
a_t_travel_triggers = getentarray("travel_trigger", "script_noteworthy");
|
|
|
|
foreach (trigger in a_t_travel_triggers)
|
|
{
|
|
trigger delete();
|
|
}
|
|
|
|
a_e_gondola_lights = getentarray("gondola_state_light", "targetname");
|
|
|
|
foreach (light in a_e_gondola_lights)
|
|
{
|
|
light delete();
|
|
}
|
|
|
|
a_e_gondola_landing_gates = getentarray("gondola_landing_gates", "targetname");
|
|
|
|
foreach (model in a_e_gondola_landing_gates)
|
|
{
|
|
model delete();
|
|
}
|
|
|
|
a_e_gondola_landing_doors = getentarray("gondola_landing_doors", "targetname");
|
|
|
|
foreach (model in a_e_gondola_landing_doors)
|
|
{
|
|
model delete();
|
|
}
|
|
|
|
a_e_gondola_gates = getentarray("gondola_gates", "targetname");
|
|
|
|
foreach (model in a_e_gondola_gates)
|
|
{
|
|
model delete();
|
|
}
|
|
|
|
a_e_gondola_doors = getentarray("gondola_doors", "targetname");
|
|
|
|
foreach (model in a_e_gondola_doors)
|
|
{
|
|
model delete();
|
|
}
|
|
|
|
m_gondola = getent("zipline_gondola", "targetname");
|
|
m_gondola delete();
|
|
t_ride_trigger = getent("gondola_ride_trigger", "targetname");
|
|
t_ride_trigger delete();
|
|
a_classic_clips = getentarray("classic_clips", "targetname");
|
|
|
|
foreach (clip in a_classic_clips)
|
|
{
|
|
clip connectpaths();
|
|
clip delete();
|
|
}
|
|
|
|
a_afterlife_props = getentarray("afterlife_show", "targetname");
|
|
|
|
foreach (m_prop in a_afterlife_props)
|
|
{
|
|
m_prop delete();
|
|
}
|
|
|
|
spork_portal = getent("afterlife_show_spork", "targetname");
|
|
spork_portal delete();
|
|
a_audio = getentarray("at_headphones", "script_noteworthy");
|
|
|
|
foreach (model in a_audio)
|
|
{
|
|
model delete();
|
|
}
|
|
|
|
m_spoon_pickup = getent("pickup_spoon", "targetname");
|
|
m_spoon_pickup delete();
|
|
t_sq_bg = getent("sq_bg_reward_pickup", "targetname");
|
|
t_sq_bg delete();
|
|
t_crafting_table = getentarray("open_craftable_trigger", "targetname");
|
|
|
|
foreach (trigger in t_crafting_table)
|
|
{
|
|
trigger delete();
|
|
}
|
|
|
|
t_warden_fence = getent("warden_fence_damage", "targetname");
|
|
t_warden_fence delete();
|
|
level setclientfield("warden_fence_down", 1);
|
|
m_plane_about_to_crash = getent("plane_about_to_crash", "targetname");
|
|
m_plane_about_to_crash delete();
|
|
m_plane_craftable = getent("plane_craftable", "targetname");
|
|
m_plane_craftable delete();
|
|
|
|
for (i = 1; i <= 5; i++)
|
|
{
|
|
m_key_lock = getent("masterkey_lock_" + i, "targetname");
|
|
m_key_lock delete();
|
|
}
|
|
|
|
m_shower_door = getent("shower_key_door", "targetname");
|
|
m_shower_door delete();
|
|
m_nixie_door = getent("nixie_door_left", "targetname");
|
|
m_nixie_door delete();
|
|
m_nixie_door = getent("nixie_door_right", "targetname");
|
|
m_nixie_door delete();
|
|
m_nixie_brush = getent("nixie_tube_weaponclip", "targetname");
|
|
m_nixie_brush delete();
|
|
|
|
for (i = 1; i <= 3; i++)
|
|
{
|
|
m_nixie_tube = getent("nixie_tube_" + i, "targetname");
|
|
m_nixie_tube delete();
|
|
}
|
|
|
|
t_elevator_door = getent("nixie_elevator_door", "targetname");
|
|
t_elevator_door delete();
|
|
e_elevator_clip = getent("elevator_door_playerclip", "targetname");
|
|
e_elevator_clip delete();
|
|
e_elevator_bottom_gate = getent("elevator_bottom_gate_l", "targetname");
|
|
e_elevator_bottom_gate delete();
|
|
e_elevator_bottom_gate = getent("elevator_bottom_gate_r", "targetname");
|
|
e_elevator_bottom_gate delete();
|
|
m_docks_puzzle = getent("cable_puzzle_gate_01", "targetname");
|
|
m_docks_puzzle delete();
|
|
m_docks_puzzle = getent("cable_puzzle_gate_02", "targetname");
|
|
m_docks_puzzle delete();
|
|
m_infirmary_case = getent("infirmary_case_door_left", "targetname");
|
|
m_infirmary_case delete();
|
|
m_infirmary_case = getent("infirmary_case_door_right", "targetname");
|
|
m_infirmary_case delete();
|
|
fake_plane_part = getent("fake_veh_t6_dlc_zombie_part_control", "targetname");
|
|
fake_plane_part delete();
|
|
|
|
for (i = 1; i <= 3; i++)
|
|
{
|
|
m_generator = getent("generator_panel_" + i, "targetname");
|
|
m_generator delete();
|
|
}
|
|
|
|
a_m_generator_core = getentarray("generator_core", "targetname");
|
|
|
|
foreach (generator in a_m_generator_core)
|
|
{
|
|
generator delete();
|
|
}
|
|
|
|
e_playerclip = getent("electric_chair_playerclip", "targetname");
|
|
e_playerclip delete();
|
|
|
|
for (i = 1; i <= 4; i++)
|
|
{
|
|
t_use = getent("trigger_electric_chair_" + i, "targetname");
|
|
t_use delete();
|
|
m_chair = getent("electric_chair_" + i, "targetname");
|
|
m_chair delete();
|
|
}
|
|
|
|
a_afterlife_interact = getentarray("afterlife_interact", "targetname");
|
|
|
|
foreach (model in a_afterlife_interact)
|
|
{
|
|
model turn_afterlife_interact_on();
|
|
wait 0.1;
|
|
}
|
|
|
|
east_hurt_trigger = getent("pulley_hurt_trigger_east", "targetname");
|
|
east_hurt_trigger delete();
|
|
|
|
west_hurt_trigger = getent("pulley_hurt_trigger_west", "targetname");
|
|
west_hurt_trigger delete();
|
|
|
|
flag_wait("initial_blackscreen_passed");
|
|
maps\mp\zombies\_zm_game_module::turn_power_on_and_open_doors();
|
|
flag_wait("start_zombie_round_logic");
|
|
level thread maps\mp\zm_alcatraz_traps::init_fan_trap_trigs();
|
|
level thread maps\mp\zm_alcatraz_traps::init_acid_trap_trigs();
|
|
wait 1;
|
|
level notify("sleight_on");
|
|
wait_network_frame();
|
|
level notify("doubletap_on");
|
|
wait_network_frame();
|
|
level notify("juggernog_on");
|
|
wait_network_frame();
|
|
level notify("electric_cherry_on");
|
|
wait_network_frame();
|
|
level notify("deadshot_on");
|
|
wait_network_frame();
|
|
level notify("divetonuke_on");
|
|
wait_network_frame();
|
|
level notify("additionalprimaryweapon_on");
|
|
wait_network_frame();
|
|
level notify("Pack_A_Punch_on");
|
|
wait_network_frame();
|
|
}
|
|
|
|
remove_zombie_hats_for_grief()
|
|
{
|
|
self detach("c_zom_guard_hat");
|
|
}
|
|
|
|
enemy_location_override(zombie, enemy)
|
|
{
|
|
location = enemy.origin;
|
|
|
|
if (is_true(self.reroute))
|
|
{
|
|
if (isDefined(self.reroute_origin))
|
|
{
|
|
location = self.reroute_origin;
|
|
}
|
|
}
|
|
|
|
return location;
|
|
}
|
|
|
|
magicbox_face_spawn()
|
|
{
|
|
self endon("disconnect");
|
|
|
|
if (!is_gametype_active("zgrief"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
while (1)
|
|
{
|
|
self waittill("user_grabbed_weapon");
|
|
|
|
if (randomint(50000) == 115)
|
|
{
|
|
self playsoundtoplayer("zmb_easteregg_face", self);
|
|
self.wth_elem = newclienthudelem(self);
|
|
self.wth_elem.horzalign = "fullscreen";
|
|
self.wth_elem.vertalign = "fullscreen";
|
|
self.wth_elem.sort = 1000;
|
|
self.wth_elem.foreground = 0;
|
|
self.wth_elem.alpha = 1;
|
|
self.wth_elem setshader("zm_al_wth_zombie", 640, 480);
|
|
self.wth_elem.hidewheninmenu = 1;
|
|
wait 0.25;
|
|
self.wth_elem destroy();
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
#using_animtree("fxanim_props");
|
|
|
|
turn_afterlife_interact_on()
|
|
{
|
|
if (self.script_string == "cell_1_powerup_activate" || self.script_string == "intro_powerup_activate" || self.script_string == "cell_2_powerup_activate" || self.script_string == "wires_shower_door")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (self.script_string == "electric_cherry_on" || self.script_string == "sleight_on" || self.script_string == "wires_admin_door")
|
|
{
|
|
if (!isDefined(level.shockbox_anim))
|
|
{
|
|
level.shockbox_anim["on"] = %fxanim_zom_al_shock_box_on_anim;
|
|
level.shockbox_anim["off"] = %fxanim_zom_al_shock_box_off_anim;
|
|
}
|
|
|
|
if (issubstr(self.model, "p6_zm_al_shock_box"))
|
|
{
|
|
self useanimtree(#animtree);
|
|
self setmodel("p6_zm_al_shock_box_on");
|
|
self setanim(level.shockbox_anim["on"]);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self delete();
|
|
}
|
|
} |