mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-07 17:37:50 -05:00
checked 6 scripts against the cerberus output
These scripts had not been checked against the cerberus output before so they had many errors that needed to be fixed.
This commit is contained in:
parent
3b86338236
commit
698dc4ee5f
@ -6,7 +6,7 @@
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
find_flesh()
|
||||
find_flesh() //checked partially changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
level endon( "intermission" );
|
||||
@ -46,66 +46,62 @@ find_flesh()
|
||||
{
|
||||
self.ignore_player = [];
|
||||
}
|
||||
else
|
||||
if ( !isDefined( level._should_skip_ignore_player_logic ) || !( [[ level._should_skip_ignore_player_logic ]]() ) )
|
||||
{
|
||||
while ( !isDefined( level._should_skip_ignore_player_logic ) || !( [[ level._should_skip_ignore_player_logic ]]() ) )
|
||||
i = 0;
|
||||
while ( i < self.ignore_player.size )
|
||||
{
|
||||
i = 0;
|
||||
while ( i < self.ignore_player.size )
|
||||
if ( isDefined( self.ignore_player[ i ] ) && isDefined( self.ignore_player[ i ].ignore_counter ) && self.ignore_player[ i ].ignore_counter > 3 )
|
||||
{
|
||||
while ( isDefined( self.ignore_player[ i ] ) && isDefined( self.ignore_player[ i ].ignore_counter ) && self.ignore_player[ i ].ignore_counter > 3 )
|
||||
self.ignore_player[ i ].ignore_counter = 0;
|
||||
self.ignore_player = arrayremovevalue( self.ignore_player, self.ignore_player[ i ] );
|
||||
if ( !isDefined( self.ignore_player ) )
|
||||
{
|
||||
self.ignore_player[ i ].ignore_counter = 0;
|
||||
self.ignore_player = arrayremovevalue( self.ignore_player, self.ignore_player[ i ] );
|
||||
if ( !isDefined( self.ignore_player ) )
|
||||
{
|
||||
self.ignore_player = [];
|
||||
}
|
||||
i = 0;
|
||||
self.ignore_player = [];
|
||||
}
|
||||
i++;
|
||||
i = 0;
|
||||
continue;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
player = get_closest_valid_player( self.origin, self.ignore_player );
|
||||
while ( !isDefined( player ) && !isDefined( zombie_poi ) )
|
||||
if ( !isDefined( player ) && !isDefined( zombie_poi ) )
|
||||
{
|
||||
self maps/mp/zombies/_zm_spawner::zombie_history( "find flesh -> can't find player, continue" );
|
||||
if ( isDefined( self.ignore_player ) )
|
||||
{
|
||||
while ( isDefined( level._should_skip_ignore_player_logic ) && [[ level._should_skip_ignore_player_logic ]]() )
|
||||
if ( isDefined( level._should_skip_ignore_player_logic ) && [[ level._should_skip_ignore_player_logic ]]() )
|
||||
{
|
||||
wait 1;
|
||||
continue;
|
||||
}
|
||||
self.ignore_player = [];
|
||||
}
|
||||
wait 1;
|
||||
continue;
|
||||
}
|
||||
if ( !isDefined( level.check_for_alternate_poi ) || !( [[ level.check_for_alternate_poi ]]() ) )
|
||||
if ( !isDefined( level.check_for_alternate_poi ) || ![[ level.check_for_alternate_poi ]]() )
|
||||
{
|
||||
self.enemyoverride = zombie_poi;
|
||||
self.favoriteenemy = player;
|
||||
}
|
||||
self thread zombie_pathing();
|
||||
while ( players.size > 1 )
|
||||
if ( players.size > 1 )
|
||||
{
|
||||
i = 0;
|
||||
while ( i < self.ignore_player.size )
|
||||
for ( i = 0; i < self.ignore_player.size; i++ )
|
||||
{
|
||||
if ( isDefined( self.ignore_player[ i ] ) )
|
||||
{
|
||||
if ( !isDefined( self.ignore_player[ i ].ignore_counter ) )
|
||||
{
|
||||
self.ignore_player[ i ].ignore_counter = 0;
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
self.ignore_player[ i ].ignore_counter += 1;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
self thread attractors_generated_listener();
|
||||
@ -128,12 +124,12 @@ find_flesh()
|
||||
}
|
||||
}
|
||||
|
||||
init_inert_zombies()
|
||||
init_inert_zombies() //checked matches cerberus output
|
||||
{
|
||||
level init_inert_substates();
|
||||
}
|
||||
|
||||
init_inert_substates()
|
||||
init_inert_substates() //checked matches cerberus output
|
||||
{
|
||||
level.inert_substates = [];
|
||||
level.inert_substates[ level.inert_substates.size ] = "inert1";
|
||||
@ -176,7 +172,7 @@ init_inert_substates()
|
||||
level.inert_crawl_substate_index = 0;
|
||||
}
|
||||
|
||||
get_inert_substate()
|
||||
get_inert_substate() //checked matches cerberus output
|
||||
{
|
||||
substate = level.inert_substates[ level.inert_substate_index ];
|
||||
level.inert_substate_index++;
|
||||
@ -188,7 +184,7 @@ get_inert_substate()
|
||||
return substate;
|
||||
}
|
||||
|
||||
get_inert_crawl_substate()
|
||||
get_inert_crawl_substate() //checked matches cerberus output
|
||||
{
|
||||
substate = level.inert_crawl_substates[ level.inert_crawl_substate_index ];
|
||||
level.inert_crawl_substate_index++;
|
||||
@ -200,7 +196,7 @@ get_inert_crawl_substate()
|
||||
return substate;
|
||||
}
|
||||
|
||||
start_inert( in_place )
|
||||
start_inert( in_place ) //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
if ( isDefined( self.is_inert ) && self.is_inert )
|
||||
@ -247,11 +243,11 @@ start_inert( in_place )
|
||||
self notify( "zombie_acquire_enemy" );
|
||||
}
|
||||
}
|
||||
while ( isDefined( self.is_traversing ) && self.is_traversing )
|
||||
if ( isDefined( self.is_traversing ) && self.is_traversing )
|
||||
{
|
||||
while ( self isinscriptedstate() )
|
||||
{
|
||||
wait 0,1;
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
if ( isDefined( self.doing_equipment_attack ) && self.doing_equipment_attack )
|
||||
@ -266,7 +262,7 @@ start_inert( in_place )
|
||||
self inert_think( in_place );
|
||||
}
|
||||
|
||||
inert_think( in_place )
|
||||
inert_think( in_place ) //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self.ignoreall = 1;
|
||||
@ -297,7 +293,7 @@ inert_think( in_place )
|
||||
}
|
||||
self setanimstatefromasd( "zm_inert", substate );
|
||||
self maps/mp/zombies/_zm_spawner::zombie_history( "zm_inert ASD " + getTime() );
|
||||
if ( substate != "inert3" && substate != "inert4" || substate == "inert5" && substate == "inert6" )
|
||||
if ( substate == "inert3" && substate == "inert4" || substate == "inert5" && substate == "inert6" )
|
||||
{
|
||||
self thread inert_watch_goal();
|
||||
}
|
||||
@ -326,15 +322,12 @@ inert_think( in_place )
|
||||
{
|
||||
self [[ self.inert_wakeup_override ]]();
|
||||
}
|
||||
else
|
||||
else if ( isDefined( self.completed_emerging_into_playable_area ) && self.completed_emerging_into_playable_area )
|
||||
{
|
||||
if ( isDefined( self.completed_emerging_into_playable_area ) && self.completed_emerging_into_playable_area )
|
||||
self.ignoreall = 0;
|
||||
if ( isDefined( level.ignore_find_flesh ) && !self [[ level.ignore_find_flesh ]]() )
|
||||
{
|
||||
self.ignoreall = 0;
|
||||
if ( isDefined( level.ignore_find_flesh ) && !( self [[ level.ignore_find_flesh ]]() ) )
|
||||
{
|
||||
self thread maps/mp/zombies/_zm_ai_basic::find_flesh();
|
||||
}
|
||||
self thread maps/mp/zombies/_zm_ai_basic::find_flesh();
|
||||
}
|
||||
}
|
||||
self.becoming_inert = undefined;
|
||||
@ -344,7 +337,7 @@ inert_think( in_place )
|
||||
self maps/mp/zombies/_zm_spawner::zombie_history( "is_inert cleared " + getTime() );
|
||||
}
|
||||
|
||||
inert_watch_goal()
|
||||
inert_watch_goal() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "stop_zombie_inert" );
|
||||
@ -352,18 +345,17 @@ inert_watch_goal()
|
||||
{
|
||||
self waittill( "goal" );
|
||||
locs = array_randomize( level.enemy_dog_locations );
|
||||
_a481 = locs;
|
||||
_k481 = getFirstArrayKey( _a481 );
|
||||
while ( isDefined( _k481 ) )
|
||||
i = 0;
|
||||
while ( i < locs.size )
|
||||
{
|
||||
loc = _a481[ _k481 ];
|
||||
dist_sq = distancesquared( self.origin, loc.origin );
|
||||
dist_sq = distancesquared( self.origin, locs[ i ].origin );
|
||||
if ( dist_sq > 90000 )
|
||||
{
|
||||
self setgoalpos( loc.origin );
|
||||
break;
|
||||
self setgoalpos( locs[ i ].origin );
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
_k481 = getNextArrayKey( _a481, _k481 );
|
||||
i++;
|
||||
}
|
||||
if ( locs.size > 0 )
|
||||
{
|
||||
@ -372,7 +364,7 @@ inert_watch_goal()
|
||||
}
|
||||
}
|
||||
|
||||
inert_wakeup()
|
||||
inert_wakeup() //checked changed at own discretion parity in behavior to cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "stop_zombie_inert" );
|
||||
@ -383,11 +375,8 @@ inert_wakeup()
|
||||
{
|
||||
current_time = getTime();
|
||||
players = get_players();
|
||||
_a522 = players;
|
||||
_k522 = getFirstArrayKey( _a522 );
|
||||
while ( isDefined( _k522 ) )
|
||||
foreach ( player in players )
|
||||
{
|
||||
player = _a522[ _k522 ];
|
||||
dist_sq = distancesquared( self.origin, player.origin );
|
||||
if ( dist_sq < 4096 )
|
||||
{
|
||||
@ -410,64 +399,60 @@ inert_wakeup()
|
||||
return;
|
||||
}
|
||||
}
|
||||
_k522 = getNextArrayKey( _a522, _k522 );
|
||||
}
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
inert_bump()
|
||||
inert_bump() //checked changed at own discretion parity in behavior to cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "stop_zombie_inert" );
|
||||
while ( 1 )
|
||||
{
|
||||
zombies = getaiarray( level.zombie_team );
|
||||
_a562 = zombies;
|
||||
_k562 = getFirstArrayKey( _a562 );
|
||||
while ( isDefined( _k562 ) )
|
||||
i = 0;
|
||||
while ( i < zombies.size )
|
||||
{
|
||||
zombie = _a562[ _k562 ];
|
||||
if ( zombie == self )
|
||||
if ( zombies[ i ] == self )
|
||||
{
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
else if ( isDefined( zombie.is_inert ) && zombie.is_inert )
|
||||
if ( isDefined( zombies[ i ].is_inert ) && zombies[ i ].is_inert )
|
||||
{
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
if ( isDefined( zombies[ i ].becoming_inert ) && zombies[ i ].becoming_inert )
|
||||
{
|
||||
if ( isDefined( zombie.becoming_inert ) && zombie.becoming_inert )
|
||||
{
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
dist_sq = distancesquared( self.origin, zombie.origin );
|
||||
if ( dist_sq < 1296 )
|
||||
{
|
||||
self stop_inert();
|
||||
return;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
_k562 = getNextArrayKey( _a562, _k562 );
|
||||
dist_sq = distancesquared( self.origin, zombies[ i ].origin );
|
||||
if ( dist_sq < 1296 )
|
||||
{
|
||||
self stop_inert();
|
||||
return;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
wait 0.2;
|
||||
}
|
||||
}
|
||||
|
||||
inert_damage()
|
||||
inert_damage() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "stop_zombie_inert" );
|
||||
while ( 1 )
|
||||
{
|
||||
self waittill( "damage", amount, inflictor, direction, point, type, tagname, modelname, partname, weaponname, idflags );
|
||||
while ( weaponname == "emp_grenade_zm" )
|
||||
if ( weaponname == "emp_grenade_zm" )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
while ( isDefined( inflictor ) )
|
||||
if ( isDefined( inflictor ) )
|
||||
{
|
||||
if ( isDefined( inflictor._trap_type ) && inflictor._trap_type == "fire" )
|
||||
{
|
||||
@ -478,7 +463,7 @@ inert_damage()
|
||||
self stop_inert();
|
||||
}
|
||||
|
||||
grenade_watcher( grenade )
|
||||
grenade_watcher( grenade ) //checked changed to match cerberus output
|
||||
{
|
||||
grenade waittill( "explode", grenade_origin );
|
||||
zombies = get_array_of_closest( grenade_origin, get_round_enemy_array(), undefined, undefined, 2400 );
|
||||
@ -486,22 +471,18 @@ grenade_watcher( grenade )
|
||||
{
|
||||
return;
|
||||
}
|
||||
_a633 = zombies;
|
||||
_k633 = getFirstArrayKey( _a633 );
|
||||
while ( isDefined( _k633 ) )
|
||||
foreach ( zombie in zombies )
|
||||
{
|
||||
zombie = _a633[ _k633 ];
|
||||
zombie stop_inert();
|
||||
_k633 = getNextArrayKey( _a633, _k633 );
|
||||
}
|
||||
}
|
||||
|
||||
stop_inert()
|
||||
stop_inert() //checked matches cerberus output
|
||||
{
|
||||
self notify( "stop_zombie_inert" );
|
||||
}
|
||||
|
||||
inert_transition()
|
||||
inert_transition() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "stop_zombie_inert_transition" );
|
||||
@ -526,20 +507,17 @@ inert_transition()
|
||||
}
|
||||
trans_num = 2;
|
||||
}
|
||||
else
|
||||
else if ( self.zombie_move_speed == "sprint" )
|
||||
{
|
||||
if ( self.zombie_move_speed == "sprint" )
|
||||
if ( self.has_legs )
|
||||
{
|
||||
if ( self.has_legs )
|
||||
{
|
||||
trans_set = level.inert_trans_sprint;
|
||||
}
|
||||
else
|
||||
{
|
||||
trans_set = level.inert_crawl_trans_sprint;
|
||||
}
|
||||
trans_num = 2;
|
||||
trans_set = level.inert_trans_sprint;
|
||||
}
|
||||
else
|
||||
{
|
||||
trans_set = level.inert_crawl_trans_sprint;
|
||||
}
|
||||
trans_num = 2;
|
||||
}
|
||||
self thread inert_eye_glow();
|
||||
self setanimstatefromasd( animstate, trans_set[ randomint( trans_num ) ] );
|
||||
@ -547,7 +525,7 @@ inert_transition()
|
||||
maps/mp/animscripts/zm_shared::donotetracks( "inert_trans_anim" );
|
||||
}
|
||||
|
||||
inert_eye_glow()
|
||||
inert_eye_glow() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
while ( 1 )
|
||||
@ -556,16 +534,13 @@ inert_eye_glow()
|
||||
if ( note == "end" )
|
||||
{
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
else if ( note == "zmb_awaken" )
|
||||
{
|
||||
if ( note == "zmb_awaken" )
|
||||
{
|
||||
self maps/mp/zombies/_zm_spawner::zombie_eye_glow();
|
||||
return;
|
||||
}
|
||||
self maps/mp/zombies/_zm_spawner::zombie_eye_glow();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
zombie_faller_delete()
|
||||
zombie_faller_delete() //checked matches cerberus output
|
||||
{
|
||||
level.zombie_total++;
|
||||
self maps/mp/zombies/_zm_spawner::reset_attack_spot();
|
||||
@ -17,15 +17,14 @@ zombie_faller_delete()
|
||||
self delete();
|
||||
}
|
||||
|
||||
faller_script_parameters()
|
||||
faller_script_parameters() //checked changed to match cerberus output
|
||||
{
|
||||
while ( isDefined( self.script_parameters ) )
|
||||
if ( isDefined( self.script_parameters ) )
|
||||
{
|
||||
parms = strtok( self.script_parameters, ";" );
|
||||
while ( isDefined( parms ) && parms.size > 0 )
|
||||
if ( isDefined( parms ) && parms.size > 0 )
|
||||
{
|
||||
i = 0;
|
||||
while ( i < parms.size )
|
||||
for ( i = 0; i < parms.size; i++ )
|
||||
{
|
||||
if ( parms[ i ] == "drop_now" )
|
||||
{
|
||||
@ -43,13 +42,12 @@ faller_script_parameters()
|
||||
{
|
||||
self.emerge_bottom = 1;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setup_deathfunc( func_name )
|
||||
setup_deathfunc( func_name ) //checked matches cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
while ( isDefined( self.zombie_init_done ) && !self.zombie_init_done )
|
||||
@ -70,13 +68,13 @@ setup_deathfunc( func_name )
|
||||
}
|
||||
}
|
||||
|
||||
do_zombie_fall( spot )
|
||||
do_zombie_fall( spot ) //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self.zombie_faller_location = spot;
|
||||
self.zombie_faller_location.is_enabled = 0;
|
||||
self.zombie_faller_location faller_script_parameters();
|
||||
if ( isDefined( self.zombie_faller_location.emerge_bottom ) || self.zombie_faller_location.emerge_bottom && isDefined( self.zombie_faller_location.emerge_top ) && self.zombie_faller_location.emerge_top )
|
||||
if ( isDefined( self.zombie_faller_location.emerge_bottom ) && self.zombie_faller_location.emerge_bottom || isDefined( self.zombie_faller_location.emerge_top ) && self.zombie_faller_location.emerge_top )
|
||||
{
|
||||
self do_zombie_emerge( spot );
|
||||
return;
|
||||
@ -89,18 +87,18 @@ do_zombie_fall( spot )
|
||||
self linkto( self.anchor );
|
||||
if ( !isDefined( spot.angles ) )
|
||||
{
|
||||
spot.angles = ( 0, 0, -1 );
|
||||
spot.angles = ( 0, 0, 0 );
|
||||
}
|
||||
anim_org = spot.origin;
|
||||
anim_ang = spot.angles;
|
||||
self ghost();
|
||||
self.anchor moveto( anim_org, 0,05 );
|
||||
self.anchor moveto( anim_org, 0.05 );
|
||||
self.anchor waittill( "movedone" );
|
||||
target_org = get_desired_origin();
|
||||
if ( isDefined( target_org ) )
|
||||
{
|
||||
anim_ang = vectorToAngles( target_org - self.origin );
|
||||
self.anchor rotateto( ( 0, anim_ang[ 1 ], 0 ), 0,05 );
|
||||
self.anchor rotateto( ( 0, anim_ang[ 1 ], 0 ), 0.05 );
|
||||
self.anchor waittill( "rotatedone" );
|
||||
}
|
||||
self unlink();
|
||||
@ -114,10 +112,10 @@ do_zombie_fall( spot )
|
||||
self thread zombie_faller_death_wait();
|
||||
self thread zombie_faller_do_fall();
|
||||
self.no_powerups = 0;
|
||||
self notify( "risen" );
|
||||
self notify( "risen", spot.script_string );
|
||||
}
|
||||
|
||||
zombie_faller_do_fall()
|
||||
zombie_faller_do_fall() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self animscripted( self.origin, self.zombie_faller_location.angles, "zm_faller_emerge" );
|
||||
@ -136,7 +134,6 @@ zombie_faller_do_fall()
|
||||
{
|
||||
self.zombie_faller_should_drop = 1;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else if ( self zombie_faller_always_drop() )
|
||||
{
|
||||
@ -153,21 +150,24 @@ zombie_faller_do_fall()
|
||||
self.zombie_faller_should_drop = 1;
|
||||
break;
|
||||
}
|
||||
else self animscripted( self.origin, self.zombie_faller_location.angles, "zm_faller_attack" );
|
||||
self maps/mp/animscripts/zm_shared::donotetracks( "attack_anim", ::handle_fall_notetracks, self.zombie_faller_location );
|
||||
else
|
||||
{
|
||||
self animscripted( self.origin, self.zombie_faller_location.angles, "zm_faller_attack" );
|
||||
self maps/mp/animscripts/zm_shared::donotetracks( "attack_anim", ::handle_fall_notetracks, self.zombie_faller_location );
|
||||
}
|
||||
}
|
||||
self notify( "falling" );
|
||||
spot = self.zombie_faller_location;
|
||||
self zombie_faller_enable_location();
|
||||
self animscripted( self.origin, spot.angles, "zm_faller_fall" );
|
||||
self maps/mp/animscripts/zm_shared::donotetracks( "fall_anim", ::handle_fall_notetracks, spot );
|
||||
self.deathfunction = ::zombie_death_animscript;
|
||||
self.deathfunction = maps/mp/zombies/_zm_spawner::zombie_death_animscript;
|
||||
self notify( "fall_anim_finished" );
|
||||
spot notify( "stop_zombie_fall_fx" );
|
||||
self stopanimscripted();
|
||||
landanimdelta = 15;
|
||||
ground_pos = groundpos_ignore_water_new( self.origin );
|
||||
physdist = ( self.origin[ 2 ] - ground_pos[ 2 ] ) + landanimdelta;
|
||||
physdist = self.origin[ 2 ] - ground_pos[ 2 ] + landanimdelta;
|
||||
if ( physdist > 0 )
|
||||
{
|
||||
self animcustom( ::zombie_fall_loop );
|
||||
@ -180,33 +180,30 @@ zombie_faller_do_fall()
|
||||
self.no_powerups = 0;
|
||||
}
|
||||
|
||||
zombie_fall_loop()
|
||||
zombie_fall_loop() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self setanimstatefromasd( "zm_faller_fall_loop" );
|
||||
while ( 1 )
|
||||
{
|
||||
ground_pos = groundpos_ignore_water_new( self.origin );
|
||||
if ( ( self.origin[ 2 ] - ground_pos[ 2 ] ) < 20 )
|
||||
if ( self.origin[ 2 ] - ground_pos[ 2 ] < 20 )
|
||||
{
|
||||
self notify( "faller_on_ground" );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
wait 0.05;
|
||||
break;
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
zombie_land()
|
||||
zombie_land() //checked matches cerberus output
|
||||
{
|
||||
self setanimstatefromasd( "zm_faller_land" );
|
||||
maps/mp/animscripts/zm_shared::donotetracks( "land_anim" );
|
||||
self notify( "zombie_land_done" );
|
||||
}
|
||||
|
||||
zombie_faller_always_drop()
|
||||
zombie_faller_always_drop() //checked matches cerberus output
|
||||
{
|
||||
if ( isDefined( self.zombie_faller_location.drop_now ) && self.zombie_faller_location.drop_now )
|
||||
{
|
||||
@ -215,7 +212,7 @@ zombie_faller_always_drop()
|
||||
return 0;
|
||||
}
|
||||
|
||||
zombie_faller_drop_not_occupied()
|
||||
zombie_faller_drop_not_occupied() //checked matches cerberus output
|
||||
{
|
||||
if ( isDefined( self.zombie_faller_location.drop_not_occupied ) && self.zombie_faller_location.drop_not_occupied )
|
||||
{
|
||||
@ -227,18 +224,16 @@ zombie_faller_drop_not_occupied()
|
||||
return 0;
|
||||
}
|
||||
|
||||
zombie_faller_watch_all_players()
|
||||
zombie_faller_watch_all_players() //checked changed to match cerberus output
|
||||
{
|
||||
players = get_players();
|
||||
i = 0;
|
||||
while ( i < players.size )
|
||||
for ( i = 0; i < players.size; i++ )
|
||||
{
|
||||
self thread zombie_faller_watch_player( players[ i ] );
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
zombie_faller_watch_player( player )
|
||||
zombie_faller_watch_player( player ) //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "falling" );
|
||||
self endon( "death" );
|
||||
@ -250,7 +245,7 @@ zombie_faller_watch_player( player )
|
||||
inrangetime = 0;
|
||||
closerange = 60;
|
||||
closerangesqr = closerange * closerange;
|
||||
dirtoplayerenter = ( 0, 0, -1 );
|
||||
dirtoplayerenter = ( 0, 0, 0 );
|
||||
incloserange = 0;
|
||||
while ( 1 )
|
||||
{
|
||||
@ -262,7 +257,7 @@ zombie_faller_watch_player( player )
|
||||
if ( ( inrangetime + timer ) < getTime() )
|
||||
{
|
||||
self.zombie_faller_should_drop = 1;
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -285,35 +280,29 @@ zombie_faller_watch_player( player )
|
||||
}
|
||||
incloserange = 1;
|
||||
}
|
||||
else
|
||||
else if ( incloserange )
|
||||
{
|
||||
if ( incloserange )
|
||||
dirtoplayerexit = player.origin - self.origin;
|
||||
dirtoplayerexit = ( dirtoplayerexit[ 0 ], dirtoplayerexit[ 1 ], 0 );
|
||||
dirtoplayerexit = vectornormalize( dirtoplayerexit );
|
||||
if ( vectordot( dirtoplayerenter, dirtoplayerexit ) < 0 )
|
||||
{
|
||||
dirtoplayerexit = player.origin - self.origin;
|
||||
dirtoplayerexit = ( dirtoplayerexit[ 0 ], dirtoplayerexit[ 1 ], 0 );
|
||||
dirtoplayerexit = vectornormalize( dirtoplayerexit );
|
||||
if ( vectordot( dirtoplayerenter, dirtoplayerexit ) < 0 )
|
||||
{
|
||||
self.zombie_faller_should_drop = 1;
|
||||
return;
|
||||
}
|
||||
self.zombie_faller_should_drop = 1;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
incloserange = 0;
|
||||
}
|
||||
wait 0.1;
|
||||
}
|
||||
incloserange = 0;
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
zombie_fall_wait()
|
||||
zombie_fall_wait() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "falling" );
|
||||
self endon( "death" );
|
||||
while ( isDefined( self.zone_name ) )
|
||||
if ( isDefined( self.zone_name ) )
|
||||
{
|
||||
while ( isDefined( level.zones ) && isDefined( level.zones[ self.zone_name ] ) )
|
||||
if ( isDefined( level.zones ) && isDefined( level.zones[ self.zone_name ] ) )
|
||||
{
|
||||
zone = level.zones[ self.zone_name ];
|
||||
while ( 1 )
|
||||
@ -325,10 +314,13 @@ zombie_fall_wait()
|
||||
if ( self.health != level.zombie_health )
|
||||
{
|
||||
self.zombie_faller_should_drop = 1;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
self zombie_faller_delete();
|
||||
return;
|
||||
}
|
||||
else self zombie_faller_delete();
|
||||
return;
|
||||
}
|
||||
}
|
||||
wait 0.5;
|
||||
@ -343,7 +335,7 @@ zombie_fall_should_attack( spot )
|
||||
return victims.size > 0;
|
||||
}
|
||||
|
||||
zombie_fall_get_vicitims( spot )
|
||||
zombie_fall_get_vicitims( spot ) //checked partially changed to match cerberus output //continues in for loops bad
|
||||
{
|
||||
ret = [];
|
||||
players = getplayers();
|
||||
@ -358,40 +350,34 @@ zombie_fall_get_vicitims( spot )
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
else stance = player getstance();
|
||||
stance = player getstance();
|
||||
if ( stance == "crouch" || stance == "prone" )
|
||||
{
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
zcheck = self.origin[ 2 ] - player.origin[ 2 ];
|
||||
if ( zcheck < 0 || zcheck > 120 )
|
||||
{
|
||||
zcheck = self.origin[ 2 ] - player.origin[ 2 ];
|
||||
if ( zcheck < 0 || zcheck > 120 )
|
||||
{
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
dist2 = distance2dsquared( player.origin, self.origin );
|
||||
if ( dist2 < checkdist2 )
|
||||
{
|
||||
ret[ ret.size ] = player;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
dist2 = distance2dsquared( player.origin, self.origin );
|
||||
if ( dist2 < checkdist2 )
|
||||
{
|
||||
ret[ ret.size ] = player;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
get_fall_anim( spot )
|
||||
get_fall_anim( spot ) //checked matches cerberus output
|
||||
{
|
||||
return level._zombie_fall_anims[ self.animname ][ "fall" ];
|
||||
}
|
||||
|
||||
zombie_faller_enable_location()
|
||||
zombie_faller_enable_location() //checked matches cerberus output
|
||||
{
|
||||
if ( isDefined( self.zombie_faller_location ) )
|
||||
{
|
||||
@ -400,7 +386,7 @@ zombie_faller_enable_location()
|
||||
}
|
||||
}
|
||||
|
||||
zombie_faller_death_wait( endon_notify )
|
||||
zombie_faller_death_wait( endon_notify ) //checked matches cerberus output
|
||||
{
|
||||
self endon( "falling" );
|
||||
if ( isDefined( endon_notify ) )
|
||||
@ -411,14 +397,14 @@ zombie_faller_death_wait( endon_notify )
|
||||
self zombie_faller_enable_location();
|
||||
}
|
||||
|
||||
zombie_fall_death_func()
|
||||
zombie_fall_death_func() //checked matches cerberus output
|
||||
{
|
||||
self animmode( "noclip" );
|
||||
self.deathanim = "zm_faller_emerge_death";
|
||||
return self maps/mp/zombies/_zm_spawner::zombie_death_animscript();
|
||||
}
|
||||
|
||||
zombie_fall_death( spot )
|
||||
zombie_fall_death( spot ) //checked matches cerberus output
|
||||
{
|
||||
self endon( "fall_anim_finished" );
|
||||
while ( self.health > 1 )
|
||||
@ -429,7 +415,7 @@ zombie_fall_death( spot )
|
||||
spot notify( "stop_zombie_fall_fx" );
|
||||
}
|
||||
|
||||
_damage_mod_to_damage_type( type )
|
||||
_damage_mod_to_damage_type( type ) //checked changed to match cerberus output
|
||||
{
|
||||
toks = strtok( type, "_" );
|
||||
if ( toks.size < 2 )
|
||||
@ -437,17 +423,15 @@ _damage_mod_to_damage_type( type )
|
||||
return type;
|
||||
}
|
||||
returnstr = toks[ 1 ];
|
||||
i = 2;
|
||||
while ( i < toks.size )
|
||||
for ( i = 2; i < toks.size; i++ )
|
||||
{
|
||||
returnstr += toks[ i ];
|
||||
i++;
|
||||
}
|
||||
returnstr = tolower( returnstr );
|
||||
return returnstr;
|
||||
}
|
||||
|
||||
zombie_fall_fx( spot )
|
||||
zombie_fall_fx( spot ) //checked matches cerberus output
|
||||
{
|
||||
spot thread zombie_fall_dust_fx( self );
|
||||
spot thread zombie_fall_burst_fx();
|
||||
@ -461,7 +445,7 @@ zombie_fall_fx( spot )
|
||||
}
|
||||
}
|
||||
|
||||
zombie_fall_burst_fx()
|
||||
zombie_fall_burst_fx() //checked matches cerberus output
|
||||
{
|
||||
self endon( "stop_zombie_fall_fx" );
|
||||
self endon( "fall_anim_finished" );
|
||||
@ -470,7 +454,7 @@ zombie_fall_burst_fx()
|
||||
playfx( level._effect[ "rise_billow" ], self.origin + ( randomintrange( -10, 10 ), randomintrange( -10, 10 ), randomintrange( 5, 10 ) ) );
|
||||
}
|
||||
|
||||
zombie_fall_dust_fx( zombie )
|
||||
zombie_fall_dust_fx( zombie ) //checked does not match cerberus output did not change
|
||||
{
|
||||
dust_tag = "J_SpineUpper";
|
||||
self endon( "stop_zombie_fall_dust_fx" );
|
||||
@ -486,42 +470,37 @@ zombie_fall_dust_fx( zombie )
|
||||
}
|
||||
}
|
||||
|
||||
stop_zombie_fall_dust_fx( zombie )
|
||||
stop_zombie_fall_dust_fx( zombie ) //checked matches cerberus output
|
||||
{
|
||||
zombie waittill( "death" );
|
||||
self notify( "stop_zombie_fall_dust_fx" );
|
||||
}
|
||||
|
||||
handle_fall_notetracks( note, spot )
|
||||
handle_fall_notetracks( note, spot ) //checked changed to match cerberus output
|
||||
{
|
||||
if ( note == "deathout" )
|
||||
{
|
||||
self.deathfunction = ::faller_death_ragdoll;
|
||||
}
|
||||
else
|
||||
if ( note == "fire" )
|
||||
{
|
||||
while ( note == "fire" )
|
||||
victims = zombie_fall_get_vicitims( spot );
|
||||
for ( i = 0; i < victims.size; i++)
|
||||
{
|
||||
victims = zombie_fall_get_vicitims( spot );
|
||||
i = 0;
|
||||
while ( i < victims.size )
|
||||
{
|
||||
victims[ i ] dodamage( self.meleedamage, self.origin, self, self, "none", "MOD_MELEE" );
|
||||
self.zombie_faller_should_drop = 1;
|
||||
i++;
|
||||
}
|
||||
victims[ i ] dodamage( self.meleedamage, self.origin, self, self, "none", "MOD_MELEE" );
|
||||
self.zombie_faller_should_drop = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
faller_death_ragdoll()
|
||||
faller_death_ragdoll() //checked matches cerberus output
|
||||
{
|
||||
self startragdoll();
|
||||
self launchragdoll( ( 0, 0, -1 ) );
|
||||
return self maps/mp/zombies/_zm_spawner::zombie_death_animscript();
|
||||
}
|
||||
|
||||
in_player_fov( player )
|
||||
in_player_fov( player ) //checked does not match cerberus output did not change
|
||||
{
|
||||
playerangles = player getplayerangles();
|
||||
playerforwardvec = anglesToForward( playerangles );
|
||||
@ -538,11 +517,11 @@ in_player_fov( player )
|
||||
{
|
||||
banzaivsplayerfovbuffer = 0.2;
|
||||
}
|
||||
inplayerfov = anglefromcenter <= ( ( playerfov * 0.5 ) * ( 1 - banzaivsplayerfovbuffer ) );
|
||||
inplayerfov = anglefromcenter <= ( playerfov * 0.5 ) * ( 1 - banzaivsplayerfovbuffer );
|
||||
return inplayerfov;
|
||||
}
|
||||
|
||||
potentially_visible( how_close )
|
||||
potentially_visible( how_close ) //checked changed to match cerberus output
|
||||
{
|
||||
if ( !isDefined( how_close ) )
|
||||
{
|
||||
@ -550,8 +529,7 @@ potentially_visible( how_close )
|
||||
}
|
||||
potentiallyvisible = 0;
|
||||
players = getplayers();
|
||||
i = 0;
|
||||
while ( i < players.size )
|
||||
for ( i = 0; i < players.size; i++ )
|
||||
{
|
||||
dist = distancesquared( self.origin, players[ i ].origin );
|
||||
if ( dist < how_close )
|
||||
@ -563,15 +541,11 @@ potentially_visible( how_close )
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
i++;
|
||||
}
|
||||
}
|
||||
return potentiallyvisible;
|
||||
}
|
||||
|
||||
do_zombie_emerge( spot )
|
||||
do_zombie_emerge( spot ) //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self thread setup_deathfunc( ::faller_death_ragdoll );
|
||||
@ -588,11 +562,11 @@ do_zombie_emerge( spot )
|
||||
self zombie_faller_emerge( spot );
|
||||
self.create_eyes = 1;
|
||||
wait 0.1;
|
||||
self notify( "risen" );
|
||||
self notify( "risen", spot.script_string );
|
||||
self zombie_faller_enable_location();
|
||||
}
|
||||
|
||||
zombie_faller_emerge( spot )
|
||||
zombie_faller_emerge( spot ) //checked matches cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
if ( isDefined( self.zombie_faller_location.emerge_bottom ) && self.zombie_faller_location.emerge_bottom )
|
||||
@ -604,12 +578,12 @@ zombie_faller_emerge( spot )
|
||||
self animscripted( self.zombie_faller_location.origin, self.zombie_faller_location.angles, "zombie_riser_elevator_from_ceiling" );
|
||||
}
|
||||
self maps/mp/animscripts/zm_shared::donotetracks( "rise_anim" );
|
||||
self.deathfunction = ::zombie_death_animscript;
|
||||
self.deathfunction = maps/mp/zombies/_zm_spawner::zombie_death_animscript;
|
||||
self.in_the_ceiling = 0;
|
||||
self.no_powerups = 0;
|
||||
}
|
||||
|
||||
zombie_emerge_fx( spot )
|
||||
zombie_emerge_fx( spot ) //checked matches cerberus output
|
||||
{
|
||||
spot thread zombie_emerge_dust_fx( self );
|
||||
playsoundatposition( "zmb_zombie_spawn", spot.origin );
|
||||
@ -618,7 +592,7 @@ zombie_emerge_fx( spot )
|
||||
wait 1;
|
||||
}
|
||||
|
||||
zombie_emerge_dust_fx( zombie )
|
||||
zombie_emerge_dust_fx( zombie ) //checked does not match cerberus output did not change
|
||||
{
|
||||
dust_tag = "J_SpineUpper";
|
||||
self endon( "stop_zombie_fall_dust_fx" );
|
||||
@ -634,9 +608,10 @@ zombie_emerge_dust_fx( zombie )
|
||||
}
|
||||
}
|
||||
|
||||
stop_zombie_emerge_dust_fx( zombie )
|
||||
stop_zombie_emerge_dust_fx( zombie ) //checked matches cerberus output
|
||||
{
|
||||
zombie waittill( "death" );
|
||||
self notify( "stop_zombie_fall_dust_fx" );
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,14 +2,14 @@
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
//#using_animtree( "zm_ally" );
|
||||
//#using_animtree( "zm_ally" ); //cannot use this in gsc
|
||||
|
||||
init()
|
||||
init() //checked matches cerberus output
|
||||
{
|
||||
init_mover_tree();
|
||||
}
|
||||
|
||||
spawn_player_clone( player, origin, forceweapon, forcemodel )
|
||||
spawn_player_clone( player, origin, forceweapon, forcemodel ) //checked matches cerberus output
|
||||
{
|
||||
if ( !isDefined( origin ) )
|
||||
{
|
||||
@ -66,17 +66,17 @@ spawn_player_clone( player, origin, forceweapon, forcemodel )
|
||||
return clone;
|
||||
}
|
||||
|
||||
clone_damage_func( einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, psoffsettime, boneindex )
|
||||
clone_damage_func( einflictor, eattacker, idamage, idflags, smeansofdeath, sweapon, vpoint, vdir, shitloc, psoffsettime, boneindex ) //checked changed to match cerberus output
|
||||
{
|
||||
idamage = 0;
|
||||
if ( sweapon != "knife_ballistic_upgraded_zm" && sweapon != "knife_ballistic_bowie_upgraded_zm" || sweapon == "knife_ballistic_no_melee_upgraded_zm" && sweapon == "knife_ballistic_sickle_upgraded_zm" )
|
||||
if ( sweapon == "knife_ballistic_upgraded_zm" && sweapon == "knife_ballistic_bowie_upgraded_zm" || sweapon == "knife_ballistic_no_melee_upgraded_zm" && sweapon == "knife_ballistic_sickle_upgraded_zm" )
|
||||
{
|
||||
self notify( "player_revived" );
|
||||
}
|
||||
return idamage;
|
||||
}
|
||||
|
||||
clone_give_weapon( weapon )
|
||||
clone_give_weapon( weapon ) //checked matches cerberus output
|
||||
{
|
||||
weaponmodel = getweaponmodel( weapon );
|
||||
if ( weaponmodel != "" && weaponmodel != "none" )
|
||||
@ -85,7 +85,7 @@ clone_give_weapon( weapon )
|
||||
}
|
||||
}
|
||||
|
||||
clone_animate( animtype )
|
||||
clone_animate( animtype ) //checked matches cerberus output
|
||||
{
|
||||
if ( self.isactor )
|
||||
{
|
||||
@ -97,7 +97,7 @@ clone_animate( animtype )
|
||||
}
|
||||
}
|
||||
|
||||
clone_actor_animate( animtype )
|
||||
clone_actor_animate( animtype ) //checked matches cerberus output
|
||||
{
|
||||
wait 0.1;
|
||||
switch( animtype )
|
||||
@ -112,12 +112,12 @@ clone_actor_animate( animtype )
|
||||
}
|
||||
}
|
||||
|
||||
init_mover_tree()
|
||||
init_mover_tree() //checked matches cerberus output
|
||||
{
|
||||
scriptmodelsuseanimtree( -1 );
|
||||
}
|
||||
|
||||
clone_mover_animate( animtype )
|
||||
clone_mover_animate( animtype ) //checked matches cerberus output
|
||||
{
|
||||
self useanimtree( -1 );
|
||||
switch( animtype )
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
main_start()
|
||||
main_start() //checked matches cerberus output
|
||||
{
|
||||
mapname = tolower( getDvar( "mapname" ) );
|
||||
gametype = getDvar( "ui_gametype" );
|
||||
@ -25,24 +25,21 @@ main_start()
|
||||
}
|
||||
}
|
||||
|
||||
main_end()
|
||||
main_end() //checked matches cerberus output
|
||||
{
|
||||
onfinalizeinitialization_callback( ::force_navcomputer_trigger_think );
|
||||
level.original_melee_miss_func = level.melee_miss_func;
|
||||
level.melee_miss_func = ::ffotd_melee_miss_func;
|
||||
}
|
||||
|
||||
force_navcomputer_trigger_think()
|
||||
force_navcomputer_trigger_think() //checked changed to match cerberus output
|
||||
{
|
||||
if ( !isDefined( level.zombie_include_buildables ) || !level.zombie_include_buildables.size )
|
||||
{
|
||||
return;
|
||||
}
|
||||
_a52 = level.zombie_include_buildables;
|
||||
_k52 = getFirstArrayKey( _a52 );
|
||||
while ( isDefined( _k52 ) )
|
||||
foreach ( buildable in level.zombie_include_buildables )
|
||||
{
|
||||
buildable = _a52[ _k52 ];
|
||||
if ( buildable.name == "sq_common" )
|
||||
{
|
||||
if ( isDefined( buildable.triggerthink ) )
|
||||
@ -55,22 +52,18 @@ force_navcomputer_trigger_think()
|
||||
return;
|
||||
}
|
||||
}
|
||||
_k52 = getNextArrayKey( _a52, _k52 );
|
||||
}
|
||||
}
|
||||
|
||||
transit_navcomputer_remove_card_on_success()
|
||||
transit_navcomputer_remove_card_on_success() //checked changed to match cerberus output
|
||||
{
|
||||
wait_for_buildable( "sq_common" );
|
||||
wait_network_frame();
|
||||
trig_pos = getstruct( "sq_common_key", "targetname" );
|
||||
trigs = getentarray( "trigger_radius_use", "classname" );
|
||||
nav_trig = undefined;
|
||||
_a81 = trigs;
|
||||
_k81 = getFirstArrayKey( _a81 );
|
||||
while ( isDefined( _k81 ) )
|
||||
foreach ( trig in trigs )
|
||||
{
|
||||
trig = _a81[ _k81 ];
|
||||
if ( trig.origin == trig_pos.origin )
|
||||
{
|
||||
nav_trig = trig;
|
||||
@ -88,33 +81,25 @@ transit_navcomputer_remove_card_on_success()
|
||||
}
|
||||
}
|
||||
players = get_players();
|
||||
_a101 = players;
|
||||
_k101 = getFirstArrayKey( _a101 );
|
||||
while ( isDefined( _k101 ) )
|
||||
foreach ( player in players )
|
||||
{
|
||||
player = _a101[ _k101 ];
|
||||
player maps/mp/zombies/_zm_stats::set_global_stat( level.navcard_needed, 0 );
|
||||
_k101 = getNextArrayKey( _a101, _k101 );
|
||||
}
|
||||
level thread sq_refresh_player_navcard_hud();
|
||||
}
|
||||
}
|
||||
|
||||
sq_refresh_player_navcard_hud()
|
||||
sq_refresh_player_navcard_hud() //checked changed to match cerberus output
|
||||
{
|
||||
if ( !isDefined( level.navcards ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
players = get_players();
|
||||
_a116 = players;
|
||||
_k116 = getFirstArrayKey( _a116 );
|
||||
while ( isDefined( _k116 ) )
|
||||
foreach ( player in players )
|
||||
{
|
||||
player = _a116[ _k116 ];
|
||||
navcard_bits = 0;
|
||||
i = 0;
|
||||
while ( i < level.navcards.size )
|
||||
for ( i = 0; i < level.navcards.size; i++ )
|
||||
{
|
||||
hasit = player maps/mp/zombies/_zm_stats::get_global_stat( level.navcards[ i ] );
|
||||
if ( isDefined( player.navcard_grabbed ) && player.navcard_grabbed == level.navcards[ i ] )
|
||||
@ -125,7 +110,6 @@ sq_refresh_player_navcard_hud()
|
||||
{
|
||||
navcard_bits = navcard_bits + 1;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
wait_network_frame();
|
||||
player setclientfield( "navcard_held", 0 );
|
||||
@ -134,17 +118,16 @@ sq_refresh_player_navcard_hud()
|
||||
wait_network_frame();
|
||||
player setclientfield( "navcard_held", navcard_bits );
|
||||
}
|
||||
_k116 = getNextArrayKey( _a116, _k116 );
|
||||
}
|
||||
}
|
||||
|
||||
player_in_exploit_area( player_trigger_origin, player_trigger_radius )
|
||||
{
|
||||
if ( distancesquared( player_trigger_origin, self.origin ) < ( player_trigger_radius * player_trigger_radius ) )
|
||||
if ( distancesquared( player_trigger_origin, self.origin ) < player_trigger_radius * player_trigger_radius )
|
||||
{
|
||||
/*
|
||||
/#
|
||||
iprintlnbold( "player exploit detectect" );
|
||||
iprintlnbold( "player exploit detected" );
|
||||
#/
|
||||
*/
|
||||
return 1;
|
||||
@ -152,7 +135,7 @@ player_in_exploit_area( player_trigger_origin, player_trigger_radius )
|
||||
return 0;
|
||||
}
|
||||
|
||||
path_exploit_fix( zombie_trigger_origin, zombie_trigger_radius, zombie_trigger_height, player_trigger_origin, player_trigger_radius, zombie_goto_point )
|
||||
path_exploit_fix( zombie_trigger_origin, zombie_trigger_radius, zombie_trigger_height, player_trigger_origin, player_trigger_radius, zombie_goto_point ) //checked matches cerberus output
|
||||
{
|
||||
spawnflags = 9;
|
||||
zombie_trigger = spawn( "trigger_radius", zombie_trigger_origin, spawnflags, zombie_trigger_radius, zombie_trigger_height );
|
||||
@ -172,7 +155,7 @@ path_exploit_fix( zombie_trigger_origin, zombie_trigger_radius, zombie_trigger_h
|
||||
}
|
||||
}
|
||||
|
||||
exploit_reroute( zombie_trigger, player_trigger_origin, player_trigger_radius, zombie_goto_point )
|
||||
exploit_reroute( zombie_trigger, player_trigger_origin, player_trigger_radius, zombie_goto_point ) //checked matches cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self.reroute = 1;
|
||||
@ -199,7 +182,7 @@ exploit_reroute( zombie_trigger, player_trigger_origin, player_trigger_radius, z
|
||||
self.reroute = 0;
|
||||
}
|
||||
|
||||
debug_exploit( player_origin, player_radius, enemy_origin, enemy_radius, zombie_goto_point )
|
||||
debug_exploit( player_origin, player_radius, enemy_origin, enemy_radius, zombie_goto_point ) //dev call commented out
|
||||
{
|
||||
/*
|
||||
/#
|
||||
@ -215,7 +198,7 @@ debug_exploit( player_origin, player_radius, enemy_origin, enemy_radius, zombie_
|
||||
*/
|
||||
}
|
||||
|
||||
ffotd_melee_miss_func()
|
||||
ffotd_melee_miss_func() //checked matches cerberus output
|
||||
{
|
||||
if ( isDefined( self.enemy ) )
|
||||
{
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
network_choke_init( id, max )
|
||||
network_choke_init( id, max ) //checked matches cerberus output
|
||||
{
|
||||
if ( !isDefined( level.zombie_network_choke_ids_max ) )
|
||||
{
|
||||
@ -14,7 +14,7 @@ network_choke_init( id, max )
|
||||
level thread network_choke_thread( id );
|
||||
}
|
||||
|
||||
network_choke_thread( id )
|
||||
network_choke_thread( id ) //checked matches cerberus output
|
||||
{
|
||||
while ( 1 )
|
||||
{
|
||||
@ -24,12 +24,12 @@ network_choke_thread( id )
|
||||
}
|
||||
}
|
||||
|
||||
network_choke_safe( id )
|
||||
network_choke_safe( id ) //checked matches cerberus output
|
||||
{
|
||||
return level.zombie_network_choke_ids_count[ id ] < level.zombie_network_choke_ids_max[ id ];
|
||||
}
|
||||
|
||||
network_choke_action( id, choke_action, arg1, arg2, arg3 )
|
||||
network_choke_action( id, choke_action, arg1, arg2, arg3 ) //checked matches cerberus output
|
||||
{
|
||||
/*
|
||||
/#
|
||||
@ -56,7 +56,7 @@ network_choke_action( id, choke_action, arg1, arg2, arg3 )
|
||||
return [[ choke_action ]]( arg1, arg2, arg3 );
|
||||
}
|
||||
|
||||
network_entity_valid( entity )
|
||||
network_entity_valid( entity ) //checked matches cerberus output
|
||||
{
|
||||
if ( !isDefined( entity ) )
|
||||
{
|
||||
@ -65,7 +65,7 @@ network_entity_valid( entity )
|
||||
return 1;
|
||||
}
|
||||
|
||||
network_safe_init( id, max )
|
||||
network_safe_init( id, max ) //checked matches cerberus output
|
||||
{
|
||||
if ( !isDefined( level.zombie_network_choke_ids_max ) || !isDefined( level.zombie_network_choke_ids_max[ id ] ) )
|
||||
{
|
||||
@ -78,18 +78,18 @@ network_safe_init( id, max )
|
||||
*/
|
||||
}
|
||||
|
||||
_network_safe_spawn( classname, origin )
|
||||
_network_safe_spawn( classname, origin ) //checked matches cerberus output
|
||||
{
|
||||
return spawn( classname, origin );
|
||||
}
|
||||
|
||||
network_safe_spawn( id, max, classname, origin )
|
||||
network_safe_spawn( id, max, classname, origin ) //checked matches cerberus output
|
||||
{
|
||||
network_safe_init( id, max );
|
||||
return network_choke_action( id, ::_network_safe_spawn, classname, origin );
|
||||
}
|
||||
|
||||
_network_safe_play_fx_on_tag( fx, entity, tag )
|
||||
_network_safe_play_fx_on_tag( fx, entity, tag ) //checked matches cerberus output
|
||||
{
|
||||
if ( network_entity_valid( entity ) )
|
||||
{
|
||||
@ -97,7 +97,7 @@ _network_safe_play_fx_on_tag( fx, entity, tag )
|
||||
}
|
||||
}
|
||||
|
||||
network_safe_play_fx_on_tag( id, max, fx, entity, tag )
|
||||
network_safe_play_fx_on_tag( id, max, fx, entity, tag ) //checked matches cerberus output
|
||||
{
|
||||
network_safe_init( id, max );
|
||||
network_choke_action( id, ::_network_safe_play_fx_on_tag, fx, entity, tag );
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
init()
|
||||
init() //checked matches cerberus output
|
||||
{
|
||||
precacheshader( "zombie_stopwatchneedle" );
|
||||
precacheshader( "zombie_stopwatch" );
|
||||
@ -13,7 +13,7 @@ init()
|
||||
}
|
||||
}
|
||||
|
||||
start_timer( time, stop_notify )
|
||||
start_timer( time, stop_notify ) //checked matches cerberus output
|
||||
{
|
||||
self notify( "stop_prev_timer" );
|
||||
self endon( "stop_prev_timer" );
|
||||
@ -56,7 +56,7 @@ start_timer( time, stop_notify )
|
||||
self.stopwatch_elem_glass.alpha = 0;
|
||||
}
|
||||
|
||||
wait_for_stop_notify( stop_notify )
|
||||
wait_for_stop_notify( stop_notify ) //checked matches cerberus output
|
||||
{
|
||||
self endon( "stop_prev_timer" );
|
||||
self endon( "countdown_finished" );
|
||||
@ -65,7 +65,7 @@ wait_for_stop_notify( stop_notify )
|
||||
self.stopwatch_elem_glass.alpha = 0;
|
||||
}
|
||||
|
||||
update_hud_position()
|
||||
update_hud_position() //checked matches cerberus output
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "stop_prev_timer" );
|
||||
|
@ -5,10 +5,14 @@ patch_zm/maps/mp/gametypes_zm/_globalentities.gsc
|
||||
patch_zm/maps/mp/gametypes_zm/_scoreboard.gsc
|
||||
patch_zm/maps/mp/gametypes_zm/_shellshock.gsc
|
||||
patch_zm/maps/mp/gametypes_zm/zclassic.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_ai_basic.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_ai_dogs.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_ai_faller.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_audio.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_audio_announcer.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_bot.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_clone.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_ffotd.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_magicbox.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_net.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_perk_electric_cherry.gsc
|
||||
@ -64,12 +68,8 @@ patch_zm/maps/mp/zombies/_zm_weap_cymbal_monkey.gsc
|
||||
|
||||
### The following scripts have not been checked using the proper debugging methods:
|
||||
```
|
||||
patch_zm/maps/mp/zombies/_zm_ai_basic.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_ai_faller.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_clone.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_equip_hacker.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_equip_gasmask.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_ffotd.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_hackables_boards.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_hackables_box.gsc
|
||||
patch_zm/maps/mp/zombies/_zm_hackables_doors.gsc
|
||||
|
Loading…
x
Reference in New Issue
Block a user