mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-08 01:47: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 maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
find_flesh()
|
find_flesh() //checked partially changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
level endon( "intermission" );
|
level endon( "intermission" );
|
||||||
@ -46,66 +46,62 @@ find_flesh()
|
|||||||
{
|
{
|
||||||
self.ignore_player = [];
|
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;
|
if ( isDefined( self.ignore_player[ i ] ) && isDefined( self.ignore_player[ i ].ignore_counter ) && self.ignore_player[ i ].ignore_counter > 3 )
|
||||||
while ( i < self.ignore_player.size )
|
|
||||||
{
|
{
|
||||||
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 = [];
|
||||||
self.ignore_player = arrayremovevalue( self.ignore_player, self.ignore_player[ i ] );
|
|
||||||
if ( !isDefined( self.ignore_player ) )
|
|
||||||
{
|
|
||||||
self.ignore_player = [];
|
|
||||||
}
|
|
||||||
i = 0;
|
|
||||||
}
|
}
|
||||||
i++;
|
i = 0;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
player = get_closest_valid_player( self.origin, self.ignore_player );
|
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" );
|
self maps/mp/zombies/_zm_spawner::zombie_history( "find flesh -> can't find player, continue" );
|
||||||
if ( isDefined( self.ignore_player ) )
|
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;
|
wait 1;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
self.ignore_player = [];
|
self.ignore_player = [];
|
||||||
}
|
}
|
||||||
wait 1;
|
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.enemyoverride = zombie_poi;
|
||||||
self.favoriteenemy = player;
|
self.favoriteenemy = player;
|
||||||
}
|
}
|
||||||
self thread zombie_pathing();
|
self thread zombie_pathing();
|
||||||
while ( players.size > 1 )
|
if ( players.size > 1 )
|
||||||
{
|
{
|
||||||
i = 0;
|
for ( i = 0; i < self.ignore_player.size; i++ )
|
||||||
while ( i < self.ignore_player.size )
|
|
||||||
{
|
{
|
||||||
if ( isDefined( self.ignore_player[ i ] ) )
|
if ( isDefined( self.ignore_player[ i ] ) )
|
||||||
{
|
{
|
||||||
if ( !isDefined( self.ignore_player[ i ].ignore_counter ) )
|
if ( !isDefined( self.ignore_player[ i ].ignore_counter ) )
|
||||||
{
|
{
|
||||||
self.ignore_player[ i ].ignore_counter = 0;
|
self.ignore_player[ i ].ignore_counter = 0;
|
||||||
i++;
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
self.ignore_player[ i ].ignore_counter += 1;
|
self.ignore_player[ i ].ignore_counter += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self thread attractors_generated_listener();
|
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();
|
level init_inert_substates();
|
||||||
}
|
}
|
||||||
|
|
||||||
init_inert_substates()
|
init_inert_substates() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.inert_substates = [];
|
level.inert_substates = [];
|
||||||
level.inert_substates[ level.inert_substates.size ] = "inert1";
|
level.inert_substates[ level.inert_substates.size ] = "inert1";
|
||||||
@ -176,7 +172,7 @@ init_inert_substates()
|
|||||||
level.inert_crawl_substate_index = 0;
|
level.inert_crawl_substate_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_inert_substate()
|
get_inert_substate() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
substate = level.inert_substates[ level.inert_substate_index ];
|
substate = level.inert_substates[ level.inert_substate_index ];
|
||||||
level.inert_substate_index++;
|
level.inert_substate_index++;
|
||||||
@ -188,7 +184,7 @@ get_inert_substate()
|
|||||||
return 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 ];
|
substate = level.inert_crawl_substates[ level.inert_crawl_substate_index ];
|
||||||
level.inert_crawl_substate_index++;
|
level.inert_crawl_substate_index++;
|
||||||
@ -200,7 +196,7 @@ get_inert_crawl_substate()
|
|||||||
return substate;
|
return substate;
|
||||||
}
|
}
|
||||||
|
|
||||||
start_inert( in_place )
|
start_inert( in_place ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
if ( isDefined( self.is_inert ) && self.is_inert )
|
if ( isDefined( self.is_inert ) && self.is_inert )
|
||||||
@ -247,11 +243,11 @@ start_inert( in_place )
|
|||||||
self notify( "zombie_acquire_enemy" );
|
self notify( "zombie_acquire_enemy" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while ( isDefined( self.is_traversing ) && self.is_traversing )
|
if ( isDefined( self.is_traversing ) && self.is_traversing )
|
||||||
{
|
{
|
||||||
while ( self isinscriptedstate() )
|
while ( self isinscriptedstate() )
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0.1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( isDefined( self.doing_equipment_attack ) && self.doing_equipment_attack )
|
if ( isDefined( self.doing_equipment_attack ) && self.doing_equipment_attack )
|
||||||
@ -266,7 +262,7 @@ start_inert( in_place )
|
|||||||
self inert_think( 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 endon( "death" );
|
||||||
self.ignoreall = 1;
|
self.ignoreall = 1;
|
||||||
@ -297,7 +293,7 @@ inert_think( in_place )
|
|||||||
}
|
}
|
||||||
self setanimstatefromasd( "zm_inert", substate );
|
self setanimstatefromasd( "zm_inert", substate );
|
||||||
self maps/mp/zombies/_zm_spawner::zombie_history( "zm_inert ASD " + getTime() );
|
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();
|
self thread inert_watch_goal();
|
||||||
}
|
}
|
||||||
@ -326,15 +322,12 @@ inert_think( in_place )
|
|||||||
{
|
{
|
||||||
self [[ self.inert_wakeup_override ]]();
|
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;
|
self thread maps/mp/zombies/_zm_ai_basic::find_flesh();
|
||||||
if ( isDefined( level.ignore_find_flesh ) && !( self [[ level.ignore_find_flesh ]]() ) )
|
|
||||||
{
|
|
||||||
self thread maps/mp/zombies/_zm_ai_basic::find_flesh();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.becoming_inert = undefined;
|
self.becoming_inert = undefined;
|
||||||
@ -344,7 +337,7 @@ inert_think( in_place )
|
|||||||
self maps/mp/zombies/_zm_spawner::zombie_history( "is_inert cleared " + getTime() );
|
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( "death" );
|
||||||
self endon( "stop_zombie_inert" );
|
self endon( "stop_zombie_inert" );
|
||||||
@ -352,18 +345,17 @@ inert_watch_goal()
|
|||||||
{
|
{
|
||||||
self waittill( "goal" );
|
self waittill( "goal" );
|
||||||
locs = array_randomize( level.enemy_dog_locations );
|
locs = array_randomize( level.enemy_dog_locations );
|
||||||
_a481 = locs;
|
i = 0;
|
||||||
_k481 = getFirstArrayKey( _a481 );
|
while ( i < locs.size )
|
||||||
while ( isDefined( _k481 ) )
|
|
||||||
{
|
{
|
||||||
loc = _a481[ _k481 ];
|
dist_sq = distancesquared( self.origin, locs[ i ].origin );
|
||||||
dist_sq = distancesquared( self.origin, loc.origin );
|
|
||||||
if ( dist_sq > 90000 )
|
if ( dist_sq > 90000 )
|
||||||
{
|
{
|
||||||
self setgoalpos( loc.origin );
|
self setgoalpos( locs[ i ].origin );
|
||||||
break;
|
i++;
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
_k481 = getNextArrayKey( _a481, _k481 );
|
i++;
|
||||||
}
|
}
|
||||||
if ( locs.size > 0 )
|
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( "death" );
|
||||||
self endon( "stop_zombie_inert" );
|
self endon( "stop_zombie_inert" );
|
||||||
@ -383,11 +375,8 @@ inert_wakeup()
|
|||||||
{
|
{
|
||||||
current_time = getTime();
|
current_time = getTime();
|
||||||
players = get_players();
|
players = get_players();
|
||||||
_a522 = players;
|
foreach ( player in players )
|
||||||
_k522 = getFirstArrayKey( _a522 );
|
|
||||||
while ( isDefined( _k522 ) )
|
|
||||||
{
|
{
|
||||||
player = _a522[ _k522 ];
|
|
||||||
dist_sq = distancesquared( self.origin, player.origin );
|
dist_sq = distancesquared( self.origin, player.origin );
|
||||||
if ( dist_sq < 4096 )
|
if ( dist_sq < 4096 )
|
||||||
{
|
{
|
||||||
@ -410,64 +399,60 @@ inert_wakeup()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_k522 = getNextArrayKey( _a522, _k522 );
|
|
||||||
}
|
}
|
||||||
wait 0.1;
|
wait 0.1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inert_bump()
|
inert_bump() //checked changed at own discretion parity in behavior to cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "stop_zombie_inert" );
|
self endon( "stop_zombie_inert" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
zombies = getaiarray( level.zombie_team );
|
zombies = getaiarray( level.zombie_team );
|
||||||
_a562 = zombies;
|
i = 0;
|
||||||
_k562 = getFirstArrayKey( _a562 );
|
while ( i < zombies.size )
|
||||||
while ( isDefined( _k562 ) )
|
|
||||||
{
|
{
|
||||||
zombie = _a562[ _k562 ];
|
if ( zombies[ i ] == self )
|
||||||
if ( zombie == 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 )
|
i++;
|
||||||
{
|
continue;
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dist_sq = distancesquared( self.origin, zombie.origin );
|
|
||||||
if ( dist_sq < 1296 )
|
|
||||||
{
|
|
||||||
self stop_inert();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_k562 = getNextArrayKey( _a562, _k562 );
|
dist_sq = distancesquared( self.origin, zombies[ i ].origin );
|
||||||
|
if ( dist_sq < 1296 )
|
||||||
|
{
|
||||||
|
self stop_inert();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
wait 0.2;
|
wait 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inert_damage()
|
inert_damage() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "stop_zombie_inert" );
|
self endon( "stop_zombie_inert" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
self waittill( "damage", amount, inflictor, direction, point, type, tagname, modelname, partname, weaponname, idflags );
|
self waittill( "damage", amount, inflictor, direction, point, type, tagname, modelname, partname, weaponname, idflags );
|
||||||
while ( weaponname == "emp_grenade_zm" )
|
if ( weaponname == "emp_grenade_zm" )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
while ( isDefined( inflictor ) )
|
if ( isDefined( inflictor ) )
|
||||||
{
|
{
|
||||||
if ( isDefined( inflictor._trap_type ) && inflictor._trap_type == "fire" )
|
if ( isDefined( inflictor._trap_type ) && inflictor._trap_type == "fire" )
|
||||||
{
|
{
|
||||||
@ -478,7 +463,7 @@ inert_damage()
|
|||||||
self stop_inert();
|
self stop_inert();
|
||||||
}
|
}
|
||||||
|
|
||||||
grenade_watcher( grenade )
|
grenade_watcher( grenade ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
grenade waittill( "explode", grenade_origin );
|
grenade waittill( "explode", grenade_origin );
|
||||||
zombies = get_array_of_closest( grenade_origin, get_round_enemy_array(), undefined, undefined, 2400 );
|
zombies = get_array_of_closest( grenade_origin, get_round_enemy_array(), undefined, undefined, 2400 );
|
||||||
@ -486,22 +471,18 @@ grenade_watcher( grenade )
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_a633 = zombies;
|
foreach ( zombie in zombies )
|
||||||
_k633 = getFirstArrayKey( _a633 );
|
|
||||||
while ( isDefined( _k633 ) )
|
|
||||||
{
|
{
|
||||||
zombie = _a633[ _k633 ];
|
|
||||||
zombie stop_inert();
|
zombie stop_inert();
|
||||||
_k633 = getNextArrayKey( _a633, _k633 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_inert()
|
stop_inert() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self notify( "stop_zombie_inert" );
|
self notify( "stop_zombie_inert" );
|
||||||
}
|
}
|
||||||
|
|
||||||
inert_transition()
|
inert_transition() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self endon( "stop_zombie_inert_transition" );
|
self endon( "stop_zombie_inert_transition" );
|
||||||
@ -526,20 +507,17 @@ inert_transition()
|
|||||||
}
|
}
|
||||||
trans_num = 2;
|
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;
|
||||||
{
|
|
||||||
trans_set = level.inert_trans_sprint;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
trans_set = level.inert_crawl_trans_sprint;
|
|
||||||
}
|
|
||||||
trans_num = 2;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trans_set = level.inert_crawl_trans_sprint;
|
||||||
|
}
|
||||||
|
trans_num = 2;
|
||||||
}
|
}
|
||||||
self thread inert_eye_glow();
|
self thread inert_eye_glow();
|
||||||
self setanimstatefromasd( animstate, trans_set[ randomint( trans_num ) ] );
|
self setanimstatefromasd( animstate, trans_set[ randomint( trans_num ) ] );
|
||||||
@ -547,7 +525,7 @@ inert_transition()
|
|||||||
maps/mp/animscripts/zm_shared::donotetracks( "inert_trans_anim" );
|
maps/mp/animscripts/zm_shared::donotetracks( "inert_trans_anim" );
|
||||||
}
|
}
|
||||||
|
|
||||||
inert_eye_glow()
|
inert_eye_glow() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -556,16 +534,13 @@ inert_eye_glow()
|
|||||||
if ( note == "end" )
|
if ( note == "end" )
|
||||||
{
|
{
|
||||||
return;
|
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 maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
zombie_faller_delete()
|
zombie_faller_delete() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.zombie_total++;
|
level.zombie_total++;
|
||||||
self maps/mp/zombies/_zm_spawner::reset_attack_spot();
|
self maps/mp/zombies/_zm_spawner::reset_attack_spot();
|
||||||
@ -17,15 +17,14 @@ zombie_faller_delete()
|
|||||||
self 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, ";" );
|
parms = strtok( self.script_parameters, ";" );
|
||||||
while ( isDefined( parms ) && parms.size > 0 )
|
if ( isDefined( parms ) && parms.size > 0 )
|
||||||
{
|
{
|
||||||
i = 0;
|
for ( i = 0; i < parms.size; i++ )
|
||||||
while ( i < parms.size )
|
|
||||||
{
|
{
|
||||||
if ( parms[ i ] == "drop_now" )
|
if ( parms[ i ] == "drop_now" )
|
||||||
{
|
{
|
||||||
@ -43,13 +42,12 @@ faller_script_parameters()
|
|||||||
{
|
{
|
||||||
self.emerge_bottom = 1;
|
self.emerge_bottom = 1;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_deathfunc( func_name )
|
setup_deathfunc( func_name ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
while ( isDefined( self.zombie_init_done ) && !self.zombie_init_done )
|
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 endon( "death" );
|
||||||
self.zombie_faller_location = spot;
|
self.zombie_faller_location = spot;
|
||||||
self.zombie_faller_location.is_enabled = 0;
|
self.zombie_faller_location.is_enabled = 0;
|
||||||
self.zombie_faller_location faller_script_parameters();
|
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 );
|
self do_zombie_emerge( spot );
|
||||||
return;
|
return;
|
||||||
@ -89,18 +87,18 @@ do_zombie_fall( spot )
|
|||||||
self linkto( self.anchor );
|
self linkto( self.anchor );
|
||||||
if ( !isDefined( spot.angles ) )
|
if ( !isDefined( spot.angles ) )
|
||||||
{
|
{
|
||||||
spot.angles = ( 0, 0, -1 );
|
spot.angles = ( 0, 0, 0 );
|
||||||
}
|
}
|
||||||
anim_org = spot.origin;
|
anim_org = spot.origin;
|
||||||
anim_ang = spot.angles;
|
anim_ang = spot.angles;
|
||||||
self ghost();
|
self ghost();
|
||||||
self.anchor moveto( anim_org, 0,05 );
|
self.anchor moveto( anim_org, 0.05 );
|
||||||
self.anchor waittill( "movedone" );
|
self.anchor waittill( "movedone" );
|
||||||
target_org = get_desired_origin();
|
target_org = get_desired_origin();
|
||||||
if ( isDefined( target_org ) )
|
if ( isDefined( target_org ) )
|
||||||
{
|
{
|
||||||
anim_ang = vectorToAngles( target_org - self.origin );
|
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.anchor waittill( "rotatedone" );
|
||||||
}
|
}
|
||||||
self unlink();
|
self unlink();
|
||||||
@ -114,10 +112,10 @@ do_zombie_fall( spot )
|
|||||||
self thread zombie_faller_death_wait();
|
self thread zombie_faller_death_wait();
|
||||||
self thread zombie_faller_do_fall();
|
self thread zombie_faller_do_fall();
|
||||||
self.no_powerups = 0;
|
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 endon( "death" );
|
||||||
self animscripted( self.origin, self.zombie_faller_location.angles, "zm_faller_emerge" );
|
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;
|
self.zombie_faller_should_drop = 1;
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
else if ( self zombie_faller_always_drop() )
|
else if ( self zombie_faller_always_drop() )
|
||||||
{
|
{
|
||||||
@ -153,21 +150,24 @@ zombie_faller_do_fall()
|
|||||||
self.zombie_faller_should_drop = 1;
|
self.zombie_faller_should_drop = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else self animscripted( self.origin, self.zombie_faller_location.angles, "zm_faller_attack" );
|
else
|
||||||
self maps/mp/animscripts/zm_shared::donotetracks( "attack_anim", ::handle_fall_notetracks, self.zombie_faller_location );
|
{
|
||||||
|
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" );
|
self notify( "falling" );
|
||||||
spot = self.zombie_faller_location;
|
spot = self.zombie_faller_location;
|
||||||
self zombie_faller_enable_location();
|
self zombie_faller_enable_location();
|
||||||
self animscripted( self.origin, spot.angles, "zm_faller_fall" );
|
self animscripted( self.origin, spot.angles, "zm_faller_fall" );
|
||||||
self maps/mp/animscripts/zm_shared::donotetracks( "fall_anim", ::handle_fall_notetracks, spot );
|
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" );
|
self notify( "fall_anim_finished" );
|
||||||
spot notify( "stop_zombie_fall_fx" );
|
spot notify( "stop_zombie_fall_fx" );
|
||||||
self stopanimscripted();
|
self stopanimscripted();
|
||||||
landanimdelta = 15;
|
landanimdelta = 15;
|
||||||
ground_pos = groundpos_ignore_water_new( self.origin );
|
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 )
|
if ( physdist > 0 )
|
||||||
{
|
{
|
||||||
self animcustom( ::zombie_fall_loop );
|
self animcustom( ::zombie_fall_loop );
|
||||||
@ -180,33 +180,30 @@ zombie_faller_do_fall()
|
|||||||
self.no_powerups = 0;
|
self.no_powerups = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
zombie_fall_loop()
|
zombie_fall_loop() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self setanimstatefromasd( "zm_faller_fall_loop" );
|
self setanimstatefromasd( "zm_faller_fall_loop" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
ground_pos = groundpos_ignore_water_new( self.origin );
|
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" );
|
self notify( "faller_on_ground" );
|
||||||
return;
|
break;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
wait 0.05;
|
|
||||||
}
|
}
|
||||||
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zombie_land()
|
zombie_land() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self setanimstatefromasd( "zm_faller_land" );
|
self setanimstatefromasd( "zm_faller_land" );
|
||||||
maps/mp/animscripts/zm_shared::donotetracks( "land_anim" );
|
maps/mp/animscripts/zm_shared::donotetracks( "land_anim" );
|
||||||
self notify( "zombie_land_done" );
|
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 )
|
if ( isDefined( self.zombie_faller_location.drop_now ) && self.zombie_faller_location.drop_now )
|
||||||
{
|
{
|
||||||
@ -215,7 +212,7 @@ zombie_faller_always_drop()
|
|||||||
return 0;
|
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 )
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
zombie_faller_watch_all_players()
|
zombie_faller_watch_all_players() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
players = get_players();
|
players = get_players();
|
||||||
i = 0;
|
for ( i = 0; i < players.size; i++ )
|
||||||
while ( i < players.size )
|
|
||||||
{
|
{
|
||||||
self thread zombie_faller_watch_player( players[ 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( "falling" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
@ -250,7 +245,7 @@ zombie_faller_watch_player( player )
|
|||||||
inrangetime = 0;
|
inrangetime = 0;
|
||||||
closerange = 60;
|
closerange = 60;
|
||||||
closerangesqr = closerange * closerange;
|
closerangesqr = closerange * closerange;
|
||||||
dirtoplayerenter = ( 0, 0, -1 );
|
dirtoplayerenter = ( 0, 0, 0 );
|
||||||
incloserange = 0;
|
incloserange = 0;
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
@ -262,7 +257,7 @@ zombie_faller_watch_player( player )
|
|||||||
if ( ( inrangetime + timer ) < getTime() )
|
if ( ( inrangetime + timer ) < getTime() )
|
||||||
{
|
{
|
||||||
self.zombie_faller_should_drop = 1;
|
self.zombie_faller_should_drop = 1;
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -285,35 +280,29 @@ zombie_faller_watch_player( player )
|
|||||||
}
|
}
|
||||||
incloserange = 1;
|
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;
|
self.zombie_faller_should_drop = 1;
|
||||||
dirtoplayerexit = ( dirtoplayerexit[ 0 ], dirtoplayerexit[ 1 ], 0 );
|
break;
|
||||||
dirtoplayerexit = vectornormalize( dirtoplayerexit );
|
|
||||||
if ( vectordot( dirtoplayerenter, dirtoplayerexit ) < 0 )
|
|
||||||
{
|
|
||||||
self.zombie_faller_should_drop = 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
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( "falling" );
|
||||||
self endon( "death" );
|
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 ];
|
zone = level.zones[ self.zone_name ];
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
@ -325,10 +314,13 @@ zombie_fall_wait()
|
|||||||
if ( self.health != level.zombie_health )
|
if ( self.health != level.zombie_health )
|
||||||
{
|
{
|
||||||
self.zombie_faller_should_drop = 1;
|
self.zombie_faller_should_drop = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self zombie_faller_delete();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else self zombie_faller_delete();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
wait 0.5;
|
wait 0.5;
|
||||||
@ -343,7 +335,7 @@ zombie_fall_should_attack( spot )
|
|||||||
return victims.size > 0;
|
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 = [];
|
ret = [];
|
||||||
players = getplayers();
|
players = getplayers();
|
||||||
@ -358,40 +350,34 @@ zombie_fall_get_vicitims( spot )
|
|||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else stance = player getstance();
|
stance = player getstance();
|
||||||
if ( stance == "crouch" || stance == "prone" )
|
if ( stance == "crouch" || stance == "prone" )
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
zcheck = self.origin[ 2 ] - player.origin[ 2 ];
|
||||||
|
if ( zcheck < 0 || zcheck > 120 )
|
||||||
{
|
{
|
||||||
zcheck = self.origin[ 2 ] - player.origin[ 2 ];
|
i++;
|
||||||
if ( zcheck < 0 || zcheck > 120 )
|
continue;
|
||||||
{
|
}
|
||||||
i++;
|
dist2 = distance2dsquared( player.origin, self.origin );
|
||||||
continue;
|
if ( dist2 < checkdist2 )
|
||||||
}
|
{
|
||||||
else
|
ret[ ret.size ] = player;
|
||||||
{
|
|
||||||
dist2 = distance2dsquared( player.origin, self.origin );
|
|
||||||
if ( dist2 < checkdist2 )
|
|
||||||
{
|
|
||||||
ret[ ret.size ] = player;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
get_fall_anim( spot )
|
get_fall_anim( spot ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
return level._zombie_fall_anims[ self.animname ][ "fall" ];
|
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 ) )
|
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" );
|
self endon( "falling" );
|
||||||
if ( isDefined( endon_notify ) )
|
if ( isDefined( endon_notify ) )
|
||||||
@ -411,14 +397,14 @@ zombie_faller_death_wait( endon_notify )
|
|||||||
self zombie_faller_enable_location();
|
self zombie_faller_enable_location();
|
||||||
}
|
}
|
||||||
|
|
||||||
zombie_fall_death_func()
|
zombie_fall_death_func() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self animmode( "noclip" );
|
self animmode( "noclip" );
|
||||||
self.deathanim = "zm_faller_emerge_death";
|
self.deathanim = "zm_faller_emerge_death";
|
||||||
return self maps/mp/zombies/_zm_spawner::zombie_death_animscript();
|
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" );
|
self endon( "fall_anim_finished" );
|
||||||
while ( self.health > 1 )
|
while ( self.health > 1 )
|
||||||
@ -429,7 +415,7 @@ zombie_fall_death( spot )
|
|||||||
spot notify( "stop_zombie_fall_fx" );
|
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, "_" );
|
toks = strtok( type, "_" );
|
||||||
if ( toks.size < 2 )
|
if ( toks.size < 2 )
|
||||||
@ -437,17 +423,15 @@ _damage_mod_to_damage_type( type )
|
|||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
returnstr = toks[ 1 ];
|
returnstr = toks[ 1 ];
|
||||||
i = 2;
|
for ( i = 2; i < toks.size; i++ )
|
||||||
while ( i < toks.size )
|
|
||||||
{
|
{
|
||||||
returnstr += toks[ i ];
|
returnstr += toks[ i ];
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
returnstr = tolower( returnstr );
|
returnstr = tolower( returnstr );
|
||||||
return 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_dust_fx( self );
|
||||||
spot thread zombie_fall_burst_fx();
|
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( "stop_zombie_fall_fx" );
|
||||||
self endon( "fall_anim_finished" );
|
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 ) ) );
|
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";
|
dust_tag = "J_SpineUpper";
|
||||||
self endon( "stop_zombie_fall_dust_fx" );
|
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" );
|
zombie waittill( "death" );
|
||||||
self notify( "stop_zombie_fall_dust_fx" );
|
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" )
|
if ( note == "deathout" )
|
||||||
{
|
{
|
||||||
self.deathfunction = ::faller_death_ragdoll;
|
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 );
|
victims[ i ] dodamage( self.meleedamage, self.origin, self, self, "none", "MOD_MELEE" );
|
||||||
i = 0;
|
self.zombie_faller_should_drop = 1;
|
||||||
while ( i < victims.size )
|
|
||||||
{
|
|
||||||
victims[ i ] dodamage( self.meleedamage, self.origin, self, self, "none", "MOD_MELEE" );
|
|
||||||
self.zombie_faller_should_drop = 1;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
faller_death_ragdoll()
|
faller_death_ragdoll() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self startragdoll();
|
self startragdoll();
|
||||||
self launchragdoll( ( 0, 0, -1 ) );
|
self launchragdoll( ( 0, 0, -1 ) );
|
||||||
return self maps/mp/zombies/_zm_spawner::zombie_death_animscript();
|
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();
|
playerangles = player getplayerangles();
|
||||||
playerforwardvec = anglesToForward( playerangles );
|
playerforwardvec = anglesToForward( playerangles );
|
||||||
@ -538,11 +517,11 @@ in_player_fov( player )
|
|||||||
{
|
{
|
||||||
banzaivsplayerfovbuffer = 0.2;
|
banzaivsplayerfovbuffer = 0.2;
|
||||||
}
|
}
|
||||||
inplayerfov = anglefromcenter <= ( ( playerfov * 0.5 ) * ( 1 - banzaivsplayerfovbuffer ) );
|
inplayerfov = anglefromcenter <= ( playerfov * 0.5 ) * ( 1 - banzaivsplayerfovbuffer );
|
||||||
return inplayerfov;
|
return inplayerfov;
|
||||||
}
|
}
|
||||||
|
|
||||||
potentially_visible( how_close )
|
potentially_visible( how_close ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( how_close ) )
|
if ( !isDefined( how_close ) )
|
||||||
{
|
{
|
||||||
@ -550,8 +529,7 @@ potentially_visible( how_close )
|
|||||||
}
|
}
|
||||||
potentiallyvisible = 0;
|
potentiallyvisible = 0;
|
||||||
players = getplayers();
|
players = getplayers();
|
||||||
i = 0;
|
for ( i = 0; i < players.size; i++ )
|
||||||
while ( i < players.size )
|
|
||||||
{
|
{
|
||||||
dist = distancesquared( self.origin, players[ i ].origin );
|
dist = distancesquared( self.origin, players[ i ].origin );
|
||||||
if ( dist < how_close )
|
if ( dist < how_close )
|
||||||
@ -563,15 +541,11 @@ potentially_visible( how_close )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return potentiallyvisible;
|
return potentiallyvisible;
|
||||||
}
|
}
|
||||||
|
|
||||||
do_zombie_emerge( spot )
|
do_zombie_emerge( spot ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
self thread setup_deathfunc( ::faller_death_ragdoll );
|
self thread setup_deathfunc( ::faller_death_ragdoll );
|
||||||
@ -588,11 +562,11 @@ do_zombie_emerge( spot )
|
|||||||
self zombie_faller_emerge( spot );
|
self zombie_faller_emerge( spot );
|
||||||
self.create_eyes = 1;
|
self.create_eyes = 1;
|
||||||
wait 0.1;
|
wait 0.1;
|
||||||
self notify( "risen" );
|
self notify( "risen", spot.script_string );
|
||||||
self zombie_faller_enable_location();
|
self zombie_faller_enable_location();
|
||||||
}
|
}
|
||||||
|
|
||||||
zombie_faller_emerge( spot )
|
zombie_faller_emerge( spot ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
if ( isDefined( self.zombie_faller_location.emerge_bottom ) && self.zombie_faller_location.emerge_bottom )
|
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 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 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.in_the_ceiling = 0;
|
||||||
self.no_powerups = 0;
|
self.no_powerups = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
zombie_emerge_fx( spot )
|
zombie_emerge_fx( spot ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
spot thread zombie_emerge_dust_fx( self );
|
spot thread zombie_emerge_dust_fx( self );
|
||||||
playsoundatposition( "zmb_zombie_spawn", spot.origin );
|
playsoundatposition( "zmb_zombie_spawn", spot.origin );
|
||||||
@ -618,7 +592,7 @@ zombie_emerge_fx( spot )
|
|||||||
wait 1;
|
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";
|
dust_tag = "J_SpineUpper";
|
||||||
self endon( "stop_zombie_fall_dust_fx" );
|
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" );
|
zombie waittill( "death" );
|
||||||
self notify( "stop_zombie_fall_dust_fx" );
|
self notify( "stop_zombie_fall_dust_fx" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/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();
|
init_mover_tree();
|
||||||
}
|
}
|
||||||
|
|
||||||
spawn_player_clone( player, origin, forceweapon, forcemodel )
|
spawn_player_clone( player, origin, forceweapon, forcemodel ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( origin ) )
|
if ( !isDefined( origin ) )
|
||||||
{
|
{
|
||||||
@ -66,17 +66,17 @@ spawn_player_clone( player, origin, forceweapon, forcemodel )
|
|||||||
return clone;
|
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;
|
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" );
|
self notify( "player_revived" );
|
||||||
}
|
}
|
||||||
return idamage;
|
return idamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
clone_give_weapon( weapon )
|
clone_give_weapon( weapon ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
weaponmodel = getweaponmodel( weapon );
|
weaponmodel = getweaponmodel( weapon );
|
||||||
if ( weaponmodel != "" && weaponmodel != "none" )
|
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 )
|
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;
|
wait 0.1;
|
||||||
switch( animtype )
|
switch( animtype )
|
||||||
@ -112,12 +112,12 @@ clone_actor_animate( animtype )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
init_mover_tree()
|
init_mover_tree() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
scriptmodelsuseanimtree( -1 );
|
scriptmodelsuseanimtree( -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
clone_mover_animate( animtype )
|
clone_mover_animate( animtype ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self useanimtree( -1 );
|
self useanimtree( -1 );
|
||||||
switch( animtype )
|
switch( animtype )
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
main_start()
|
main_start() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
mapname = tolower( getDvar( "mapname" ) );
|
mapname = tolower( getDvar( "mapname" ) );
|
||||||
gametype = getDvar( "ui_gametype" );
|
gametype = getDvar( "ui_gametype" );
|
||||||
@ -25,24 +25,21 @@ main_start()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
main_end()
|
main_end() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
onfinalizeinitialization_callback( ::force_navcomputer_trigger_think );
|
onfinalizeinitialization_callback( ::force_navcomputer_trigger_think );
|
||||||
level.original_melee_miss_func = level.melee_miss_func;
|
level.original_melee_miss_func = level.melee_miss_func;
|
||||||
level.melee_miss_func = ::ffotd_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 )
|
if ( !isDefined( level.zombie_include_buildables ) || !level.zombie_include_buildables.size )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_a52 = level.zombie_include_buildables;
|
foreach ( buildable in level.zombie_include_buildables )
|
||||||
_k52 = getFirstArrayKey( _a52 );
|
|
||||||
while ( isDefined( _k52 ) )
|
|
||||||
{
|
{
|
||||||
buildable = _a52[ _k52 ];
|
|
||||||
if ( buildable.name == "sq_common" )
|
if ( buildable.name == "sq_common" )
|
||||||
{
|
{
|
||||||
if ( isDefined( buildable.triggerthink ) )
|
if ( isDefined( buildable.triggerthink ) )
|
||||||
@ -55,22 +52,18 @@ force_navcomputer_trigger_think()
|
|||||||
return;
|
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_for_buildable( "sq_common" );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
trig_pos = getstruct( "sq_common_key", "targetname" );
|
trig_pos = getstruct( "sq_common_key", "targetname" );
|
||||||
trigs = getentarray( "trigger_radius_use", "classname" );
|
trigs = getentarray( "trigger_radius_use", "classname" );
|
||||||
nav_trig = undefined;
|
nav_trig = undefined;
|
||||||
_a81 = trigs;
|
foreach ( trig in trigs )
|
||||||
_k81 = getFirstArrayKey( _a81 );
|
|
||||||
while ( isDefined( _k81 ) )
|
|
||||||
{
|
{
|
||||||
trig = _a81[ _k81 ];
|
|
||||||
if ( trig.origin == trig_pos.origin )
|
if ( trig.origin == trig_pos.origin )
|
||||||
{
|
{
|
||||||
nav_trig = trig;
|
nav_trig = trig;
|
||||||
@ -88,33 +81,25 @@ transit_navcomputer_remove_card_on_success()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
players = get_players();
|
players = get_players();
|
||||||
_a101 = players;
|
foreach ( player in players )
|
||||||
_k101 = getFirstArrayKey( _a101 );
|
|
||||||
while ( isDefined( _k101 ) )
|
|
||||||
{
|
{
|
||||||
player = _a101[ _k101 ];
|
|
||||||
player maps/mp/zombies/_zm_stats::set_global_stat( level.navcard_needed, 0 );
|
player maps/mp/zombies/_zm_stats::set_global_stat( level.navcard_needed, 0 );
|
||||||
_k101 = getNextArrayKey( _a101, _k101 );
|
|
||||||
}
|
}
|
||||||
level thread sq_refresh_player_navcard_hud();
|
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 ) )
|
if ( !isDefined( level.navcards ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
players = get_players();
|
players = get_players();
|
||||||
_a116 = players;
|
foreach ( player in players )
|
||||||
_k116 = getFirstArrayKey( _a116 );
|
|
||||||
while ( isDefined( _k116 ) )
|
|
||||||
{
|
{
|
||||||
player = _a116[ _k116 ];
|
|
||||||
navcard_bits = 0;
|
navcard_bits = 0;
|
||||||
i = 0;
|
for ( i = 0; i < level.navcards.size; i++ )
|
||||||
while ( i < level.navcards.size )
|
|
||||||
{
|
{
|
||||||
hasit = player maps/mp/zombies/_zm_stats::get_global_stat( level.navcards[ 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 ] )
|
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;
|
navcard_bits = navcard_bits + 1;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
player setclientfield( "navcard_held", 0 );
|
player setclientfield( "navcard_held", 0 );
|
||||||
@ -134,17 +118,16 @@ sq_refresh_player_navcard_hud()
|
|||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
player setclientfield( "navcard_held", navcard_bits );
|
player setclientfield( "navcard_held", navcard_bits );
|
||||||
}
|
}
|
||||||
_k116 = getNextArrayKey( _a116, _k116 );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
player_in_exploit_area( player_trigger_origin, player_trigger_radius )
|
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;
|
return 1;
|
||||||
@ -152,7 +135,7 @@ player_in_exploit_area( player_trigger_origin, player_trigger_radius )
|
|||||||
return 0;
|
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;
|
spawnflags = 9;
|
||||||
zombie_trigger = spawn( "trigger_radius", zombie_trigger_origin, spawnflags, zombie_trigger_radius, zombie_trigger_height );
|
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 endon( "death" );
|
||||||
self.reroute = 1;
|
self.reroute = 1;
|
||||||
@ -199,7 +182,7 @@ exploit_reroute( zombie_trigger, player_trigger_origin, player_trigger_radius, z
|
|||||||
self.reroute = 0;
|
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 ) )
|
if ( isDefined( self.enemy ) )
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/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 ) )
|
if ( !isDefined( level.zombie_network_choke_ids_max ) )
|
||||||
{
|
{
|
||||||
@ -14,7 +14,7 @@ network_choke_init( id, max )
|
|||||||
level thread network_choke_thread( id );
|
level thread network_choke_thread( id );
|
||||||
}
|
}
|
||||||
|
|
||||||
network_choke_thread( id )
|
network_choke_thread( id ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
while ( 1 )
|
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 ];
|
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 );
|
return [[ choke_action ]]( arg1, arg2, arg3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
network_entity_valid( entity )
|
network_entity_valid( entity ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( entity ) )
|
if ( !isDefined( entity ) )
|
||||||
{
|
{
|
||||||
@ -65,7 +65,7 @@ network_entity_valid( entity )
|
|||||||
return 1;
|
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 ] ) )
|
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 );
|
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 );
|
network_safe_init( id, max );
|
||||||
return network_choke_action( id, ::_network_safe_spawn, classname, origin );
|
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 ) )
|
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_safe_init( id, max );
|
||||||
network_choke_action( id, ::_network_safe_play_fx_on_tag, fx, entity, tag );
|
network_choke_action( id, ::_network_safe_play_fx_on_tag, fx, entity, tag );
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
precacheshader( "zombie_stopwatchneedle" );
|
precacheshader( "zombie_stopwatchneedle" );
|
||||||
precacheshader( "zombie_stopwatch" );
|
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 notify( "stop_prev_timer" );
|
||||||
self endon( "stop_prev_timer" );
|
self endon( "stop_prev_timer" );
|
||||||
@ -56,7 +56,7 @@ start_timer( time, stop_notify )
|
|||||||
self.stopwatch_elem_glass.alpha = 0;
|
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( "stop_prev_timer" );
|
||||||
self endon( "countdown_finished" );
|
self endon( "countdown_finished" );
|
||||||
@ -65,7 +65,7 @@ wait_for_stop_notify( stop_notify )
|
|||||||
self.stopwatch_elem_glass.alpha = 0;
|
self.stopwatch_elem_glass.alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
update_hud_position()
|
update_hud_position() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "stop_prev_timer" );
|
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/_scoreboard.gsc
|
||||||
patch_zm/maps/mp/gametypes_zm/_shellshock.gsc
|
patch_zm/maps/mp/gametypes_zm/_shellshock.gsc
|
||||||
patch_zm/maps/mp/gametypes_zm/zclassic.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_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.gsc
|
||||||
patch_zm/maps/mp/zombies/_zm_audio_announcer.gsc
|
patch_zm/maps/mp/zombies/_zm_audio_announcer.gsc
|
||||||
patch_zm/maps/mp/zombies/_zm_bot.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_magicbox.gsc
|
||||||
patch_zm/maps/mp/zombies/_zm_net.gsc
|
patch_zm/maps/mp/zombies/_zm_net.gsc
|
||||||
patch_zm/maps/mp/zombies/_zm_perk_electric_cherry.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:
|
### 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_hacker.gsc
|
||||||
patch_zm/maps/mp/zombies/_zm_equip_gasmask.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_boards.gsc
|
||||||
patch_zm/maps/mp/zombies/_zm_hackables_box.gsc
|
patch_zm/maps/mp/zombies/_zm_hackables_box.gsc
|
||||||
patch_zm/maps/mp/zombies/_zm_hackables_doors.gsc
|
patch_zm/maps/mp/zombies/_zm_hackables_doors.gsc
|
||||||
|
Loading…
x
Reference in New Issue
Block a user