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 maps/mp/_utility;
#include common_scripts/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" ); 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 ) 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 ) 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 maps/mp/_utility;
#include common_scripts/utility; #include common_scripts/utility;
pers_upgrade_init() pers_upgrade_init() //checked matches cerberus output
{ {
setup_pers_upgrade_boards(); setup_pers_upgrade_boards();
setup_pers_upgrade_revive(); setup_pers_upgrade_revive();
@ -27,7 +27,7 @@ pers_upgrade_init()
level thread pers_upgrades_monitor(); level thread pers_upgrades_monitor();
} }
pers_abilities_init_globals() pers_abilities_init_globals() //checked matches cerberus output
{ {
self.successful_revives = 0; self.successful_revives = 0;
self.failed_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() ) if ( !is_classic() )
{ {
@ -58,7 +58,7 @@ is_pers_system_active()
return 1; 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" ) ) if ( level flag_exists( "sq_minigame_active" ) && flag( "sq_minigame_active" ) )
{ {
@ -67,7 +67,7 @@ is_pers_system_disabled()
return 0; return 0;
} }
setup_pers_upgrade_boards() setup_pers_upgrade_boards() //checked matches cerberus output
{ {
if ( isDefined( level.pers_upgrade_boards ) && level.pers_upgrade_boards ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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 ) 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" ); self endon( "disconnect" );
last_round_number = level.round_number; 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" ); self endon( "disconnect" );
while ( 1 ) 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" ); self endon( "disconnect" );
while ( 1 ) 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" ); self endon( "disconnect" );
wait 0.5; wait 0.5;
@ -287,7 +287,6 @@ pers_upgrade_cash_back_active()
{ {
self waittill( "cash_back_failed_prone" ); self waittill( "cash_back_failed_prone" );
wait 0.1; wait 0.1;
if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() ) if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{ {
self.failed_cash_back_prones++; 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 maps/mp/zombies/_zm_stats::zero_client_stat( "pers_cash_back_prone", 0 );
self.failed_cash_back_prones = 0; self.failed_cash_back_prones = 0;
wait 0.4; wait 0.4;
return; return;
} }
} }
} }
} }
pers_upgrade_insta_kill_active() pers_upgrade_insta_kill_active() //checked changed to match cerberus output
{ {
self endon( "disconnect" ); self endon( "disconnect" );
wait 0.2; wait 0.2;
wait 0.2; wait 0.2;
while ( 1 ) while ( 1 )
{ {
@ -327,16 +324,13 @@ pers_upgrade_insta_kill_active()
} }
break; break;
} }
else
{
}
} }
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_insta_kill", 0 ); self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_insta_kill", 0 );
self kill_insta_kill_upgrade_hud_icon(); self kill_insta_kill_upgrade_hud_icon();
wait 0.4; 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() ) if ( maps/mp/zombies/_zm_pers_upgrades::is_pers_system_active() )
{ {
@ -351,7 +345,7 @@ is_insta_kill_upgraded_and_active()
return 0; return 0;
} }
pers_upgrade_jugg_active() pers_upgrade_jugg_active() //checked changed to match cerberus output
{ {
self endon( "disconnect" ); self endon( "disconnect" );
wait 0.5; 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_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", 0 );
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_jugg_downgrade_count", 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" ); self endon( "disconnect" );
wait 0.2; wait 0.2;
wait 0.2; wait 0.2;
level waittill( "carpenter_finished" ); level waittill( "carpenter_finished" );
self.pers_carpenter_kill = undefined; self.pers_carpenter_kill = undefined;
@ -399,23 +389,18 @@ pers_upgrade_carpenter_active()
{ {
break; break;
} }
else
{
}
self.pers_carpenter_kill = undefined;
} }
self.pers_carpenter_kill = undefined;
} }
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_carpenter", 0 ); self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_carpenter", 0 );
wait 0.4; 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 ) if ( isDefined( level.pers_upgrade_carpenter ) && level.pers_upgrade_carpenter )
{ {
self endon( "disconnect" ); self endon( "disconnect" );
if ( isDefined( self.pers_upgrades_awarded[ "carpenter" ] ) && self.pers_upgrades_awarded[ "carpenter" ] ) if ( isDefined( self.pers_upgrades_awarded[ "carpenter" ] ) && self.pers_upgrades_awarded[ "carpenter" ] )
{ {
level.pers_carpenter_boards_active = 1; level.pers_carpenter_boards_active = 1;
@ -448,7 +433,10 @@ persistent_carpenter_ability_check()
{ {
break; 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; 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() ) 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" ] ) 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(); self thread time_remaining_pers_upgrade();
} }
time_remaining_pers_upgrade() time_remaining_pers_upgrade() //checked matches cerberus output
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "kill_insta_kill_upgrade_hud_icon" ); self endon( "kill_insta_kill_upgrade_hud_icon" );
@ -500,7 +488,7 @@ time_remaining_pers_upgrade()
self kill_insta_kill_upgrade_hud_icon(); 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.zombie_vars[ "zombie_powerup_insta_kill_ug_on" ] = 0;
self._show_solo_hud = 0; self._show_solo_hud = 0;
@ -508,7 +496,7 @@ kill_insta_kill_upgrade_hud_icon()
self notify( "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" ); self endon( "disconnect" );
wait 0.5; wait 0.5;
@ -529,7 +517,7 @@ pers_upgrade_flopper_active()
self.pers_num_flopper_damages = 0; self.pers_num_flopper_damages = 0;
} }
pers_upgrade_perk_lose_active() pers_upgrade_perk_lose_active() //checked matches cerberus output
{ {
self endon( "disconnect" ); self endon( "disconnect" );
wait 0.5; 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 ); 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" ); self endon( "disconnect" );
wait 0.5; wait 0.5;
@ -567,9 +555,6 @@ pers_upgrade_pistol_points_active()
{ {
break; 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 ); 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" ); self endon( "disconnect" );
wait 0.5; 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 ); 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" ); self endon( "disconnect" );
wait 0.5; wait 0.5;
@ -617,7 +602,7 @@ pers_upgrade_sniper_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_sniper_counter", 0 ); 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" ); self endon( "disconnect" );
wait 0.5; wait 0.5;
@ -639,9 +624,6 @@ pers_upgrade_box_weapon_active()
break; 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 ); 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" ); self endon( "disconnect" );
wait 0.5; wait 0.5;
@ -671,9 +653,6 @@ pers_upgrade_nube_active()
break; break;
} }
} }
else
{
}
} }
/* /*
/# /#
@ -683,3 +662,4 @@ pers_upgrade_nube_active()
self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_nube_counter", 0 ); self maps/mp/zombies/_zm_stats::zero_client_stat( "pers_nube_counter", 0 );
} }

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
#include maps/mp/_utility; #include maps/mp/_utility;
#include common_scripts/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 ) ) 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 ] ) ) 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; 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 ) ) if ( !isDefined( level.pers_upgrades ) )
{ {
@ -78,91 +78,83 @@ pers_upgrades_monitor()
player_index++; player_index++;
continue; continue;
} }
else pers_upgrade_index = 0;
while ( pers_upgrade_index < level.pers_upgrades_keys.size )
{ {
pers_upgrade_index = 0; pers_upgrade = level.pers_upgrades[ level.pers_upgrades_keys[ pers_upgrade_index ] ];
while ( pers_upgrade_index < level.pers_upgrades_keys.size ) is_stat_updated = player is_any_pers_upgrade_stat_updated( pers_upgrade );
if ( is_stat_updated )
{ {
pers_upgrade = level.pers_upgrades[ level.pers_upgrades_keys[ pers_upgrade_index ] ]; should_award = player check_pers_upgrade( pers_upgrade );
is_stat_updated = player is_any_pers_upgrade_stat_updated( pers_upgrade ); if ( should_award )
if ( is_stat_updated )
{ {
should_award = player check_pers_upgrade( pers_upgrade ); 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 ( should_award )
{ {
if ( isDefined( player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] ) && player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] ) pers_upgrade_index++;
continue;
}
player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] = 1;
if ( flag( "initial_blackscreen_passed" ) && !is_true( player.is_hotjoining ) )
{
type = "upgrade";
if ( isDefined( level.snd_pers_upgrade_force_type ) )
{ {
//this checks whether the play already has the upgrade type = level.snd_pers_upgrade_force_type;
pers_upgrade_index++; }
continue; player playsoundtoplayer( "evt_player_upgrade", player );
if ( isDefined( level.pers_upgrade_vo_spoken ) && level.pers_upgrade_vo_spoken )
{
player delay_thread( 1, maps/mp/zombies/_zm_audio::create_and_play_dialog, "general", type, undefined, level.snd_pers_upgrade_force_variant );
} }
else else
{ {
player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] = 1; player delay_thread( 1, ::play_vox_to_player, "general", type, level.snd_pers_upgrade_force_variant );
if ( flag( "initial_blackscreen_passed" ) && !is_true( player.is_hotjoining ) )
{
type = "upgrade";
if ( isDefined( level.snd_pers_upgrade_force_type ) )
{
type = level.snd_pers_upgrade_force_type;
}
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 );
}
else
{
player delay_thread( 1, ::play_vox_to_player, "general", type, level.snd_pers_upgrade_force_variant );
}
if ( isDefined( player.upgrade_fx_origin ) )
{
fx_org = player.upgrade_fx_origin;
player.upgrade_fx_origin = undefined;
}
else
{
fx_org = player.origin;
v_dir = anglesToForward( player getplayerangles() );
v_up = anglesToUp( player getplayerangles() );
fx_org = ( fx_org + ( v_dir * 30 ) ) + ( v_up * 12 );
}
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 ]]();
}
pers_upgrade_index++;
continue;
} }
} if ( isDefined( player.upgrade_fx_origin ) )
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 ) ) fx_org = player.upgrade_fx_origin;
{ player.upgrade_fx_origin = undefined;
player playsoundtoplayer( "evt_player_downgrade", player );
}
/*
/#
player iprintlnbold( "Downgraded!" );
#/
*/
} }
player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] = 0; else
{
fx_org = player.origin;
v_dir = anglesToForward( player getplayerangles() );
v_up = anglesToUp( player getplayerangles() );
fx_org = ( fx_org + ( v_dir * 30 ) ) + ( v_up * 12 );
}
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 ]]();
}
pers_upgrade_index++;
continue;
} }
pers_upgrade_index++; 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 ) )
{
player playsoundtoplayer( "evt_player_downgrade", player );
}
/*
/#
player iprintlnbold( "Downgraded!" );
#/
*/
}
player.pers_upgrades_awarded[ level.pers_upgrades_keys[ pers_upgrade_index ] ] = 0;
} }
player.pers_upgrade_force_test = 0; pers_upgrade_index++;
player.stats_this_frame = [];
} }
player.pers_upgrade_force_test = 0;
player.stats_this_frame = [];
} }
player_index++; player_index++;
} }
@ -170,7 +162,7 @@ pers_upgrades_monitor()
} }
} }
wait_for_game_end() wait_for_game_end() //checked changed to match cerberus output
{ {
if ( !is_classic() ) if ( !is_classic() )
{ {
@ -178,38 +170,31 @@ wait_for_game_end()
} }
level waittill( "end_game" ); level waittill( "end_game" );
players = getplayers(); players = getplayers();
player_index = 0; for ( player_index = 0; player_index < players.size; player_index++ )
while ( player_index < players.size )
{ {
player = players[ player_index ]; player = players[ player_index ];
index = 0; for ( index = 0; index < level.pers_upgrades_keys.size; index++ )
while ( index < level.pers_upgrades_keys.size )
{ {
str_name = level.pers_upgrades_keys[ 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; 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; for ( stat_index = 0; stat_index < level.pers_upgrades[ str_name ].stat_names.size; stat_index++ )
while ( stat_index < level.pers_upgrades[ str_name ].stat_names.size )
{ {
player maps/mp/zombies/_zm_stats::zero_client_stat( level.pers_upgrades[ str_name ].stat_names[ stat_index ], 0 ); 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; should_award = 1;
i = 0; for ( i = 0; i < pers_upgrade.stat_names.size; i++ )
while ( i < pers_upgrade.stat_names.size )
{ {
stat_name = pers_upgrade.stat_names[ i ]; stat_name = pers_upgrade.stat_names[ i ];
should_award = self check_pers_upgrade_stat( stat_name, pers_upgrade.stat_desired_values[ 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; break;
} }
else
{
i++;
}
} }
return should_award; 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 ) if ( isDefined( self.pers_upgrade_force_test ) && self.pers_upgrade_force_test )
{ {
return 1; return 1;
} }
result = 0; result = 0;
i = 0; for ( i = 0; i < pers_upgrade.stat_names.size; i++ )
while ( i < pers_upgrade.stat_names.size )
{ {
stat_name = pers_upgrade.stat_names[ i ]; stat_name = pers_upgrade.stat_names[ i ];
if ( isDefined( self.stats_this_frame[ stat_name ] ) ) if ( isDefined( self.stats_this_frame[ stat_name ] ) )
@ -241,15 +221,11 @@ is_any_pers_upgrade_stat_updated( pers_upgrade )
result = 1; result = 1;
break; break;
} }
else
{
i++;
}
} }
return result; 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; should_award = 1;
current_stat_value = self maps/mp/zombies/_zm_stats::get_global_stat( stat_name ); 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; return should_award;
} }
round_end() round_end() //checked matches cerberus output
{ {
if ( !is_classic() ) 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 = []; 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 ); 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_bot.gsc
patch_zm/maps/mp/zombies/_zm_clone.gsc patch_zm/maps/mp/zombies/_zm_clone.gsc
patch_zm/maps/mp/zombies/_zm_ffotd.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_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
patch_zm/maps/mp/zombies/_zm_perks.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_powerups.gsc
patch_zm/maps/mp/zombies/_zm_server_throttle.gsc patch_zm/maps/mp/zombies/_zm_server_throttle.gsc
patch_zm/maps/mp/zombies/_zm_score.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 ### 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.gsc
patch_zm/maps/mp/zombies/_zm_gump.gsc
patch_zm/maps/mp/zombies/_zm_equipment.gsc patch_zm/maps/mp/zombies/_zm_equipment.gsc
``` ```
### The following scripts compile but cause a minidump or other severe error: ### The following scripts compile but cause a minidump or other severe error:
``` ```
patch_zm/maps/mp/zombies/_load.gsc 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: ### 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_perks.gsc
patch_zm/maps/mp/zombies/_zm_hackables_powerups.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_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: ### notes: