mirror of
https://github.com/JezuzLizard/BO2-Reimagined.git
synced 2025-06-18 19:18:23 -05:00
Buried: Maxis Quest changes
This commit is contained in:
@ -2820,6 +2820,10 @@ onuseplantobject_mtower( player )
|
||||
self maps\mp\zombies\_zm_buildables::buildablestub_finish_build( player );
|
||||
player playsound( "zmb_buildable_complete" );
|
||||
|
||||
slot = self.buildablestruct.buildable_slot;
|
||||
piece = player player_get_buildable_piece( slot );
|
||||
player player_destroy_piece( piece );
|
||||
|
||||
level thread unregister_tower_unitriggers();
|
||||
}
|
||||
|
||||
@ -2835,6 +2839,10 @@ onuseplantobject_rtower( player )
|
||||
self maps\mp\zombies\_zm_buildables::buildablestub_finish_build( player );
|
||||
player playsound( "zmb_buildable_complete" );
|
||||
|
||||
slot = self.buildablestruct.buildable_slot;
|
||||
piece = player player_get_buildable_piece( slot );
|
||||
player player_destroy_piece( piece );
|
||||
|
||||
level thread unregister_tower_unitriggers();
|
||||
}
|
||||
|
||||
|
91
scripts/zm/replaced/zm_buried_sq.gsc
Normal file
91
scripts/zm/replaced/zm_buried_sq.gsc
Normal file
@ -0,0 +1,91 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_sidequests;
|
||||
#include maps\mp\_visionset_mgr;
|
||||
#include maps\mp\zm_buried_sq_bt;
|
||||
#include maps\mp\zm_buried_sq_mta;
|
||||
#include maps\mp\zm_buried_sq_gl;
|
||||
#include maps\mp\zm_buried_sq_ftl;
|
||||
#include maps\mp\zm_buried_sq_ll;
|
||||
#include maps\mp\zm_buried_sq_ts;
|
||||
#include maps\mp\zm_buried_sq_ctw;
|
||||
#include maps\mp\zm_buried_sq_tpo;
|
||||
#include maps\mp\zm_buried_sq_ip;
|
||||
#include maps\mp\zm_buried_sq_ows;
|
||||
#include maps\mp\gametypes_zm\_globallogic_score;
|
||||
#include maps\mp\zombies\_zm_stats;
|
||||
#include maps\mp\zombies\_zm_buildables;
|
||||
#include maps\mp\zombies\_zm_audio;
|
||||
#include maps\mp\zombies\_zm_perks;
|
||||
#include maps\mp\zombies\_zm_unitrigger;
|
||||
#include maps\mp\zm_buried_amb;
|
||||
#include maps\mp\zombies\_zm_powerups;
|
||||
#include maps\mp\zombies\_zm_spawner;
|
||||
#include maps\mp\zombies\_zm_score;
|
||||
#include maps\mp\zm_buried_sq;
|
||||
|
||||
sq_metagame()
|
||||
{
|
||||
level endon( "sq_metagame_player_connected" );
|
||||
|
||||
if ( !is_true( level.buried_sq_maxis_complete ) && !is_true( level.buried_sq_richtofen_complete ) )
|
||||
level waittill( "buried_sidequest_achieved" );
|
||||
|
||||
level thread sq_metagame_turn_off_watcher();
|
||||
m_endgame_machine = getstruct( "sq_endgame_machine", "targetname" );
|
||||
a_stat = [];
|
||||
a_stat[0] = "sq_transit_last_completed";
|
||||
a_stat[1] = "sq_highrise_last_completed";
|
||||
a_stat[2] = "sq_buried_last_completed";
|
||||
level.n_metagame_machine_lights_on = 0;
|
||||
flag_wait( "start_zombie_round_logic" );
|
||||
sq_metagame_clear_lights();
|
||||
players = get_players();
|
||||
player_count = players.size;
|
||||
|
||||
for ( n_player = 0; n_player < player_count; n_player++ )
|
||||
{
|
||||
for ( n_stat = 0; n_stat < a_stat.size; n_stat++ )
|
||||
{
|
||||
if ( flag( "sq_is_max_tower_built" ) )
|
||||
{
|
||||
m_endgame_machine sq_metagame_machine_set_light( n_player, n_stat, "sq_bulb_orange" );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_endgame_machine sq_metagame_machine_set_light( n_player, n_stat, "sq_bulb_blue" );
|
||||
}
|
||||
|
||||
level setclientfield( "buried_sq_egm_bulb_" + n_stat, 1 );
|
||||
}
|
||||
}
|
||||
|
||||
m_endgame_machine.activate_trig = spawn( "trigger_radius", m_endgame_machine.origin, 0, 128, 72 );
|
||||
|
||||
m_endgame_machine.activate_trig waittill( "trigger" );
|
||||
|
||||
m_endgame_machine.activate_trig delete();
|
||||
m_endgame_machine.activate_trig = undefined;
|
||||
level setclientfield( "buried_sq_egm_animate", 1 );
|
||||
m_endgame_machine.endgame_trig = spawn( "trigger_radius_use", m_endgame_machine.origin, 0, 16, 16 );
|
||||
m_endgame_machine.endgame_trig setcursorhint( "HINT_NOICON" );
|
||||
m_endgame_machine.endgame_trig sethintstring( &"ZM_BURIED_SQ_EGM_BUT" );
|
||||
m_endgame_machine.endgame_trig triggerignoreteam();
|
||||
m_endgame_machine.endgame_trig usetriggerrequirelookat();
|
||||
|
||||
m_endgame_machine.endgame_trig waittill( "trigger" );
|
||||
|
||||
m_endgame_machine.endgame_trig delete();
|
||||
m_endgame_machine.endgame_trig = undefined;
|
||||
level thread sq_metagame_clear_tower_pieces();
|
||||
playsoundatposition( "zmb_endgame_mach_button", m_endgame_machine.origin );
|
||||
players = get_players();
|
||||
|
||||
sq_metagame_clear_lights();
|
||||
|
||||
if ( flag( "sq_is_max_tower_built" ) )
|
||||
level notify( "end_game_reward_starts_maxis" );
|
||||
else
|
||||
level notify( "end_game_reward_starts_richtofen" );
|
||||
}
|
111
scripts/zm/replaced/zm_buried_sq_ip.gsc
Normal file
111
scripts/zm/replaced/zm_buried_sq_ip.gsc
Normal file
@ -0,0 +1,111 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_sidequests;
|
||||
#include maps\mp\zm_buried_sq;
|
||||
#include maps\mp\zombies\_zm_zonemgr;
|
||||
#include maps\mp\zm_buried_sq_ip;
|
||||
|
||||
init()
|
||||
{
|
||||
flag_init( "sq_ip_puzzle_complete" );
|
||||
level.sq_bp_buttons = [];
|
||||
s_lightboard = getstruct( "zm_sq_lightboard", "targetname" );
|
||||
s_lightboard sq_bp_spawn_board();
|
||||
declare_sidequest_stage( "sq", "ip", ::init_stage, ::stage_logic, ::exit_stage );
|
||||
}
|
||||
|
||||
stage_logic()
|
||||
{
|
||||
if ( flag( "sq_is_max_tower_built" ) )
|
||||
{
|
||||
a_button_structs = getstructarray( "sq_bp_button", "targetname" );
|
||||
array_thread( a_button_structs, ::sq_bp_spawn_trigger );
|
||||
m_lightboard = getent( "sq_bp_board", "targetname" );
|
||||
m_lightboard setclientfield( "buried_sq_bp_set_lightboard", 1 );
|
||||
|
||||
while ( !flag( "sq_ip_puzzle_complete" ) )
|
||||
{
|
||||
sq_bp_start_puzzle_lights();
|
||||
sq_bp_delete_green_lights();
|
||||
wait_network_frame();
|
||||
wait_network_frame();
|
||||
wait_network_frame();
|
||||
wait_network_frame();
|
||||
wait_network_frame();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sq_ml_spawn_levers();
|
||||
a_levers = getentarray( "sq_ml_lever", "targetname" );
|
||||
array_thread( a_levers, ::sq_ml_spawn_trigger );
|
||||
level thread sq_ml_puzzle_logic();
|
||||
flag_wait( "sq_ip_puzzle_complete" );
|
||||
}
|
||||
|
||||
wait_network_frame();
|
||||
stage_completed( "sq", level._cur_stage_name );
|
||||
}
|
||||
|
||||
sq_bp_start_puzzle_lights()
|
||||
{
|
||||
level endon( "sq_bp_wrong_button" );
|
||||
level endon( "sq_bp_timeout" );
|
||||
a_button_structs = getstructarray( "sq_bp_button", "targetname" );
|
||||
a_tags = [];
|
||||
|
||||
foreach ( m_button in a_button_structs )
|
||||
a_tags[a_tags.size] = m_button.script_string;
|
||||
|
||||
a_tags = array_randomize( a_tags );
|
||||
m_lightboard = getent( "sq_bp_board", "targetname" );
|
||||
|
||||
foreach ( str_tag in a_tags )
|
||||
{
|
||||
level waittill( "sq_bp_correct_button" );
|
||||
}
|
||||
|
||||
flag_set( "sq_ip_puzzle_complete" );
|
||||
a_button_structs = getstructarray( "sq_bp_button", "targetname" );
|
||||
|
||||
foreach ( s_button in a_button_structs )
|
||||
{
|
||||
if ( isdefined( s_button.trig ) )
|
||||
s_button.trig delete();
|
||||
}
|
||||
}
|
||||
|
||||
sq_bp_spawn_trigger()
|
||||
{
|
||||
level endon( "sq_ip_puzzle_complete" );
|
||||
self.trig = spawn( "trigger_radius_use", self.origin, 0, 16, 16 );
|
||||
self.trig setcursorhint( "HINT_NOICON" );
|
||||
self.trig sethintstring( &"ZM_BURIED_SQ_BUT_U" );
|
||||
self.trig triggerignoreteam();
|
||||
self.trig usetriggerrequirelookat();
|
||||
|
||||
while ( true )
|
||||
{
|
||||
self.trig waittill( "trigger" );
|
||||
|
||||
self.trig sethintstring( "" );
|
||||
level thread sq_bp_button_pressed( self.script_string, self.trig );
|
||||
wait 1;
|
||||
self.trig sethintstring( &"ZM_BURIED_SQ_BUT_U" );
|
||||
}
|
||||
}
|
||||
|
||||
sq_bp_button_pressed( str_tag, trig )
|
||||
{
|
||||
trig playsound( "zmb_sq_bell_yes" );
|
||||
|
||||
if ( is_true( trig.triggered ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
trig.triggered = 1;
|
||||
sq_bp_light_on( str_tag, "green" );
|
||||
level notify( "sq_bp_correct_button" );
|
||||
}
|
98
scripts/zm/replaced/zm_buried_sq_ows.gsc
Normal file
98
scripts/zm/replaced/zm_buried_sq_ows.gsc
Normal file
@ -0,0 +1,98 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_sidequests;
|
||||
#include maps\mp\zm_buried_sq;
|
||||
#include maps\mp\zm_buried_sq_ows;
|
||||
|
||||
ows_targets_start()
|
||||
{
|
||||
n_cur_second = 0;
|
||||
flag_clear( "sq_ows_target_missed" );
|
||||
level thread sndsidequestowsmusic();
|
||||
a_sign_spots = getstructarray( "otw_target_spot", "script_noteworthy" );
|
||||
|
||||
level.targets_hit = 0;
|
||||
|
||||
while ( n_cur_second < 40 )
|
||||
{
|
||||
a_spawn_spots = ows_targets_get_cur_spots( n_cur_second );
|
||||
|
||||
if ( isdefined( a_spawn_spots ) && a_spawn_spots.size > 0 )
|
||||
ows_targets_spawn( a_spawn_spots );
|
||||
|
||||
wait 1;
|
||||
n_cur_second++;
|
||||
}
|
||||
|
||||
players = get_players();
|
||||
if ( level.targets_hit < ( 20 * players.size ) )
|
||||
{
|
||||
flag_set( "sq_ows_target_missed" );
|
||||
}
|
||||
|
||||
if ( !flag( "sq_ows_target_missed" ) )
|
||||
{
|
||||
flag_set( "sq_ows_success" );
|
||||
playsoundatposition( "zmb_sq_target_success", ( 0, 0, 0 ) );
|
||||
}
|
||||
else
|
||||
playsoundatposition( "zmb_sq_target_fail", ( 0, 0, 0 ) );
|
||||
|
||||
level notify( "sndEndOWSMusic" );
|
||||
}
|
||||
|
||||
ows_targets_spawn( a_spawn_spots )
|
||||
{
|
||||
i = 0;
|
||||
foreach ( s_spot in a_spawn_spots )
|
||||
{
|
||||
m_target = spawn( "script_model", s_spot.origin );
|
||||
m_target.angles = s_spot.angles;
|
||||
m_target setmodel( "p6_zm_bu_target" );
|
||||
m_target ghost();
|
||||
wait_network_frame();
|
||||
m_target show();
|
||||
playfxontag( level._effect["sq_spawn"], m_target, "tag_origin" );
|
||||
m_target playsound( "zmb_sq_target_spawn" );
|
||||
|
||||
if ( isdefined( s_spot.target ) )
|
||||
m_target thread ows_target_move( s_spot.target );
|
||||
|
||||
m_target thread ows_target_think();
|
||||
m_target thread sndhit();
|
||||
m_target thread sndtime();
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
ows_target_think()
|
||||
{
|
||||
self setcandamage( 1 );
|
||||
self thread ows_target_delete_timer();
|
||||
msg = self waittill_any_return( "ows_target_timeout", "damage" );
|
||||
|
||||
if ( msg == "damage" )
|
||||
{
|
||||
level.targets_hit++;
|
||||
}
|
||||
|
||||
if ( isdefined( self.m_linker ) )
|
||||
{
|
||||
self unlink();
|
||||
self.m_linker delete();
|
||||
}
|
||||
|
||||
self rotatepitch( -90, 0.15, 0.05, 0.05 );
|
||||
|
||||
self waittill( "rotatedone" );
|
||||
|
||||
self delete();
|
||||
}
|
||||
|
||||
ows_target_delete_timer()
|
||||
{
|
||||
self endon( "death" );
|
||||
wait 4;
|
||||
self notify( "ows_target_timeout" );
|
||||
}
|
32
scripts/zm/replaced/zm_buried_sq_tpo.gsc
Normal file
32
scripts/zm/replaced/zm_buried_sq_tpo.gsc
Normal file
@ -0,0 +1,32 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_sidequests;
|
||||
#include maps\mp\_visionset_mgr;
|
||||
#include maps\mp\gametypes_zm\_hud_util;
|
||||
#include maps\mp\zombies\_zm_buildables;
|
||||
#include maps\mp\zombies\_zm;
|
||||
#include maps\mp\zm_buried_sq;
|
||||
#include maps\mp\zombies\_zm_weap_time_bomb;
|
||||
#include maps\mp\zombies\_zm_unitrigger;
|
||||
#include maps\mp\zm_buried_buildables;
|
||||
#include maps\mp\zm_buried_sq_tpo;
|
||||
|
||||
stage_logic_maxis()
|
||||
{
|
||||
flag_clear( "sq_wisp_success" );
|
||||
flag_clear( "sq_wisp_failed" );
|
||||
|
||||
while ( !flag( "sq_wisp_success" ) )
|
||||
{
|
||||
stage_start( "sq", "ts" );
|
||||
|
||||
level waittill( "sq_ts_over" );
|
||||
|
||||
stage_start( "sq", "ctw" );
|
||||
|
||||
level waittill( "sq_ctw_over" );
|
||||
}
|
||||
|
||||
level._cur_stage_name = "tpo";
|
||||
}
|
44
scripts/zm/replaced/zm_buried_sq_ts.gsc
Normal file
44
scripts/zm/replaced/zm_buried_sq_ts.gsc
Normal file
@ -0,0 +1,44 @@
|
||||
#include common_scripts\utility;
|
||||
#include maps\mp\_utility;
|
||||
#include maps\mp\zombies\_zm_utility;
|
||||
#include maps\mp\zombies\_zm_sidequests;
|
||||
#include maps\mp\zm_buried_sq_ts;
|
||||
|
||||
ts_sign_damage_watch()
|
||||
{
|
||||
level endon( "sq_sign_damaged" );
|
||||
self ts_sign_deactivate();
|
||||
|
||||
while ( true )
|
||||
{
|
||||
self waittill( "damage", n_damage, e_attacker, v_direction, v_point, str_type, str_tag, str_model, str_part, str_weapon );
|
||||
|
||||
if ( ts_is_bowie_knife( str_weapon ) || ts_is_galvaknuckles( str_weapon ) )
|
||||
{
|
||||
self thread ts_sign_activate();
|
||||
|
||||
ts_sign_check_all_activated( e_attacker, self );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ts_sign_check_all_activated( e_attacker, m_last_touched )
|
||||
{
|
||||
a_signs = getentarray( "sq_tunnel_sign", "targetname" );
|
||||
a_signs_active = [];
|
||||
|
||||
foreach ( m_sign in a_signs )
|
||||
{
|
||||
if ( m_sign.ts_sign_activated )
|
||||
{
|
||||
a_signs_active[a_signs_active.size] = m_sign;
|
||||
}
|
||||
}
|
||||
|
||||
if ( a_signs_active.size == a_signs.size )
|
||||
{
|
||||
level.m_sq_start_sign = m_last_touched;
|
||||
level.e_sq_sign_attacker = e_attacker;
|
||||
level notify( "sq_sign_damaged" );
|
||||
}
|
||||
}
|
@ -6,7 +6,12 @@
|
||||
#include scripts\zm\replaced\zm_buried_gamemodes;
|
||||
#include scripts\zm\replaced\zm_buried_ffotd;
|
||||
#include scripts\zm\replaced\zm_buried_fountain;
|
||||
#include scripts\zm\replaced\zm_buried_sq;
|
||||
#include scripts\zm\replaced\zm_buried_sq_bt;
|
||||
#include scripts\zm\replaced\zm_buried_sq_ts;
|
||||
#include scripts\zm\replaced\zm_buried_sq_tpo;
|
||||
#include scripts\zm\replaced\zm_buried_sq_ip;
|
||||
#include scripts\zm\replaced\zm_buried_sq_ows;
|
||||
#include scripts\zm\replaced\_zm_ai_sloth;
|
||||
#include scripts\zm\replaced\_zm_buildables_pooled;
|
||||
#include scripts\zm\replaced\_zm_equip_subwoofer;
|
||||
@ -27,8 +32,13 @@ main()
|
||||
replaceFunc(maps\mp\zm_buried_gamemodes::buildbuildable, scripts\zm\replaced\zm_buried_gamemodes::buildbuildable);
|
||||
replaceFunc(maps\mp\zm_buried_ffotd::spawned_life_triggers, scripts\zm\replaced\zm_buried_ffotd::spawned_life_triggers);
|
||||
replaceFunc(maps\mp\zm_buried_fountain::transport_player_to_start_zone, scripts\zm\replaced\zm_buried_fountain::transport_player_to_start_zone);
|
||||
replaceFunc(maps\mp\zm_buried_sq::sq_metagame, scripts\zm\replaced\zm_buried_sq::sq_metagame);
|
||||
replaceFunc(maps\mp\zm_buried_sq_bt::stage_vo_watch_gallows, scripts\zm\replaced\zm_buried_sq_bt::stage_vo_watch_gallows);
|
||||
replaceFunc(maps\mp\zm_buried_sq_bt::stage_vo_watch_guillotine, scripts\zm\replaced\zm_buried_sq_bt::stage_vo_watch_guillotine);
|
||||
replaceFunc(maps\mp\zm_buried_sq_ts::ts_sign_damage_watch, scripts\zm\replaced\zm_buried_sq_ts::ts_sign_damage_watch);
|
||||
replaceFunc(maps\mp\zm_buried_sq_tpo::stage_logic_maxis, scripts\zm\replaced\zm_buried_sq_tpo::stage_logic_maxis);
|
||||
replaceFunc(maps\mp\zm_buried_sq_ip::init, scripts\zm\replaced\zm_buried_sq_ip::init);
|
||||
replaceFunc(maps\mp\zm_buried_sq_ows::ows_targets_start, scripts\zm\replaced\zm_buried_sq_ows::ows_targets_start);
|
||||
replaceFunc(maps\mp\zombies\_zm_ai_sloth::sloth_init_start_funcs, scripts\zm\replaced\_zm_ai_sloth::sloth_init_start_funcs);
|
||||
replaceFunc(maps\mp\zombies\_zm_ai_sloth::sloth_init_update_funcs, scripts\zm\replaced\_zm_ai_sloth::sloth_init_update_funcs);
|
||||
replaceFunc(maps\mp\zombies\_zm_ai_sloth::sloth_check_ragdolls, scripts\zm\replaced\_zm_ai_sloth::sloth_check_ragdolls);
|
||||
|
Reference in New Issue
Block a user