5 new scripts fully functional 1 needs more work

_zm_gump.gsc is now accepting connections from clients. _zm_tombstone had a simple syntax error that needed fixing. _zm_pers_upgrades, and _zm_pers_upgrades_system both have no known errors. Finally _zm_pers_upgrades_functions hangs on server launch, most likely an infinite loop.
This commit is contained in:
JezuzLizard 2020-04-25 23:02:25 -07:00
parent 5f5ce72dfb
commit 64f0307bfd
6 changed files with 337 additions and 463 deletions

View File

@ -2,9 +2,15 @@
#include maps/mp/_utility;
#include common_scripts/utility;
init()
init() //checked changed to match cerberus output //changed partially at own discretion
{
if ( isDefined( level.disable_blackscreen_clientfield ) && !level.disable_blackscreen_clientfield )
/*
if ( isDefined( level.disable_blackscreen_clientfield ) && level.disable_blackscreen_clientfield )
{
registerclientfield( "toplayer", "blackscreen", 1, 1, "int" );
}
*/ //the value of level.disable_blackscreen_clientfield is not defined in any map file except buried meaning
if ( !isDefined( level.disable_blackscreen_clientfield ) || !level.disable_blackscreen_clientfield )
{
registerclientfield( "toplayer", "blackscreen", 1, 1, "int" );
}
@ -18,7 +24,7 @@ init()
}
}
player_teleport_blackscreen_on()
player_teleport_blackscreen_on() //checked matches cerberus output
{
if ( isDefined( level.disable_blackscreen_clientfield ) && level.disable_blackscreen_clientfield )
{
@ -32,11 +38,11 @@ player_teleport_blackscreen_on()
}
}
player_connect_gump()
player_connect_gump() //checked matches cerberus output
{
}
player_watch_spectate_change()
player_watch_spectate_change() //checked matches cerberus output
{
if ( isDefined( level.disable_blackscreen_clientfield ) && level.disable_blackscreen_clientfield )
{
@ -79,3 +85,5 @@ gump_test()
*/
}

View File

@ -8,7 +8,7 @@
#include maps/mp/_utility;
#include common_scripts/utility;
pers_upgrade_init()
pers_upgrade_init() //checked matches cerberus output
{
setup_pers_upgrade_boards();
setup_pers_upgrade_revive();
@ -27,7 +27,7 @@ pers_upgrade_init()
level thread pers_upgrades_monitor();
}
pers_abilities_init_globals()
pers_abilities_init_globals() //checked matches cerberus output
{
self.successful_revives = 0;
self.failed_revives = 0;
@ -45,7 +45,7 @@ pers_abilities_init_globals()
}
}
is_pers_system_active()
is_pers_system_active() //checked matches cerberus output
{
if ( !is_classic() )
{
@ -58,7 +58,7 @@ is_pers_system_active()
return 1;
}
is_pers_system_disabled()
is_pers_system_disabled() //checked matches cerberus output
{
if ( level flag_exists( "sq_minigame_active" ) && flag( "sq_minigame_active" ) )
{
@ -67,7 +67,7 @@ is_pers_system_disabled()
return 0;
}
setup_pers_upgrade_boards()
setup_pers_upgrade_boards() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_boards ) && level.pers_upgrade_boards )
{
@ -77,7 +77,7 @@ setup_pers_upgrade_boards()
}
}
setup_pers_upgrade_revive()
setup_pers_upgrade_revive() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_revive ) && level.pers_upgrade_revive )
{
@ -87,7 +87,7 @@ setup_pers_upgrade_revive()
}
}
setup_pers_upgrade_multi_kill_headshots()
setup_pers_upgrade_multi_kill_headshots() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_multi_kill_headshots ) && level.pers_upgrade_multi_kill_headshots )
{
@ -97,7 +97,7 @@ setup_pers_upgrade_multi_kill_headshots()
}
}
setup_pers_upgrade_cash_back()
setup_pers_upgrade_cash_back() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_cash_back ) && level.pers_upgrade_cash_back )
{
@ -110,7 +110,7 @@ setup_pers_upgrade_cash_back()
}
}
setup_pers_upgrade_insta_kill()
setup_pers_upgrade_insta_kill() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_insta_kill ) && level.pers_upgrade_insta_kill )
{
@ -120,7 +120,7 @@ setup_pers_upgrade_insta_kill()
}
}
setup_pers_upgrade_jugg()
setup_pers_upgrade_jugg() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_jugg ) && level.pers_upgrade_jugg )
{
@ -133,7 +133,7 @@ setup_pers_upgrade_jugg()
}
}
setup_pers_upgrade_carpenter()
setup_pers_upgrade_carpenter() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_carpenter ) && level.pers_upgrade_carpenter )
{
@ -142,7 +142,7 @@ setup_pers_upgrade_carpenter()
}
}
setup_pers_upgrade_flopper()
setup_pers_upgrade_flopper() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_flopper ) && level.pers_upgrade_flopper )
{
@ -154,7 +154,7 @@ setup_pers_upgrade_flopper()
}
}
setup_pers_upgrade_perk_lose()
setup_pers_upgrade_perk_lose() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_perk_lose ) && level.pers_upgrade_perk_lose )
{
@ -164,7 +164,7 @@ setup_pers_upgrade_perk_lose()
}
}
setup_pers_upgrade_pistol_points()
setup_pers_upgrade_pistol_points() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_pistol_points ) && level.pers_upgrade_pistol_points )
{
@ -175,7 +175,7 @@ setup_pers_upgrade_pistol_points()
}
}
setup_pers_upgrade_double_points()
setup_pers_upgrade_double_points() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_double_points ) && level.pers_upgrade_double_points )
{
@ -185,7 +185,7 @@ setup_pers_upgrade_double_points()
}
}
setup_pers_upgrade_sniper()
setup_pers_upgrade_sniper() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_sniper ) && level.pers_upgrade_sniper )
{
@ -197,7 +197,7 @@ setup_pers_upgrade_sniper()
}
}
setup_pers_upgrade_box_weapon()
setup_pers_upgrade_box_weapon() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_box_weapon ) && level.pers_upgrade_box_weapon )
{
@ -207,7 +207,7 @@ setup_pers_upgrade_box_weapon()
}
}
setup_pers_upgrade_nube()
setup_pers_upgrade_nube() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_nube ) && level.pers_upgrade_nube )
{
@ -218,7 +218,7 @@ setup_pers_upgrade_nube()
}
}
pers_upgrade_boards_active()
pers_upgrade_boards_active() //checked matches cerberus output
{
self endon( "disconnect" );
last_round_number = level.round_number;
@ -240,7 +240,7 @@ pers_upgrade_boards_active()
}
}
pers_upgrade_revive_active()
pers_upgrade_revive_active() //checked matches cerberus output
{
self endon( "disconnect" );
while ( 1 )
@ -258,7 +258,7 @@ pers_upgrade_revive_active()
}
}
pers_upgrade_headshot_active()
pers_upgrade_headshot_active() //checked matches cerberus output
{
self endon( "disconnect" );
while ( 1 )
@ -277,7 +277,7 @@ pers_upgrade_headshot_active()
}
}
pers_upgrade_cash_back_active()
pers_upgrade_cash_back_active() //checked matches cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -287,7 +287,6 @@ pers_upgrade_cash_back_active()
{
self waittill( "cash_back_failed_prone" );
wait 0.1;
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
self.failed_cash_back_prones++;
@ -297,18 +296,16 @@ pers_upgrade_cash_back_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_cash_back_prone", 0 );
self.failed_cash_back_prones = 0;
wait 0.4;
return;
}
}
}
}
pers_upgrade_insta_kill_active()
pers_upgrade_insta_kill_active() //checked changed to match cerberus output
{
self endon( "disconnect" );
wait 0.2;
wait 0.2;
while ( 1 )
{
@ -327,16 +324,13 @@ pers_upgrade_insta_kill_active()
}
break;
}
else
{
}
}
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_insta_kill", 0 );
self kill_insta_kill_upgrade_hud_icon();
wait 0.4;
}
is_insta_kill_upgraded_and_active()
is_insta_kill_upgraded_and_active() //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -351,7 +345,7 @@ is_insta_kill_upgraded_and_active()
return 0;
}
pers_upgrade_jugg_active()
pers_upgrade_jugg_active() //checked changed to match cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -373,20 +367,16 @@ pers_upgrade_jugg_active()
}
}
}
else
{
}
}
self maps/mp/zombies/_zm_perks::perk_set_max_health_if_jugg( "jugg_upgrade", 1, 1 );
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_jugg", 0 );
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_jugg_downgrade_count", 0 );
}
pers_upgrade_carpenter_active()
pers_upgrade_carpenter_active() //checked changed to match cerberus output
{
self endon( "disconnect" );
wait 0.2;
wait 0.2;
level waittill( "carpenter_finished" );
self.pers_carpenter_kill = undefined;
@ -399,23 +389,18 @@ pers_upgrade_carpenter_active()
{
break;
}
else
{
}
self.pers_carpenter_kill = undefined;
}
}
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_carpenter", 0 );
wait 0.4;
}
persistent_carpenter_ability_check()
persistent_carpenter_ability_check() //checked changed to match cerberus output
{
if ( isDefined( level.pers_upgrade_carpenter ) && level.pers_upgrade_carpenter )
{
self endon( "disconnect" );
if ( isDefined( self.pers_upgrades_awarded[ "carpenter" ] ) && self.pers_upgrades_awarded[ "carpenter" ] )
{
level.pers_carpenter_boards_active = 1;
@ -448,7 +433,10 @@ persistent_carpenter_ability_check()
{
break;
}
else self maps/mp/zombies/_zm_stats::increment_client_stat( "pers_carpenter", 0 );
else
{
self maps/mp/zombies/_zm_stats::increment_client_stat( "pers_carpenter", 0 );
}
}
}
wait 0.05;
@ -459,7 +447,7 @@ persistent_carpenter_ability_check()
}
}
pers_zombie_death_location_check( attacker, v_pos )
pers_zombie_death_location_check( attacker, v_pos ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -476,7 +464,7 @@ pers_zombie_death_location_check( attacker, v_pos )
}
}
insta_kill_pers_upgrade_icon()
insta_kill_pers_upgrade_icon() //checked matches cerberus output
{
if ( self.zombie_vars[ "zombie_powerup_insta_kill_ug_on" ] )
{
@ -488,7 +476,7 @@ insta_kill_pers_upgrade_icon()
self thread time_remaining_pers_upgrade();
}
time_remaining_pers_upgrade()
time_remaining_pers_upgrade() //checked matches cerberus output
{
self endon( "disconnect" );
self endon( "kill_insta_kill_upgrade_hud_icon" );
@ -500,7 +488,7 @@ time_remaining_pers_upgrade()
self kill_insta_kill_upgrade_hud_icon();
}
kill_insta_kill_upgrade_hud_icon()
kill_insta_kill_upgrade_hud_icon() //checked matches cerberus output
{
self.zombie_vars[ "zombie_powerup_insta_kill_ug_on" ] = 0;
self._show_solo_hud = 0;
@ -508,7 +496,7 @@ kill_insta_kill_upgrade_hud_icon()
self notify( "kill_insta_kill_upgrade_hud_icon" );
}
pers_upgrade_flopper_active()
pers_upgrade_flopper_active() //checked matches cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -529,7 +517,7 @@ pers_upgrade_flopper_active()
self.pers_num_flopper_damages = 0;
}
pers_upgrade_perk_lose_active()
pers_upgrade_perk_lose_active() //checked matches cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -549,7 +537,7 @@ pers_upgrade_perk_lose_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_perk_lose_counter", 0 );
}
pers_upgrade_pistol_points_active()
pers_upgrade_pistol_points_active() //checked changed to match cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -567,9 +555,6 @@ pers_upgrade_pistol_points_active()
{
break;
}
else
{
}
}
/*
/#
@ -579,7 +564,7 @@ pers_upgrade_pistol_points_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_pistol_points_counter", 0 );
}
pers_upgrade_double_points_active()
pers_upgrade_double_points_active() //checked matches cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -598,7 +583,7 @@ pers_upgrade_double_points_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_double_points_counter", 0 );
}
pers_upgrade_sniper_active()
pers_upgrade_sniper_active() //checked matches cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -617,7 +602,7 @@ pers_upgrade_sniper_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_sniper_counter", 0 );
}
pers_upgrade_box_weapon_active()
pers_upgrade_box_weapon_active() //checked changed to match cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -639,9 +624,6 @@ pers_upgrade_box_weapon_active()
break;
}
}
else
{
}
}
/*
/#
@ -651,7 +633,7 @@ pers_upgrade_box_weapon_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_box_weapon_counter", 0 );
}
pers_upgrade_nube_active()
pers_upgrade_nube_active() //checked changed to match cerberus output
{
self endon( "disconnect" );
wait 0.5;
@ -671,9 +653,6 @@ pers_upgrade_nube_active()
break;
}
}
else
{
}
}
/*
/#
@ -683,3 +662,4 @@ pers_upgrade_nube_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_nube_counter", 0 );
}

View File

@ -11,7 +11,7 @@
#include maps/mp/_utility;
#include common_scripts/utility;
pers_boards_updated( zbarrier )
pers_boards_updated( zbarrier ) //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_boards ) && level.pers_upgrade_boards )
{
@ -35,7 +35,7 @@ pers_boards_updated( zbarrier )
}
}
pers_revive_active()
pers_revive_active() //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -47,7 +47,7 @@ pers_revive_active()
return 0;
}
pers_increment_revive_stat( reviver )
pers_increment_revive_stat( reviver ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -55,7 +55,7 @@ pers_increment_revive_stat( reviver )
}
}
pers_mulit_kill_headshot_active()
pers_mulit_kill_headshot_active() //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -67,7 +67,7 @@ pers_mulit_kill_headshot_active()
return 0;
}
pers_check_for_pers_headshot( time_of_death, zombie )
pers_check_for_pers_headshot( time_of_death, zombie ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -92,7 +92,7 @@ pers_check_for_pers_headshot( time_of_death, zombie )
}
}
cash_back_player_drinks_perk()
cash_back_player_drinks_perk() //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -102,11 +102,8 @@ cash_back_player_drinks_perk()
{
self thread cash_back_money_reward();
self thread cash_back_player_prone_check( 1 );
return;
}
else
{
if ( self.pers[ "pers_cash_back_bought" ] < level.pers_cash_back_num_perks_required )
else if ( self.pers[ "pers_cash_back_bought" ] < level.pers_cash_back_num_perks_required )
{
self maps/mp/zombies/_zm_stats::increment_client_stat( "pers_cash_back_bought", 0 );
return;
@ -118,23 +115,20 @@ cash_back_player_drinks_perk()
}
}
}
}
cash_back_money_reward()
cash_back_money_reward() //checked matches cerberus output
{
self endon( "death" );
step = 5;
amount_per_step = int( level.pers_cash_back_money_reward / step );
i = 0;
while ( i < step )
for ( i = 0; i < step; i++ )
{
self maps/mp/zombies/_zm_score::add_to_player_score( amount_per_step );
wait 0.2;
i++;
}
}
cash_back_player_prone_check( got_ability )
cash_back_player_prone_check( got_ability ) //checked changed to match cerberus output
{
self endon( "death" );
prone_time = 2.5;
@ -147,8 +141,6 @@ cash_back_player_prone_check( got_ability )
{
break;
}
else
{
if ( self getstance() == "prone" )
{
if ( !got_ability )
@ -160,14 +152,13 @@ cash_back_player_prone_check( got_ability )
}
wait 0.01;
}
}
if ( got_ability )
{
self notify( "cash_back_failed_prone" );
}
}
pers_upgrade_insta_kill_upgrade_check()
pers_upgrade_insta_kill_upgrade_check() //checked changed to match cerberus output
{
if ( isDefined( level.pers_upgrade_insta_kill ) && level.pers_upgrade_insta_kill )
{
@ -177,15 +168,13 @@ pers_upgrade_insta_kill_upgrade_check()
return;
}
players = get_players();
i = 0;
while ( i < players.size )
for ( i = 0; i < players.size; i++ )
{
e_player = players[ i ];
if ( isDefined( e_player.pers_upgrades_awarded[ "insta_kill" ] ) && e_player.pers_upgrades_awarded[ "insta_kill" ] )
{
e_player thread insta_kill_upgraded_player_kill_func( level.pers_insta_kill_upgrade_active_time );
}
i++;
}
if ( isDefined( self.pers_upgrades_awarded[ "insta_kill" ] ) && !self.pers_upgrades_awarded[ "insta_kill" ] )
{
@ -196,7 +185,6 @@ pers_upgrade_insta_kill_upgrade_check()
if ( num_killed > 0 )
{
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_insta_kill", 0 );
return;
}
else
{
@ -206,7 +194,7 @@ pers_upgrade_insta_kill_upgrade_check()
}
}
insta_kill_upgraded_player_kill_func( active_time )
insta_kill_upgraded_player_kill_func( active_time ) //checked changed to match cerberus output
{
self endon( "death" );
wait 0.25;
@ -224,14 +212,12 @@ insta_kill_upgraded_player_kill_func( active_time )
dt = ( time - start_time ) / 1000;
if ( dt > active_time )
{
return;
break;
}
else if ( !maps/mp/zombies/_zm_powerups::is_insta_kill_active() )
if ( !maps/mp/zombies/_zm_powerups::is_insta_kill_active() )
{
return;
break;
}
else
{
a_zombies = getaiarray( level.zombie_team );
e_closest = undefined;
i = 0;
@ -243,8 +229,6 @@ insta_kill_upgraded_player_kill_func( active_time )
i++;
continue;
}
else
{
height_diff = abs( self.origin[ 2 ] - e_zombie.origin[ 2 ] );
if ( height_diff < zombie_player_height_test )
{
@ -255,7 +239,6 @@ insta_kill_upgraded_player_kill_func( active_time )
e_closest = e_zombie;
}
}
}
i++;
}
if ( isDefined( e_closest ) )
@ -266,9 +249,8 @@ insta_kill_upgraded_player_kill_func( active_time )
wait 0.01;
}
}
}
pers_insta_kill_melee_swipe( smeansofdeath, eattacker )
pers_insta_kill_melee_swipe( smeansofdeath, eattacker ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -283,7 +265,7 @@ pers_insta_kill_melee_swipe( smeansofdeath, eattacker )
}
}
pers_upgrade_jugg_player_death_stat()
pers_upgrade_jugg_player_death_stat() //checked matches cerberus output
{
if ( isDefined( level.pers_upgrade_jugg ) && level.pers_upgrade_jugg )
{
@ -300,7 +282,7 @@ pers_upgrade_jugg_player_death_stat()
}
}
pers_jugg_active()
pers_jugg_active() //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -312,7 +294,7 @@ pers_jugg_active()
return 0;
}
pers_upgrade_flopper_damage_check( smeansofdeath, idamage )
pers_upgrade_flopper_damage_check( smeansofdeath, idamage ) //checked changed to match cerberus output
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -343,9 +325,7 @@ pers_upgrade_flopper_damage_check( smeansofdeath, idamage )
*/
}
}
else
{
if ( isDefined( self.pers_flopper_active ) && !self.pers_flopper_active )
else if ( isDefined( self.pers_flopper_active ) && !self.pers_flopper_active )
{
if ( idamage >= level.pers_flopper_min_fall_damage_deactivate )
{
@ -358,17 +338,16 @@ pers_upgrade_flopper_damage_check( smeansofdeath, idamage )
self notify( "activate_pers_flopper_effect" );
return 1;
}
}
return 0;
}
divetonuke_precache_override_func()
divetonuke_precache_override_func() //checked matches cerberus output
{
precacheshader( "specialty_divetonuke_zombies" );
level._effect[ "divetonuke_light" ] = loadfx( "misc/fx_zombie_cola_dtap_on" );
}
pers_upgrade_flopper_watcher()
pers_upgrade_flopper_watcher() //checked changed to match cerberus output
{
self endon( "death" );
self endon( "disconnect" );
@ -378,7 +357,6 @@ pers_upgrade_flopper_watcher()
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_disabled() )
{
wait 0.01;
continue;
}
else
{
@ -391,7 +369,7 @@ pers_upgrade_flopper_watcher()
}
}
pers_flopper_dtn()
pers_flopper_dtn() //checked matches cerberus output
{
self endon( "disconnect" );
self waittill( "activate_pers_flopper_effect" );
@ -401,7 +379,7 @@ pers_flopper_dtn()
}
}
pers_flopper_explode( attacker, origin )
pers_flopper_explode( attacker, origin ) //checked matches cerberus output
{
self endon( "disconnect" );
radius = level.zombie_vars[ "zombie_perk_divetonuke_radius" ];
@ -422,12 +400,12 @@ pers_flopper_explode( attacker, origin )
attacker setclientfield( "phd_flopper_effects", 0 );
}
pers_flopper_damage_network_optimized( origin, radius, max_damage, min_damage, damage_mod )
pers_flopper_damage_network_optimized( origin, radius, max_damage, min_damage, damage_mod ) //checked partially changed to match cerberus output //for loops don't work with continues used while loop
{
self endon( "disconnect" );
a_zombies = get_array_of_closest( origin, get_round_enemy_array(), undefined, undefined, radius );
network_stall_counter = 0;
while ( isDefined( a_zombies ) )
if ( isDefined( a_zombies ) )
{
i = 0;
while ( i < a_zombies.size )
@ -438,25 +416,21 @@ pers_flopper_damage_network_optimized( origin, radius, max_damage, min_damage, d
i++;
continue;
}
else
{
dist = distance( e_zombie.origin, origin );
damage = min_damage + ( ( max_damage - min_damage ) * ( 1 - ( dist / radius ) ) );
e_zombie dodamage( damage, e_zombie.origin, self, self, 0, damage_mod );
network_stall_counter--;
if ( network_stall_counter <= 0 )
{
wait_network_frame();
network_stall_counter = randomintrange( 1, 3 );
}
}
i++;
}
}
}
pers_upgrade_pistol_points_kill()
pers_upgrade_pistol_points_kill() //checked matches cerberus output
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -489,7 +463,7 @@ pers_upgrade_pistol_points_kill()
}
}
pers_upgrade_pistol_points_set_score( score, event, mod, damage_weapon )
pers_upgrade_pistol_points_set_score( score, event, mod, damage_weapon ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -519,7 +493,7 @@ pers_upgrade_pistol_points_set_score( score, event, mod, damage_weapon )
return score;
}
pers_upgrade_double_points_pickup_start()
pers_upgrade_double_points_pickup_start() //checked changed to match cerberus output
{
self endon( "death" );
self endon( "disconnect" );
@ -554,16 +528,13 @@ pers_upgrade_double_points_pickup_start()
}
last_score = self.score;
time = getTime();
dt = ( time - self.double_points_ability_start_time ) / 1000;
dt = time - self.double_points_ability_start_time / 1000;
if ( dt >= 30 )
{
break;
}
else
{
wait 0.1;
}
}
level.pers_double_points_active = undefined;
if ( isDefined( self.account_value ) )
{
@ -608,7 +579,7 @@ pers_upgrade_double_points_pickup_start()
self.double_points_ability_check_active = undefined;
}
pers_upgrade_double_points_set_score( score )
pers_upgrade_double_points_set_score( score ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -623,7 +594,7 @@ pers_upgrade_double_points_set_score( score )
return score;
}
pers_upgrade_double_points_cost( current_cost )
pers_upgrade_double_points_cost( current_cost ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -635,7 +606,7 @@ pers_upgrade_double_points_cost( current_cost )
return current_cost;
}
is_pers_double_points_active()
is_pers_double_points_active() //checked matches cerberus output
{
if ( isDefined( self.pers_upgrades_awarded[ "double_points" ] ) && self.pers_upgrades_awarded[ "double_points" ] )
{
@ -647,7 +618,7 @@ is_pers_double_points_active()
return 0;
}
pers_upgrade_perk_lose_bought()
pers_upgrade_perk_lose_bought() //checked changed to match cerberus output
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -674,9 +645,7 @@ pers_upgrade_perk_lose_bought()
}
}
}
else
{
if ( isDefined( self.pers_perk_lose_start_round ) )
else if ( isDefined( self.pers_perk_lose_start_round ) )
{
if ( level.round_number > 1 && self.pers_perk_lose_start_round == level.round_number )
{
@ -684,9 +653,8 @@ pers_upgrade_perk_lose_bought()
}
}
}
}
pers_upgrade_perk_lose_save()
pers_upgrade_perk_lose_save() //checked changed to match cerberus output
{
while ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -702,35 +670,29 @@ pers_upgrade_perk_lose_save()
self.a_saved_primaries = self getweaponslistprimaries();
self.a_saved_primaries_weapons = [];
index = 0;
_a1032 = self.a_saved_primaries;
_k1032 = getFirstArrayKey( _a1032 );
while ( isDefined( _k1032 ) )
foreach ( weapon in self.a_saved_primaries )
{
weapon = _a1032[ _k1032 ];
self.a_saved_primaries_weapons[ index ] = maps/mp/zombies/_zm_weapons::get_player_weapondata( self, weapon );
index++;
_k1032 = getNextArrayKey( _a1032, _k1032 );
}
}
}
pers_upgrade_perk_lose_restore()
pers_upgrade_perk_lose_restore() //checked changed to match cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
player_has_mule_kick = 0;
discard_quickrevive = 0;
while ( isDefined( self.a_saved_perks ) && self.a_saved_perks.size >= 2 )
if ( isDefined( self.a_saved_perks ) && self.a_saved_perks.size >= 2 )
{
i = 0;
while ( i < self.a_saved_perks.size )
for ( i = 0; i < self.a_saved_perks.size; i++ )
{
perk = self.a_saved_perks[ i ];
if ( perk == "specialty_quickrevive" )
{
discard_quickrevive = 1;
}
i++;
}
if ( discard_quickrevive == 1 )
{
@ -749,8 +711,6 @@ pers_upgrade_perk_lose_restore()
i++;
continue;
}
else
{
if ( perk == "specialty_additionalprimaryweapon" )
{
player_has_mule_kick = 1;
@ -760,25 +720,19 @@ pers_upgrade_perk_lose_restore()
i++;
continue;
}
else
{
self maps/mp/zombies/_zm_perks::give_perk( perk );
wait_network_frame();
}
}
i++;
}
}
while ( player_has_mule_kick )
else if ( player_has_mule_kick )
{
a_current_weapons = self getweaponslistprimaries();
i = 0;
while ( i < self.a_saved_primaries_weapons.size )
for ( i = 0; i < self.a_saved_primaries_weapons.size; i++ )
{
saved_weapon = self.a_saved_primaries_weapons[ i ];
found = 0;
j = 0;
while ( j < a_current_weapons.size )
for ( j = 0; j < a_current_weapons.size; j++ )
{
current_weapon = a_current_weapons[ j ];
if ( current_weapon == saved_weapon[ "name" ] )
@ -786,10 +740,6 @@ pers_upgrade_perk_lose_restore()
found = 1;
break;
}
else
{
j++;
}
}
if ( found == 0 )
{
@ -797,10 +747,6 @@ pers_upgrade_perk_lose_restore()
self switchtoweapon( a_current_weapons[ 0 ] );
break;
}
else
{
i++;
}
}
}
self.a_saved_perks = undefined;
@ -809,13 +755,13 @@ pers_upgrade_perk_lose_restore()
}
}
pers_upgrade_sniper_kill_check( zombie, attacker )
pers_upgrade_sniper_kill_check( zombie, attacker ) //checked changed to match cerberus output
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
return;
}
if ( isDefined( zombie ) || !isDefined( attacker ) && !isDefined( zombie.damageweapon ) )
if ( !isDefined( zombie ) || !isDefined( attacker ) || !isDefined( zombie.damageweapon ) )
{
return;
}
@ -844,14 +790,11 @@ pers_upgrade_sniper_kill_check( zombie, attacker )
self.pers_sniper_round = level.round_number;
self.pers_sniper_kills = 0;
}
else
{
if ( self.pers_sniper_round != level.round_number )
else if ( self.pers_sniper_round != level.round_number )
{
self.pers_sniper_round = level.round_number;
self.pers_sniper_kills = 0;
}
}
self.pers_sniper_kills++;
/*
/#
@ -870,7 +813,7 @@ pers_upgrade_sniper_kill_check( zombie, attacker )
}
}
pers_sniper_score_reward()
pers_sniper_score_reward() //checked changed to match cerberus output
{
self endon( "disconnect" );
self endon( "death" );
@ -879,17 +822,15 @@ pers_sniper_score_reward()
total_score = 300;
steps = 10;
score_inc = int( total_score / steps );
i = 0;
while ( i < steps )
for ( i = 0; i < steps; i++ )
{
self maps/mp/zombies/_zm_score::add_to_player_score( score_inc );
wait 0.25;
i++;
}
}
}
pers_sniper_player_fires( weapon, hit )
pers_sniper_player_fires( weapon, hit ) //checked changed to match cerberus output
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -908,7 +849,6 @@ pers_sniper_player_fires( weapon, hit )
if ( hit )
{
self.num_sniper_misses = 0;
return;
}
else
{
@ -924,7 +864,7 @@ pers_sniper_player_fires( weapon, hit )
}
}
pers_get_player_accuracy()
pers_get_player_accuracy() //checked matches cerberus output
{
accuracy = 1;
total_shots = self maps/mp/gametypes_zm/_globallogic_score::getpersstat( "total_shots" );
@ -936,7 +876,7 @@ pers_get_player_accuracy()
return accuracy;
}
is_sniper_weapon( weapon )
is_sniper_weapon( weapon ) //checked matches cerberus output
{
if ( !isDefined( weapon ) )
{
@ -961,7 +901,7 @@ is_sniper_weapon( weapon )
return 0;
}
pers_upgrade_box_weapon_used( e_user, e_grabber )
pers_upgrade_box_weapon_used( e_user, e_grabber ) //checked changed to match cerberus output
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -983,9 +923,7 @@ pers_upgrade_box_weapon_used( e_user, e_grabber )
}
e_grabber maps/mp/zombies/_zm_stats::increment_client_stat( "pers_box_weapon_counter", 0 );
}
else
{
if ( isDefined( e_user ) && isplayer( e_user ) )
else if ( isDefined( e_user ) && isplayer( e_user ) )
{
if ( isDefined( e_user.pers_upgrades_awarded[ "box_weapon" ] ) && e_user.pers_upgrades_awarded[ "box_weapon" ] )
{
@ -994,9 +932,8 @@ pers_upgrade_box_weapon_used( e_user, e_grabber )
e_user maps/mp/zombies/_zm_stats::zero_client_stat( "pers_box_weapon_counter", 0 );
}
}
}
pers_magic_box_teddy_bear()
pers_magic_box_teddy_bear() //checked changed to match cerberus output
{
self endon( "disconnect" );
if ( isDefined( level.pers_magic_box_firesale ) && level.pers_magic_box_firesale )
@ -1017,8 +954,6 @@ pers_magic_box_teddy_bear()
{
break;
}
else
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_disabled() )
{
m_bear setinvisibletoall();
@ -1028,11 +963,8 @@ pers_magic_box_teddy_bear()
{
break;
}
else
{
wait 0.01;
}
}
m_bear setvisibletoplayer( self );
}
if ( flag( "moving_chest_now" ) )
@ -1066,20 +998,16 @@ pers_magic_box_teddy_bear()
{
break;
}
else
{
wait 0.01;
}
}
m_bear setvisibletoplayer( self );
}
wait 0.01;
}
}
m_bear delete();
}
pers_magic_box_set_teddy_location( box_index )
pers_magic_box_set_teddy_location( box_index ) //checked changed to match cerberus output
{
box = level.chests[ box_index ];
if ( isDefined( box.zbarrier ) )
@ -1095,7 +1023,7 @@ pers_magic_box_set_teddy_location( box_index )
v_up = anglesToUp( v_angles );
height_offset = 22;
self.origin = v_origin + ( v_up * height_offset );
dp = vectordot( v_up, ( 0, 1, 0 ) );
dp = vectordot( v_up, ( 0, 0, 1 ) );
if ( dp > 0 )
{
v_angles_offset = vectorScale( ( 0, 1, 0 ), 90 );
@ -1107,14 +1035,14 @@ pers_magic_box_set_teddy_location( box_index )
self.angles = v_angles + v_angles_offset;
}
pers_treasure_chest_choosespecialweapon( player )
pers_treasure_chest_choosespecialweapon( player ) //checked changed to match cerberus output
{
rval = randomfloat( 1 );
if ( !isDefined( player.pers_magic_box_weapon_count ) )
{
player.pers_magic_box_weapon_count = 0;
}
if ( player.pers_magic_box_weapon_count < 2 || player.pers_magic_box_weapon_count == 0 && rval < 0.6 )
if ( player.pers_magic_box_weapon_count < 2 && player.pers_magic_box_weapon_count == 0 || rval < 0.6 )
{
player.pers_magic_box_weapon_count++;
if ( isDefined( level.pers_treasure_chest_get_weapons_array_func ) )
@ -1136,14 +1064,12 @@ pers_treasure_chest_choosespecialweapon( player )
}
*/
pap_triggers = getentarray( "specialty_weapupgrade", "script_noteworthy" );
i = 0;
while ( i < keys.size )
for ( i = 0; i < keys.size; i++ )
{
if ( maps/mp/zombies/_zm_magicbox::treasure_chest_canplayerreceiveweapon( player, keys[ i ], pap_triggers ) )
{
return keys[ i ];
}
i++;
}
return keys[ 0 ];
}
@ -1155,7 +1081,7 @@ pers_treasure_chest_choosespecialweapon( player )
}
}
pers_treasure_chest_get_weapons_array()
pers_treasure_chest_get_weapons_array() //checked matches cerberus output
{
if ( !isDefined( level.pers_box_weapons ) )
{
@ -1170,7 +1096,7 @@ pers_treasure_chest_get_weapons_array()
}
}
pers_magic_box_firesale()
pers_magic_box_firesale() //checked partially changed to match cerberus output //for loop not changed because continues are broken in for loops while loops used instead
{
self endon( "disconnect" );
wait 1;
@ -1187,11 +1113,8 @@ pers_magic_box_firesale()
i++;
continue;
}
else
{
box = level.chests[ i ];
self thread box_firesale_teddy_bear( box, i );
}
i++;
}
while ( 1 )
@ -1200,12 +1123,9 @@ pers_magic_box_firesale()
{
break;
}
else
{
wait 0.01;
}
}
}
if ( level.round_number >= level.pers_box_weapon_lose_round )
{
return;
@ -1214,7 +1134,7 @@ pers_magic_box_firesale()
}
}
box_firesale_teddy_bear( box, box_index )
box_firesale_teddy_bear( box, box_index ) //checked changed to match cerberus output
{
self endon( "disconnect" );
m_bear = spawn( "script_model", self.origin );
@ -1234,26 +1154,20 @@ box_firesale_teddy_bear( box, box_index )
{
break;
}
else
{
wait 0.01;
}
}
m_bear setvisibletoplayer( self );
}
if ( level.zombie_vars[ "zombie_powerup_fire_sale_on" ] == 0 )
{
break;
}
else
{
wait 0.01;
}
}
m_bear delete();
}
pers_nube_unlock_watcher()
pers_nube_unlock_watcher() //checked changed to match cerberus output
{
self endon( "disconnect" );
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
@ -1279,7 +1193,6 @@ pers_nube_unlock_watcher()
if ( num_melee_kills == self.pers[ "melee_kills" ] && num_headshot_kills == self.pers[ "headshots" ] && num_boards == self.pers[ "boards" ] )
{
self.pers_num_nube_kills++;
continue;
}
else
{
@ -1291,7 +1204,7 @@ pers_nube_unlock_watcher()
}
}
pers_nube_player_ranked_as_nube( player )
pers_nube_player_ranked_as_nube( player ) //checked matches cerberus output
{
if ( player.pers_num_nube_kills >= level.pers_numb_num_kills_unlock )
{
@ -1300,7 +1213,7 @@ pers_nube_player_ranked_as_nube( player )
return 0;
}
pers_nube_weapon_upgrade_check( player, str_weapon )
pers_nube_weapon_upgrade_check( player, str_weapon ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -1315,7 +1228,7 @@ pers_nube_weapon_upgrade_check( player, str_weapon )
fx_org = player.origin;
v_dir = anglesToForward( player getplayerangles() );
v_up = anglesToUp( player getplayerangles() );
fx_org = ( fx_org + ( v_dir * 5 ) ) + ( v_up * 12 );
fx_org = ( fx_org + ( v_dir * 5 ) ) + v_up * 12;
player.upgrade_fx_origin = fx_org;
}
}
@ -1328,7 +1241,7 @@ pers_nube_weapon_upgrade_check( player, str_weapon )
return str_weapon;
}
pers_nube_weapon_ammo_check( player, str_weapon )
pers_nube_weapon_ammo_check( player, str_weapon ) //checked matches cerberus output
{
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -1350,7 +1263,7 @@ pers_nube_weapon_ammo_check( player, str_weapon )
return str_weapon;
}
pers_nube_should_we_give_raygun( player_has_weapon, player, weapon_buy )
pers_nube_should_we_give_raygun( player_has_weapon, player, weapon_buy ) //checked partially changed to match cerberus output //changed at own discretion
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -1368,36 +1281,30 @@ pers_nube_should_we_give_raygun( player_has_weapon, player, weapon_buy )
{
return player_has_weapon;
}
if ( !player hasweapon( "rottweil72_zm" ) )
if ( player hasweapon( "rottweil72_zm" ) || player hasweapon( "rottweil72_upgraded_zm" ) )
{
player_has_olympia = player hasweapon( "rottweil72_upgraded_zm" );
player_has_olympia = 1;
}
if ( !player hasweapon( "ray_gun_zm" ) )
if ( player hasweapon( "ray_gun_zm" ) || player hasweapon( "ray_gun_upgraded_zm" ) )
{
player_has_raygun = player hasweapon( "ray_gun_upgraded_zm" );
player_has_raygun = 1;
}
if ( player_has_olympia && player_has_raygun )
{
player_has_weapon = 1;
}
else
{
if ( pers_nube_player_ranked_as_nube( player ) && player_has_olympia && player_has_raygun == 0 )
else if ( pers_nube_player_ranked_as_nube( player ) && player_has_olympia && player_has_raygun == 0 )
{
player_has_weapon = 0;
}
else
{
if ( isDefined( player.pers_upgrades_awarded[ "nube" ] ) && player.pers_upgrades_awarded[ "nube" ] && player_has_raygun )
else if ( isDefined( player.pers_upgrades_awarded[ "nube" ] ) && player.pers_upgrades_awarded[ "nube" ] && player_has_raygun )
{
player_has_weapon = 1;
}
}
}
return player_has_weapon;
}
pers_nube_ammo_hint_string( player, weapon )
pers_nube_ammo_hint_string( player, weapon ) //checked matches cerberus output
{
ammo_cost = 0;
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
@ -1417,7 +1324,7 @@ pers_nube_ammo_hint_string( player, weapon )
return 1;
}
pers_nube_ammo_cost( player, ammo_cost )
pers_nube_ammo_cost( player, ammo_cost ) //checked matches cerberus output
{
if ( player hasweapon( "ray_gun_zm" ) )
{
@ -1430,7 +1337,7 @@ pers_nube_ammo_cost( player, ammo_cost )
return ammo_cost;
}
pers_nube_override_ammo_cost( player, weapon, ammo_cost )
pers_nube_override_ammo_cost( player, weapon, ammo_cost ) //checked matches cerberus output
{
if ( !maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{
@ -1443,3 +1350,5 @@ pers_nube_override_ammo_cost( player, weapon, ammo_cost )
return ammo_cost;
}

View File

@ -5,7 +5,7 @@
#include maps/mp/_utility;
#include common_scripts/utility;
pers_register_upgrade( name, upgrade_active_func, stat_name, stat_desired_value, game_end_reset_if_not_achieved )
pers_register_upgrade( name, upgrade_active_func, stat_name, stat_desired_value, game_end_reset_if_not_achieved ) //checked matches cerberus output
{
if ( !isDefined( level.pers_upgrades ) )
{
@ -37,7 +37,7 @@ pers_register_upgrade( name, upgrade_active_func, stat_name, stat_desired_value,
*/
}
add_pers_upgrade_stat( name, stat_name, stat_desired_value )
add_pers_upgrade_stat( name, stat_name, stat_desired_value ) //checked matches cerberus output
{
if ( !isDefined( level.pers_upgrades[ name ] ) )
{
@ -52,7 +52,7 @@ add_pers_upgrade_stat( name, stat_name, stat_desired_value )
level.pers_upgrades[ name ].stat_desired_values[ stats_size ] = stat_desired_value;
}
pers_upgrades_monitor()
pers_upgrades_monitor() //checked partially changed to match cerberus output //did not change while loops to for loops because continues are broken in for loops
{
if ( !isDefined( level.pers_upgrades ) )
{
@ -78,8 +78,6 @@ pers_upgrades_monitor()
player_index++;
continue;
}
else
{
pers_upgrade_index = 0;
while ( pers_upgrade_index < level.pers_upgrades_keys.size )
{
@ -92,12 +90,9 @@ pers_upgrades_monitor()
{
if ( isDefined( player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] ) && player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] )
{
//this checks whether the play already has the upgrade
pers_upgrade_index++;
continue;
}
else
{
player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] = 1;
if ( flag( "initial_blackscreen_passed" ) && !is_true( player.is_hotjoining ) )
{
@ -109,7 +104,7 @@ pers_upgrades_monitor()
player playsoundtoplayer( "evt_player_upgrade", player );
if ( isDefined( level.pers_upgrade_vo_spoken ) && level.pers_upgrade_vo_spoken )
{
player delay_thread( 1, ::create_and_play_dialog, "general", type, undefined, level.snd_pers_upgrade_force_variant );
player delay_thread( 1, maps/mp/zombies/_zm_audio::create_and_play_dialog, "general", type, undefined, level.snd_pers_upgrade_force_variant );
}
else
{
@ -130,9 +125,11 @@ pers_upgrades_monitor()
playfx( level._effect[ "upgrade_aquired" ], fx_org );
level thread maps/mp/zombies/_zm::disable_end_game_intermission( 1.5 );
}
/*
/#
player iprintlnbold( "Upgraded!" );
#/
*/
if ( isDefined( pers_upgrade.upgrade_active_func ) )
{
player thread [[ pers_upgrade.upgrade_active_func ]]();
@ -140,9 +137,6 @@ pers_upgrades_monitor()
pers_upgrade_index++;
continue;
}
}
else
{
if ( isDefined( player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] ) && player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] )
{
if ( flag( "initial_blackscreen_passed" ) && !is_true( player.is_hotjoining ) )
@ -157,20 +151,18 @@ pers_upgrades_monitor()
}
player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] = 0;
}
}
pers_upgrade_index++;
}
player.pers_upgrade_force_test = 0;
player.stats_this_frame = [];
}
}
player_index++;
}
wait 0.05;
}
}
wait_for_game_end()
wait_for_game_end() //checked changed to match cerberus output
{
if ( !is_classic() )
{
@ -178,38 +170,31 @@ wait_for_game_end()
}
level waittill( "end_game" );
players = getplayers();
player_index = 0;
while ( player_index < players.size )
for ( player_index = 0; player_index < players.size; player_index++ )
{
player = players[ player_index ];
index = 0;
while ( index < level.pers_upgrades_keys.size )
for ( index = 0; index < level.pers_upgrades_keys.size; index++ )
{
str_name = level.pers_upgrades_keys[ index ];
game_end_reset_if_not_achieved = level.pers_upgrades[ str_name ].game_end_reset_if_not_achieved;
while ( isDefined( game_end_reset_if_not_achieved ) && game_end_reset_if_not_achieved == 1 )
if ( isDefined( game_end_reset_if_not_achieved ) && game_end_reset_if_not_achieved == 1 )
{
while ( isDefined( player.pers_upgrades_awarded[ str_name ] ) && !player.pers_upgrades_awarded[ str_name ] )
if ( isDefined( player.pers_upgrades_awarded[ str_name ] ) && !player.pers_upgrades_awarded[ str_name ] )
{
stat_index = 0;
while ( stat_index < level.pers_upgrades[ str_name ].stat_names.size )
for ( stat_index = 0; stat_index < level.pers_upgrades[ str_name ].stat_names.size; stat_index++ )
{
player maps/mp/zombies/_zm_stats::zero_client_stat( level.pers_upgrades[ str_name ].stat_names[ stat_index ], 0 );
stat_index++;
}
}
}
index++;
}
player_index++;
}
}
check_pers_upgrade( pers_upgrade )
check_pers_upgrade( pers_upgrade ) //checked changed to match cerberus output
{
should_award = 1;
i = 0;
while ( i < pers_upgrade.stat_names.size )
for ( i = 0; i < pers_upgrade.stat_names.size; i++ )
{
stat_name = pers_upgrade.stat_names[ i ];
should_award = self check_pers_upgrade_stat( stat_name, pers_upgrade.stat_desired_values[ i ] );
@ -217,23 +202,18 @@ check_pers_upgrade( pers_upgrade )
{
break;
}
else
{
i++;
}
}
return should_award;
}
is_any_pers_upgrade_stat_updated( pers_upgrade )
is_any_pers_upgrade_stat_updated( pers_upgrade ) //checked changed to match cerberus output
{
if ( isDefined( self.pers_upgrade_force_test ) && self.pers_upgrade_force_test )
{
return 1;
}
result = 0;
i = 0;
while ( i < pers_upgrade.stat_names.size )
for ( i = 0; i < pers_upgrade.stat_names.size; i++ )
{
stat_name = pers_upgrade.stat_names[ i ];
if ( isDefined( self.stats_this_frame[ stat_name ] ) )
@ -241,15 +221,11 @@ is_any_pers_upgrade_stat_updated( pers_upgrade )
result = 1;
break;
}
else
{
i++;
}
}
return result;
}
check_pers_upgrade_stat( stat_name, stat_desired_value )
check_pers_upgrade_stat( stat_name, stat_desired_value ) //checked matches cerberus output
{
should_award = 1;
current_stat_value = self maps/mp/zombies/_zm_stats::get_global_stat( stat_name );
@ -260,7 +236,7 @@ check_pers_upgrade_stat( stat_name, stat_desired_value )
return should_award;
}
round_end()
round_end() //checked matches cerberus output
{
if ( !is_classic() )
{
@ -276,3 +252,4 @@ round_end()
}
}

View File

@ -403,7 +403,7 @@ save_weapons_for_tombstone( player ) //checked changed to match cerberus output
{
self.tombstone_melee_weapons = [];
for ( i = 0; i < level._melee_weapons.size; i++; )
for ( i = 0; i < level._melee_weapons.size; i++ )
{
self save_weapon_for_tombstone( player, level._melee_weapons[ i ].weapon_name );
}

View File

@ -13,10 +13,13 @@ 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_gump.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
patch_zm/maps/mp/zombies/_zm_perks.gsc
patch_zm/maps/mp/zombies/_zm_pers_upgrades.gsc
patch_zm/maps/mp/zombies/_zm_pers_upgrades_system.gsc
patch_zm/maps/mp/zombies/_zm_powerups.gsc
patch_zm/maps/mp/zombies/_zm_server_throttle.gsc
patch_zm/maps/mp/zombies/_zm_score.gsc
@ -37,12 +40,12 @@ patch_zm/maps/mp/zombies/_zm_weapons.gsc
### The following scripts compile and run serverside but clients cannot join due to exe_client_field_mismatch
```
patch_zm/maps/mp/zombies/_zm.gsc
patch_zm/maps/mp/zombies/_zm_gump.gsc
patch_zm/maps/mp/zombies/_zm_equipment.gsc
```
### The following scripts compile but cause a minidump or other severe error:
```
patch_zm/maps/mp/zombies/_load.gsc
patch_zm/maps/mp/zombies/_zm_pers_upgrades_functions.gsc
```
### The following scripts are not tested yet, uploaded to setup a baseline:
```
@ -77,9 +80,6 @@ patch_zm/maps/mp/zombies/_zm_hackables_packapunch.gsc
patch_zm/maps/mp/zombies/_zm_hackables_perks.gsc
patch_zm/maps/mp/zombies/_zm_hackables_powerups.gsc
patch_zm/maps/mp/zombies/_zm_hackables_wallbuys.gsc
patch_zm/maps/mp/zombies/_zm_pers_upgrades.gsc
patch_zm/maps/mp/zombies/_zm_pers_upgrades_functions.gsc
patch_zm/maps/mp/zombies/_zm_pers_upgrades_system.gsc
```
### notes: