uploaded the checked versions of the last 6 scripts

Also fixed _zm_utility where zombies would not die to nukes and insta kill. Starting work on gametypes_zm now as well as uploading a patch mp folder since I will do the similar mp scripts at the same time.
This commit is contained in:
JezuzLizard
2020-04-29 08:16:00 -07:00
parent 21835a4989
commit 043ddd2880
7 changed files with 1205 additions and 1331 deletions

File diff suppressed because it is too large Load Diff

View File

@ -7,9 +7,9 @@
#include maps/mp/_utility; #include maps/mp/_utility;
#include common_scripts/utility; #include common_scripts/utility;
#using_animtree( "zombie_turbine" ); //#using_animtree( "zombie_turbine" );
init( hint, howto ) init( hint, howto ) //checked matches cerberus output
{ {
if ( !isDefined( hint ) ) if ( !isDefined( hint ) )
{ {
@ -35,7 +35,7 @@ init( hint, howto )
level._turbine_disappear_fx = loadfx( "maps/zombie/fx_zmb_tranzit_turbine_explo" ); level._turbine_disappear_fx = loadfx( "maps/zombie/fx_zmb_tranzit_turbine_explo" );
} }
onplayerconnect() onplayerconnect() //checked matches cerberus output
{ {
for ( ;; ) for ( ;; )
{ {
@ -44,7 +44,7 @@ onplayerconnect()
} }
} }
onplayerspawned() onplayerspawned() //checked matches cerberus output
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self thread setupwatchers(); self thread setupwatchers();
@ -55,14 +55,14 @@ onplayerspawned()
} }
} }
setupwatchers() setupwatchers() //checked matches cerberus output
{ {
self waittill( "weapon_watchers_created" ); self waittill( "weapon_watchers_created" );
watcher = maps/mp/gametypes_zm/_weaponobjects::getweaponobjectwatcher( "equip_turbine" ); watcher = maps/mp/gametypes_zm/_weaponobjects::getweaponobjectwatcher( "equip_turbine" );
watcher.onspawnretrievetriggers = ::maps/mp/zombies/_zm_equipment::equipment_onspawnretrievableweaponobject; watcher.onspawnretrievetriggers = maps/mp/zombies/_zm_equipment::equipment_onspawnretrievableweaponobject;
} }
watchturbineuse() watchturbineuse() //checked matches cerberus output
{ {
self notify( "watchTurbineUse" ); self notify( "watchTurbineUse" );
self endon( "watchTurbineUse" ); self endon( "watchTurbineUse" );
@ -81,7 +81,7 @@ watchturbineuse()
} }
} }
cleanupoldturbine( preserve_state ) cleanupoldturbine( preserve_state ) //checked matches cerberus output
{ {
if ( isDefined( self.localpower ) ) if ( isDefined( self.localpower ) )
{ {
@ -109,7 +109,7 @@ cleanupoldturbine( preserve_state )
} }
} }
watchforcleanup() watchforcleanup() //checked matches cerberus output
{ {
self notify( "turbine_cleanup" ); self notify( "turbine_cleanup" );
self endon( "turbine_cleanup" ); self endon( "turbine_cleanup" );
@ -120,7 +120,7 @@ watchforcleanup()
} }
} }
depower_on_disconnect( localpower ) depower_on_disconnect( localpower ) //checked matches cerberus output
{ {
self notify( "depower_on_disconnect" ); self notify( "depower_on_disconnect" );
self endon( "depower_on_disconnect" ); self endon( "depower_on_disconnect" );
@ -131,13 +131,13 @@ depower_on_disconnect( localpower )
} }
} }
placeturbine( origin, angles ) placeturbine( origin, angles ) //checked matches cerberus output
{ {
item = self maps/mp/zombies/_zm_equipment::placed_equipment_think( "p6_anim_zm_buildable_turbine", "equip_turbine_zm", origin, angles ); item = self maps/mp/zombies/_zm_equipment::placed_equipment_think( "p6_anim_zm_buildable_turbine", "equip_turbine_zm", origin, angles );
return item; return item;
} }
dropturbine() dropturbine() //checked matches cerberus output
{ {
item = thread maps/mp/zombies/_zm_equipment::dropped_equipment_think( "p6_anim_zm_buildable_turbine", "equip_turbine_zm", self.origin, self.angles ); item = thread maps/mp/zombies/_zm_equipment::dropped_equipment_think( "p6_anim_zm_buildable_turbine", "equip_turbine_zm", self.origin, self.angles );
if ( isDefined( item ) ) if ( isDefined( item ) )
@ -159,7 +159,7 @@ dropturbine()
return item; return item;
} }
pickupturbine( item ) pickupturbine( item ) //checked matches cerberus output
{ {
item.owner = self; item.owner = self;
self.turbine_power_on = item.turbine_power_on; self.turbine_power_on = item.turbine_power_on;
@ -177,11 +177,11 @@ pickupturbine( item )
self.turbine_is_powering_on = undefined; self.turbine_is_powering_on = undefined;
} }
transferturbine( fromplayer, toplayer ) transferturbine( fromplayer, toplayer ) //checked changed to match cerberus output
{ {
while ( isDefined( toplayer.turbine_is_powering_on ) || toplayer.turbine_is_powering_on && isDefined( fromplayer.turbine_is_powering_on ) && fromplayer.turbine_is_powering_on ) while ( isDefined( toplayer.turbine_is_powering_on ) && toplayer.turbine_is_powering_on || isDefined( fromplayer.turbine_is_powering_on ) && fromplayer.turbine_is_powering_on )
{ {
wait 0,05; wait 0.05;
} }
if ( isDefined( fromplayer.buildableturbine ) && isDefined( fromplayer.buildableturbine.dying ) && fromplayer.buildableturbine.dying ) if ( isDefined( fromplayer.buildableturbine ) && isDefined( fromplayer.buildableturbine.dying ) && fromplayer.buildableturbine.dying )
{ {
@ -236,7 +236,7 @@ transferturbine( fromplayer, toplayer )
} }
} }
startturbinedeploy( weapon ) startturbinedeploy( weapon ) //checked matches cerberus output
{ {
self endon( "death" ); self endon( "death" );
self endon( "disconnect" ); self endon( "disconnect" );
@ -260,9 +260,11 @@ startturbinedeploy( weapon )
self thread turbinepowerdiminish( origin, powerradius ); self thread turbinepowerdiminish( origin, powerradius );
if ( isDefined( weapon ) ) if ( isDefined( weapon ) )
{ {
/*
/# /#
self thread debugturbine( powerradius ); self thread debugturbine( powerradius );
#/ #/
*/
self thread turbineaudio(); self thread turbineaudio();
self thread turbineanim(); self thread turbineanim();
self thread turbinepowerthink( weapon, powerradius ); self thread turbinepowerthink( weapon, powerradius );
@ -277,7 +279,7 @@ startturbinedeploy( weapon )
} }
} }
turbine_watch_for_emp( weapon, powerradius ) turbine_watch_for_emp( weapon, powerradius ) //checked changed to match cerberus output
{ {
self endon( "death" ); self endon( "death" );
self endon( "disconnect" ); self endon( "disconnect" );
@ -294,16 +296,13 @@ turbine_watch_for_emp( weapon, powerradius )
{ {
break; break;
} }
else
{
}
} }
self.turbine_emped = 1; self.turbine_emped = 1;
self.turbine_emp_time = getTime(); self.turbine_emp_time = getTime();
self notify( "turbine_power_change" ); self notify( "turbine_power_change" );
} }
turbinepowerthink( weapon, powerradius ) turbinepowerthink( weapon, powerradius ) //checked changed to match cerberus output
{ {
self endon( "death" ); self endon( "death" );
self endon( "disconnect" ); self endon( "disconnect" );
@ -311,7 +310,7 @@ turbinepowerthink( weapon, powerradius )
self.buildableturbine endon( "death" ); self.buildableturbine endon( "death" );
origin = weapon.origin; origin = weapon.origin;
self thread turbine_watch_for_emp( weapon, powerradius ); self thread turbine_watch_for_emp( weapon, powerradius );
if ( isDefined( self.turbine_power_on ) || self.turbine_power_on && isDefined( self.turbine_emped ) && self.turbine_emped ) if ( isDefined( self.turbine_power_on ) && self.turbine_power_on || isDefined( self.turbine_emped ) && self.turbine_emped )
{ {
self thread turbinepoweron( origin, powerradius ); self thread turbinepoweron( origin, powerradius );
} }
@ -326,28 +325,22 @@ turbinepowerthink( weapon, powerradius )
origin = weapon.origin; origin = weapon.origin;
} }
self thread turbinepoweron( origin, powerradius ); self thread turbinepoweron( origin, powerradius );
continue; //continue;
} }
else else if ( isDefined( self.turbine_power_is_on ) && !self.turbine_power_is_on )
{ {
if ( isDefined( self.turbine_power_is_on ) && !self.turbine_power_is_on ) self thread turbinepoweroff( origin, powerradius );
{ break;
self thread turbinepoweroff( origin, powerradius );
break;
}
else
{
if ( isDefined( weapon ) )
{
origin = weapon.origin;
}
self thread turbinepoweron( origin, powerradius );
}
} }
else if ( isDefined( weapon ) )
{
origin = weapon.origin;
}
self thread turbinepoweron( origin, powerradius );
} }
} }
turbinepowermove( weapon ) turbinepowermove( weapon ) //checked matches cerberus output
{ {
self endon( "death" ); self endon( "death" );
self endon( "disconnect" ); self endon( "disconnect" );
@ -364,11 +357,11 @@ turbinepowermove( weapon )
} }
origin = weapon.origin; origin = weapon.origin;
} }
wait 0,5; wait 0.5;
} }
} }
turbinewarmup() turbinewarmup() //checked matches cerberus output //order of operations may need to be checked
{ {
if ( isDefined( self.turbine_emped ) && self.turbine_emped ) if ( isDefined( self.turbine_emped ) && self.turbine_emped )
{ {
@ -383,14 +376,14 @@ turbinewarmup()
self.turbine_emp_time = undefined; self.turbine_emp_time = undefined;
} }
self.buildableturbine maps/mp/zombies/_zm_equipment::signal_equipment_activated( 3 ); self.buildableturbine maps/mp/zombies/_zm_equipment::signal_equipment_activated( 3 );
wait 0,5; wait 0.5;
self.buildableturbine maps/mp/zombies/_zm_equipment::signal_equipment_activated( 2 ); self.buildableturbine maps/mp/zombies/_zm_equipment::signal_equipment_activated( 2 );
wait 0,5; wait 0.5;
self.buildableturbine maps/mp/zombies/_zm_equipment::signal_equipment_activated( 1 ); self.buildableturbine maps/mp/zombies/_zm_equipment::signal_equipment_activated( 1 );
wait 0,5; wait 0.5;
} }
turbinepoweron( origin, powerradius ) turbinepoweron( origin, powerradius ) //checked matches cerberus output
{ {
self endon( "death" ); self endon( "death" );
self endon( "disconnect" ); self endon( "disconnect" );
@ -420,7 +413,7 @@ turbinepoweron( origin, powerradius )
} }
} }
turbinepoweroff( origin, powerradius ) turbinepoweroff( origin, powerradius ) //checked matches cerberus output
{ {
if ( isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on ) if ( isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on )
{ {
@ -439,7 +432,7 @@ turbinepoweroff( origin, powerradius )
} }
} }
turbine_disappear_fx( origin, waittime ) turbine_disappear_fx( origin, waittime ) //checked matches cerberus output
{ {
if ( isDefined( waittime ) && waittime > 0 ) if ( isDefined( waittime ) && waittime > 0 )
{ {
@ -452,7 +445,7 @@ turbine_disappear_fx( origin, waittime )
} }
} }
turbinefxonce( withaoe ) turbinefxonce( withaoe ) //checked matches cerberus output
{ {
if ( isDefined( self ) && isDefined( self.buildableturbine ) && isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on ) if ( isDefined( self ) && isDefined( self.buildableturbine ) && isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on )
{ {
@ -488,26 +481,26 @@ turbinefxonce( withaoe )
} }
} }
turbinefx() turbinefx() //checked matches cerberus output
{ {
self endon( "disconnect" ); self endon( "disconnect" );
self endon( "equip_turbine_zm_taken" ); self endon( "equip_turbine_zm_taken" );
while ( isDefined( self ) && isDefined( self.buildableturbine ) && isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on ) while ( isDefined( self ) && isDefined( self.buildableturbine ) && isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on )
{ {
self turbinefxonce( 1 ); self turbinefxonce( 1 );
wait 0,5; wait 0.5;
self turbinefxonce( 0 ); self turbinefxonce( 0 );
wait 0,5; wait 0.5;
} }
} }
turbineaudio() turbineaudio() //checked changed to match cerberus output
{ {
if ( !isDefined( self.buildableturbine ) ) if ( !isDefined( self.buildableturbine ) )
{ {
return; return;
} }
if ( isDefined( self.turbine_power_is_on ) || !self.turbine_power_is_on && isDefined( self.turbine_emped ) && self.turbine_emped ) if ( isDefined( self.turbine_power_is_on ) && !self.turbine_power_is_on || isDefined( self.turbine_emped ) && self.turbine_emped )
{ {
self.buildableturbine stoploopsound(); self.buildableturbine stoploopsound();
return; return;
@ -515,12 +508,12 @@ turbineaudio()
self.buildableturbine playloopsound( "zmb_turbine_loop", 2 ); self.buildableturbine playloopsound( "zmb_turbine_loop", 2 );
} }
init_animtree() init_animtree() //checked matches cerberus output
{ {
scriptmodelsuseanimtree( -1 ); scriptmodelsuseanimtree( -1 );
} }
turbineanim( wait_for_end ) turbineanim( wait_for_end ) //checked changed to match cerberus output
{ {
if ( !isDefined( self.buildableturbine ) ) if ( !isDefined( self.buildableturbine ) )
{ {
@ -533,17 +526,12 @@ turbineanim( wait_for_end )
animlength = getanimlength( %o_zombie_buildable_turbine_death ); animlength = getanimlength( %o_zombie_buildable_turbine_death );
self.buildableturbine setanim( %o_zombie_buildable_turbine_death ); self.buildableturbine setanim( %o_zombie_buildable_turbine_death );
break; break;
} }
else
{
if ( isDefined( self.turbine_emped ) && self.turbine_emped ) if ( isDefined( self.turbine_emped ) && self.turbine_emped )
{ {
self.buildableturbine clearanim( %o_zombie_buildable_turbine_fullpower, 0 ); self.buildableturbine clearanim( %o_zombie_buildable_turbine_fullpower, 0 );
return; return;
break; }
}
else
{
switch( self.turbine_power_level ) switch( self.turbine_power_level )
{ {
case 3: case 3:
@ -560,15 +548,13 @@ else
self.buildableturbine setanim( %o_zombie_buildable_turbine_neardeath ); self.buildableturbine setanim( %o_zombie_buildable_turbine_neardeath );
break; break;
} }
} if ( isDefined( wait_for_end ) && wait_for_end )
} {
if ( isDefined( wait_for_end ) && wait_for_end ) wait animlength;
{ }
wait animlength;
}
} }
turbinedecay() turbinedecay() //checked changed to match cerberus output //order of operations may need to be checked
{ {
self notify( "turbineDecay" ); self notify( "turbineDecay" );
self endon( "turbineDecay" ); self endon( "turbineDecay" );
@ -601,30 +587,27 @@ turbinedecay()
{ {
self.turbine_power_level = 0; self.turbine_power_level = 0;
} }
else else if ( isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on )
{ {
if ( isDefined( self.turbine_power_is_on ) && self.turbine_power_is_on ) cost = 1;
if ( isDefined( self.localpower ) )
{ {
cost = 1; cost += maps/mp/zombies/_zm_power::get_local_power_cost( self.localpower );
if ( isDefined( self.localpower ) ) }
{ self.turbine_health -= cost;
cost += maps/mp/zombies/_zm_power::get_local_power_cost( self.localpower ); if ( self.turbine_health < 200 )
} {
self.turbine_health -= cost; self.turbine_power_level = 1;
if ( self.turbine_health < 200 ) break;
{ }
self.turbine_power_level = 1; else if ( self.turbine_health < 600 )
break; {
} self.turbine_power_level = 2;
else if ( self.turbine_health < 600 ) break;
{ }
self.turbine_power_level = 2; else
break; {
} self.turbine_power_level = 4;
else
{
self.turbine_power_level = 4;
}
} }
} }
if ( old_power_level != self.turbine_power_level ) if ( old_power_level != self.turbine_power_level )
@ -653,7 +636,7 @@ turbinedecay()
self cleanupoldturbine(); self cleanupoldturbine();
} }
destroy_placed_turbine() destroy_placed_turbine() //checked matches cerberus output
{ {
if ( isDefined( self.buildableturbine ) ) if ( isDefined( self.buildableturbine ) )
{ {
@ -661,7 +644,7 @@ destroy_placed_turbine()
{ {
while ( isDefined( self.buildableturbine ) ) while ( isDefined( self.buildableturbine ) )
{ {
wait 0,05; wait 0.05;
} }
return; return;
} }
@ -675,13 +658,13 @@ destroy_placed_turbine()
} }
} }
wait_and_take_equipment() wait_and_take_equipment() //checked matches cerberus output
{ {
wait 0,05; wait 0.05;
self thread maps/mp/zombies/_zm_equipment::equipment_release( "equip_turbine_zm" ); self thread maps/mp/zombies/_zm_equipment::equipment_release( "equip_turbine_zm" );
} }
turbinepowerdiminish( origin, powerradius ) turbinepowerdiminish( origin, powerradius ) //checked changed to match cerberus output
{ {
self endon( "death" ); self endon( "death" );
self endon( "disconnect" ); self endon( "disconnect" );
@ -696,31 +679,32 @@ turbinepowerdiminish( origin, powerradius )
case 4: case 4:
break; break;
case 3: case 3:
case 2: break;
self.turbine_power_on = 1; case 2:
wait randomintrange( 12, 20 ); self.turbine_power_on = 1;
self turbinepoweroff( origin, powerradius ); wait randomintrange( 12, 20 );
self.turbine_power_on = 0; self turbinepoweroff( origin, powerradius );
wait randomintrange( 3, 8 ); self.turbine_power_on = 0;
self turbinepoweron( origin, powerradius ); wait randomintrange( 3, 8 );
break; self turbinepoweron( origin, powerradius );
case 1: break;
self.turbine_power_on = 1; case 1:
wait randomintrange( 3, 7 ); self.turbine_power_on = 1;
self turbinepoweroff( origin, powerradius ); wait randomintrange( 3, 7 );
self.turbine_power_on = 0; self turbinepoweroff( origin, powerradius );
wait randomintrange( 6, 12 ); self.turbine_power_on = 0;
self turbinepoweron( origin, powerradius ); wait randomintrange( 6, 12 );
break; self turbinepoweron( origin, powerradius );
} break;
} }
wait 0,05; wait 0.05;
} }
} }
} }
debugturbine( radius ) debugturbine( radius ) //checked changed to match cerberus output may need to check order of operations
{ {
/*
/# /#
self endon( "death" ); self endon( "death" );
self endon( "disconnect" ); self endon( "disconnect" );
@ -728,9 +712,10 @@ debugturbine( radius )
self.buildableturbine endon( "death" ); self.buildableturbine endon( "death" );
while ( isDefined( self.buildableturbine ) ) while ( isDefined( self.buildableturbine ) )
{ {
//missing dvar name
if ( getDvarInt( #"EB512CB7" ) ) if ( getDvarInt( #"EB512CB7" ) )
{ {
color = ( 0, 0, 1 ); color = ( 0, 1, 0 );
text = ""; text = "";
if ( isDefined( self.turbine_health ) ) if ( isDefined( self.turbine_health ) )
{ {
@ -739,7 +724,7 @@ debugturbine( radius )
if ( isDefined( self.buildableturbine.dying ) && self.buildableturbine.dying ) if ( isDefined( self.buildableturbine.dying ) && self.buildableturbine.dying )
{ {
text = "dying"; text = "dying";
color = ( 0, 0, 1 ); color = ( 0, 0, 0 );
} }
else else
{ {
@ -765,7 +750,7 @@ debugturbine( radius )
{ {
if ( self.turbine_health < 200 ) if ( self.turbine_health < 200 )
{ {
color = ( 0, 0, 1 ); color = ( 1, 0, 0 );
break; break;
} }
else if ( self.turbine_health < 600 ) else if ( self.turbine_health < 600 )
@ -775,15 +760,17 @@ debugturbine( radius )
} }
else else
{ {
color = ( 0, 0, 1 ); color = ( 1, 1, 0 );
} }
} }
} }
} }
} }
print3d( self.buildableturbine.origin + vectorScale( ( 0, 0, 1 ), 60 ), text, color, 1, 0,5, 1 ); print3d( self.buildableturbine.origin + vectorScale( ( 0, 0, 1 ), 60 ), text, color, 1, 0.5, 1 );
} }
wait 0,05; wait 0.05;
#/ #/
} }
*/
} }

File diff suppressed because it is too large Load Diff

View File

@ -2,16 +2,18 @@
#include maps/mp/_utility; #include maps/mp/_utility;
#include common_scripts/utility; #include common_scripts/utility;
init_sidequests() init_sidequests() //checked matches cerberus output
{ {
level._sidequest_icons_base_x = -225; level._sidequest_icons_base_x = -225;
level._zombie_sidequests = []; level._zombie_sidequests = [];
/*
/# /#
level thread sidequest_debug(); level thread sidequest_debug();
#/ #/
*/
} }
is_sidequest_allowed( a_gametypes ) is_sidequest_allowed( a_gametypes ) //checked changed to match cerberus output
{ {
if ( isDefined( level.gamedifficulty ) && level.gamedifficulty == 0 ) if ( isDefined( level.gamedifficulty ) && level.gamedifficulty == 0 )
{ {
@ -22,21 +24,21 @@ is_sidequest_allowed( a_gametypes )
{ {
a_gametypes = array( a_gametypes ); a_gametypes = array( a_gametypes );
} }
i = 0; for ( i = 0; i < a_gametypes.size; i++ )
while ( i < a_gametypes.size )
{ {
if ( getDvar( "g_gametype" ) == a_gametypes[ i ] ) if ( getDvar( "g_gametype" ) == a_gametypes[ i ] )
{ {
b_is_gametype_active = 1; b_is_gametype_active = 1;
} }
i++;
} }
return b_is_gametype_active; return b_is_gametype_active;
} }
sidequest_debug() sidequest_debug() //checked matches cerberus output
{ {
/*
/# /#
//dvar name is unknown
if ( getDvar( #"A7AC338D" ) != "1" ) if ( getDvar( #"A7AC338D" ) != "1" )
{ {
return; return;
@ -46,9 +48,10 @@ sidequest_debug()
wait 1; wait 1;
#/ #/
} }
*/
} }
damager_trigger_thread( dam_types, trigger_func ) damager_trigger_thread( dam_types, trigger_func ) //checked changed to match cerberus output
{ {
while ( 1 ) while ( 1 )
{ {
@ -58,17 +61,12 @@ damager_trigger_thread( dam_types, trigger_func )
self.dam_dir = dir; self.dam_dir = dir;
self.dam_point = point; self.dam_point = point;
self.dam_type = type; self.dam_type = type;
i = 0; for ( i = 0; i < dam_types.size; i++ )
while ( i < dam_types.size )
{ {
if ( type == dam_types[ i ] ) if ( type == dam_types[ i ] )
{ {
break; break;
} }
else
{
i++;
}
} }
} }
if ( isDefined( trigger_func ) ) if ( isDefined( trigger_func ) )
@ -78,7 +76,7 @@ damager_trigger_thread( dam_types, trigger_func )
self notify( "triggered" ); self notify( "triggered" );
} }
damage_trigger_thread() damage_trigger_thread() //checked matches cerberus output
{ {
self endon( "death" ); self endon( "death" );
while ( 1 ) while ( 1 )
@ -88,18 +86,18 @@ damage_trigger_thread()
} }
} }
sidequest_uses_teleportation( name ) sidequest_uses_teleportation( name ) //checked matches cerberus output
{ {
level._zombie_sidequests[ name ].uses_teleportation = 1; level._zombie_sidequests[ name ].uses_teleportation = 1;
} }
declare_sidequest_icon( sidequest_name, icon_name, shader_name ) declare_sidequest_icon( sidequest_name, icon_name, shader_name ) //checked matches cerberus output
{ {
sidequest = level._zombie_sidequests[ sidequest_name ]; sidequest = level._zombie_sidequests[ sidequest_name ];
sidequest.icons[ icon_name ] = shader_name; sidequest.icons[ icon_name ] = shader_name;
} }
create_icon( shader_name, x ) create_icon( shader_name, x ) //checked matches cerberus output
{ {
icon = create_simple_hud( self ); icon = create_simple_hud( self );
icon.foreground = 1; icon.foreground = 1;
@ -116,7 +114,7 @@ create_icon( shader_name, x )
return icon; return icon;
} }
add_sidequest_icon( sidequest_name, icon_name ) add_sidequest_icon( sidequest_name, icon_name ) //checked matches cerberus output
{ {
if ( !isDefined( self.sidequest_icons ) ) if ( !isDefined( self.sidequest_icons ) )
{ {
@ -132,10 +130,10 @@ add_sidequest_icon( sidequest_name, icon_name )
{ {
base_x += level._zombiemode_sidequest_icon_offset; base_x += level._zombiemode_sidequest_icon_offset;
} }
self.sidequest_icons[ icon_name ] = self create_icon( sq.icons[ icon_name ], base_x + ( self.sidequest_icons.size * 34 ) ); self.sidequest_icons[ icon_name ] = self create_icon( sq.icons[ icon_name ], base_x + self.sidequest_icons.size * 34 );
} }
remove_sidequest_icon( sidequest_name, icon_name ) remove_sidequest_icon( sidequest_name, icon_name ) //checked changed to match cerberus output
{ {
if ( !isDefined( self.sidequest_icons ) ) if ( !isDefined( self.sidequest_icons ) )
{ {
@ -148,14 +146,12 @@ remove_sidequest_icon( sidequest_name, icon_name )
icon = self.sidequest_icons[ icon_name ]; icon = self.sidequest_icons[ icon_name ];
new_array = []; new_array = [];
keys = getarraykeys( self.sidequest_icons ); keys = getarraykeys( self.sidequest_icons );
i = 0; for ( i = 0; i < keys.size; i++ )
while ( i < keys.size )
{ {
if ( keys[ i ] != icon_name ) if ( keys[ i ] != icon_name )
{ {
new_array[ keys[ i ] ] = self.sidequest_icons[ keys[ i ] ]; new_array[ keys[ i ] ] = self.sidequest_icons[ keys[ i ] ];
} }
i++;
} }
self.sidequest_icons = new_array; self.sidequest_icons = new_array;
icon destroy(); icon destroy();
@ -165,20 +161,19 @@ remove_sidequest_icon( sidequest_name, icon_name )
{ {
base_x += level._zombiemode_sidequest_icon_offset; base_x += level._zombiemode_sidequest_icon_offset;
} }
i = 0; for ( i = 0; i < keys.size; i++ )
while ( i < keys.size )
{ {
self.sidequest_icons[ keys[ i ] ].x = base_x + ( i * 34 ); self.sidequest_icons[ keys[ i ] ].x = base_x + i * 34;
i++;
} }
} }
declare_sidequest( name, init_func, logic_func, complete_func, generic_stage_start_func, generic_stage_end_func ) declare_sidequest( name, init_func, logic_func, complete_func, generic_stage_start_func, generic_stage_end_func ) //checked matches cerberus output
{ {
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
init_sidequests(); init_sidequests();
} }
/*
/# /#
if ( isDefined( level._zombie_sidequests[ name ] ) ) if ( isDefined( level._zombie_sidequests[ name ] ) )
{ {
@ -186,6 +181,7 @@ declare_sidequest( name, init_func, logic_func, complete_func, generic_stage_sta
return; return;
#/ #/
} }
*/
sq = spawnstruct(); sq = spawnstruct();
sq.name = name; sq.name = name;
sq.stages = []; sq.stages = [];
@ -205,8 +201,9 @@ declare_sidequest( name, init_func, logic_func, complete_func, generic_stage_sta
level._zombie_sidequests[ name ] = sq; level._zombie_sidequests[ name ] = sq;
} }
declare_sidequest_stage( sidequest_name, stage_name, init_func, logic_func, exit_func ) declare_sidequest_stage( sidequest_name, stage_name, init_func, logic_func, exit_func ) //checked matches cerberus output
{ {
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -224,6 +221,7 @@ declare_sidequest_stage( sidequest_name, stage_name, init_func, logic_func, exit
return; return;
#/ #/
} }
*/
stage = spawnstruct(); stage = spawnstruct();
stage.name = stage_name; stage.name = stage_name;
stage.stage_number = level._zombie_sidequests[ sidequest_name ].stages.size; stage.stage_number = level._zombie_sidequests[ sidequest_name ].stages.size;
@ -237,8 +235,9 @@ declare_sidequest_stage( sidequest_name, stage_name, init_func, logic_func, exit
level._zombie_sidequests[ sidequest_name ].stages[ stage_name ] = stage; level._zombie_sidequests[ sidequest_name ].stages[ stage_name ] = stage;
} }
set_stage_time_limit( sidequest_name, stage_name, time_limit, timer_func ) set_stage_time_limit( sidequest_name, stage_name, time_limit, timer_func ) //checked matches cerberus output
{ {
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -256,13 +255,15 @@ set_stage_time_limit( sidequest_name, stage_name, time_limit, timer_func )
return; return;
#/ #/
} }
*/
level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].time_limit = time_limit; level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].time_limit = time_limit;
level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].time_limit_func = timer_func; level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].time_limit_func = timer_func;
} }
declare_stage_asset_from_struct( sidequest_name, stage_name, target_name, thread_func, trigger_thread_func ) declare_stage_asset_from_struct( sidequest_name, stage_name, target_name, thread_func, trigger_thread_func ) //checked changed to match cerberus output
{ {
structs = getstructarray( target_name, "targetname" ); structs = getstructarray( target_name, "targetname" );
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -285,8 +286,8 @@ declare_stage_asset_from_struct( sidequest_name, stage_name, target_name, thread
return; return;
#/ #/
} }
i = 0; */
while ( i < structs.size ) for ( i = 0; i < structs.size; i++ )
{ {
asset = spawnstruct(); asset = spawnstruct();
asset.type = "struct"; asset.type = "struct";
@ -294,12 +295,12 @@ declare_stage_asset_from_struct( sidequest_name, stage_name, target_name, thread
asset.thread_func = thread_func; asset.thread_func = thread_func;
asset.trigger_thread_func = trigger_thread_func; asset.trigger_thread_func = trigger_thread_func;
level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets[ level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets.size ] = asset; level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets[ level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets.size ] = asset;
i++;
} }
} }
declare_stage_title( sidequest_name, stage_name, title ) declare_stage_title( sidequest_name, stage_name, title ) //checked matches cerberus output
{ {
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -317,12 +318,14 @@ declare_stage_title( sidequest_name, stage_name, title )
return; return;
#/ #/
} }
*/
level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].title = title; level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].title = title;
} }
declare_stage_asset( sidequest_name, stage_name, target_name, thread_func, trigger_thread_func ) declare_stage_asset( sidequest_name, stage_name, target_name, thread_func, trigger_thread_func ) //checked changed to match cerberus output
{ {
ents = getentarray( target_name, "targetname" ); ents = getentarray( target_name, "targetname" );
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -345,8 +348,8 @@ declare_stage_asset( sidequest_name, stage_name, target_name, thread_func, trigg
return; return;
#/ #/
} }
i = 0; */
while ( i < ents.size ) for ( i = 0; i < ents.size; i++ )
{ {
asset = spawnstruct(); asset = spawnstruct();
asset.type = "entity"; asset.type = "entity";
@ -354,13 +357,13 @@ declare_stage_asset( sidequest_name, stage_name, target_name, thread_func, trigg
asset.thread_func = thread_func; asset.thread_func = thread_func;
asset.trigger_thread_func = trigger_thread_func; asset.trigger_thread_func = trigger_thread_func;
level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets[ level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets.size ] = asset; level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets[ level._zombie_sidequests[ sidequest_name ].stages[ stage_name ].assets.size ] = asset;
i++;
} }
} }
declare_sidequest_asset( sidequest_name, target_name, thread_func, trigger_thread_func ) declare_sidequest_asset( sidequest_name, target_name, thread_func, trigger_thread_func ) //checked changed to match cerberus output
{ {
ents = getentarray( target_name, "targetname" ); ents = getentarray( target_name, "targetname" );
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -378,8 +381,8 @@ declare_sidequest_asset( sidequest_name, target_name, thread_func, trigger_threa
return; return;
#/ #/
} }
i = 0; */
while ( i < ents.size ) for ( i = 0; i < ents.size; i++ )
{ {
asset = spawnstruct(); asset = spawnstruct();
asset.type = "entity"; asset.type = "entity";
@ -389,13 +392,13 @@ declare_sidequest_asset( sidequest_name, target_name, thread_func, trigger_threa
asset.ent.thread_func = thread_func; asset.ent.thread_func = thread_func;
asset.ent.trigger_thread_func = trigger_thread_func; asset.ent.trigger_thread_func = trigger_thread_func;
level._zombie_sidequests[ sidequest_name ].assets[ level._zombie_sidequests[ sidequest_name ].assets.size ] = asset; level._zombie_sidequests[ sidequest_name ].assets[ level._zombie_sidequests[ sidequest_name ].assets.size ] = asset;
i++;
} }
} }
declare_sidequest_asset_from_struct( sidequest_name, target_name, thread_func, trigger_thread_func ) declare_sidequest_asset_from_struct( sidequest_name, target_name, thread_func, trigger_thread_func ) //checked changed to match cerberus output
{ {
structs = getstructarray( target_name, "targetname" ); structs = getstructarray( target_name, "targetname" );
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -413,8 +416,8 @@ declare_sidequest_asset_from_struct( sidequest_name, target_name, thread_func, t
return; return;
#/ #/
} }
i = 0; */
while ( i < structs.size ) for ( i = 0; i < structs.size; i++ )
{ {
asset = spawnstruct(); asset = spawnstruct();
asset.type = "struct"; asset.type = "struct";
@ -422,11 +425,10 @@ declare_sidequest_asset_from_struct( sidequest_name, target_name, thread_func, t
asset.thread_func = thread_func; asset.thread_func = thread_func;
asset.trigger_thread_func = trigger_thread_func; asset.trigger_thread_func = trigger_thread_func;
level._zombie_sidequests[ sidequest_name ].assets[ level._zombie_sidequests[ sidequest_name ].assets.size ] = asset; level._zombie_sidequests[ sidequest_name ].assets[ level._zombie_sidequests[ sidequest_name ].assets.size ] = asset;
i++;
} }
} }
build_asset_from_struct( asset, parent_struct ) build_asset_from_struct( asset, parent_struct ) //checked matches cerberus output
{ {
ent = spawn( "script_model", asset.origin ); ent = spawn( "script_model", asset.origin );
if ( isDefined( asset.model ) ) if ( isDefined( asset.model ) )
@ -453,10 +455,9 @@ build_asset_from_struct( asset, parent_struct )
return ent; return ent;
} }
delete_stage_assets() delete_stage_assets() //checked changed to match cerberus output
{ {
i = 0; for ( i = 0; i < self.active_assets.size; i++ )
while ( i < self.active_assets.size )
{ {
asset = self.active_assets[ i ]; asset = self.active_assets[ i ];
switch( asset.type ) switch( asset.type )
@ -464,48 +465,44 @@ delete_stage_assets()
case "struct": case "struct":
if ( isDefined( asset.trigger ) ) if ( isDefined( asset.trigger ) )
{ {
/*
/# /#
println( "Deleting trigger from struct type asset." ); println( "Deleting trigger from struct type asset." );
#/ #/
*/
asset.trigger delete(); asset.trigger delete();
asset.trigger = undefined; asset.trigger = undefined;
} }
asset delete(); asset delete();
break; break;
i++;
continue;
case "entity": case "entity":
if ( isDefined( asset.trigger ) ) if ( isDefined( asset.trigger ) )
{ {
/*
/# /#
println( "Deleting trigger from ent type asset." ); println( "Deleting trigger from ent type asset." );
#/ #/
*/
asset.trigger delete(); asset.trigger delete();
asset.trigger = undefined; asset.trigger = undefined;
} }
break; break;
i++;
continue;
} }
i++;
} }
remaining_assets = []; remaining_assets = [];
i = 0; for ( i = 0; i < self.active_assets.size; i++ )
while ( i < self.active_assets.size )
{ {
if ( isDefined( self.active_assets[ i ] ) ) if ( isDefined( self.active_assets[ i ] ) )
{ {
remaining_assets[ remaining_assets.size ] = self.active_assets[ i ]; remaining_assets[ remaining_assets.size ] = self.active_assets[ i ];
} }
i++;
} }
self.active_assets = remaining_assets; self.active_assets = remaining_assets;
} }
build_assets() build_assets() //checked changed to match cerberus output
{ {
i = 0; for ( i = 0; i < self.assets.size; i++ )
while ( i < self.assets.size )
{ {
asset = undefined; asset = undefined;
switch( self.assets[ i ].type ) switch( self.assets[ i ].type )
@ -515,30 +512,27 @@ build_assets()
self.active_assets[ self.active_assets.size ] = build_asset_from_struct( asset, self.assets[ i ] ); self.active_assets[ self.active_assets.size ] = build_asset_from_struct( asset, self.assets[ i ] );
break; break;
case "entity": case "entity":
j = 0; for ( j = 0; j < self.active_assets.size; j++ )
while ( j < self.active_assets.size )
{ {
if ( self.active_assets[ j ] == self.assets[ i ].ent ) if ( self.active_assets[ j ] == self.assets[ i ].ent )
{ {
asset = self.active_assets[ j ]; asset = self.active_assets[ j ];
break; break;
} }
else
{
j++;
}
} }
asset = self.assets[ i ].ent; asset = self.assets[ i ].ent;
asset.type = "entity"; asset.type = "entity";
self.active_assets[ self.active_assets.size ] = asset; self.active_assets[ self.active_assets.size ] = asset;
break; break;
default: default:
/*
/# /#
println( "*** ERROR: Don't know how to build asset of type " + self.assets.type ); println( "*** ERROR: Don't know how to build asset of type " + self.assets.type );
#/ #/
*/
break; break;
} }
if ( isDefined( asset.script_noteworthy ) && self.assets[ i ].type == "entity" || !isDefined( asset.trigger ) && isDefined( asset.script_noteworthy ) ) if ( isDefined( asset.script_noteworthy ) && self.assets[ i ].type == "entity" && !isDefined( asset.trigger ) || isDefined( asset.script_noteworthy ) )
{ {
trigger_radius = 15; trigger_radius = 15;
trigger_height = 72; trigger_height = 72;
@ -555,7 +549,7 @@ build_assets()
{ {
trigger_spawnflags = asset.script_trigger_spawnflags; trigger_spawnflags = asset.script_trigger_spawnflags;
} }
trigger_offset = ( 0, 1, 0 ); trigger_offset = ( 0, 0, 0 );
if ( isDefined( asset.script_vector ) ) if ( isDefined( asset.script_vector ) )
{ {
trigger_offset = asset.script_vector; trigger_offset = asset.script_vector;
@ -581,7 +575,6 @@ build_assets()
} }
self.active_assets[ self.active_assets.size - 1 ].trigger = use_trigger; self.active_assets[ self.active_assets.size - 1 ].trigger = use_trigger;
break; break;
break;
case "trigger_radius_damage": case "trigger_radius_damage":
damage_trigger = spawn( "trigger_damage", asset.origin + trigger_offset, trigger_spawnflags, trigger_radius, trigger_height ); damage_trigger = spawn( "trigger_damage", asset.origin + trigger_offset, trigger_spawnflags, trigger_radius, trigger_height );
if ( isDefined( asset.radius ) ) if ( isDefined( asset.radius ) )
@ -599,7 +592,6 @@ build_assets()
} }
self.active_assets[ self.active_assets.size - 1 ].trigger = damage_trigger; self.active_assets[ self.active_assets.size - 1 ].trigger = damage_trigger;
break; break;
break;
case "trigger_radius": case "trigger_radius":
radius_trigger = spawn( "trigger_radius", asset.origin + trigger_offset, trigger_spawnflags, trigger_radius, trigger_height ); radius_trigger = spawn( "trigger_radius", asset.origin + trigger_offset, trigger_spawnflags, trigger_radius, trigger_height );
if ( isDefined( asset.radius ) ) if ( isDefined( asset.radius ) )
@ -617,22 +609,21 @@ build_assets()
} }
self.active_assets[ self.active_assets.size - 1 ].trigger = radius_trigger; self.active_assets[ self.active_assets.size - 1 ].trigger = radius_trigger;
break; break;
break;
} }
} }
if ( isDefined( self.assets[ i ].thread_func ) && !isDefined( self.active_assets[ self.active_assets.size - 1 ].dont_rethread ) ) if ( isDefined( self.assets[ i ].thread_func ) && !isDefined( self.active_assets[ self.active_assets.size - 1 ].dont_rethread ) )
{ {
self.active_assets[ self.active_assets.size - 1 ] thread [[ self.assets[ i ].thread_func ]](); self.active_assets[ self.active_assets.size - 1 ] thread [[ self.assets[ i ].thread_func ]]();
} }
if ( ( i % 2 ) == 0 ) if ( i % 2 == 0 )
{ {
wait_network_frame(); wait_network_frame();
} }
i++;
} }
} }
radius_trigger_thread() radius_trigger_thread() //checked matches cerberus output
{ {
self endon( "death" ); self endon( "death" );
while ( 1 ) while ( 1 )
@ -645,36 +636,35 @@ radius_trigger_thread()
self.owner_ent notify( "triggered" ); self.owner_ent notify( "triggered" );
while ( player istouching( self ) ) while ( player istouching( self ) )
{ {
wait 0,05; wait 0.05;
} }
self.owner_ent notify( "untriggered" ); self.owner_ent notify( "untriggered" );
} }
} }
thread_on_assets( target_name, thread_func ) thread_on_assets( target_name, thread_func ) //checked changed to match cerberus output
{ {
i = 0; for ( i = 0; i < self.active_assets.size; i++ )
while ( i < self.active_assets.size )
{ {
if ( self.active_assets[ i ].targetname == target_name ) if ( self.active_assets[ i ].targetname == target_name )
{ {
self.active_assets[ i ] thread [[ thread_func ]](); self.active_assets[ i ] thread [[ thread_func ]]();
} }
i++;
} }
} }
stage_logic_func_wrapper( sidequest, stage ) stage_logic_func_wrapper( sidequest, stage ) //checked matches cerberus output
{ {
if ( isDefined( stage.logic_func ) ) if ( isDefined( stage.logic_func ) )
{ {
level endon( ( sidequest.name + "_" ) + stage.name + "_over" ); level endon( sidequest.name + "_" + stage.name + "_over" );
stage [[ stage.logic_func ]](); stage [[ stage.logic_func ]]();
} }
} }
sidequest_start( sidequest_name ) sidequest_start( sidequest_name ) //checked matches cerberus output
{ {
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -687,6 +677,7 @@ sidequest_start( sidequest_name )
return; return;
#/ #/
} }
*/
sidequest = level._zombie_sidequests[ sidequest_name ]; sidequest = level._zombie_sidequests[ sidequest_name ];
sidequest build_assets(); sidequest build_assets();
if ( isDefined( sidequest.init_func ) ) if ( isDefined( sidequest.init_func ) )
@ -699,7 +690,7 @@ sidequest_start( sidequest_name )
} }
} }
stage_start( sidequest, stage ) stage_start( sidequest, stage ) //checked matches cerberus output
{ {
if ( isstring( sidequest ) ) if ( isstring( sidequest ) )
{ {
@ -711,7 +702,7 @@ stage_start( sidequest, stage )
} }
stage build_assets(); stage build_assets();
sidequest.active_stage = stage.stage_number; sidequest.active_stage = stage.stage_number;
level notify( ( sidequest.name + "_" ) + stage.name + "_started" ); level notify( sidequest.name + "_" + stage.name + "_started" );
stage.completed = 0; stage.completed = 0;
if ( isDefined( sidequest.generic_stage_start_func ) ) if ( isDefined( sidequest.generic_stage_start_func ) )
{ {
@ -733,7 +724,7 @@ stage_start( sidequest, stage )
} }
} }
display_stage_title( wait_for_teleport_done_notify ) display_stage_title( wait_for_teleport_done_notify ) //checked changed to match cerberus output
{ {
if ( wait_for_teleport_done_notify ) if ( wait_for_teleport_done_notify )
{ {
@ -745,16 +736,16 @@ display_stage_title( wait_for_teleport_done_notify )
stage_text.alignx = "center"; stage_text.alignx = "center";
stage_text.aligny = "middle"; stage_text.aligny = "middle";
stage_text.foreground = 1; stage_text.foreground = 1;
stage_text.fontscale = 1,6; stage_text.fontscale = 1.6;
stage_text.sort = 20; stage_text.sort = 20;
stage_text.x = 320; stage_text.x = 320;
stage_text.y = 300; stage_text.y = 300;
stage_text.og_scale = 1; stage_text.og_scale = 1;
stage_text.color = vectorScale( ( 0, 1, 0 ), 128 ); stage_text.color = vectorScale( ( 1, 0, 0 ), 128 );
stage_text.alpha = 0; stage_text.alpha = 0;
stage_text.fontstyle3d = "shadowedmore"; stage_text.fontstyle3d = "shadowedmore";
stage_text settext( self.title ); stage_text settext( self.title );
stage_text fadeovertime( 0,5 ); stage_text fadeovertime( 0.5 );
stage_text.alpha = 1; stage_text.alpha = 1;
wait 5; wait 5;
stage_text fadeovertime( 1 ); stage_text fadeovertime( 1 );
@ -763,22 +754,24 @@ display_stage_title( wait_for_teleport_done_notify )
stage_text destroy(); stage_text destroy();
} }
time_limited_stage( sidequest ) time_limited_stage( sidequest ) //checked matches cerberus output
{ {
/*
/# /#
println( "*** Starting timer for sidequest " + sidequest.name + " stage " + self.name + " : " + self.time_limit + " seconds." ); println( "*** Starting timer for sidequest " + sidequest.name + " stage " + self.name + " : " + self.time_limit + " seconds." );
#/ #/
level endon( ( sidequest.name + "_" ) + self.name + "_over" ); */
level endon( sidequest.name + "_" + self.name + "_over" );
level endon( "suspend_timer" ); level endon( "suspend_timer" );
level endon( "end_game" ); level endon( "end_game" );
time_limit = undefined; time_limit = undefined;
if ( isDefined( self.time_limit_func ) ) if ( isDefined( self.time_limit_func ) )
{ {
time_limit = [[ self.time_limit_func ]]() * 0,25; time_limit = [[ self.time_limit_func ]]() * 0.25;
} }
else else
{ {
time_limit = self.time_limit * 0,25; time_limit = self.time_limit * 0.25;
} }
wait time_limit; wait time_limit;
level notify( "timed_stage_75_percent" ); level notify( "timed_stage_75_percent" );
@ -792,8 +785,9 @@ time_limited_stage( sidequest )
stage_failed( sidequest, self ); stage_failed( sidequest, self );
} }
sidequest_println( str ) sidequest_println( str ) //checked matches cerberus output
{ {
/*
/# /#
if ( getDvar( #"A7AC338D" ) != "1" ) if ( getDvar( #"A7AC338D" ) != "1" )
{ {
@ -801,29 +795,25 @@ sidequest_println( str )
} }
println( str ); println( str );
#/ #/
*/
} }
precache_sidequest_assets() precache_sidequest_assets() //checked changed to match cerberus output
{ {
sidequest_names = getarraykeys( level._zombie_sidequests ); sidequest_names = getarraykeys( level._zombie_sidequests );
i = 0; for ( i = 0; i < sidequest_names.size; i++ )
while ( i < sidequest_names.size )
{ {
sq = level._zombie_sidequests[ sidequest_names[ i ] ]; sq = level._zombie_sidequests[ sidequest_names[ i ] ];
icon_keys = getarraykeys( sq.icons ); icon_keys = getarraykeys( sq.icons );
j = 0; for ( j = 0; j < icon_keys.size; j++ )
while ( j < icon_keys.size )
{ {
precacheshader( sq.icons[ icon_keys[ j ] ] ); precacheshader( sq.icons[ icon_keys[ j ] ] );
j++;
} }
stage_names = getarraykeys( sq.stages ); stage_names = getarraykeys( sq.stages );
j = 0; for ( j = 0; j < stage_names.size; j++ )
while ( j < stage_names.size )
{ {
stage = sq.stages[ stage_names[ j ] ]; stage = sq.stages[ stage_names[ j ] ];
k = 0; for ( k = 0; k < stage.assets.size; k++ )
while ( k < stage.assets.size )
{ {
asset = stage.assets[ k ]; asset = stage.assets[ k ];
if ( isDefined( asset.type ) && asset.type == "struct" ) if ( isDefined( asset.type ) && asset.type == "struct" )
@ -833,16 +823,14 @@ precache_sidequest_assets()
precachemodel( asset.model ); precachemodel( asset.model );
} }
} }
k++;
} }
j++;
} }
i++;
} }
} }
sidequest_complete( sidequest_name ) sidequest_complete( sidequest_name ) //checked matches cerberus output
{ {
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -855,11 +843,13 @@ sidequest_complete( sidequest_name )
return; return;
#/ #/
} }
*/
return level._zombie_sidequests[ sidequest_name ].sidequest_complete; return level._zombie_sidequests[ sidequest_name ].sidequest_complete;
} }
stage_completed( sidequest_name, stage_name ) stage_completed( sidequest_name, stage_name ) //checked matches cerberus output
{ {
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -878,27 +868,32 @@ stage_completed( sidequest_name, stage_name )
} }
println( "*** stage completed called." ); println( "*** stage completed called." );
#/ #/
*/
sidequest = level._zombie_sidequests[ sidequest_name ]; sidequest = level._zombie_sidequests[ sidequest_name ];
stage = sidequest.stages[ stage_name ]; stage = sidequest.stages[ stage_name ];
level thread stage_completed_internal( sidequest, stage ); level thread stage_completed_internal( sidequest, stage );
} }
stage_completed_internal( sidequest, stage ) stage_completed_internal( sidequest, stage ) //checked changed to match cerberus output
{ {
level notify( ( sidequest.name + "_" ) + stage.name + "_over" ); level notify( sidequest.name + "_" + stage.name + "_over" );
level notify( ( sidequest.name + "_" ) + stage.name + "_completed" ); level notify( sidequest.name + "_" + stage.name + "_completed" );
if ( isDefined( sidequest.generic_stage_end_func ) ) if ( isDefined( sidequest.generic_stage_end_func ) )
{ {
/*
/# /#
println( "Calling generic end func." ); println( "Calling generic end func." );
#/ #/
*/
stage [[ sidequest.generic_stage_end_func ]](); stage [[ sidequest.generic_stage_end_func ]]();
} }
if ( isDefined( stage.exit_func ) ) if ( isDefined( stage.exit_func ) )
{ {
/*
/# /#
println( "Calling stage end func." ); println( "Calling stage end func." );
#/ #/
*/
stage [[ stage.exit_func ]]( 1 ); stage [[ stage.exit_func ]]( 1 );
} }
stage.completed = 1; stage.completed = 1;
@ -907,18 +902,13 @@ stage_completed_internal( sidequest, stage )
stage delete_stage_assets(); stage delete_stage_assets();
all_complete = 1; all_complete = 1;
stage_names = getarraykeys( sidequest.stages ); stage_names = getarraykeys( sidequest.stages );
i = 0; for ( i = 0; i < stage_names.size; i++ )
while ( i < stage_names.size )
{ {
if ( sidequest.stages[ stage_names[ i ] ].completed == 0 ) if ( sidequest.stages[ stage_names[ i ] ].completed == 0 )
{ {
all_complete = 0; all_complete = 0;
break; break;
} }
else
{
i++;
}
} }
if ( all_complete == 1 ) if ( all_complete == 1 )
{ {
@ -931,10 +921,10 @@ stage_completed_internal( sidequest, stage )
} }
} }
stage_failed_internal( sidequest, stage ) stage_failed_internal( sidequest, stage ) //checked matches cerberus output
{ {
level notify( ( sidequest.name + "_" ) + stage.name + "_over" ); level notify( sidequest.name + "_" + stage.name + "_over" );
level notify( ( sidequest.name + "_" ) + stage.name + "_failed" ); level notify( sidequest.name + "_" + stage.name + "_failed" );
if ( isDefined( sidequest.generic_stage_end_func ) ) if ( isDefined( sidequest.generic_stage_end_func ) )
{ {
stage [[ sidequest.generic_stage_end_func ]](); stage [[ sidequest.generic_stage_end_func ]]();
@ -947,11 +937,13 @@ stage_failed_internal( sidequest, stage )
stage delete_stage_assets(); stage delete_stage_assets();
} }
stage_failed( sidequest, stage ) stage_failed( sidequest, stage ) //checked matches cerberus output
{ {
/*
/# /#
println( "*** Stage failed called." ); println( "*** Stage failed called." );
#/ #/
*/
if ( isstring( sidequest ) ) if ( isstring( sidequest ) )
{ {
sidequest = level._zombie_sidequests[ sidequest ]; sidequest = level._zombie_sidequests[ sidequest ];
@ -963,64 +955,57 @@ stage_failed( sidequest, stage )
level thread stage_failed_internal( sidequest, stage ); level thread stage_failed_internal( sidequest, stage );
} }
get_sidequest_stage( sidequest, stage_number ) get_sidequest_stage( sidequest, stage_number ) //checked changed to match cerberus output
{ {
stage = undefined; stage = undefined;
stage_names = getarraykeys( sidequest.stages ); stage_names = getarraykeys( sidequest.stages );
i = 0; for ( i = 0; i < stage_names.size; i++ )
while ( i < stage_names.size )
{ {
if ( sidequest.stages[ stage_names[ i ] ].stage_number == stage_number ) if ( sidequest.stages[ stage_names[ i ] ].stage_number == stage_number )
{ {
stage = sidequest.stages[ stage_names[ i ] ]; stage = sidequest.stages[ stage_names[ i ] ];
break; break;
} }
else
{
i++;
}
} }
return stage; return stage;
} }
get_damage_trigger( radius, origin, damage_types ) get_damage_trigger( radius, origin, damage_types ) //checked matches cerberus output
{ {
trig = spawn( "trigger_damage", origin, 0, radius, 72 ); trig = spawn( "trigger_damage", origin, 0, radius, 72 );
trig thread dam_trigger_thread( damage_types ); trig thread dam_trigger_thread( damage_types );
return trig; return trig;
} }
dam_trigger_thread( damage_types ) dam_trigger_thread( damage_types ) //checked changed to match cerberus output
{ {
self endon( "death" ); self endon( "death" );
damage_type = "NONE"; damage_type = "NONE";
while ( 1 ) while ( 1 )
{ {
self waittill( "damage", amount, attacker, dir, point, mod ); self waittill( "damage", amount, attacker, dir, point, mod );
i = 0; for ( i = 0; i < damage_types.size; i++ )
while ( i < damage_types.size )
{ {
if ( mod == damage_types[ i ] ) if ( mod == damage_types[ i ] )
{ {
self notify( "triggered" ); self notify( "triggered" );
} }
i++;
} }
} }
} }
use_trigger_thread() use_trigger_thread() //checked matches cerberus output
{ {
self endon( "death" ); self endon( "death" );
while ( 1 ) while ( 1 )
{ {
self waittill( "trigger", player ); self waittill( "trigger", player );
self.owner_ent notify( "triggered" ); self.owner_ent notify( "triggered" );
wait 0,1; wait 0.1;
} }
} }
sidequest_stage_active( sidequest_name, stage_name ) sidequest_stage_active( sidequest_name, stage_name ) //checked matches cerberus output
{ {
sidequest = level._zombie_sidequests[ sidequest_name ]; sidequest = level._zombie_sidequests[ sidequest_name ];
stage = sidequest.stages[ stage_name ]; stage = sidequest.stages[ stage_name ];
@ -1034,8 +1019,9 @@ sidequest_stage_active( sidequest_name, stage_name )
} }
} }
sidequest_start_next_stage( sidequest_name ) sidequest_start_next_stage( sidequest_name ) //checked matches cerberus output
{ {
/*
/# /#
if ( !isDefined( level._zombie_sidequests ) ) if ( !isDefined( level._zombie_sidequests ) )
{ {
@ -1048,6 +1034,7 @@ sidequest_start_next_stage( sidequest_name )
return; return;
#/ #/
} }
*/
sidequest = level._zombie_sidequests[ sidequest_name ]; sidequest = level._zombie_sidequests[ sidequest_name ];
if ( sidequest.sidequest_complete == 1 ) if ( sidequest.sidequest_complete == 1 )
{ {
@ -1065,20 +1052,22 @@ sidequest_start_next_stage( sidequest_name )
stage = get_sidequest_stage( sidequest, last_completed ); stage = get_sidequest_stage( sidequest, last_completed );
if ( !isDefined( stage ) ) if ( !isDefined( stage ) )
{ {
/*
/# /#
println( "*** ERROR: Sidequest " + sidequest_name + " has no stage number " + last_completed ); println( "*** ERROR: Sidequest " + sidequest_name + " has no stage number " + last_completed );
#/ #/
*/
return; return;
} }
stage_start( sidequest, stage ); stage_start( sidequest, stage );
return stage; return stage;
} }
main() main() //checked matches cerberus output
{ {
} }
is_facing( facee ) is_facing( facee ) //checked matches cerberus output
{ {
orientation = self getplayerangles(); orientation = self getplayerangles();
forwardvec = anglesToForward( orientation ); forwardvec = anglesToForward( orientation );
@ -1088,10 +1077,10 @@ is_facing( facee )
tofaceevec2d = ( tofaceevec[ 0 ], tofaceevec[ 1 ], 0 ); tofaceevec2d = ( tofaceevec[ 0 ], tofaceevec[ 1 ], 0 );
unittofaceevec2d = vectornormalize( tofaceevec2d ); unittofaceevec2d = vectornormalize( tofaceevec2d );
dotproduct = vectordot( unitforwardvec2d, unittofaceevec2d ); dotproduct = vectordot( unitforwardvec2d, unittofaceevec2d );
return dotproduct > 0,9; return dotproduct > 0.9;
} }
fake_use( notify_string, qualifier_func ) fake_use( notify_string, qualifier_func ) //checked changed to match cerberus output
{ {
waittillframeend; waittillframeend;
while ( 1 ) while ( 1 )
@ -1100,12 +1089,13 @@ fake_use( notify_string, qualifier_func )
{ {
return; return;
} }
/*
/# /#
print3d( self.origin, "+", vectorScale( ( 0, 1, 0 ), 255 ), 1 ); print3d( self.origin, "+", vectorScale( ( 0, 1, 0 ), 255 ), 1 );
#/ #/
*/
players = get_players(); players = get_players();
i = 0; for ( i = 0; i < players.size; i++ )
while ( i < players.size )
{ {
qualifier_passed = 1; qualifier_passed = 1;
if ( isDefined( qualifier_func ) ) if ( isDefined( qualifier_func ) )
@ -1118,13 +1108,13 @@ fake_use( notify_string, qualifier_func )
{ {
if ( players[ i ] usebuttonpressed() ) if ( players[ i ] usebuttonpressed() )
{ {
self notify( notify_string ); self notify( notify_string, players[ i ] );
return; return;
} }
} }
} }
i++;
} }
wait 0,1; wait 0.1;
} }
} }

View File

@ -6,7 +6,7 @@
#include maps/mp/_utility; #include maps/mp/_utility;
#include common_scripts/utility; #include common_scripts/utility;
init() init() //checked matches cerberus output
{ {
level.player_stats_init = ::player_stats_init; level.player_stats_init = ::player_stats_init;
level.add_client_stat = ::add_client_stat; level.add_client_stat = ::add_client_stat;
@ -14,7 +14,7 @@ init()
level.track_gibs = ::do_stats_for_gibs; level.track_gibs = ::do_stats_for_gibs;
} }
player_stats_init() player_stats_init() //checked matches cerberus output
{ {
self maps/mp/gametypes_zm/_globallogic_score::initpersstat( "kills", 0 ); self maps/mp/gametypes_zm/_globallogic_score::initpersstat( "kills", 0 );
self maps/mp/gametypes_zm/_globallogic_score::initpersstat( "suicides", 0 ); self maps/mp/gametypes_zm/_globallogic_score::initpersstat( "suicides", 0 );
@ -195,7 +195,7 @@ player_stats_init()
} }
} }
update_players_stats_at_match_end( players ) update_players_stats_at_match_end( players ) //checked partially matches cerberus output //did not change while loop to for loop to prevent infinite loop continue bug
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -214,12 +214,9 @@ update_players_stats_at_match_end( players )
{ {
matchrecorderincrementheaderstat( "winningTeam", 1 ); matchrecorderincrementheaderstat( "winningTeam", 1 );
} }
else else if ( level.gamemodulewinningteam == "A" )
{ {
if ( level.gamemodulewinningteam == "A" ) matchrecorderincrementheaderstat( "winningTeam", 2 );
{
matchrecorderincrementheaderstat( "winningTeam", 2 );
}
} }
} }
recordmatchsummaryzombieendgamedata( game_mode, game_mode_group, map_location_name, level.round_number ); recordmatchsummaryzombieendgamedata( game_mode, game_mode_group, map_location_name, level.round_number );
@ -233,49 +230,46 @@ update_players_stats_at_match_end( players )
i++; i++;
continue; continue;
} }
else distance = player get_stat_distance_traveled();
player addplayerstatwithgametype( "distance_traveled", distance );
player add_location_gametype_stat( level.scr_zm_map_start_location, level.scr_zm_ui_gametype, "time_played_total", player.pers[ "time_played_total" ] );
recordplayermatchend( player );
recordplayerstats( player, "presentAtEnd", 1 );
player maps/mp/zombies/_zm_weapons::updateweapontimingszm( newtime );
if ( isDefined( level._game_module_stat_update_func ) )
{ {
distance = player get_stat_distance_traveled(); player [[ level._game_module_stat_update_func ]]();
player addplayerstatwithgametype( "distance_traveled", distance ); }
player add_location_gametype_stat( level.scr_zm_map_start_location, level.scr_zm_ui_gametype, "time_played_total", player.pers[ "time_played_total" ] ); old_high_score = player get_game_mode_stat( game_mode, "score" );
recordplayermatchend( player ); if ( player.score_total > old_high_score )
recordplayerstats( player, "presentAtEnd", 1 ); {
player maps/mp/zombies/_zm_weapons::updateweapontimingszm( newtime ); player set_game_mode_stat( game_mode, "score", player.score_total );
if ( isDefined( level._game_module_stat_update_func ) ) }
if ( gamemodeismode( level.gamemode_public_match ) )
{
player gamehistoryfinishmatch( 4, 0, 0, 0, 0, 0 );
if ( isDefined( player.pers[ "matchesPlayedStatsTracked" ] ) )
{ {
player [[ level._game_module_stat_update_func ]](); gamemode = maps/mp/gametypes_zm/_globallogic::getcurrentgamemode();
} player maps/mp/gametypes_zm/_globallogic::incrementmatchcompletionstat( gamemode, "played", "completed" );
old_high_score = player get_game_mode_stat( game_mode, "score" ); if ( isDefined( player.pers[ "matchesHostedStatsTracked" ] ) )
if ( player.score_total > old_high_score )
{
player set_game_mode_stat( game_mode, "score", player.score_total );
}
if ( gamemodeismode( level.gamemode_public_match ) )
{
player gamehistoryfinishmatch( 4, 0, 0, 0, 0, 0 );
if ( isDefined( player.pers[ "matchesPlayedStatsTracked" ] ) )
{ {
gamemode = maps/mp/gametypes_zm/_globallogic::getcurrentgamemode(); player maps/mp/gametypes_zm/_globallogic::incrementmatchcompletionstat( gamemode, "hosted", "completed" );
player maps/mp/gametypes_zm/_globallogic::incrementmatchcompletionstat( gamemode, "played", "completed" );
if ( isDefined( player.pers[ "matchesHostedStatsTracked" ] ) )
{
player maps/mp/gametypes_zm/_globallogic::incrementmatchcompletionstat( gamemode, "hosted", "completed" );
}
} }
} }
if ( !isDefined( player.pers[ "previous_distance_traveled" ] ) )
{
player.pers[ "previous_distance_traveled" ] = 0;
}
distancethisround = int( player.pers[ "distance_traveled" ] - player.pers[ "previous_distance_traveled" ] );
player.pers[ "previous_distance_traveled" ] = player.pers[ "distance_traveled" ];
player incrementplayerstat( "distance_traveled", distancethisround );
} }
if ( !isDefined( player.pers[ "previous_distance_traveled" ] ) )
{
player.pers[ "previous_distance_traveled" ] = 0;
}
distancethisround = int( player.pers[ "distance_traveled" ] - player.pers[ "previous_distance_traveled" ] );
player.pers[ "previous_distance_traveled" ] = player.pers[ "distance_traveled" ];
player incrementplayerstat( "distance_traveled", distancethisround );
i++; i++;
} }
} }
update_playing_utc_time( matchendutctime ) update_playing_utc_time( matchendutctime ) //checked changed to match cerberus output //order of operations may need to be reviewed
{ {
current_days = int( matchendutctime / 86400 ); current_days = int( matchendutctime / 86400 );
last_days = self get_global_stat( "TIMESTAMPLASTDAY1" ); last_days = self get_global_stat( "TIMESTAMPLASTDAY1" );
@ -284,36 +278,32 @@ update_playing_utc_time( matchendutctime )
timestamp_name = ""; timestamp_name = "";
if ( diff_days > 0 ) if ( diff_days > 0 )
{ {
i = 5; for ( i = 5; i > diff_days; i-- )
while ( i > diff_days )
{ {
timestamp_name = "TIMESTAMPLASTDAY" + ( i - diff_days ); timestamp_name = "TIMESTAMPLASTDAY" + ( i - diff_days );
timestamp_name_to = "TIMESTAMPLASTDAY" + i; timestamp_name_to = "TIMESTAMPLASTDAY" + i;
timestamp_value = self get_global_stat( timestamp_name ); timestamp_value = self get_global_stat( timestamp_name );
self set_global_stat( timestamp_name_to, timestamp_value ); self set_global_stat( timestamp_name_to, timestamp_value );
i--;
} }
i = 2; for ( i = 2; i <= diff_days && i < 6; i++ )
while ( i <= diff_days && i < 6 )
{ {
timestamp_name = "TIMESTAMPLASTDAY" + i; timestamp_name = "TIMESTAMPLASTDAY" + i;
self set_global_stat( timestamp_name, 0 ); self set_global_stat( timestamp_name, 0 );
i++;
} }
self set_global_stat( "TIMESTAMPLASTDAY1", matchendutctime ); self set_global_stat( "TIMESTAMPLASTDAY1", matchendutctime );
} }
} }
survival_classic_custom_stat_update() survival_classic_custom_stat_update() //checked matches cerberus output
{ {
} }
grief_custom_stat_update() grief_custom_stat_update() //checked matches cerberus output
{ {
} }
add_game_mode_group_stat( game_mode, stat_name, value ) add_game_mode_group_stat( game_mode, stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -322,7 +312,7 @@ add_game_mode_group_stat( game_mode, stat_name, value )
self adddstat( "PlayerStatsByGameTypeGroup", game_mode, stat_name, "statValue", value ); self adddstat( "PlayerStatsByGameTypeGroup", game_mode, stat_name, "statValue", value );
} }
set_game_mode_group_stat( game_mode, stat_name, value ) set_game_mode_group_stat( game_mode, stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -331,12 +321,12 @@ set_game_mode_group_stat( game_mode, stat_name, value )
self setdstat( "PlayerStatsByGameTypeGroup", game_mode, stat_name, "statValue", value ); self setdstat( "PlayerStatsByGameTypeGroup", game_mode, stat_name, "statValue", value );
} }
get_game_mode_group_stat( game_mode, stat_name ) get_game_mode_group_stat( game_mode, stat_name ) //checked matches cerberus output
{ {
return self getdstat( "PlayerStatsByGameTypeGroup", game_mode, stat_name, "statValue" ); return self getdstat( "PlayerStatsByGameTypeGroup", game_mode, stat_name, "statValue" );
} }
add_game_mode_stat( game_mode, stat_name, value ) add_game_mode_stat( game_mode, stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -345,7 +335,7 @@ add_game_mode_stat( game_mode, stat_name, value )
self adddstat( "PlayerStatsByGameType", game_mode, stat_name, "statValue", value ); self adddstat( "PlayerStatsByGameType", game_mode, stat_name, "statValue", value );
} }
set_game_mode_stat( game_mode, stat_name, value ) set_game_mode_stat( game_mode, stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -354,17 +344,17 @@ set_game_mode_stat( game_mode, stat_name, value )
self setdstat( "PlayerStatsByGameType", game_mode, stat_name, "statValue", value ); self setdstat( "PlayerStatsByGameType", game_mode, stat_name, "statValue", value );
} }
get_game_mode_stat( game_mode, stat_name ) get_game_mode_stat( game_mode, stat_name ) //checked matches cerberus output
{ {
return self getdstat( "PlayerStatsByGameType", game_mode, stat_name, "statValue" ); return self getdstat( "PlayerStatsByGameType", game_mode, stat_name, "statValue" );
} }
get_global_stat( stat_name ) get_global_stat( stat_name ) //checked matches cerberus output
{ {
return self getdstat( "PlayerStatsList", stat_name, "StatValue" ); return self getdstat( "PlayerStatsList", stat_name, "StatValue" );
} }
set_global_stat( stat_name, value ) set_global_stat( stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -373,7 +363,7 @@ set_global_stat( stat_name, value )
self setdstat( "PlayerStatsList", stat_name, "StatValue", value ); self setdstat( "PlayerStatsList", stat_name, "StatValue", value );
} }
add_global_stat( stat_name, value ) add_global_stat( stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -382,7 +372,7 @@ add_global_stat( stat_name, value )
self adddstat( "PlayerStatsList", stat_name, "StatValue", value ); self adddstat( "PlayerStatsList", stat_name, "StatValue", value );
} }
get_map_stat( stat_name, map ) get_map_stat( stat_name, map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -391,7 +381,7 @@ get_map_stat( stat_name, map )
return self getdstat( "PlayerStatsByMap", map, stat_name ); return self getdstat( "PlayerStatsByMap", map, stat_name );
} }
set_map_stat( stat_name, value, map ) set_map_stat( stat_name, value, map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -404,7 +394,7 @@ set_map_stat( stat_name, value, map )
self setdstat( "PlayerStatsByMap", map, stat_name, value ); self setdstat( "PlayerStatsByMap", map, stat_name, value );
} }
add_map_stat( stat_name, value, map ) add_map_stat( stat_name, value, map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -417,12 +407,12 @@ add_map_stat( stat_name, value, map )
self adddstat( "PlayerStatsByMap", map, stat_name, value ); self adddstat( "PlayerStatsByMap", map, stat_name, value );
} }
get_location_gametype_stat( start_location, game_type, stat_name ) get_location_gametype_stat( start_location, game_type, stat_name ) //checked matches cerberus output
{ {
return self getdstat( "PlayerStatsByStartLocation", start_location, "startLocationGameTypeStats", game_type, "stats", stat_name, "StatValue" ); return self getdstat( "PlayerStatsByStartLocation", start_location, "startLocationGameTypeStats", game_type, "stats", stat_name, "StatValue" );
} }
set_location_gametype_stat( start_location, game_type, stat_name, value ) set_location_gametype_stat( start_location, game_type, stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -431,7 +421,7 @@ set_location_gametype_stat( start_location, game_type, stat_name, value )
self setdstat( "PlayerStatsByStartLocation", start_location, "startLocationGameTypeStats", game_type, "stats", stat_name, "StatValue", value ); self setdstat( "PlayerStatsByStartLocation", start_location, "startLocationGameTypeStats", game_type, "stats", stat_name, "StatValue", value );
} }
add_location_gametype_stat( start_location, game_type, stat_name, value ) add_location_gametype_stat( start_location, game_type, stat_name, value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -440,7 +430,7 @@ add_location_gametype_stat( start_location, game_type, stat_name, value )
self adddstat( "PlayerStatsByStartLocation", start_location, "startLocationGameTypeStats", game_type, "stats", stat_name, "StatValue", value ); self adddstat( "PlayerStatsByStartLocation", start_location, "startLocationGameTypeStats", game_type, "stats", stat_name, "StatValue", value );
} }
get_map_weaponlocker_stat( stat_name, map ) get_map_weaponlocker_stat( stat_name, map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -449,7 +439,7 @@ get_map_weaponlocker_stat( stat_name, map )
return self getdstat( "PlayerStatsByMap", map, "weaponLocker", stat_name ); return self getdstat( "PlayerStatsByMap", map, "weaponLocker", stat_name );
} }
set_map_weaponlocker_stat( stat_name, value, map ) set_map_weaponlocker_stat( stat_name, value, map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -469,7 +459,7 @@ set_map_weaponlocker_stat( stat_name, value, map )
} }
} }
add_map_weaponlocker_stat( stat_name, value, map ) add_map_weaponlocker_stat( stat_name, value, map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -482,21 +472,21 @@ add_map_weaponlocker_stat( stat_name, value, map )
self adddstat( "PlayerStatsByMap", map, "weaponLocker", stat_name, value ); self adddstat( "PlayerStatsByMap", map, "weaponLocker", stat_name, value );
} }
has_stored_weapondata( map ) has_stored_weapondata( map ) //checked changed to match cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
map = level.script; map = level.script;
} }
storedweapon = self get_map_weaponlocker_stat( "name", map ); storedweapon = self get_map_weaponlocker_stat( "name", map );
if ( isDefined( storedweapon ) && isstring( storedweapon ) || storedweapon == "" && isint( storedweapon ) && storedweapon == 0 ) if ( isDefined( storedweapon ) || isstring( storedweapon ) && storedweapon == "" || isint( storedweapon ) && storedweapon == 0 )
{ {
return 0; return 0;
} }
return 1; return 1;
} }
get_stored_weapondata( map ) get_stored_weapondata( map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -516,7 +506,7 @@ get_stored_weapondata( map )
return undefined; return undefined;
} }
clear_stored_weapondata( map ) clear_stored_weapondata( map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -530,7 +520,7 @@ clear_stored_weapondata( map )
self set_map_weaponlocker_stat( "alt_stock", 0, map ); self set_map_weaponlocker_stat( "alt_stock", 0, map );
} }
set_stored_weapondata( weapondata, map ) set_stored_weapondata( weapondata, map ) //checked matches cerberus output
{ {
if ( !isDefined( map ) ) if ( !isDefined( map ) )
{ {
@ -544,7 +534,7 @@ set_stored_weapondata( weapondata, map )
self set_map_weaponlocker_stat( "alt_stock", weapondata[ "alt_stock" ], map ); self set_map_weaponlocker_stat( "alt_stock", weapondata[ "alt_stock" ], map );
} }
add_client_stat( stat_name, stat_value, include_gametype ) add_client_stat( stat_name, stat_value, include_gametype ) //checked matches cerberus output
{ {
if ( getDvar( "ui_zm_mapstartlocation" ) == "" || is_true( level.zm_disable_recording_stats ) ) if ( getDvar( "ui_zm_mapstartlocation" ) == "" || is_true( level.zm_disable_recording_stats ) )
{ {
@ -558,7 +548,7 @@ add_client_stat( stat_name, stat_value, include_gametype )
self.stats_this_frame[ stat_name ] = 1; self.stats_this_frame[ stat_name ] = 1;
} }
increment_player_stat( stat_name ) increment_player_stat( stat_name ) //checked matches cerberus output
{ {
if ( getDvar( "ui_zm_mapstartlocation" ) == "" || is_true( level.zm_disable_recording_stats ) ) if ( getDvar( "ui_zm_mapstartlocation" ) == "" || is_true( level.zm_disable_recording_stats ) )
{ {
@ -567,7 +557,7 @@ increment_player_stat( stat_name )
self incrementplayerstat( stat_name, 1 ); self incrementplayerstat( stat_name, 1 );
} }
increment_root_stat( stat_name, stat_value ) increment_root_stat( stat_name, stat_value ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -576,7 +566,7 @@ increment_root_stat( stat_name, stat_value )
self adddstat( stat_name, stat_value ); self adddstat( stat_name, stat_value );
} }
increment_client_stat( stat_name, include_gametype ) increment_client_stat( stat_name, include_gametype ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -585,7 +575,7 @@ increment_client_stat( stat_name, include_gametype )
add_client_stat( stat_name, 1, include_gametype ); add_client_stat( stat_name, 1, include_gametype );
} }
set_client_stat( stat_name, stat_value, include_gametype ) set_client_stat( stat_name, stat_value, include_gametype ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -596,7 +586,7 @@ set_client_stat( stat_name, stat_value, include_gametype )
self.stats_this_frame[ stat_name ] = 1; self.stats_this_frame[ stat_name ] = 1;
} }
zero_client_stat( stat_name, include_gametype ) zero_client_stat( stat_name, include_gametype ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -607,7 +597,7 @@ zero_client_stat( stat_name, include_gametype )
self.stats_this_frame[ stat_name ] = 1; self.stats_this_frame[ stat_name ] = 1;
} }
increment_map_cheat_stat( stat_name ) increment_map_cheat_stat( stat_name ) //checked matches cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -616,30 +606,27 @@ increment_map_cheat_stat( stat_name )
self adddstat( "PlayerStatsByMap", level.script, "cheats", stat_name, 1 ); self adddstat( "PlayerStatsByMap", level.script, "cheats", stat_name, 1 );
} }
get_stat_distance_traveled() get_stat_distance_traveled() //checked changed to match cerberu output
{ {
miles = int( self.pers[ "distance_traveled" ] / 63360 ); miles = int( self.pers[ "distance_traveled" ] / 63360 );
remainder = ( self.pers[ "distance_traveled" ] / 63360 ) - miles; remainder = ( self.pers[ "distance_traveled" ] / 63360 ) - miles;
if ( miles < 1 && remainder < 0,5 ) if ( miles < 1 && remainder < 0.5 )
{ {
miles = 1; miles = 1;
} }
else else if ( remainder >= 0.5 )
{ {
if ( remainder >= 0,5 ) miles++;
{
miles++;
}
} }
return miles; return miles;
} }
get_stat_round_number() get_stat_round_number() //checked matches cerberus output
{ {
return level.round_number; return level.round_number;
} }
get_stat_combined_rank_value_survival_classic() get_stat_combined_rank_value_survival_classic() //checked matches cerberus output
{ {
rounds = get_stat_round_number(); rounds = get_stat_round_number();
kills = self.pers[ "kills" ]; kills = self.pers[ "kills" ];
@ -647,11 +634,11 @@ get_stat_combined_rank_value_survival_classic()
{ {
rounds = 99; rounds = 99;
} }
result = ( rounds * 10000000 ) + kills; result = rounds * 10000000 + kills;
return result; return result;
} }
get_stat_combined_rank_value_grief() get_stat_combined_rank_value_grief() //checked matches cerberus output
{ {
wins = self.pers[ "wins" ]; wins = self.pers[ "wins" ];
losses = self.pers[ "losses" ]; losses = self.pers[ "losses" ];
@ -664,11 +651,11 @@ get_stat_combined_rank_value_grief()
losses = 9999; losses = 9999;
} }
losses_value = 9999 - losses; losses_value = 9999 - losses;
result = ( wins * 10000 ) + losses_value; result = wins * 10000 + losses_value;
return result; return result;
} }
update_global_counters_on_match_end() update_global_counters_on_match_end() //checked changed to match cerberus output
{ {
if ( is_true( level.zm_disable_recording_stats ) ) if ( is_true( level.zm_disable_recording_stats ) )
{ {
@ -776,11 +763,8 @@ update_global_counters_on_match_end()
tomb_golden_hard_hat = 0; tomb_golden_hard_hat = 0;
tomb_perk_extension = 0; tomb_perk_extension = 0;
players = get_players(); players = get_players();
_a838 = players; foreach ( player in players )
_k838 = getFirstArrayKey( _a838 );
while ( isDefined( _k838 ) )
{ {
player = _a838[ _k838 ];
deaths += player.pers[ "deaths" ]; deaths += player.pers[ "deaths" ];
kills += player.pers[ "kills" ]; kills += player.pers[ "kills" ];
headshots += player.pers[ "headshots" ]; headshots += player.pers[ "headshots" ];
@ -882,7 +866,6 @@ update_global_counters_on_match_end()
tomb_golden_shovel += player.pers[ "tomb_golden_shovel" ]; tomb_golden_shovel += player.pers[ "tomb_golden_shovel" ];
tomb_golden_hard_hat += player.pers[ "tomb_golden_hard_hat" ]; tomb_golden_hard_hat += player.pers[ "tomb_golden_hard_hat" ];
tomb_perk_extension += player.pers[ "tomb_perk_extension" ]; tomb_perk_extension += player.pers[ "tomb_perk_extension" ];
_k838 = getNextArrayKey( _a838, _k838 );
} }
game_mode = getDvar( "ui_gametype" ); game_mode = getDvar( "ui_gametype" );
incrementcounter( "global_zm_" + game_mode, 1 ); incrementcounter( "global_zm_" + game_mode, 1 );
@ -996,58 +979,52 @@ update_global_counters_on_match_end()
incrementcounter( "global_zm_tomb_perk_extension", tomb_perk_extension ); incrementcounter( "global_zm_tomb_perk_extension", tomb_perk_extension );
} }
get_specific_stat( stat_category, stat_name ) get_specific_stat( stat_category, stat_name ) //checked matches cerberus output
{ {
return self getdstat( stat_category, stat_name, "StatValue" ); return self getdstat( stat_category, stat_name, "StatValue" );
} }
do_stats_for_gibs( zombie, limb_tags_array ) do_stats_for_gibs( zombie, limb_tags_array ) //checked partially changed to match cerberus output //did not use foreach to prevent infinite loop due to continue
{ {
while ( isDefined( zombie ) && isDefined( zombie.attacker ) && isplayer( zombie.attacker ) ) if ( isDefined( zombie ) && isDefined( zombie.attacker ) && isplayer( zombie.attacker ) )
{ {
_a1069 = limb_tags_array; i = 0;
_k1069 = getFirstArrayKey( _a1069 ); while ( i < limb_tags_array.size )
while ( isDefined( _k1069 ) )
{ {
limb = _a1069[ _k1069 ];
stat_name = undefined; stat_name = undefined;
if ( limb == level._zombie_gib_piece_index_right_arm ) if ( limb_tags_array[ i ] == level._zombie_gib_piece_index_right_arm )
{ {
stat_name = "right_arm_gibs"; stat_name = "right_arm_gibs";
} }
else if ( limb == level._zombie_gib_piece_index_left_arm ) else if ( limb_tags_array[ i ] == level._zombie_gib_piece_index_left_arm )
{ {
stat_name = "left_arm_gibs"; stat_name = "left_arm_gibs";
} }
else if ( limb == level._zombie_gib_piece_index_right_leg ) else if ( limb_tags_array[ i ] == level._zombie_gib_piece_index_right_leg )
{ {
stat_name = "right_leg_gibs"; stat_name = "right_leg_gibs";
} }
else if ( limb == level._zombie_gib_piece_index_left_leg ) else if ( limb_tags_array[ i ] == level._zombie_gib_piece_index_left_leg )
{ {
stat_name = "left_leg_gibs"; stat_name = "left_leg_gibs";
} }
else else if ( limb == level._zombie_gib_piece_index_head )
{ {
if ( limb == level._zombie_gib_piece_index_head ) stat_name = "head_gibs";
{
stat_name = "head_gibs";
}
} }
if ( !isDefined( stat_name ) ) if ( !isDefined( stat_name ) )
{ {
i++;
continue;
} }
else zombie.attacker increment_client_stat( stat_name, 0 );
{ zombie.attacker increment_client_stat( "gibs" );
zombie.attacker increment_client_stat( stat_name, 0 ); i++;
zombie.attacker increment_client_stat( "gibs" );
}
_k1069 = getNextArrayKey( _a1069, _k1069 );
} }
} }
} }
initializematchstats() initializematchstats() //checked matches cerberus output
{ {
if ( !level.onlinegame || !gamemodeismode( level.gamemode_public_match ) ) if ( !level.onlinegame || !gamemodeismode( level.gamemode_public_match ) )
{ {
@ -1058,18 +1035,20 @@ initializematchstats()
self gamehistorystartmatch( getgametypeenumfromname( currgametype, 0 ) ); self gamehistorystartmatch( getgametypeenumfromname( currgametype, 0 ) );
} }
adjustrecentstats() adjustrecentstats() //checked matches cerberus output
{ {
/*
/# /#
if ( getDvarInt( "scr_writeConfigStrings" ) == 1 || getDvarInt( "scr_hostmigrationtest" ) == 1 ) if ( getDvarInt( "scr_writeConfigStrings" ) == 1 || getDvarInt( "scr_hostmigrationtest" ) == 1 )
{ {
return; return;
#/ #/
} }
*/
initializematchstats(); initializematchstats();
} }
uploadstatssoon() uploadstatssoon() //checked matches cerberus output
{ {
self notify( "upload_stats_soon" ); self notify( "upload_stats_soon" );
self endon( "upload_stats_soon" ); self endon( "upload_stats_soon" );
@ -1077,3 +1056,4 @@ uploadstatssoon()
wait 1; wait 1;
uploadstats( self ); uploadstats( self );
} }

View File

@ -3093,6 +3093,7 @@ is_magic_bullet_shield_enabled( ent ) //checked changed at own discretion
{ {
return 1; return 1;
} }
return 0;
} }
really_play_2d_sound( sound ) //checked changed to match cerberus output really_play_2d_sound( sound ) //checked changed to match cerberus output
@ -3604,22 +3605,30 @@ register_lethal_grenade_for_level( weaponname ) //checked changed at own discret
level.zombie_lethal_grenade_list[ weaponname ] = weaponname; level.zombie_lethal_grenade_list[ weaponname ] = weaponname;
} }
is_lethal_grenade( weaponname ) //checked matches cerberus output is_lethal_grenade( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( level.zombie_lethal_grenade_list ) ) if ( !isDefined( weaponname ) || !isDefined( level.zombie_lethal_grenade_list ) )
{ {
return 0; return 0;
} }
return isDefined( level.zombie_lethal_grenade_list[ weaponname ] ); if ( isDefined( level.zombie_lethal_grenade_list[ weaponname ] ) )
{
return 1;
}
return 0;
} }
is_player_lethal_grenade( weaponname ) //checked matches cerberus output is_player_lethal_grenade( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( self.current_lethal_grenade ) ) if ( !isDefined( weaponname ) || !isDefined( self.current_lethal_grenade ) )
{ {
return 0; return 0;
} }
return self.current_lethal_grenade == weaponname; if ( self.current_lethal_grenade == weaponname )
{
return 1;
}
return 0;
} }
get_player_lethal_grenade() //checked matches cerberus output get_player_lethal_grenade() //checked matches cerberus output
@ -3655,22 +3664,30 @@ register_tactical_grenade_for_level( weaponname ) //checked changed at own discr
level.zombie_tactical_grenade_list[ weaponname ] = weaponname; level.zombie_tactical_grenade_list[ weaponname ] = weaponname;
} }
is_tactical_grenade( weaponname ) //checked matches cerberus output is_tactical_grenade( weaponname ) //checked matches cerberus output //checked changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( level.zombie_tactical_grenade_list ) ) if ( !isDefined( weaponname ) || !isDefined( level.zombie_tactical_grenade_list ) )
{ {
return 0; return 0;
} }
return isDefined( level.zombie_tactical_grenade_list[ weaponname ] ); if ( isDefined( level.zombie_tactical_grenade_list[ weaponname ] ) )
{
return 1;
}
return 0;
} }
is_player_tactical_grenade( weaponname ) //checked matches cerberus output is_player_tactical_grenade( weaponname ) //checked matches cerberus output //checked changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( self.current_tactical_grenade ) ) if ( !isDefined( weaponname ) || !isDefined( self.current_tactical_grenade ) )
{ {
return 0; return 0;
} }
return self.current_tactical_grenade == weaponname; if ( self.current_tactical_grenade == weaponname )
{
return 1;
}
return 0;
} }
get_player_tactical_grenade() //checked matches cerberus output get_player_tactical_grenade() //checked matches cerberus output
@ -3707,22 +3724,30 @@ register_placeable_mine_for_level( weaponname ) //checked changed at own discret
level.zombie_placeable_mine_list[ weaponname ] = weaponname; level.zombie_placeable_mine_list[ weaponname ] = weaponname;
} }
is_placeable_mine( weaponname ) //checked matches cerberus output is_placeable_mine( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( level.zombie_placeable_mine_list ) ) if ( !isDefined( weaponname ) || !isDefined( level.zombie_placeable_mine_list ) )
{ {
return 0; return 0;
} }
return isDefined( level.zombie_placeable_mine_list[ weaponname ] ); if ( isDefined( level.zombie_placeable_mine_list[ weaponname ] ) )
{
return 1;
}
return 0;
} }
is_player_placeable_mine( weaponname ) //checked matches cerberus output is_player_placeable_mine( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( self.current_placeable_mine ) ) if ( !isDefined( weaponname ) || !isDefined( self.current_placeable_mine ) )
{ {
return 0; return 0;
} }
return self.current_placeable_mine == weaponname; if ( self.current_placeable_mine == weaponname )
{
return 1;
}
return 0;
} }
get_player_placeable_mine() //checked matches cerberus output get_player_placeable_mine() //checked matches cerberus output
@ -3753,22 +3778,30 @@ register_melee_weapon_for_level( weaponname ) //checked matches cerberus output
level.zombie_melee_weapon_list[ weaponname ] = weaponname; level.zombie_melee_weapon_list[ weaponname ] = weaponname;
} }
is_melee_weapon( weaponname ) //checked matches cerberus output is_melee_weapon( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( level.zombie_melee_weapon_list ) ) if ( !isDefined( weaponname ) || !isDefined( level.zombie_melee_weapon_list ) )
{ {
return 0; return 0;
} }
return isDefined( level.zombie_melee_weapon_list[ weaponname ] ); if ( isDefined( level.zombie_melee_weapon_list[ weaponname ] ) )
{
return 1;
}
return 0;
} }
is_player_melee_weapon( weaponname ) //checked matches cerberus output is_player_melee_weapon( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( self.current_melee_weapon ) ) if ( !isDefined( weaponname ) || !isDefined( self.current_melee_weapon ) )
{ {
return 0; return 0;
} }
return self.current_melee_weapon == weaponname; if ( self.current_melee_weapon == weaponname )
{
return 1;
}
return 0;
} }
get_player_melee_weapon() //checked matches cerberus output get_player_melee_weapon() //checked matches cerberus output
@ -3804,27 +3837,39 @@ register_equipment_for_level( weaponname ) //checked matches cerberus output
level.zombie_equipment_list[ weaponname ] = weaponname; level.zombie_equipment_list[ weaponname ] = weaponname;
} }
is_equipment( weaponname ) //checked matches cerberus output is_equipment( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( level.zombie_equipment_list ) ) if ( !isDefined( weaponname ) || !isDefined( level.zombie_equipment_list ) )
{ {
return 0; return 0;
} }
return isDefined( level.zombie_equipment_list[ weaponname ] ); if ( isDefined( level.zombie_equipment_list[ weaponname ] ) )
{
return 1;
}
return 0;
} }
is_equipment_that_blocks_purchase( weaponname ) //checked matches cerberus output is_equipment_that_blocks_purchase( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
return is_equipment( weaponname ); if ( is_equipment( weaponname ) )
{
return 1;
}
return 0;
} }
is_player_equipment( weaponname ) //checked matches cerberus output is_player_equipment( weaponname ) //checked matches cerberus output //changed at own discretion
{ {
if ( !isDefined( weaponname ) || !isDefined( self.current_equipment ) ) if ( !isDefined( weaponname ) || !isDefined( self.current_equipment ) )
{ {
return 0; return 0;
} }
return self.current_equipment == weaponname; if ( self.current_equipment == weaponname )
{
return 1;
}
return 0;
} }
has_deployed_equipment( weaponname ) //checked changed to match cerberus output has_deployed_equipment( weaponname ) //checked changed to match cerberus output
@ -3857,9 +3902,13 @@ get_player_equipment() //checked matches cerberus output
return self.current_equipment; return self.current_equipment;
} }
hacker_active() //checked matches cerberus output hacker_active() //checked matches cerberus output //changed at own discretion
{ {
return self maps/mp/zombies/_zm_equipment::is_equipment_active( "equip_hacker_zm" ); if ( self maps/mp/zombies/_zm_equipment::is_equipment_active( "equip_hacker_zm" ) )
{
return 1;
}
return 0;
} }
set_player_equipment( weaponname ) //checked matches cerberus output set_player_equipment( weaponname ) //checked matches cerberus output
@ -5623,3 +5672,5 @@ get_player_perk_purchase_limit() //checked matches cerberus output

View File

@ -48,23 +48,53 @@ patch_zm/maps/mp/zombies/_zm_pers_upgrades_functions.gsc
``` ```
### The following scripts have been checked, but they have not been tested yet ### The following scripts have been checked, but they have not been tested yet
``` ```
patch_zm/maps/mp/zombies/_zm_blockers.gsc
patch_zm/maps/mp/zombies/_zm_buildables.gsc patch_zm/maps/mp/zombies/_zm_buildables.gsc
patch_zm/maps/mp/zombies/_zm_equip_turbine.gsc
patch_zm/maps/mp/zombies/_zm_game_module.gsc patch_zm/maps/mp/zombies/_zm_game_module.gsc
patch_zm/maps/mp/zombies/_zm_laststand.gsc
patch_zm/maps/mp/zombies/_zm_magicbox_lock.gsc patch_zm/maps/mp/zombies/_zm_magicbox_lock.gsc
patch_zm/maps/mp/zombies/_zm_playerhealth.gsc patch_zm/maps/mp/zombies/_zm_playerhealth.gsc
patch_zm/maps/mp/zombies/_zm_power.gsc patch_zm/maps/mp/zombies/_zm_power.gsc
patch_zm/maps/mp/zombies/_zm_sidequests.gsc
patch_zm/maps/mp/zombies/_zm_stats.gsc
patch_zm/maps/mp/zombies/_zm_traps.gsc patch_zm/maps/mp/zombies/_zm_traps.gsc
patch_zm/maps/mp/zombies/_zm_turned.gsc patch_zm/maps/mp/zombies/_zm_turned.gsc
patch_zm/maps/mp/zombies/_zm_unitrigger.gsc
patch_zm/maps/mp/zombies/_zm_weap_cymbal_monkey.gsc patch_zm/maps/mp/zombies/_zm_weap_cymbal_monkey.gsc
``` ```
### The following scripts are not checked yet, uploaded to setup a baseline: ### The following scripts are not checked yet, uploaded to setup a baseline:
``` ```
patch_zm/maps/mp/zombies/_zm_blockers.gsc patch_zm/maps/mp/gametypes_zm/_callbacksetup.gsc
patch_zm/maps/mp/zombies/_zm_equip_turbine.gsc patch_zm/maps/mp/gametypes_zm/_damagefeedback.gsc
patch_zm/maps/mp/zombies/_zm_laststand.gsc patch_zm/maps/mp/gametypes_zm/_dev.gsc
patch_zm/maps/mp/zombies/_zm_sidequests.gsc patch_zm/maps/mp/gametypes_zm/_gameobjects.gsc
patch_zm/maps/mp/zombies/_zm_stats.gsc patch_zm/maps/mp/gametypes_zm/_globallogic.gsc
patch_zm/maps/mp/zombies/_zm_unitrigger.gsc patch_zm/maps/mp/gametypes_zm/_globallogic_actor.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_audio.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_defaults.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_player.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_score.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_spawn.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_ui.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_utils.gsc
patch_zm/maps/mp/gametypes_zm/_globallogic_vehicle.gsc
patch_zm/maps/mp/gametypes_zm/_gv_actions.gsc
patch_zm/maps/mp/gametypes_zm/_healthoverlay.gsc
patch_zm/maps/mp/gametypes_zm/_hostmigration.gsc
patch_zm/maps/mp/gametypes_zm/_hud.gsc
patch_zm/maps/mp/gametypes_zm/_hud_message.gsc
patch_zm/maps/mp/gametypes_zm/_hud_util.gsc
patch_zm/maps/mp/gametypes_zm/_menus.gsc
patch_zm/maps/mp/gametypes_zm/_perplayer.gsc
patch_zm/maps/mp/gametypes_zm/_serversettings.gsc
patch_zm/maps/mp/gametypes_zm/_spawning.gsc
patch_zm/maps/mp/gametypes_zm/_spawnlogic.gsc
patch_zm/maps/mp/gametypes_zm/_spectating.gsc
patch_zm/maps/mp/gametypes_zm/_tweakables.gsc
patch_zm/maps/mp/gametypes_zm/_weapon_utils.gsc
patch_zm/maps/mp/gametypes_zm/_weaponobjects.gsc
patch_zm/maps/mp/gametypes_zm/_weapons.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:
``` ```