mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-08 01:47:50 -05:00
checked 15 zm_tomb_patch scripts
Checked zm_tomb_ee_main_step_1 thru 8, zm_tomb_ambient_scripts.gsc, zm_tomb_capture_zone_ffotd.gsc, zm_tomb_challenges.gsc, zm_tomb_ee_lights.gsc, zm_tomb_gamemodes.gsc, zm_tomb_giant_robot_ffotd.gsc, zm_tomb_standard.gsc.
This commit is contained in:
parent
5779552ba1
commit
d8e90458da
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/animscripts/zm_death;
|
#include maps/mp/animscripts/zm_death;
|
||||||
#include maps/mp/zombies/_zm_laststand;
|
#include maps/mp/zombies/_zm_laststand;
|
||||||
#include maps/mp/zombies/_zm_score;
|
#include maps/mp/zombies/_zm_score;
|
||||||
@ -12,7 +13,7 @@ tomb_ambient_precache()
|
|||||||
precachemodel( "veh_t6_dlc_zm_zeppelin" );
|
precachemodel( "veh_t6_dlc_zm_zeppelin" );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_tomb_ambient_scripts()
|
init_tomb_ambient_scripts() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
tomb_ambient_precache();
|
tomb_ambient_precache();
|
||||||
registerclientfield( "world", "sky_battle_ambient_fx", 14000, 1, "int" );
|
registerclientfield( "world", "sky_battle_ambient_fx", 14000, 1, "int" );
|
||||||
@ -23,11 +24,11 @@ init_tomb_ambient_scripts()
|
|||||||
level thread vista_robot_pose();
|
level thread vista_robot_pose();
|
||||||
}
|
}
|
||||||
|
|
||||||
init_zeppelin( str_script_noteworthy, str_ender )
|
init_zeppelin( str_script_noteworthy, str_ender ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level endon( str_ender );
|
level endon( str_ender );
|
||||||
a_path_structs = getstructarray( str_script_noteworthy, "script_noteworthy" );
|
a_path_structs = getstructarray( str_script_noteworthy, "script_noteworthy" );
|
||||||
while ( a_path_structs.size > 0 )
|
if ( a_path_structs.size > 0 )
|
||||||
{
|
{
|
||||||
m_zeppelin = spawn( "script_model", ( 0, 0, 0 ) );
|
m_zeppelin = spawn( "script_model", ( 0, 0, 0 ) );
|
||||||
m_zeppelin setmodel( "veh_t6_dlc_zm_zeppelin" );
|
m_zeppelin setmodel( "veh_t6_dlc_zm_zeppelin" );
|
||||||
@ -39,40 +40,41 @@ init_zeppelin( str_script_noteworthy, str_ender )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
move_zeppelin_down_new_path( a_structs )
|
move_zeppelin_down_new_path( a_structs ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
s_path_start = get_unused_struct( a_structs );
|
s_path_start = get_unused_struct( a_structs );
|
||||||
self ghost();
|
self ghost();
|
||||||
self moveto( s_path_start.origin, 0,1 );
|
self moveto( s_path_start.origin, 0.1 );
|
||||||
self rotateto( s_path_start.angles, 0,1 );
|
self rotateto( s_path_start.angles, 0.1 );
|
||||||
self waittill( "movedone" );
|
self waittill( "movedone" );
|
||||||
self show();
|
self show();
|
||||||
if ( !isDefined( s_path_start.goal_struct ) )
|
if ( !isDefined( s_path_start.goal_struct ) )
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( s_path_start.target ), "move_zeppelin_down_new_path found start struct at " + s_path_start.origin + " without a target! These are needed for zeppelin splines!" );
|
assert( isDefined( s_path_start.target ), "move_zeppelin_down_new_path found start struct at " + s_path_start.origin + " without a target! These are needed for zeppelin splines!" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
s_path_start.goal_struct = getstruct( s_path_start.target, "targetname" );
|
s_path_start.goal_struct = getstruct( s_path_start.target, "targetname" );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( s_path_start.goal_struct ), "move_zeppelin_down_new_path couldn't find goal for path start struct at " + s_path_start.origin );
|
assert( isDefined( s_path_start.goal_struct ), "move_zeppelin_down_new_path couldn't find goal for path start struct at " + s_path_start.origin );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
n_move_time = randomfloatrange( 120, 150 );
|
n_move_time = randomfloatrange( 120, 150 );
|
||||||
self moveto( s_path_start.goal_struct.origin, n_move_time );
|
self moveto( s_path_start.goal_struct.origin, n_move_time );
|
||||||
self waittill( "movedone" );
|
self waittill( "movedone" );
|
||||||
}
|
}
|
||||||
|
|
||||||
get_unused_struct( a_structs )
|
get_unused_struct( a_structs ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
a_valid_structs = [];
|
a_valid_structs = [];
|
||||||
b_no_unused_structs = 0;
|
b_no_unused_structs = 0;
|
||||||
while ( !a_valid_structs.size )
|
while ( !a_valid_structs.size )
|
||||||
{
|
{
|
||||||
_a90 = a_structs;
|
foreach ( struct in a_structs )
|
||||||
_k90 = getFirstArrayKey( _a90 );
|
|
||||||
while ( isDefined( _k90 ) )
|
|
||||||
{
|
{
|
||||||
struct = _a90[ _k90 ];
|
|
||||||
if ( !isDefined( struct.used ) || b_no_unused_structs )
|
if ( !isDefined( struct.used ) || b_no_unused_structs )
|
||||||
{
|
{
|
||||||
struct.used = 0;
|
struct.used = 0;
|
||||||
@ -81,7 +83,6 @@ get_unused_struct( a_structs )
|
|||||||
{
|
{
|
||||||
a_valid_structs[ a_valid_structs.size ] = struct;
|
a_valid_structs[ a_valid_structs.size ] = struct;
|
||||||
}
|
}
|
||||||
_k90 = getNextArrayKey( _a90, _k90 );
|
|
||||||
}
|
}
|
||||||
if ( !a_valid_structs.size )
|
if ( !a_valid_structs.size )
|
||||||
{
|
{
|
||||||
@ -93,18 +94,17 @@ get_unused_struct( a_structs )
|
|||||||
return s_unused;
|
return s_unused;
|
||||||
}
|
}
|
||||||
|
|
||||||
start_sky_battle()
|
start_sky_battle() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
flag_wait( "start_zombie_round_logic" );
|
flag_wait( "start_zombie_round_logic" );
|
||||||
level setclientfield( "sky_battle_ambient_fx", 1 );
|
level setclientfield( "sky_battle_ambient_fx", 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
vista_robot_pose()
|
vista_robot_pose() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
flag_wait( "start_zombie_round_logic" );
|
flag_wait( "start_zombie_round_logic" );
|
||||||
a_robots = getstructarray( "trench_downed_robot_struct", "targetname" );
|
a_robots = getstructarray( "trench_downed_robot_struct", "targetname" );
|
||||||
i = 0;
|
for ( i = 0; i < a_robots.size; i++ )
|
||||||
while ( i < a_robots.size )
|
|
||||||
{
|
{
|
||||||
if ( !isDefined( a_robots[ i ].angles ) )
|
if ( !isDefined( a_robots[ i ].angles ) )
|
||||||
{
|
{
|
||||||
@ -117,6 +117,6 @@ vista_robot_pose()
|
|||||||
e_robot setmodel( "veh_t6_dlc_zm_robot" );
|
e_robot setmodel( "veh_t6_dlc_zm_robot" );
|
||||||
e_robot useanimtree( -1 );
|
e_robot useanimtree( -1 );
|
||||||
e_robot setanim( %ai_zombie_giant_robot_vista, 1, 0, 1 );
|
e_robot setanim( %ai_zombie_giant_robot_vista, 1, 0, 1 );
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,27 +1,29 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zombies/_zm_utility;
|
#include maps/mp/zombies/_zm_utility;
|
||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
capture_zone_init_start()
|
capture_zone_init_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
capture_zone_init_end()
|
capture_zone_init_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
capture_event_start()
|
capture_event_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
capture_event_end()
|
capture_event_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
recapture_event_start()
|
recapture_event_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
recapture_event_end()
|
recapture_event_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
|
//checked includes changed to match cerberus output
|
||||||
#include maps/mp/zombies/_zm_weap_one_inch_punch;
|
#include maps/mp/zombies/_zm_weap_one_inch_punch;
|
||||||
#include maps/mp/zombies/_zm_perks;
|
#include maps/mp/zombies/_zm_perks;
|
||||||
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
||||||
#include maps/mp/zombies/_zm_audio_announcer;
|
#include maps/mp/zombies/_zm_audio_announcer;
|
||||||
#include maps/mp/zombies/_zm_powerups;
|
#include maps/mp/zombies/_zm_powerups;
|
||||||
#include maps/mp/zombies/_zm_weapons;
|
#include maps/mp/zombies/_zm_weapons;
|
||||||
#include raw/maps/mp/_zm_challenges;
|
#include maps/mp/zombies/_zm_challenges;
|
||||||
#include maps/mp/zm_tomb_vo;
|
#include maps/mp/zm_tomb_vo;
|
||||||
#include maps/mp/zm_tomb_utility;
|
#include maps/mp/zm_tomb_utility;
|
||||||
#include maps/mp/zombies/_zm_audio;
|
#include maps/mp/zombies/_zm_audio;
|
||||||
@ -12,20 +13,21 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
#using_animtree( "fxanim_props_dlc4" );
|
//#using_animtree( "fxanim_props_dlc4" );
|
||||||
|
|
||||||
challenges_init()
|
challenges_init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.challenges_add_stats = ::tomb_challenges_add_stats;
|
level.challenges_add_stats = ::tomb_challenges_add_stats;
|
||||||
maps/mp/zombies/_zm_challenges::init();
|
maps/mp/zombies/_zm_challenges::init();
|
||||||
}
|
}
|
||||||
|
|
||||||
tomb_challenges_add_stats()
|
tomb_challenges_add_stats() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
n_kills = 115;
|
n_kills = 115;
|
||||||
n_zone_caps = 6;
|
n_zone_caps = 6;
|
||||||
n_points_spent = 30000;
|
n_points_spent = 30000;
|
||||||
n_boxes_filled = 4;
|
n_boxes_filled = 4;
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
if ( getDvarInt( "zombie_cheat" ) > 0 )
|
if ( getDvarInt( "zombie_cheat" ) > 0 )
|
||||||
{
|
{
|
||||||
@ -35,13 +37,14 @@ tomb_challenges_add_stats()
|
|||||||
n_boxes_filled = 1;
|
n_boxes_filled = 1;
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
add_stat( "zc_headshots", 0, &"ZM_TOMB_CH1", n_kills, undefined, ::reward_packed_weapon );
|
add_stat( "zc_headshots", 0, &"ZM_TOMB_CH1", n_kills, undefined, ::reward_packed_weapon );
|
||||||
add_stat( "zc_zone_captures", 0, &"ZM_TOMB_CH2", n_zone_caps, undefined, ::reward_powerup_max_ammo );
|
add_stat( "zc_zone_captures", 0, &"ZM_TOMB_CH2", n_zone_caps, undefined, ::reward_powerup_max_ammo );
|
||||||
add_stat( "zc_points_spent", 0, &"ZM_TOMB_CH3", n_points_spent, undefined, ::reward_double_tap, ::track_points_spent );
|
add_stat( "zc_points_spent", 0, &"ZM_TOMB_CH3", n_points_spent, undefined, ::reward_double_tap, ::track_points_spent );
|
||||||
add_stat( "zc_boxes_filled", 1, &"ZM_TOMB_CHT", n_boxes_filled, undefined, ::reward_one_inch_punch, ::init_box_footprints );
|
add_stat( "zc_boxes_filled", 1, &"ZM_TOMB_CHT", n_boxes_filled, undefined, ::reward_one_inch_punch, ::init_box_footprints );
|
||||||
}
|
}
|
||||||
|
|
||||||
track_points_spent()
|
track_points_spent() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
@ -50,7 +53,7 @@ track_points_spent()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
init_box_footprints()
|
init_box_footprints() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.n_soul_boxes_completed = 0;
|
level.n_soul_boxes_completed = 0;
|
||||||
flag_init( "vo_soul_box_intro_played" );
|
flag_init( "vo_soul_box_intro_played" );
|
||||||
@ -59,16 +62,18 @@ init_box_footprints()
|
|||||||
array_thread( a_boxes, ::box_footprint_think );
|
array_thread( a_boxes, ::box_footprint_think );
|
||||||
}
|
}
|
||||||
|
|
||||||
box_footprint_think()
|
box_footprint_think() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self.n_souls_absorbed = 0;
|
self.n_souls_absorbed = 0;
|
||||||
n_souls_required = 30;
|
n_souls_required = 30;
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
if ( getDvarInt( "zombie_cheat" ) > 0 )
|
if ( getDvarInt( "zombie_cheat" ) > 0 )
|
||||||
{
|
{
|
||||||
n_souls_required = 10;
|
n_souls_required = 10;
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
self useanimtree( -1 );
|
self useanimtree( -1 );
|
||||||
self thread watch_for_foot_stomp();
|
self thread watch_for_foot_stomp();
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -86,7 +91,7 @@ box_footprint_think()
|
|||||||
self delay_thread( 1, ::setclientfield, "foot_print_box_glow", 1 );
|
self delay_thread( 1, ::setclientfield, "foot_print_box_glow", 1 );
|
||||||
if ( isDefined( player ) && !flag( "vo_soul_box_intro_played" ) )
|
if ( isDefined( player ) && !flag( "vo_soul_box_intro_played" ) )
|
||||||
{
|
{
|
||||||
player delay_thread( 1,5, ::richtofenrespondvoplay, "zm_box_start", 0, "vo_soul_box_intro_played" );
|
player delay_thread( 1.5, ::richtofenrespondvoplay, "zm_box_start", 0, "vo_soul_box_intro_played" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( self.n_souls_absorbed == floor( n_souls_required / 4 ) )
|
if ( self.n_souls_absorbed == floor( n_souls_required / 4 ) )
|
||||||
@ -114,25 +119,23 @@ box_footprint_think()
|
|||||||
level.n_soul_boxes_completed++;
|
level.n_soul_boxes_completed++;
|
||||||
e_volume = getent( self.target, "targetname" );
|
e_volume = getent( self.target, "targetname" );
|
||||||
e_volume delete();
|
e_volume delete();
|
||||||
self delay_thread( 0,5, ::setclientfield, "foot_print_box_glow", 0 );
|
self delay_thread( 0.5, ::setclientfield, "foot_print_box_glow", 0 );
|
||||||
wait 1;
|
wait 1;
|
||||||
self movez( 30, 1, 1 );
|
self movez( 30, 1, 1 );
|
||||||
wait 0,5;
|
wait 0.5;
|
||||||
n_rotations = randomintrange( 5, 7 );
|
n_rotations = randomintrange( 5, 7 );
|
||||||
v_start_angles = self.angles;
|
v_start_angles = self.angles;
|
||||||
i = 0;
|
for ( i = 0; i < n_rotations; i++ )
|
||||||
while ( i < n_rotations )
|
|
||||||
{
|
{
|
||||||
v_rotate_angles = v_start_angles + ( randomfloatrange( -10, 10 ), randomfloatrange( -10, 10 ), randomfloatrange( -10, 10 ) );
|
v_rotate_angles = v_start_angles + ( randomfloatrange( -10, 10 ), randomfloatrange( -10, 10 ), randomfloatrange( -10, 10 ) );
|
||||||
n_rotate_time = randomfloatrange( 0,2, 0,4 );
|
n_rotate_time = randomfloatrange( 0.2, 0.4 );
|
||||||
self rotateto( v_rotate_angles, n_rotate_time );
|
self rotateto( v_rotate_angles, n_rotate_time );
|
||||||
self waittill( "rotatedone" );
|
self waittill( "rotatedone" );
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
self rotateto( v_start_angles, 0,3 );
|
self rotateto( v_start_angles, 0.3 );
|
||||||
self movez( -60, 0,5, 0,5 );
|
self movez( -60, 0.5, 0.5 );
|
||||||
self waittill( "rotatedone" );
|
self waittill( "rotatedone" );
|
||||||
trace_start = self.origin + vectorScale( ( 0, 1, 0 ), 200 );
|
trace_start = self.origin + vectorScale( ( 0, 0, 1 ), 200 );
|
||||||
trace_end = self.origin;
|
trace_end = self.origin;
|
||||||
fx_trace = bullettrace( trace_start, trace_end, 0, self );
|
fx_trace = bullettrace( trace_start, trace_end, 0, self );
|
||||||
playfx( level._effect[ "mech_booster_landing" ], fx_trace[ "position" ], anglesToForward( self.angles ), anglesToUp( self.angles ) );
|
playfx( level._effect[ "mech_booster_landing" ], fx_trace[ "position" ], anglesToForward( self.angles ), anglesToUp( self.angles ) );
|
||||||
@ -145,18 +148,15 @@ box_footprint_think()
|
|||||||
{
|
{
|
||||||
player thread richtofenrespondvoplay( "zm_box_complete" );
|
player thread richtofenrespondvoplay( "zm_box_complete" );
|
||||||
}
|
}
|
||||||
else
|
else if ( level.n_soul_boxes_completed == 4 )
|
||||||
{
|
|
||||||
if ( level.n_soul_boxes_completed == 4 )
|
|
||||||
{
|
{
|
||||||
player thread richtofenrespondvoplay( "zm_box_final_complete", 1 );
|
player thread richtofenrespondvoplay( "zm_box_final_complete", 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
self delete();
|
self delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
watch_for_foot_stomp()
|
watch_for_foot_stomp() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "box_finished" );
|
self endon( "box_finished" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -170,14 +170,11 @@ watch_for_foot_stomp()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
footprint_zombie_killed( attacker )
|
footprint_zombie_killed( attacker ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
a_volumes = getentarray( "foot_box_volume", "script_noteworthy" );
|
a_volumes = getentarray( "foot_box_volume", "script_noteworthy" );
|
||||||
_a268 = a_volumes;
|
foreach ( e_volume in a_volumes )
|
||||||
_k268 = getFirstArrayKey( _a268 );
|
|
||||||
while ( isDefined( _k268 ) )
|
|
||||||
{
|
{
|
||||||
e_volume = _a268[ _k268 ];
|
|
||||||
if ( self istouching( e_volume ) && isDefined( attacker ) && isplayer( attacker ) )
|
if ( self istouching( e_volume ) && isDefined( attacker ) && isplayer( attacker ) )
|
||||||
{
|
{
|
||||||
self setclientfield( "foot_print_box_fx", 1 );
|
self setclientfield( "foot_print_box_fx", 1 );
|
||||||
@ -185,12 +182,11 @@ footprint_zombie_killed( attacker )
|
|||||||
m_box notify( "soul_absorbed" );
|
m_box notify( "soul_absorbed" );
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
_k268 = getNextArrayKey( _a268, _k268 );
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
reward_packed_weapon( player, s_stat )
|
reward_packed_weapon( player, s_stat ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( s_stat.str_reward_weapon ) )
|
if ( !isDefined( s_stat.str_reward_weapon ) )
|
||||||
{
|
{
|
||||||
@ -200,7 +196,7 @@ reward_packed_weapon( player, s_stat )
|
|||||||
m_weapon = spawn( "script_model", self.origin );
|
m_weapon = spawn( "script_model", self.origin );
|
||||||
m_weapon.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
m_weapon.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
||||||
m_weapon playsound( "zmb_spawn_powerup" );
|
m_weapon playsound( "zmb_spawn_powerup" );
|
||||||
m_weapon playloopsound( "zmb_spawn_powerup_loop", 0,5 );
|
m_weapon playloopsound( "zmb_spawn_powerup_loop", 0.5 );
|
||||||
str_model = getweaponmodel( s_stat.str_reward_weapon );
|
str_model = getweaponmodel( s_stat.str_reward_weapon );
|
||||||
options = player maps/mp/zombies/_zm_weapons::get_pack_a_punch_weapon_options( s_stat.str_reward_weapon );
|
options = player maps/mp/zombies/_zm_weapons::get_pack_a_punch_weapon_options( s_stat.str_reward_weapon );
|
||||||
m_weapon useweaponmodel( s_stat.str_reward_weapon, str_model, options );
|
m_weapon useweaponmodel( s_stat.str_reward_weapon, str_model, options );
|
||||||
@ -221,28 +217,28 @@ reward_packed_weapon( player, s_stat )
|
|||||||
player givestartammo( s_stat.str_reward_weapon );
|
player givestartammo( s_stat.str_reward_weapon );
|
||||||
}
|
}
|
||||||
player switchtoweapon( s_stat.str_reward_weapon );
|
player switchtoweapon( s_stat.str_reward_weapon );
|
||||||
m_weapon stoploopsound( 0,1 );
|
m_weapon stoploopsound( 0.1 );
|
||||||
player playsound( "zmb_powerup_grabbed" );
|
player playsound( "zmb_powerup_grabbed" );
|
||||||
m_weapon delete();
|
m_weapon delete();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
reward_powerup_max_ammo( player, s_stat )
|
reward_powerup_max_ammo( player, s_stat ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
return reward_powerup( player, "full_ammo" );
|
return reward_powerup( player, "full_ammo" );
|
||||||
}
|
}
|
||||||
|
|
||||||
reward_powerup_double_points( player, n_timeout )
|
reward_powerup_double_points( player, n_timeout ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
return reward_powerup( player, "double_points", n_timeout );
|
return reward_powerup( player, "double_points", n_timeout );
|
||||||
}
|
}
|
||||||
|
|
||||||
reward_powerup_zombie_blood( player, n_timeout )
|
reward_powerup_zombie_blood( player, n_timeout ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
return reward_powerup( player, "zombie_blood", n_timeout );
|
return reward_powerup( player, "zombie_blood", n_timeout );
|
||||||
}
|
}
|
||||||
|
|
||||||
reward_powerup( player, str_powerup, n_timeout )
|
reward_powerup( player, str_powerup, n_timeout ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( n_timeout ) )
|
if ( !isDefined( n_timeout ) )
|
||||||
{
|
{
|
||||||
@ -257,7 +253,7 @@ reward_powerup( player, str_powerup, n_timeout )
|
|||||||
m_reward.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
m_reward.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
||||||
m_reward setmodel( s_powerup.model_name );
|
m_reward setmodel( s_powerup.model_name );
|
||||||
m_reward playsound( "zmb_spawn_powerup" );
|
m_reward playsound( "zmb_spawn_powerup" );
|
||||||
m_reward playloopsound( "zmb_spawn_powerup_loop", 0,5 );
|
m_reward playloopsound( "zmb_spawn_powerup_loop", 0.5 );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
if ( !reward_rise_and_grab( m_reward, 50, 2, 2, n_timeout ) )
|
if ( !reward_rise_and_grab( m_reward, 50, 2, 2, n_timeout ) )
|
||||||
{
|
{
|
||||||
@ -268,7 +264,7 @@ reward_powerup( player, str_powerup, n_timeout )
|
|||||||
{
|
{
|
||||||
player = self.player_using;
|
player = self.player_using;
|
||||||
}
|
}
|
||||||
switch( str_powerup )
|
switch ( str_powerup )
|
||||||
{
|
{
|
||||||
case "full_ammo":
|
case "full_ammo":
|
||||||
level thread maps/mp/zombies/_zm_powerups::full_ammo_powerup( m_reward, player );
|
level thread maps/mp/zombies/_zm_powerups::full_ammo_powerup( m_reward, player );
|
||||||
@ -284,14 +280,14 @@ reward_powerup( player, str_powerup, n_timeout )
|
|||||||
level thread maps/mp/zombies/_zm_powerup_zombie_blood::zombie_blood_powerup( m_reward, player );
|
level thread maps/mp/zombies/_zm_powerup_zombie_blood::zombie_blood_powerup( m_reward, player );
|
||||||
level thread maps/mp/zombies/_zm_audio_announcer::leaderdialog( "zombie_blood", player.pers[ "team" ] );
|
level thread maps/mp/zombies/_zm_audio_announcer::leaderdialog( "zombie_blood", player.pers[ "team" ] );
|
||||||
}
|
}
|
||||||
wait 0,1;
|
wait 0.1;
|
||||||
m_reward stoploopsound( 0,1 );
|
m_reward stoploopsound( 0.1 );
|
||||||
player playsound( "zmb_powerup_grabbed" );
|
player playsound( "zmb_powerup_grabbed" );
|
||||||
m_reward delete();
|
m_reward delete();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
reward_double_tap( player, s_stat )
|
reward_double_tap( player, s_stat ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
m_reward = spawn( "script_model", self.origin );
|
m_reward = spawn( "script_model", self.origin );
|
||||||
m_reward.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
m_reward.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
||||||
@ -309,14 +305,14 @@ reward_double_tap( player, s_stat )
|
|||||||
m_reward thread bottle_reject_sink( player );
|
m_reward thread bottle_reject_sink( player );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
m_reward stoploopsound( 0,1 );
|
m_reward stoploopsound( 0.1 );
|
||||||
player playsound( "zmb_powerup_grabbed" );
|
player playsound( "zmb_powerup_grabbed" );
|
||||||
m_reward thread maps/mp/zombies/_zm_perks::vending_trigger_post_think( player, "specialty_rof" );
|
m_reward thread maps/mp/zombies/_zm_perks::vending_trigger_post_think( player, "specialty_rof" );
|
||||||
m_reward delete();
|
m_reward delete();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bottle_reject_sink( player )
|
bottle_reject_sink( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
n_time = 1;
|
n_time = 1;
|
||||||
player playlocalsound( level.zmb_laugh_alias );
|
player playlocalsound( level.zmb_laugh_alias );
|
||||||
@ -325,14 +321,14 @@ bottle_reject_sink( player )
|
|||||||
self delete();
|
self delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
reward_one_inch_punch( player, s_stat )
|
reward_one_inch_punch( player, s_stat ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
m_reward = spawn( "script_model", self.origin );
|
m_reward = spawn( "script_model", self.origin );
|
||||||
m_reward.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
m_reward.angles = self.angles + vectorScale( ( 0, 1, 0 ), 180 );
|
||||||
m_reward setmodel( "tag_origin" );
|
m_reward setmodel( "tag_origin" );
|
||||||
playfxontag( level._effect[ "staff_soul" ], m_reward, "tag_origin" );
|
playfxontag( level._effect[ "staff_soul" ], m_reward, "tag_origin" );
|
||||||
m_reward playsound( "zmb_spawn_powerup" );
|
m_reward playsound( "zmb_spawn_powerup" );
|
||||||
m_reward playloopsound( "zmb_spawn_powerup_loop", 0,5 );
|
m_reward playloopsound( "zmb_spawn_powerup_loop", 0.5 );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
if ( !reward_rise_and_grab( m_reward, 50, 2, 2, 10 ) )
|
if ( !reward_rise_and_grab( m_reward, 50, 2, 2, 10 ) )
|
||||||
{
|
{
|
||||||
@ -346,7 +342,7 @@ reward_one_inch_punch( player, s_stat )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
one_inch_punch_watch_for_death( s_stat )
|
one_inch_punch_watch_for_death( s_stat ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self waittill( "bled_out" );
|
self waittill( "bled_out" );
|
||||||
@ -364,20 +360,21 @@ reward_beacon( player, s_stat )
|
|||||||
str_model = getweaponmodel( "beacon_zm" );
|
str_model = getweaponmodel( "beacon_zm" );
|
||||||
m_reward setmodel( str_model );
|
m_reward setmodel( str_model );
|
||||||
m_reward playsound( "zmb_spawn_powerup" );
|
m_reward playsound( "zmb_spawn_powerup" );
|
||||||
m_reward playloopsound( "zmb_spawn_powerup_loop", 0,5 );
|
m_reward playloopsound( "zmb_spawn_powerup_loop", 0.5 );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
if ( !reward_rise_and_grab( m_reward, 50, 2, 2, 10 ) )
|
if ( !reward_rise_and_grab( m_reward, 50, 2, 2, 10 ) )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
player maps/mp/zombies/_zm_weapons::weapon_give( "beacon_zm" );
|
player maps/mp/zombies/_zm_weapons::weapon_give( "beacon_zm" );
|
||||||
if ( isDefined( level.zombie_include_weapons[ "beacon_zm" ] ) && !level.zombie_include_weapons[ "beacon_zm" ] )
|
if ( !is_true( level.zombie_include_weapons[ "beacon_zm" ] ) )
|
||||||
{
|
{
|
||||||
level.zombie_include_weapons[ "beacon_zm" ] = 1;
|
level.zombie_include_weapons[ "beacon_zm" ] = 1;
|
||||||
level.zombie_weapons[ "beacon_zm" ].is_in_box = 1;
|
level.zombie_weapons[ "beacon_zm" ].is_in_box = 1;
|
||||||
}
|
}
|
||||||
m_reward stoploopsound( 0,1 );
|
m_reward stoploopsound( 0.1 );
|
||||||
player playsound( "zmb_powerup_grabbed" );
|
player playsound( "zmb_powerup_grabbed" );
|
||||||
m_reward delete();
|
m_reward delete();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zm_tomb_quest_crypt;
|
#include maps/mp/zm_tomb_quest_crypt;
|
||||||
#include maps/mp/zombies/_zm_net;
|
#include maps/mp/zombies/_zm_net;
|
||||||
#include maps/mp/zm_tomb_utility;
|
#include maps/mp/zm_tomb_utility;
|
||||||
@ -7,7 +8,7 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
main()
|
main() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
registerclientfield( "world", "light_show", 14000, 2, "int" );
|
registerclientfield( "world", "light_show", 14000, 2, "int" );
|
||||||
flag_init( "show_morse_code" );
|
flag_init( "show_morse_code" );
|
||||||
@ -15,16 +16,12 @@ main()
|
|||||||
flag_wait( "start_zombie_round_logic" );
|
flag_wait( "start_zombie_round_logic" );
|
||||||
chamber_discs = getentarray( "crypt_puzzle_disc", "script_noteworthy" );
|
chamber_discs = getentarray( "crypt_puzzle_disc", "script_noteworthy" );
|
||||||
lit_discs = [];
|
lit_discs = [];
|
||||||
_a24 = chamber_discs;
|
foreach ( disc in chamber_discs )
|
||||||
_k24 = getFirstArrayKey( _a24 );
|
|
||||||
while ( isDefined( _k24 ) )
|
|
||||||
{
|
{
|
||||||
disc = _a24[ _k24 ];
|
|
||||||
if ( isDefined( disc.script_int ) )
|
if ( isDefined( disc.script_int ) )
|
||||||
{
|
{
|
||||||
lit_discs[ disc.script_int - 1 ] = disc;
|
lit_discs[ disc.script_int - 1 ] = disc;
|
||||||
}
|
}
|
||||||
_k24 = getNextArrayKey( _a24, _k24 );
|
|
||||||
}
|
}
|
||||||
flag_wait_any( "ee_all_staffs_upgraded", "show_morse_code" );
|
flag_wait_any( "ee_all_staffs_upgraded", "show_morse_code" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -42,22 +39,18 @@ main()
|
|||||||
wait 10;
|
wait 10;
|
||||||
setclientfield( "light_show", 2 );
|
setclientfield( "light_show", 2 );
|
||||||
light_show_morse( lit_discs, level.cipher_key );
|
light_show_morse( lit_discs, level.cipher_key );
|
||||||
_a56 = level.morse_messages;
|
foreach ( message in level.morse_messages )
|
||||||
_k56 = getFirstArrayKey( _a56 );
|
|
||||||
while ( isDefined( _k56 ) )
|
|
||||||
{
|
{
|
||||||
message = _a56[ _k56 ];
|
|
||||||
setclientfield( "light_show", 1 );
|
setclientfield( "light_show", 1 );
|
||||||
cipher = phrase_convert_to_cipher( message, level.cipher_key );
|
cipher = phrase_convert_to_cipher( message, level.cipher_key );
|
||||||
turn_all_lights_off( lit_discs );
|
turn_all_lights_off( lit_discs );
|
||||||
wait 10;
|
wait 10;
|
||||||
light_show_morse( lit_discs, cipher );
|
light_show_morse( lit_discs, cipher );
|
||||||
_k56 = getNextArrayKey( _a56, _k56 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
init_morse_code()
|
init_morse_code() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.morse_letters = [];
|
level.morse_letters = [];
|
||||||
level.morse_letters[ "A" ] = ".-";
|
level.morse_letters[ "A" ] = ".-";
|
||||||
@ -100,45 +93,34 @@ init_morse_code()
|
|||||||
|
|
||||||
turn_all_lights_off( a_discs )
|
turn_all_lights_off( a_discs )
|
||||||
{
|
{
|
||||||
_a114 = a_discs;
|
foreach ( disc in a_discs )
|
||||||
_k114 = getFirstArrayKey( _a114 );
|
|
||||||
while ( isDefined( _k114 ) )
|
|
||||||
{
|
{
|
||||||
disc = _a114[ _k114 ];
|
|
||||||
disc maps/mp/zm_tomb_quest_crypt::bryce_cake_light_update( 0 );
|
disc maps/mp/zm_tomb_quest_crypt::bryce_cake_light_update( 0 );
|
||||||
_k114 = getNextArrayKey( _a114, _k114 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
turn_all_lights_on( a_discs )
|
turn_all_lights_on( a_discs )
|
||||||
{
|
{
|
||||||
_a122 = a_discs;
|
foreach ( disc in a_discs )
|
||||||
_k122 = getFirstArrayKey( _a122 );
|
|
||||||
while ( isDefined( _k122 ) )
|
|
||||||
{
|
{
|
||||||
disc = _a122[ _k122 ];
|
|
||||||
disc maps/mp/zm_tomb_quest_crypt::bryce_cake_light_update( 1 );
|
disc maps/mp/zm_tomb_quest_crypt::bryce_cake_light_update( 1 );
|
||||||
_k122 = getNextArrayKey( _a122, _k122 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
phrase_convert_to_cipher( str_phrase, str_key )
|
phrase_convert_to_cipher( str_phrase, str_key ) //checked partially changed to match cerberus output see info.md
|
||||||
{
|
{
|
||||||
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
alphabet_vals = [];
|
alphabet_vals = [];
|
||||||
num = 0;
|
num = 0;
|
||||||
i = 0;
|
for ( i = 0; i < alphabet.size; i++ )
|
||||||
while ( i < alphabet.size )
|
|
||||||
{
|
{
|
||||||
letter = alphabet[ i ];
|
letter = alphabet[ i ];
|
||||||
alphabet_vals[ letter ] = num;
|
alphabet_vals[ letter ] = num;
|
||||||
num++;
|
num++;
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
encrypted_phrase = [];
|
encrypted_phrase = [];
|
||||||
j = 0;
|
j = 0;
|
||||||
i = 0;
|
for ( i = 0; i < str_phrase.size; i++ )
|
||||||
while ( i < str_phrase.size )
|
|
||||||
{
|
{
|
||||||
cipher_letter = str_key[ j % str_key.size ];
|
cipher_letter = str_key[ j % str_key.size ];
|
||||||
original_letter = str_phrase[ i ];
|
original_letter = str_phrase[ i ];
|
||||||
@ -146,8 +128,6 @@ phrase_convert_to_cipher( str_phrase, str_key )
|
|||||||
if ( !isDefined( n_original_letter ) )
|
if ( !isDefined( n_original_letter ) )
|
||||||
{
|
{
|
||||||
encrypted_phrase[ encrypted_phrase.size ] = original_letter;
|
encrypted_phrase[ encrypted_phrase.size ] = original_letter;
|
||||||
i++;
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -156,15 +136,13 @@ phrase_convert_to_cipher( str_phrase, str_key )
|
|||||||
encrypted_phrase[ encrypted_phrase.size ] = alphabet[ n_ciphered_letter ];
|
encrypted_phrase[ encrypted_phrase.size ] = alphabet[ n_ciphered_letter ];
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
return encrypted_phrase;
|
return encrypted_phrase;
|
||||||
}
|
}
|
||||||
|
|
||||||
light_show_morse( a_discs, message )
|
light_show_morse( a_discs, message )
|
||||||
{
|
{
|
||||||
i = 0;
|
for ( i = 0; i < message.size; i++ )
|
||||||
while ( i < message.size )
|
|
||||||
{
|
{
|
||||||
letter = message[ i ];
|
letter = message[ i ];
|
||||||
letter_code = level.morse_letters[ letter ];
|
letter_code = level.morse_letters[ letter ];
|
||||||
@ -176,22 +154,22 @@ light_show_morse( a_discs, message )
|
|||||||
turn_all_lights_on( a_discs );
|
turn_all_lights_on( a_discs );
|
||||||
if ( letter_code[ j ] == "." )
|
if ( letter_code[ j ] == "." )
|
||||||
{
|
{
|
||||||
wait 0,2;
|
wait 0.2;
|
||||||
}
|
}
|
||||||
else
|
else if ( letter_code[ j ] == "-" )
|
||||||
{
|
|
||||||
if ( letter_code[ j ] == "-" )
|
|
||||||
{
|
{
|
||||||
wait 1;
|
wait 1;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
turn_all_lights_off( a_discs );
|
turn_all_lights_off( a_discs );
|
||||||
wait 0,5;
|
wait 0.5;
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else wait 2;
|
else
|
||||||
wait 1,5;
|
{
|
||||||
i++;
|
wait 2;
|
||||||
|
}
|
||||||
|
wait 1.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,29 +1,32 @@
|
|||||||
|
//checked includes matche cerberus output
|
||||||
#include maps/mp/zm_tomb_ee_main;
|
#include maps/mp/zm_tomb_ee_main;
|
||||||
#include maps/mp/zombies/_zm_sidequests;
|
#include maps/mp/zombies/_zm_sidequests;
|
||||||
#include maps/mp/zombies/_zm_utility;
|
#include maps/mp/zombies/_zm_utility;
|
||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_1", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_1", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_1";
|
level._cur_stage_name = "step_1";
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
flag_wait( "ee_all_staffs_upgraded" );
|
flag_wait( "ee_all_staffs_upgraded" );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zm_tomb_craftables;
|
#include maps/mp/zm_tomb_craftables;
|
||||||
#include maps/mp/zombies/_zm_unitrigger;
|
#include maps/mp/zombies/_zm_unitrigger;
|
||||||
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
||||||
@ -7,34 +8,32 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_2", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_2", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
precachemodel( "p6_zm_tm_staff_holder" );
|
precachemodel( "p6_zm_tm_staff_holder" );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_2";
|
level._cur_stage_name = "step_2";
|
||||||
a_structs = getstructarray( "robot_head_staff", "targetname" );
|
a_structs = getstructarray( "robot_head_staff", "targetname" );
|
||||||
_a21 = a_structs;
|
foreach ( unitrigger_stub in a_structs )
|
||||||
_k21 = getFirstArrayKey( _a21 );
|
|
||||||
while ( isDefined( _k21 ) )
|
|
||||||
{
|
{
|
||||||
unitrigger_stub = _a21[ _k21 ];
|
|
||||||
level thread create_robot_head_trigger( unitrigger_stub );
|
level thread create_robot_head_trigger( unitrigger_stub );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
_k21 = getNextArrayKey( _a21, _k21 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
flag_wait( "ee_all_staffs_placed" );
|
flag_wait( "ee_all_staffs_placed" );
|
||||||
playsoundatposition( "zmb_squest_robot_alarm_high", ( -14, -1, 871 ) );
|
playsoundatposition( "zmb_squest_robot_alarm_high", ( -14, -1, 871 ) );
|
||||||
wait 3;
|
wait 3;
|
||||||
@ -42,23 +41,19 @@ stage_logic()
|
|||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
a_structs = getstructarray( "robot_head_staff", "targetname" );
|
a_structs = getstructarray( "robot_head_staff", "targetname" );
|
||||||
_a52 = a_structs;
|
foreach ( struct in a_structs )
|
||||||
_k52 = getFirstArrayKey( _a52 );
|
|
||||||
while ( isDefined( _k52 ) )
|
|
||||||
{
|
{
|
||||||
struct = _a52[ _k52 ];
|
|
||||||
struct thread remove_plinth();
|
struct thread remove_plinth();
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
_k52 = getNextArrayKey( _a52, _k52 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
remove_plinth()
|
remove_plinth() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
playfx( level._effect[ "teleport_1p" ], self.m_plinth.origin );
|
playfx( level._effect[ "teleport_1p" ], self.m_plinth.origin );
|
||||||
playsoundatposition( "zmb_footprintbox_disappear", self.m_plinth.origin );
|
playsoundatposition( "zmb_footprintbox_disappear", self.m_plinth.origin );
|
||||||
@ -76,7 +71,7 @@ remove_plinth()
|
|||||||
unregister_unitrigger( self );
|
unregister_unitrigger( self );
|
||||||
}
|
}
|
||||||
|
|
||||||
create_robot_head_trigger( unitrigger_stub )
|
create_robot_head_trigger( unitrigger_stub ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
playfx( level._effect[ "teleport_1p" ], unitrigger_stub.origin );
|
playfx( level._effect[ "teleport_1p" ], unitrigger_stub.origin );
|
||||||
playsoundatposition( "zmb_footprintbox_disappear", unitrigger_stub.origin );
|
playsoundatposition( "zmb_footprintbox_disappear", unitrigger_stub.origin );
|
||||||
@ -102,7 +97,7 @@ create_robot_head_trigger( unitrigger_stub )
|
|||||||
m_sign hidepart( "j_ice" );
|
m_sign hidepart( "j_ice" );
|
||||||
m_sign hidepart( "j_lightning" );
|
m_sign hidepart( "j_lightning" );
|
||||||
m_sign hidepart( "j_wind" );
|
m_sign hidepart( "j_wind" );
|
||||||
switch( unitrigger_stub.script_noteworthy )
|
switch ( unitrigger_stub.script_noteworthy )
|
||||||
{
|
{
|
||||||
case "fire":
|
case "fire":
|
||||||
m_sign showpart( "j_fire" );
|
m_sign showpart( "j_fire" );
|
||||||
@ -123,7 +118,7 @@ create_robot_head_trigger( unitrigger_stub )
|
|||||||
maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( unitrigger_stub, ::robot_head_trigger_think );
|
maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( unitrigger_stub, ::robot_head_trigger_think );
|
||||||
}
|
}
|
||||||
|
|
||||||
robot_head_trigger_think()
|
robot_head_trigger_think() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "kill_trigger" );
|
self endon( "kill_trigger" );
|
||||||
str_weap_staff = "staff_" + self.script_noteworthy + "_upgraded_zm";
|
str_weap_staff = "staff_" + self.script_noteworthy + "_upgraded_zm";
|
||||||
@ -157,3 +152,4 @@ place_staff( m_plinth )
|
|||||||
m_staff show();
|
m_staff show();
|
||||||
m_plinth playsound( "zmb_squest_robot_place_staff" );
|
m_plinth playsound( "zmb_squest_robot_place_staff" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zombies/_zm_unitrigger;
|
#include maps/mp/zombies/_zm_unitrigger;
|
||||||
#include maps/mp/zm_tomb_ee_main;
|
#include maps/mp/zm_tomb_ee_main;
|
||||||
#include maps/mp/zombies/_zm_sidequests;
|
#include maps/mp/zombies/_zm_sidequests;
|
||||||
@ -5,30 +6,32 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_3", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_3", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_3";
|
level._cur_stage_name = "step_3";
|
||||||
level.check_valid_poi = ::mech_zombie_hole_valid;
|
level.check_valid_poi = ::mech_zombie_hole_valid;
|
||||||
create_buttons_and_triggers();
|
create_buttons_and_triggers();
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level thread watch_for_triple_attack();
|
level thread watch_for_triple_attack();
|
||||||
flag_wait( "ee_mech_zombie_hole_opened" );
|
flag_wait( "ee_mech_zombie_hole_opened" );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
level.check_valid_poi = undefined;
|
level.check_valid_poi = undefined;
|
||||||
level notify( "fire_link_cooldown" );
|
level notify( "fire_link_cooldown" );
|
||||||
@ -36,24 +39,17 @@ exit_stage( success )
|
|||||||
a_buttons = getentarray( "fire_link_button", "targetname" );
|
a_buttons = getentarray( "fire_link_button", "targetname" );
|
||||||
array_delete( a_buttons );
|
array_delete( a_buttons );
|
||||||
a_structs = getstructarray( "fire_link", "targetname" );
|
a_structs = getstructarray( "fire_link", "targetname" );
|
||||||
_a51 = a_structs;
|
foreach ( unitrigger_stub in a_structs )
|
||||||
_k51 = getFirstArrayKey( _a51 );
|
|
||||||
while ( isDefined( _k51 ) )
|
|
||||||
{
|
{
|
||||||
unitrigger_stub = _a51[ _k51 ];
|
|
||||||
unregister_unitrigger( unitrigger_stub );
|
unregister_unitrigger( unitrigger_stub );
|
||||||
_k51 = getNextArrayKey( _a51, _k51 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
create_buttons_and_triggers()
|
create_buttons_and_triggers() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
a_structs = getstructarray( "fire_link", "targetname" );
|
a_structs = getstructarray( "fire_link", "targetname" );
|
||||||
_a60 = a_structs;
|
foreach ( unitrigger_stub in a_structs )
|
||||||
_k60 = getFirstArrayKey( _a60 );
|
|
||||||
while ( isDefined( _k60 ) )
|
|
||||||
{
|
{
|
||||||
unitrigger_stub = _a60[ _k60 ];
|
|
||||||
unitrigger_stub.radius = 36;
|
unitrigger_stub.radius = 36;
|
||||||
unitrigger_stub.height = 256;
|
unitrigger_stub.height = 256;
|
||||||
unitrigger_stub.script_unitrigger_type = "unitrigger_radius_use";
|
unitrigger_stub.script_unitrigger_type = "unitrigger_radius_use";
|
||||||
@ -65,22 +61,21 @@ create_buttons_and_triggers()
|
|||||||
m_model.targetname = "fire_link_button";
|
m_model.targetname = "fire_link_button";
|
||||||
m_model thread ready_to_activate( unitrigger_stub );
|
m_model thread ready_to_activate( unitrigger_stub );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
_k60 = getNextArrayKey( _a60, _k60 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ready_to_activate( unitrigger_stub )
|
ready_to_activate( unitrigger_stub ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self playsoundwithnotify( "vox_maxi_robot_sync_0", "sync_done" );
|
self playsoundwithnotify( "vox_maxi_robot_sync_0", "sync_done" );
|
||||||
self waittill( "sync_done" );
|
self waittill( "sync_done" );
|
||||||
wait 0,5;
|
wait 0.5;
|
||||||
self playsoundwithnotify( "vox_maxi_robot_await_0", "ready_to_use" );
|
self playsoundwithnotify( "vox_maxi_robot_await_0", "ready_to_use" );
|
||||||
self waittill( "ready_to_use" );
|
self waittill( "ready_to_use" );
|
||||||
maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( unitrigger_stub, ::activate_fire_link );
|
maps/mp/zombies/_zm_unitrigger::register_static_unitrigger( unitrigger_stub, ::activate_fire_link );
|
||||||
}
|
}
|
||||||
|
|
||||||
watch_for_triple_attack()
|
watch_for_triple_attack() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
t_hole = getent( "fire_link_damage", "targetname" );
|
t_hole = getent( "fire_link_damage", "targetname" );
|
||||||
while ( !flag( "ee_mech_zombie_hole_opened" ) )
|
while ( !flag( "ee_mech_zombie_hole_opened" ) )
|
||||||
@ -99,7 +94,7 @@ watch_for_triple_attack()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mech_zombie_hole_valid( valid )
|
mech_zombie_hole_valid( valid ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
t_hole = getent( "fire_link_damage", "targetname" );
|
t_hole = getent( "fire_link_damage", "targetname" );
|
||||||
if ( self istouching( t_hole ) )
|
if ( self istouching( t_hole ) )
|
||||||
@ -109,7 +104,7 @@ mech_zombie_hole_valid( valid )
|
|||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
activate_fire_link()
|
activate_fire_link() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "kill_trigger" );
|
self endon( "kill_trigger" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -120,11 +115,10 @@ activate_fire_link()
|
|||||||
{
|
{
|
||||||
level thread fire_link_cooldown( self );
|
level thread fire_link_cooldown( self );
|
||||||
self playsound( "zmb_squest_robot_button_activate" );
|
self playsound( "zmb_squest_robot_button_activate" );
|
||||||
self playloopsound( "zmb_squest_robot_button_timer", 0,5 );
|
self playloopsound( "zmb_squest_robot_button_timer", 0.5 );
|
||||||
flag_waitopen( "fire_link_enabled" );
|
flag_waitopen( "fire_link_enabled" );
|
||||||
self stoploopsound( 0,5 );
|
self stoploopsound( 0.5 );
|
||||||
self playsound( "zmb_squest_robot_button_deactivate" );
|
self playsound( "zmb_squest_robot_button_deactivate" );
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -135,7 +129,7 @@ activate_fire_link()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fire_link_cooldown( t_button )
|
fire_link_cooldown( t_button ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level notify( "fire_link_cooldown" );
|
level notify( "fire_link_cooldown" );
|
||||||
level endon( "fire_link_cooldown" );
|
level endon( "fire_link_cooldown" );
|
||||||
@ -151,3 +145,4 @@ fire_link_cooldown( t_button )
|
|||||||
}
|
}
|
||||||
flag_clear( "fire_link_enabled" );
|
flag_clear( "fire_link_enabled" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/animscripts/zm_shared;
|
#include maps/mp/animscripts/zm_shared;
|
||||||
#include maps/mp/zombies/_zm_powerups;
|
#include maps/mp/zombies/_zm_powerups;
|
||||||
#include maps/mp/zombies/_zm_spawner;
|
#include maps/mp/zombies/_zm_spawner;
|
||||||
@ -14,12 +15,12 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_4", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_4", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_4";
|
level._cur_stage_name = "step_4";
|
||||||
level.ee_mech_zombies_killed = 0;
|
level.ee_mech_zombies_killed = 0;
|
||||||
@ -28,14 +29,16 @@ init_stage()
|
|||||||
level.quadrotor_custom_behavior = ::mech_zombie_hole_search;
|
level.quadrotor_custom_behavior = ::mech_zombie_hole_search;
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
flag_wait( "ee_quadrotor_disabled" );
|
flag_wait( "ee_quadrotor_disabled" );
|
||||||
level thread sndee4music();
|
level thread sndee4music();
|
||||||
while ( !flag( "ee_mech_zombie_fight_completed" ) )
|
if ( !flag( "ee_mech_zombie_fight_completed" ) )
|
||||||
{
|
{
|
||||||
while ( level.ee_mech_zombies_spawned < 8 )
|
while ( level.ee_mech_zombies_spawned < 8 )
|
||||||
{
|
{
|
||||||
@ -46,7 +49,7 @@ stage_logic()
|
|||||||
level.ee_mech_zombies_alive++;
|
level.ee_mech_zombies_alive++;
|
||||||
level.ee_mech_zombies_spawned++;
|
level.ee_mech_zombies_spawned++;
|
||||||
}
|
}
|
||||||
wait randomfloatrange( 0,5, 1 );
|
wait randomfloatrange( 0.5, 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
flag_wait( "ee_mech_zombie_fight_completed" );
|
flag_wait( "ee_mech_zombie_fight_completed" );
|
||||||
@ -54,12 +57,12 @@ stage_logic()
|
|||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.quadrotor_custom_behavior = undefined;
|
level.quadrotor_custom_behavior = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
mech_zombie_hole_search()
|
mech_zombie_hole_search() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
s_goal = getstruct( "ee_mech_hole_goal_0", "targetname" );
|
s_goal = getstruct( "ee_mech_hole_goal_0", "targetname" );
|
||||||
if ( distance2dsquared( self.origin, s_goal.origin ) < 250000 )
|
if ( distance2dsquared( self.origin, s_goal.origin ) < 250000 )
|
||||||
@ -82,7 +85,7 @@ mech_zombie_hole_search()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ee_mechz_spawn( n_spawn_pos )
|
ee_mechz_spawn( n_spawn_pos ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self maps/mp/zombies/_zm_ai_mechz_ffotd::spawn_start();
|
self maps/mp/zombies/_zm_ai_mechz_ffotd::spawn_start();
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
@ -91,7 +94,7 @@ ee_mechz_spawn( n_spawn_pos )
|
|||||||
self mechz_set_starting_health();
|
self mechz_set_starting_health();
|
||||||
self mechz_setup_fx();
|
self mechz_setup_fx();
|
||||||
self mechz_setup_snd();
|
self mechz_setup_snd();
|
||||||
self.closest_player_override = ::maps/mp/zombies/_zm_ai_mechz::get_favorite_enemy;
|
self.closest_player_override = maps/mp/zombies/_zm_ai_mechz::get_favorite_enemy;
|
||||||
self.animname = "mechz_zombie";
|
self.animname = "mechz_zombie";
|
||||||
self.has_legs = 1;
|
self.has_legs = 1;
|
||||||
self.no_gib = 1;
|
self.no_gib = 1;
|
||||||
@ -139,7 +142,7 @@ ee_mechz_spawn( n_spawn_pos )
|
|||||||
self maps/mp/zombies/_zm_ai_mechz_ffotd::spawn_end();
|
self maps/mp/zombies/_zm_ai_mechz_ffotd::spawn_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
mechz_death_ee()
|
mechz_death_ee() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self waittill( "death" );
|
self waittill( "death" );
|
||||||
level.ee_mech_zombies_killed++;
|
level.ee_mech_zombies_killed++;
|
||||||
@ -158,10 +161,11 @@ mechz_death_ee()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ee_mechz_do_jump( s_spawn_pos )
|
ee_mechz_do_jump( s_spawn_pos ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "kill_jump" );
|
self endon( "kill_jump" );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
if ( getDvarInt( #"E7121222" ) > 0 )
|
if ( getDvarInt( #"E7121222" ) > 0 )
|
||||||
{
|
{
|
||||||
@ -174,6 +178,7 @@ ee_mechz_do_jump( s_spawn_pos )
|
|||||||
println( "\nMZ: Jump setting not interruptable\n" );
|
println( "\nMZ: Jump setting not interruptable\n" );
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
self.not_interruptable = 1;
|
self.not_interruptable = 1;
|
||||||
self setfreecameralockonallowed( 0 );
|
self setfreecameralockonallowed( 0 );
|
||||||
self animscripted( self.origin, self.angles, "zm_fly_out" );
|
self animscripted( self.origin, self.angles, "zm_fly_out" );
|
||||||
@ -205,17 +210,19 @@ ee_mechz_do_jump( s_spawn_pos )
|
|||||||
self maps/mp/animscripts/zm_shared::donotetracks( "jump_anim" );
|
self maps/mp/animscripts/zm_shared::donotetracks( "jump_anim" );
|
||||||
self.not_interruptable = 0;
|
self.not_interruptable = 0;
|
||||||
self setfreecameralockonallowed( 1 );
|
self setfreecameralockonallowed( 1 );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
if ( getDvarInt( #"E7121222" ) > 1 )
|
if ( getDvarInt( #"E7121222" ) > 1 )
|
||||||
{
|
{
|
||||||
println( "\nMZ: Jump clearing not interruptable\n" );
|
println( "\nMZ: Jump clearing not interruptable\n" );
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
mechz_jump_cleanup();
|
mechz_jump_cleanup();
|
||||||
self.closest_jump_point = s_landing_point;
|
self.closest_jump_point = s_landing_point;
|
||||||
}
|
}
|
||||||
|
|
||||||
sndee4music()
|
sndee4music() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
shouldplay = sndwait();
|
shouldplay = sndwait();
|
||||||
if ( !shouldplay )
|
if ( !shouldplay )
|
||||||
@ -229,11 +236,11 @@ sndee4music()
|
|||||||
flag_wait( "ee_mech_zombie_fight_completed" );
|
flag_wait( "ee_mech_zombie_fight_completed" );
|
||||||
level setclientfield( "mus_zmb_egg_snapshot_loop", 0 );
|
level setclientfield( "mus_zmb_egg_snapshot_loop", 0 );
|
||||||
level.music_override = 0;
|
level.music_override = 0;
|
||||||
wait 0,05;
|
wait 0.05;
|
||||||
ent delete();
|
ent delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
sndwait()
|
sndwait() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
counter = 0;
|
counter = 0;
|
||||||
while ( is_true( level.music_override ) )
|
while ( is_true( level.music_override ) )
|
||||||
@ -247,3 +254,4 @@ sndwait()
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zombies/_zm_unitrigger;
|
#include maps/mp/zombies/_zm_unitrigger;
|
||||||
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
#include maps/mp/zombies/_zm_powerup_zombie_blood;
|
||||||
#include maps/mp/zm_tomb_utility;
|
#include maps/mp/zm_tomb_utility;
|
||||||
@ -7,12 +8,12 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_5", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_5", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_5";
|
level._cur_stage_name = "step_5";
|
||||||
level.callbackvehicledamage = ::ee_plane_vehicledamage;
|
level.callbackvehicledamage = ::ee_plane_vehicledamage;
|
||||||
@ -20,26 +21,28 @@ init_stage()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level thread spawn_zombie_blood_plane();
|
level thread spawn_zombie_blood_plane();
|
||||||
flag_wait( "ee_maxis_drone_retrieved" );
|
flag_wait( "ee_maxis_drone_retrieved" );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.zombie_ai_limit++;
|
level.zombie_ai_limit++;
|
||||||
}
|
}
|
||||||
|
|
||||||
spawn_zombie_blood_plane()
|
spawn_zombie_blood_plane() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
s_biplane_pos = getstruct( "air_crystal_biplane_pos", "targetname" );
|
s_biplane_pos = getstruct( "air_crystal_biplane_pos", "targetname" );
|
||||||
vh_biplane = spawnvehicle( "veh_t6_dlc_zm_biplane", "zombie_blood_biplane", "biplane_zm", ( 0, 0, 1 ), ( 0, 0, 1 ) );
|
vh_biplane = spawnvehicle( "veh_t6_dlc_zm_biplane", "zombie_blood_biplane", "biplane_zm", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
||||||
vh_biplane ent_flag_init( "biplane_down", 0 );
|
vh_biplane ent_flag_init( "biplane_down", 0 );
|
||||||
vh_biplane maps/mp/zombies/_zm_powerup_zombie_blood::make_zombie_blood_entity();
|
vh_biplane maps/mp/zombies/_zm_powerup_zombie_blood::make_zombie_blood_entity();
|
||||||
vh_biplane playloopsound( "zmb_zombieblood_3rd_plane_loop", 1 );
|
vh_biplane playloopsound( "zmb_zombieblood_3rd_plane_loop", 1 );
|
||||||
@ -80,19 +83,19 @@ spawn_zombie_blood_plane()
|
|||||||
level thread spawn_quadrotor_pickup( ai_pilot.origin, ai_pilot.angles );
|
level thread spawn_quadrotor_pickup( ai_pilot.origin, ai_pilot.angles );
|
||||||
}
|
}
|
||||||
|
|
||||||
zombie_pilot_sound( ai_pilot )
|
zombie_pilot_sound( ai_pilot ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
sndent = spawn( "script_origin", ai_pilot.origin );
|
sndent = spawn( "script_origin", ai_pilot.origin );
|
||||||
sndent playloopsound( "zmb_zombieblood_3rd_loop_other" );
|
sndent playloopsound( "zmb_zombieblood_3rd_loop_other" );
|
||||||
while ( isDefined( ai_pilot ) && isalive( ai_pilot ) )
|
while ( isDefined( ai_pilot ) && isalive( ai_pilot ) )
|
||||||
{
|
{
|
||||||
sndent.origin = ai_pilot.origin;
|
sndent.origin = ai_pilot.origin;
|
||||||
wait 0,3;
|
wait 0.3;
|
||||||
}
|
}
|
||||||
sndent delete();
|
sndent delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
pilot_loop_logic( s_start )
|
pilot_loop_logic( s_start ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
s_goal = s_start;
|
s_goal = s_start;
|
||||||
@ -104,7 +107,7 @@ pilot_loop_logic( s_start )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ee_plane_vehicledamage( e_inflictor, e_attacker, n_damage, n_dflags, str_means_of_death, str_weapon, v_point, v_dir, str_hit_loc, psoffsettime, b_damage_from_underneath, n_model_index, str_part_name )
|
ee_plane_vehicledamage( e_inflictor, e_attacker, n_damage, n_dflags, str_means_of_death, str_weapon, v_point, v_dir, str_hit_loc, psoffsettime, b_damage_from_underneath, n_model_index, str_part_name ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( self.vehicletype == "biplane_zm" && !self ent_flag( "biplane_down" ) )
|
if ( self.vehicletype == "biplane_zm" && !self ent_flag( "biplane_down" ) )
|
||||||
{
|
{
|
||||||
@ -117,7 +120,7 @@ ee_plane_vehicledamage( e_inflictor, e_attacker, n_damage, n_dflags, str_means_o
|
|||||||
return n_damage;
|
return n_damage;
|
||||||
}
|
}
|
||||||
|
|
||||||
spawn_quadrotor_pickup( v_origin, v_angles )
|
spawn_quadrotor_pickup( v_origin, v_angles ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
m_quadrotor = spawn( "script_model", v_origin + vectorScale( ( 0, 0, 1 ), 30 ) );
|
m_quadrotor = spawn( "script_model", v_origin + vectorScale( ( 0, 0, 1 ), 30 ) );
|
||||||
m_quadrotor.angles = v_angles;
|
m_quadrotor.angles = v_angles;
|
||||||
@ -136,7 +139,7 @@ spawn_quadrotor_pickup( v_origin, v_angles )
|
|||||||
unregister_unitrigger( unitrigger_stub );
|
unregister_unitrigger( unitrigger_stub );
|
||||||
}
|
}
|
||||||
|
|
||||||
quadrotor_pickup_think()
|
quadrotor_pickup_think() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "kill_trigger" );
|
self endon( "kill_trigger" );
|
||||||
m_quadrotor = getent( "quadrotor_pickup", "targetname" );
|
m_quadrotor = getent( "quadrotor_pickup", "targetname" );
|
||||||
@ -149,3 +152,4 @@ quadrotor_pickup_think()
|
|||||||
m_quadrotor delete();
|
m_quadrotor delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes cerberus output
|
||||||
#include maps/mp/zombies/_zm_weap_one_inch_punch;
|
#include maps/mp/zombies/_zm_weap_one_inch_punch;
|
||||||
#include maps/mp/zombies/_zm_spawner;
|
#include maps/mp/zombies/_zm_spawner;
|
||||||
#include maps/mp/gametypes_zm/_hud;
|
#include maps/mp/gametypes_zm/_hud;
|
||||||
@ -8,22 +9,24 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_6", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_6", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_6";
|
level._cur_stage_name = "step_6";
|
||||||
maps/mp/zombies/_zm_spawner::add_custom_zombie_spawn_logic( ::ruins_fist_glow_monitor );
|
maps/mp/zombies/_zm_spawner::add_custom_zombie_spawn_logic( ::ruins_fist_glow_monitor );
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level setclientfield( "sndChamberMusic", 1 );
|
level setclientfield( "sndChamberMusic", 1 );
|
||||||
flag_wait( "ee_all_players_upgraded_punch" );
|
flag_wait( "ee_all_players_upgraded_punch" );
|
||||||
level setclientfield( "sndChamberMusic", 0 );
|
level setclientfield( "sndChamberMusic", 0 );
|
||||||
@ -31,19 +34,19 @@ stage_logic()
|
|||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ruins_fist_glow_monitor()
|
ruins_fist_glow_monitor() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( flag( "ee_all_players_upgraded_punch" ) )
|
if ( flag( "ee_all_players_upgraded_punch" ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while ( isDefined( self.zone_name ) && self.zone_name == "ug_bottom_zone" )
|
if ( isDefined( self.zone_name ) && self.zone_name == "ug_bottom_zone" )
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0.1;
|
||||||
self setclientfield( "ee_zombie_fist_fx", 1 );
|
self setclientfield( "ee_zombie_fist_fx", 1 );
|
||||||
self.has_soul = 1;
|
self.has_soul = 1;
|
||||||
while ( isalive( self ) )
|
while ( isalive( self ) )
|
||||||
@ -69,7 +72,7 @@ ruins_fist_glow_monitor()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
spawn_punch_upgrade_tablet( v_origin, e_player )
|
spawn_punch_upgrade_tablet( v_origin, e_player ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
m_tablet = spawn( "script_model", v_origin + vectorScale( ( 0, 0, 1 ), 50 ) );
|
m_tablet = spawn( "script_model", v_origin + vectorScale( ( 0, 0, 1 ), 50 ) );
|
||||||
m_tablet setmodel( "p6_zm_tm_tablet" );
|
m_tablet setmodel( "p6_zm_tm_tablet" );
|
||||||
@ -80,31 +83,27 @@ spawn_punch_upgrade_tablet( v_origin, e_player )
|
|||||||
m_tablet linkto( m_fx );
|
m_tablet linkto( m_fx );
|
||||||
playfxontag( level._effect[ "special_glow" ], m_fx, "tag_origin" );
|
playfxontag( level._effect[ "special_glow" ], m_fx, "tag_origin" );
|
||||||
m_fx thread rotate_punch_upgrade_tablet();
|
m_fx thread rotate_punch_upgrade_tablet();
|
||||||
m_tablet playloopsound( "zmb_squest_punchtime_tablet_loop", 0,5 );
|
m_tablet playloopsound( "zmb_squest_punchtime_tablet_loop", 0.5 );
|
||||||
m_tablet setinvisibletoall();
|
m_tablet setinvisibletoall();
|
||||||
m_tablet setvisibletoplayer( e_player );
|
m_tablet setvisibletoplayer( e_player );
|
||||||
while ( isDefined( e_player ) && !e_player istouching( m_tablet ) )
|
while ( isDefined( e_player ) && !e_player istouching( m_tablet ) )
|
||||||
{
|
{
|
||||||
wait 0,05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
m_tablet delete();
|
m_tablet delete();
|
||||||
m_fx delete();
|
m_fx delete();
|
||||||
e_player playsound( "zmb_squest_punchtime_tablet_pickup" );
|
e_player playsound( "zmb_squest_punchtime_tablet_pickup" );
|
||||||
if ( isDefined( e_player ) )
|
if ( isDefined( e_player ) )
|
||||||
{
|
{
|
||||||
e_player thread fadetoblackforxsec( 0, 0,3, 0,5, 0,5, "white" );
|
e_player thread fadetoblackforxsec( 0, 0.3, 0.5, 0.5, "white" );
|
||||||
a_zombies = getaispeciesarray( level.zombie_team, "all" );
|
a_zombies = getaispeciesarray( level.zombie_team, "all" );
|
||||||
_a137 = a_zombies;
|
foreach ( zombie in a_zombies )
|
||||||
_k137 = getFirstArrayKey( _a137 );
|
|
||||||
while ( isDefined( _k137 ) )
|
|
||||||
{
|
{
|
||||||
zombie = _a137[ _k137 ];
|
|
||||||
if ( distance2dsquared( e_player.origin, zombie.origin ) < 65536 && !is_true( zombie.is_mechz ) && is_true( zombie.has_legs ) && is_true( zombie.completed_emerging_into_playable_area ) )
|
if ( distance2dsquared( e_player.origin, zombie.origin ) < 65536 && !is_true( zombie.is_mechz ) && is_true( zombie.has_legs ) && is_true( zombie.completed_emerging_into_playable_area ) )
|
||||||
{
|
{
|
||||||
zombie.v_punched_from = e_player.origin;
|
zombie.v_punched_from = e_player.origin;
|
||||||
zombie animcustom( ::maps/mp/zombies/_zm_weap_one_inch_punch::knockdown_zombie_animate );
|
zombie animcustom( maps/mp/zombies/_zm_weap_one_inch_punch::knockdown_zombie_animate );
|
||||||
}
|
}
|
||||||
_k137 = getNextArrayKey( _a137, _k137 );
|
|
||||||
}
|
}
|
||||||
wait 1;
|
wait 1;
|
||||||
e_player.b_punch_upgraded = 1;
|
e_player.b_punch_upgraded = 1;
|
||||||
@ -130,22 +129,18 @@ spawn_punch_upgrade_tablet( v_origin, e_player )
|
|||||||
}
|
}
|
||||||
e_player thread maps/mp/zombies/_zm_weap_one_inch_punch::one_inch_punch_melee_attack();
|
e_player thread maps/mp/zombies/_zm_weap_one_inch_punch::one_inch_punch_melee_attack();
|
||||||
a_players = getplayers();
|
a_players = getplayers();
|
||||||
_a178 = a_players;
|
foreach ( player in a_players )
|
||||||
_k178 = getFirstArrayKey( _a178 );
|
|
||||||
while ( isDefined( _k178 ) )
|
|
||||||
{
|
{
|
||||||
player = _a178[ _k178 ];
|
|
||||||
if ( !isDefined( player.b_punch_upgraded ) || !player.b_punch_upgraded )
|
if ( !isDefined( player.b_punch_upgraded ) || !player.b_punch_upgraded )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_k178 = getNextArrayKey( _a178, _k178 );
|
|
||||||
}
|
}
|
||||||
flag_set( "ee_all_players_upgraded_punch" );
|
flag_set( "ee_all_players_upgraded_punch" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rotate_punch_upgrade_tablet()
|
rotate_punch_upgrade_tablet() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -154,3 +149,4 @@ rotate_punch_upgrade_tablet()
|
|||||||
self waittill( "rotatedone" );
|
self waittill( "rotatedone" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zm_tomb_chamber;
|
#include maps/mp/zm_tomb_chamber;
|
||||||
#include maps/mp/zm_tomb_vo;
|
#include maps/mp/zm_tomb_vo;
|
||||||
#include maps/mp/zm_tomb_ee_main;
|
#include maps/mp/zm_tomb_ee_main;
|
||||||
@ -6,22 +7,24 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_7", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_7", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_7";
|
level._cur_stage_name = "step_7";
|
||||||
level.n_ee_portal_souls = 0;
|
level.n_ee_portal_souls = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level thread monitor_puzzle_portal();
|
level thread monitor_puzzle_portal();
|
||||||
level setclientfield( "sndChamberMusic", 2 );
|
level setclientfield( "sndChamberMusic", 2 );
|
||||||
flag_wait( "ee_souls_absorbed" );
|
flag_wait( "ee_souls_absorbed" );
|
||||||
@ -30,11 +33,11 @@ stage_logic()
|
|||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ee_zombie_killed_override( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime )
|
ee_zombie_killed_override( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( attacker ) && isplayer( attacker ) && maps/mp/zm_tomb_chamber::is_point_in_chamber( self.origin ) )
|
if ( isDefined( attacker ) && isplayer( attacker ) && maps/mp/zm_tomb_chamber::is_point_in_chamber( self.origin ) )
|
||||||
{
|
{
|
||||||
@ -43,28 +46,26 @@ ee_zombie_killed_override( einflictor, attacker, idamage, smeansofdeath, sweapon
|
|||||||
{
|
{
|
||||||
level thread ee_samantha_say( "vox_sam_generic_encourage_3" );
|
level thread ee_samantha_say( "vox_sam_generic_encourage_3" );
|
||||||
}
|
}
|
||||||
else if ( level.n_ee_portal_souls == floor( 33,33333 ) )
|
else if ( level.n_ee_portal_souls == floor( 33.33333 ) )
|
||||||
{
|
{
|
||||||
level thread ee_samantha_say( "vox_sam_generic_encourage_4" );
|
level thread ee_samantha_say( "vox_sam_generic_encourage_4" );
|
||||||
}
|
}
|
||||||
else if ( level.n_ee_portal_souls == floor( 66,66666 ) )
|
else if ( level.n_ee_portal_souls == floor( 66.66666 ) )
|
||||||
{
|
{
|
||||||
level thread ee_samantha_say( "vox_sam_generic_encourage_5" );
|
level thread ee_samantha_say( "vox_sam_generic_encourage_5" );
|
||||||
}
|
}
|
||||||
else
|
else if ( level.n_ee_portal_souls == 100 )
|
||||||
{
|
|
||||||
if ( level.n_ee_portal_souls == 100 )
|
|
||||||
{
|
{
|
||||||
level thread ee_samantha_say( "vox_sam_generic_encourage_0" );
|
level thread ee_samantha_say( "vox_sam_generic_encourage_0" );
|
||||||
flag_set( "ee_souls_absorbed" );
|
flag_set( "ee_souls_absorbed" );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
self setclientfield( "ee_zombie_soul_portal", 1 );
|
self setclientfield( "ee_zombie_soul_portal", 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
monitor_puzzle_portal()
|
monitor_puzzle_portal() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
if ( is_true( level.ee_debug ) )
|
if ( is_true( level.ee_debug ) )
|
||||||
{
|
{
|
||||||
@ -73,6 +74,7 @@ monitor_puzzle_portal()
|
|||||||
return;
|
return;
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
while ( !flag( "ee_souls_absorbed" ) )
|
while ( !flag( "ee_souls_absorbed" ) )
|
||||||
{
|
{
|
||||||
if ( all_staffs_inserted_in_puzzle_room() && !flag( "ee_sam_portal_active" ) )
|
if ( all_staffs_inserted_in_puzzle_room() && !flag( "ee_sam_portal_active" ) )
|
||||||
@ -80,14 +82,11 @@ monitor_puzzle_portal()
|
|||||||
flag_set( "ee_sam_portal_active" );
|
flag_set( "ee_sam_portal_active" );
|
||||||
level setclientfield( "ee_sam_portal", 1 );
|
level setclientfield( "ee_sam_portal", 1 );
|
||||||
}
|
}
|
||||||
else
|
else if ( !all_staffs_inserted_in_puzzle_room() && flag( "ee_sam_portal_active" ) )
|
||||||
{
|
|
||||||
if ( !all_staffs_inserted_in_puzzle_room() && flag( "ee_sam_portal_active" ) )
|
|
||||||
{
|
{
|
||||||
flag_clear( "ee_sam_portal_active" );
|
flag_clear( "ee_sam_portal_active" );
|
||||||
level setclientfield( "ee_sam_portal", 0 );
|
level setclientfield( "ee_sam_portal", 0 );
|
||||||
}
|
}
|
||||||
}
|
wait 0.5;
|
||||||
wait 0,5;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zm_tomb_chamber;
|
#include maps/mp/zm_tomb_chamber;
|
||||||
#include maps/mp/gametypes_zm/_hud;
|
#include maps/mp/gametypes_zm/_hud;
|
||||||
#include maps/mp/gametypes_zm/_hud_util;
|
#include maps/mp/gametypes_zm/_hud_util;
|
||||||
@ -9,46 +10,40 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
declare_sidequest_stage( "little_girl_lost", "step_8", ::init_stage, ::stage_logic, ::exit_stage );
|
declare_sidequest_stage( "little_girl_lost", "step_8", ::init_stage, ::stage_logic, ::exit_stage );
|
||||||
}
|
}
|
||||||
|
|
||||||
init_stage()
|
init_stage() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level._cur_stage_name = "step_8";
|
level._cur_stage_name = "step_8";
|
||||||
level.quadrotor_custom_behavior = ::move_into_portal;
|
level.quadrotor_custom_behavior = ::move_into_portal;
|
||||||
}
|
}
|
||||||
|
|
||||||
stage_logic()
|
stage_logic() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
iprintln( level._cur_stage_name + " of little girl lost started" );
|
iprintln( level._cur_stage_name + " of little girl lost started" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
level notify( "tomb_sidequest_complete" );
|
level notify( "tomb_sidequest_complete" );
|
||||||
_a34 = get_players();
|
foreach ( player in get_players() )
|
||||||
_k34 = getFirstArrayKey( _a34 );
|
|
||||||
while ( isDefined( _k34 ) )
|
|
||||||
{
|
{
|
||||||
player = _a34[ _k34 ];
|
|
||||||
if ( player is_player_in_chamber() )
|
if ( player is_player_in_chamber() )
|
||||||
{
|
{
|
||||||
player thread fadetoblackforxsec( 0, 1, 0,5, 0,5, "white" );
|
player thread fadetoblackforxsec( 0, 1, 0.5, 0.5, "white" );
|
||||||
}
|
}
|
||||||
_k34 = getNextArrayKey( _a34, _k34 );
|
|
||||||
}
|
}
|
||||||
wait 0,5;
|
wait 0.5;
|
||||||
level setclientfield( "ee_sam_portal", 2 );
|
level setclientfield( "ee_sam_portal", 2 );
|
||||||
level notify( "stop_random_chamber_walls" );
|
level notify( "stop_random_chamber_walls" );
|
||||||
a_walls = getentarray( "chamber_wall", "script_noteworthy" );
|
a_walls = getentarray( "chamber_wall", "script_noteworthy" );
|
||||||
_a51 = a_walls;
|
foreach ( e_wall in a_walls )
|
||||||
_k51 = getFirstArrayKey( _a51 );
|
|
||||||
while ( isDefined( _k51 ) )
|
|
||||||
{
|
{
|
||||||
e_wall = _a51[ _k51 ];
|
|
||||||
e_wall thread maps/mp/zm_tomb_chamber::move_wall_up();
|
e_wall thread maps/mp/zm_tomb_chamber::move_wall_up();
|
||||||
e_wall hide();
|
e_wall hide();
|
||||||
_k51 = getNextArrayKey( _a51, _k51 );
|
|
||||||
}
|
}
|
||||||
flag_wait( "ee_quadrotor_disabled" );
|
flag_wait( "ee_quadrotor_disabled" );
|
||||||
wait 1;
|
wait 1;
|
||||||
@ -58,7 +53,7 @@ stage_logic()
|
|||||||
t_portal.require_look_at = 1;
|
t_portal.require_look_at = 1;
|
||||||
t_portal.hint_string = &"ZM_TOMB_TELE";
|
t_portal.hint_string = &"ZM_TOMB_TELE";
|
||||||
t_portal thread waittill_player_activates();
|
t_portal thread waittill_player_activates();
|
||||||
level.ee_ending_beam_fx = spawn( "script_model", s_pos.origin + vectorScale( ( 0, 1, 0 ), 300 ) );
|
level.ee_ending_beam_fx = spawn( "script_model", s_pos.origin + vectorScale( ( 0, 0, -1 ), 300 ) );
|
||||||
level.ee_ending_beam_fx.angles = vectorScale( ( 0, 1, 0 ), 90 );
|
level.ee_ending_beam_fx.angles = vectorScale( ( 0, 1, 0 ), 90 );
|
||||||
level.ee_ending_beam_fx setmodel( "tag_origin" );
|
level.ee_ending_beam_fx setmodel( "tag_origin" );
|
||||||
playfxontag( level._effect[ "ee_beam" ], level.ee_ending_beam_fx, "tag_origin" );
|
playfxontag( level._effect[ "ee_beam" ], level.ee_ending_beam_fx, "tag_origin" );
|
||||||
@ -70,11 +65,11 @@ stage_logic()
|
|||||||
stage_completed( "little_girl_lost", level._cur_stage_name );
|
stage_completed( "little_girl_lost", level._cur_stage_name );
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_stage( success )
|
exit_stage( success ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
waittill_player_activates()
|
waittill_player_activates() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
@ -83,7 +78,7 @@ waittill_player_activates()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
move_into_portal()
|
move_into_portal() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
s_goal = getstruct( "maxis_portal_path", "targetname" );
|
s_goal = getstruct( "maxis_portal_path", "targetname" );
|
||||||
if ( distance2dsquared( self.origin, s_goal.origin ) < 250000 )
|
if ( distance2dsquared( self.origin, s_goal.origin ) < 250000 )
|
||||||
@ -103,3 +98,4 @@ move_into_portal()
|
|||||||
level.maxis_quadrotor = undefined;
|
level.maxis_quadrotor = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zm_tomb_classic;
|
#include maps/mp/zm_tomb_classic;
|
||||||
#include maps/mp/zm_tomb;
|
#include maps/mp/zm_tomb;
|
||||||
#include maps/mp/gametypes_zm/_zm_gametype;
|
#include maps/mp/gametypes_zm/_zm_gametype;
|
||||||
@ -6,7 +7,7 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
add_map_gamemode( "zclassic", ::maps/mp/zm_tomb::zstandard_preinit, undefined, undefined );
|
add_map_gamemode( "zclassic", ::maps/mp/zm_tomb::zstandard_preinit, undefined, undefined );
|
||||||
add_map_location_gamemode( "zclassic", "tomb", ::maps/mp/zm_tomb_classic::precache, ::maps/mp/zm_tomb_classic::main );
|
add_map_location_gamemode( "zclassic", "tomb", ::maps/mp/zm_tomb_classic::precache, ::maps/mp/zm_tomb_classic::main );
|
||||||
|
@ -1,35 +1,36 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zombies/_zm_utility;
|
#include maps/mp/zombies/_zm_utility;
|
||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init_giant_robot_start()
|
init_giant_robot_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
init_giant_robot_end()
|
init_giant_robot_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
init_giant_robot_glows_start()
|
init_giant_robot_glows_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
init_giant_robot_glows_end()
|
init_giant_robot_glows_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
giant_robot_spawn_start()
|
giant_robot_spawn_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
giant_robot_spawn_end()
|
giant_robot_spawn_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
giant_robot_head_player_eject_start()
|
giant_robot_head_player_eject_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
giant_robot_head_player_eject_end()
|
giant_robot_head_player_eject_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
//checked includes match cerberus output
|
||||||
#include maps/mp/zombies/_zm_magicbox;
|
#include maps/mp/zombies/_zm_magicbox;
|
||||||
#include maps/mp/zombies/_zm_game_module;
|
#include maps/mp/zombies/_zm_game_module;
|
||||||
#include maps/mp/gametypes_zm/_zm_gametype;
|
#include maps/mp/gametypes_zm/_zm_gametype;
|
||||||
@ -5,11 +6,11 @@
|
|||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
|
|
||||||
precache()
|
precache() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
main()
|
main() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
maps/mp/gametypes_zm/_zm_gametype::setup_standard_objects( "tomb" );
|
maps/mp/gametypes_zm/_zm_gametype::setup_standard_objects( "tomb" );
|
||||||
maps/mp/zombies/_zm_game_module::set_current_game_module( level.game_module_standard_index );
|
maps/mp/zombies/_zm_game_module::set_current_game_module( level.game_module_standard_index );
|
||||||
@ -18,7 +19,7 @@ main()
|
|||||||
zm_treasure_chest_init();
|
zm_treasure_chest_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
zm_treasure_chest_init()
|
zm_treasure_chest_init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
chest1 = getstruct( "start_chest", "script_noteworthy" );
|
chest1 = getstruct( "start_chest", "script_noteworthy" );
|
||||||
level.chests = [];
|
level.chests = [];
|
||||||
|
@ -17,20 +17,10 @@ zm_tomb_patch/maps/mp/zm_tomb_amb.gsc
|
|||||||
|
|
||||||
### The following scripts have been checked, but they have not been tested yet
|
### The following scripts have been checked, but they have not been tested yet
|
||||||
```
|
```
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_craftables.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_main_quest.gsc
|
|
||||||
```
|
|
||||||
### The following scripts are not checked yet, uploaded to setup a baseline:
|
|
||||||
```
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_achivement.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ambient_scripts.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ambient_scripts.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_capture_zones.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_capture_zones_ffotd.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_capture_zones_ffotd.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_challenges.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_challenges.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_chamber.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_craftables.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_distance_tracking.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_lights.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_main.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_1.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_1.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_2.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_2.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_3.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_3.gsc
|
||||||
@ -39,18 +29,28 @@ zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_5.gsc
|
|||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_6.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_6.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_7.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_7.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_8.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ee_main_step_8.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_gamemodes.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_giant_robot_ffotd.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_main_quest.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_standard.gsc
|
||||||
|
```
|
||||||
|
### The following scripts are not checked yet, uploaded to setup a baseline:
|
||||||
|
```
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_achivement.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_capture_zones.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_chamber.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_distance_tracking.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_ee_lights.gsc
|
||||||
|
zm_tomb_patch/maps/mp/zm_tomb_ee_main.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ee_side.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ee_side.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_ffotd.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_ffotd.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_fx.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_fx.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_gamemodes.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_giant_robot.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_giant_robot.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_giant_robot_ffotd.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_quest_air.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_quest_air.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_quest_crypt.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_quest_crypt.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_quest_elec.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_quest_elec.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_quest_fire.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_quest_fire.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_quest_ice.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_quest_ice.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_standard.gsc
|
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_tank.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_tank.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_teleporter.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_teleporter.gsc
|
||||||
zm_tomb_patch/maps/mp/zm_tomb_utility.gsc
|
zm_tomb_patch/maps/mp/zm_tomb_utility.gsc
|
||||||
|
Loading…
x
Reference in New Issue
Block a user