mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-10 10:47:58 -05:00
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:
File diff suppressed because it is too large
Load Diff
@ -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 );
|
self thread turbinepoweroff( origin, powerradius );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
else if ( isDefined( weapon ) )
|
||||||
{
|
|
||||||
if ( isDefined( weapon ) )
|
|
||||||
{
|
{
|
||||||
origin = weapon.origin;
|
origin = weapon.origin;
|
||||||
}
|
}
|
||||||
self thread turbinepoweron( origin, powerradius );
|
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 ) )
|
||||||
{
|
{
|
||||||
@ -534,16 +527,11 @@ turbineanim( wait_for_end )
|
|||||||
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,9 +587,7 @@ 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;
|
cost = 1;
|
||||||
if ( isDefined( self.localpower ) )
|
if ( isDefined( self.localpower ) )
|
||||||
@ -626,7 +610,6 @@ turbinedecay()
|
|||||||
self.turbine_power_level = 4;
|
self.turbine_power_level = 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if ( old_power_level != self.turbine_power_level )
|
if ( old_power_level != self.turbine_power_level )
|
||||||
{
|
{
|
||||||
self notify( "turbine_power_change" );
|
self notify( "turbine_power_change" );
|
||||||
@ -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,6 +679,7 @@ turbinepowerdiminish( origin, powerradius )
|
|||||||
case 4:
|
case 4:
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
self.turbine_power_on = 1;
|
self.turbine_power_on = 1;
|
||||||
wait randomintrange( 12, 20 );
|
wait randomintrange( 12, 20 );
|
||||||
@ -713,14 +697,14 @@ turbinepowerdiminish( origin, powerradius )
|
|||||||
self turbinepoweron( origin, powerradius );
|
self turbinepoweron( origin, powerradius );
|
||||||
break;
|
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;
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,15 +9,15 @@
|
|||||||
#include maps/mp/_utility;
|
#include maps/mp/_utility;
|
||||||
#include common_scripts/utility;
|
#include common_scripts/utility;
|
||||||
|
|
||||||
laststand_global_init()
|
laststand_global_init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level.const_laststand_getup_count_start = 0;
|
level.const_laststand_getup_count_start = 0;
|
||||||
level.const_laststand_getup_bar_start = 0,5;
|
level.const_laststand_getup_bar_start = 0.5;
|
||||||
level.const_laststand_getup_bar_regen = 0,0025;
|
level.const_laststand_getup_bar_regen = 0.0025;
|
||||||
level.const_laststand_getup_bar_damage = 0,1;
|
level.const_laststand_getup_bar_damage = 0.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
init()
|
init() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.script == "frontend" )
|
if ( level.script == "frontend" )
|
||||||
{
|
{
|
||||||
@ -48,48 +48,52 @@ init()
|
|||||||
level.laststandgetupallowed = 0;
|
level.laststandgetupallowed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
player_is_in_laststand()
|
player_is_in_laststand() //checked changed to match cerberus output //changed at own discretion
|
||||||
{
|
{
|
||||||
if ( isDefined( self.no_revive_trigger ) && !self.no_revive_trigger )
|
if ( isDefined( self.no_revive_trigger ) && !self.no_revive_trigger && isDefined( self.revivetrigger ) )
|
||||||
{
|
{
|
||||||
return isDefined( self.revivetrigger );
|
return 1;
|
||||||
}
|
}
|
||||||
else
|
if ( isDefined( self.laststand ) && self.laststand )
|
||||||
{
|
{
|
||||||
if ( isDefined( self.laststand ) )
|
return 1;
|
||||||
{
|
|
||||||
return self.laststand;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
player_num_in_laststand()
|
player_num_in_laststand() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
num = 0;
|
num = 0;
|
||||||
players = get_players();
|
players = get_players();
|
||||||
i = 0;
|
for ( i = 0; i < players.size; i++ )
|
||||||
while ( i < players.size )
|
|
||||||
{
|
{
|
||||||
if ( players[ i ] player_is_in_laststand() )
|
if ( players[ i ] player_is_in_laststand() )
|
||||||
{
|
{
|
||||||
num++;
|
num++;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
player_all_players_in_laststand()
|
player_all_players_in_laststand() //checked changed at own discretion
|
||||||
{
|
{
|
||||||
return player_num_in_laststand() == get_players().size;
|
if ( player_num_in_laststand() == get_players().size )
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
player_any_player_in_laststand()
|
player_any_player_in_laststand() //checked changed at own discretion
|
||||||
{
|
{
|
||||||
return player_num_in_laststand() > 0;
|
if ( player_num_in_laststand() > 0 )
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
player_last_stand_stats( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration )
|
player_last_stand_stats( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( attacker ) && isplayer( attacker ) && attacker != self )
|
if ( isDefined( attacker ) && isplayer( attacker ) && attacker != self )
|
||||||
{
|
{
|
||||||
@ -140,7 +144,7 @@ player_last_stand_stats( einflictor, attacker, idamage, smeansofdeath, sweapon,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
increment_downed_stat()
|
increment_downed_stat() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.gametype != "zcleansed" )
|
if ( level.gametype != "zcleansed" )
|
||||||
{
|
{
|
||||||
@ -157,7 +161,7 @@ increment_downed_stat()
|
|||||||
self recordplayerdownzombies( zonename );
|
self recordplayerdownzombies( zonename );
|
||||||
}
|
}
|
||||||
|
|
||||||
playerlaststand( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration )
|
playerlaststand( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, shitloc, psoffsettime, deathanimduration ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self notify( "entering_last_stand" );
|
self notify( "entering_last_stand" );
|
||||||
if ( isDefined( level._game_module_player_laststand_callback ) )
|
if ( isDefined( level._game_module_player_laststand_callback ) )
|
||||||
@ -232,7 +236,7 @@ playerlaststand( einflictor, attacker, idamage, smeansofdeath, sweapon, vdir, sh
|
|||||||
self thread cleanup_laststand_on_disconnect();
|
self thread cleanup_laststand_on_disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
refire_player_downed()
|
refire_player_downed() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "player_revived" );
|
self endon( "player_revived" );
|
||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
@ -244,7 +248,7 @@ refire_player_downed()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_allowed( sweapon, smeansofdeath, shitloc )
|
laststand_allowed( sweapon, smeansofdeath, shitloc ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( level.laststandpistol == "none" )
|
if ( level.laststandpistol == "none" )
|
||||||
{
|
{
|
||||||
@ -253,7 +257,7 @@ laststand_allowed( sweapon, smeansofdeath, shitloc )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_disable_player_weapons()
|
laststand_disable_player_weapons() //checked partially changed to match cerberus output //did not change while loop to for loop to prevent infinite loop bug due to continue
|
||||||
{
|
{
|
||||||
weaponinventory = self getweaponslist( 1 );
|
weaponinventory = self getweaponslist( 1 );
|
||||||
self.lastactiveweapon = self getcurrentweapon();
|
self.lastactiveweapon = self getcurrentweapon();
|
||||||
@ -283,7 +287,7 @@ laststand_disable_player_weapons()
|
|||||||
{
|
{
|
||||||
class = "knife";
|
class = "knife";
|
||||||
}
|
}
|
||||||
if ( class != "pistol" && class != "pistol spread" && class == "pistolspread" && !isDefined( self.laststandpistol ) )
|
if ( ( class == "pistol" || class == "pistol spread" ) && !isDefined( self.laststandpistol ) || class == "pistolspread" && !isDefined( self.laststandpistol ) )
|
||||||
{
|
{
|
||||||
self.laststandpistol = weapon;
|
self.laststandpistol = weapon;
|
||||||
self.hadpistol = 1;
|
self.hadpistol = 1;
|
||||||
@ -293,17 +297,14 @@ laststand_disable_player_weapons()
|
|||||||
self maps/mp/zombies/_zm_stats::increment_client_stat( "failed_sacrifices" );
|
self maps/mp/zombies/_zm_stats::increment_client_stat( "failed_sacrifices" );
|
||||||
self maps/mp/zombies/_zm_stats::increment_player_stat( "failed_sacrifices" );
|
self maps/mp/zombies/_zm_stats::increment_player_stat( "failed_sacrifices" );
|
||||||
}
|
}
|
||||||
else
|
else if ( is_zombie_perk_bottle( weapon ) )
|
||||||
{
|
|
||||||
if ( is_zombie_perk_bottle( weapon ) )
|
|
||||||
{
|
{
|
||||||
self takeweapon( weapon );
|
self takeweapon( weapon );
|
||||||
self.lastactiveweapon = "none";
|
self.lastactiveweapon = "none";
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
if ( isDefined( get_gamemode_var( "item_meat_name" ) ) )
|
||||||
else if ( isDefined( get_gamemode_var( "item_meat_name" ) ) )
|
|
||||||
{
|
{
|
||||||
if ( weapon == get_gamemode_var( "item_meat_name" ) )
|
if ( weapon == get_gamemode_var( "item_meat_name" ) )
|
||||||
{
|
{
|
||||||
@ -327,7 +328,7 @@ laststand_disable_player_weapons()
|
|||||||
self notify( "weapons_taken_for_last_stand" );
|
self notify( "weapons_taken_for_last_stand" );
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_enable_player_weapons()
|
laststand_enable_player_weapons() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.hadpistol ) && !self.hadpistol && isDefined( self.laststandpistol ) )
|
if ( isDefined( self.hadpistol ) && !self.hadpistol && isDefined( self.laststandpistol ) )
|
||||||
{
|
{
|
||||||
@ -353,7 +354,7 @@ laststand_enable_player_weapons()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_clean_up_on_disconnect( playerbeingrevived, revivergun )
|
laststand_clean_up_on_disconnect( playerbeingrevived, revivergun ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "do_revive_ended_normally" );
|
self endon( "do_revive_ended_normally" );
|
||||||
revivetrigger = playerbeingrevived.revivetrigger;
|
revivetrigger = playerbeingrevived.revivetrigger;
|
||||||
@ -374,26 +375,28 @@ laststand_clean_up_on_disconnect( playerbeingrevived, revivergun )
|
|||||||
self revive_give_back_weapons( revivergun );
|
self revive_give_back_weapons( revivergun );
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_clean_up_reviving_any( playerbeingrevived )
|
laststand_clean_up_reviving_any( playerbeingrevived ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "do_revive_ended_normally" );
|
self endon( "do_revive_ended_normally" );
|
||||||
playerbeingrevived waittill_any( "disconnect", "zombified", "stop_revive_trigger" );
|
playerbeingrevived waittill_any( "disconnect", "zombified", "stop_revive_trigger" );
|
||||||
self.is_reviving_any--;
|
self.is_reviving_any--;
|
||||||
|
|
||||||
if ( self.is_reviving_any <= 0 )
|
if ( self.is_reviving_any < 0 )
|
||||||
{
|
{
|
||||||
self.is_reviving_any = 0;
|
self.is_reviving_any = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_give_pistol()
|
laststand_give_pistol() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( self.laststandpistol ) );
|
assert( isDefined( self.laststandpistol ) );
|
||||||
#/
|
#/
|
||||||
/#
|
/#
|
||||||
assert( self.laststandpistol != "none" );
|
assert( self.laststandpistol != "none" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
if ( isDefined( level.zombie_last_stand ) )
|
if ( isDefined( level.zombie_last_stand ) )
|
||||||
{
|
{
|
||||||
[[ level.zombie_last_stand ]]();
|
[[ level.zombie_last_stand ]]();
|
||||||
@ -406,13 +409,13 @@ laststand_give_pistol()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_bleedout( delay )
|
laststand_bleedout( delay ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "player_revived" );
|
self endon( "player_revived" );
|
||||||
self endon( "player_suicide" );
|
self endon( "player_suicide" );
|
||||||
self endon( "zombified" );
|
self endon( "zombified" );
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
if ( isDefined( self.is_zombie ) || self.is_zombie && isDefined( self.no_revive_trigger ) && self.no_revive_trigger )
|
if ( isDefined( self.is_zombie ) && self.is_zombie || isDefined( self.no_revive_trigger ) && self.no_revive_trigger )
|
||||||
{
|
{
|
||||||
self notify( "bled_out" );
|
self notify( "bled_out" );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
@ -421,12 +424,12 @@ laststand_bleedout( delay )
|
|||||||
}
|
}
|
||||||
setclientsysstate( "lsm", "1", self );
|
setclientsysstate( "lsm", "1", self );
|
||||||
self.bleedout_time = delay;
|
self.bleedout_time = delay;
|
||||||
while ( self.bleedout_time > int( delay * 0,5 ) )
|
while ( self.bleedout_time > int( delay * 0.5 ) )
|
||||||
{
|
{
|
||||||
self.bleedout_time -= 1;
|
self.bleedout_time -= 1;
|
||||||
wait 1;
|
wait 1;
|
||||||
}
|
}
|
||||||
visionsetlaststand( "zombie_death", delay * 0,5 );
|
visionsetlaststand( "zombie_death", delay * 0.5 );
|
||||||
while ( self.bleedout_time > 0 )
|
while ( self.bleedout_time > 0 )
|
||||||
{
|
{
|
||||||
self.bleedout_time -= 1;
|
self.bleedout_time -= 1;
|
||||||
@ -434,14 +437,14 @@ laststand_bleedout( delay )
|
|||||||
}
|
}
|
||||||
while ( isDefined( self.revivetrigger ) && isDefined( self.revivetrigger.beingrevived ) && self.revivetrigger.beingrevived == 1 )
|
while ( isDefined( self.revivetrigger ) && isDefined( self.revivetrigger.beingrevived ) && self.revivetrigger.beingrevived == 1 )
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0.1;
|
||||||
}
|
}
|
||||||
self notify( "bled_out" );
|
self notify( "bled_out" );
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
self bleed_out();
|
self bleed_out();
|
||||||
}
|
}
|
||||||
|
|
||||||
bleed_out()
|
bleed_out() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self cleanup_suicide_hud();
|
self cleanup_suicide_hud();
|
||||||
if ( isDefined( self.revivetrigger ) )
|
if ( isDefined( self.revivetrigger ) )
|
||||||
@ -459,27 +462,23 @@ bleed_out()
|
|||||||
{
|
{
|
||||||
maps/mp/_demo::bookmark( "zm_player_bledout", getTime(), self, undefined, 1 );
|
maps/mp/_demo::bookmark( "zm_player_bledout", getTime(), self, undefined, 1 );
|
||||||
}
|
}
|
||||||
level notify( "bleed_out" );
|
level notify( "bleed_out", self.characterindex );
|
||||||
self undolaststand();
|
self undolaststand();
|
||||||
if ( isDefined( level.is_zombie_level ) && level.is_zombie_level )
|
if ( isDefined( level.is_zombie_level ) && level.is_zombie_level )
|
||||||
{
|
{
|
||||||
self thread [[ level.player_becomes_zombie ]]();
|
self thread [[ level.player_becomes_zombie ]]();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( isDefined( level.is_specops_level ) && level.is_specops_level )
|
if ( isDefined( level.is_specops_level ) && level.is_specops_level )
|
||||||
{
|
{
|
||||||
self thread [[ level.spawnspectator ]]();
|
self thread [[ level.spawnspectator ]]();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
self.ignoreme = 0;
|
self.ignoreme = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
cleanup_suicide_hud()
|
cleanup_suicide_hud() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.suicideprompt ) )
|
if ( isDefined( self.suicideprompt ) )
|
||||||
{
|
{
|
||||||
@ -488,7 +487,7 @@ cleanup_suicide_hud()
|
|||||||
self.suicideprompt = undefined;
|
self.suicideprompt = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
clean_up_suicide_hud_on_end_game()
|
clean_up_suicide_hud_on_end_game() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "zombified" );
|
self endon( "zombified" );
|
||||||
@ -507,7 +506,7 @@ clean_up_suicide_hud_on_end_game()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
clean_up_suicide_hud_on_bled_out()
|
clean_up_suicide_hud_on_bled_out() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "zombified" );
|
self endon( "zombified" );
|
||||||
@ -524,7 +523,7 @@ clean_up_suicide_hud_on_bled_out()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suicide_trigger_spawn()
|
suicide_trigger_spawn() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
radius = getDvarInt( "revive_trigger_radius" );
|
radius = getDvarInt( "revive_trigger_radius" );
|
||||||
self.suicideprompt = newclienthudelem( self );
|
self.suicideprompt = newclienthudelem( self );
|
||||||
@ -539,14 +538,14 @@ suicide_trigger_spawn()
|
|||||||
}
|
}
|
||||||
self.suicideprompt.foreground = 1;
|
self.suicideprompt.foreground = 1;
|
||||||
self.suicideprompt.font = "default";
|
self.suicideprompt.font = "default";
|
||||||
self.suicideprompt.fontscale = 1,5;
|
self.suicideprompt.fontscale = 1.5;
|
||||||
self.suicideprompt.alpha = 1;
|
self.suicideprompt.alpha = 1;
|
||||||
self.suicideprompt.color = ( 1, 1, 1 );
|
self.suicideprompt.color = ( 1, 1, 1 );
|
||||||
self.suicideprompt.hidewheninmenu = 1;
|
self.suicideprompt.hidewheninmenu = 1;
|
||||||
self thread suicide_trigger_think();
|
self thread suicide_trigger_think();
|
||||||
}
|
}
|
||||||
|
|
||||||
suicide_trigger_think()
|
suicide_trigger_think() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "zombified" );
|
self endon( "zombified" );
|
||||||
@ -569,12 +568,12 @@ suicide_trigger_think()
|
|||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0,1;
|
||||||
while ( !isDefined( self.suicideprompt ) )
|
if ( !isDefined( self.suicideprompt ) )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
self.suicideprompt settext( &"ZOMBIE_BUTTON_TO_SUICIDE" );
|
self.suicideprompt settext( &"ZOMBIE_BUTTON_TO_SUICIDE" );
|
||||||
while ( !self is_suiciding() )
|
if ( !self is_suiciding() )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -598,7 +597,7 @@ suicide_trigger_think()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suicide_do_suicide( duration )
|
suicide_do_suicide( duration ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
level endon( "end_game" );
|
level endon( "end_game" );
|
||||||
level endon( "stop_suicide_trigger" );
|
level endon( "stop_suicide_trigger" );
|
||||||
@ -614,7 +613,7 @@ suicide_do_suicide( duration )
|
|||||||
{
|
{
|
||||||
self.suicidetexthud = newclienthudelem( self );
|
self.suicidetexthud = newclienthudelem( self );
|
||||||
}
|
}
|
||||||
self.suicideprogressbar updatebar( 0,01, 1 / suicidetime );
|
self.suicideprogressbar updatebar( 0.01, 1 / suicidetime );
|
||||||
self.suicidetexthud.alignx = "center";
|
self.suicidetexthud.alignx = "center";
|
||||||
self.suicidetexthud.aligny = "middle";
|
self.suicidetexthud.aligny = "middle";
|
||||||
self.suicidetexthud.horzalign = "center";
|
self.suicidetexthud.horzalign = "center";
|
||||||
@ -626,15 +625,15 @@ suicide_do_suicide( duration )
|
|||||||
}
|
}
|
||||||
self.suicidetexthud.foreground = 1;
|
self.suicidetexthud.foreground = 1;
|
||||||
self.suicidetexthud.font = "default";
|
self.suicidetexthud.font = "default";
|
||||||
self.suicidetexthud.fontscale = 1,8;
|
self.suicidetexthud.fontscale = 1.8;
|
||||||
self.suicidetexthud.alpha = 1;
|
self.suicidetexthud.alpha = 1;
|
||||||
self.suicidetexthud.color = ( 1, 1, 1 );
|
self.suicidetexthud.color = ( 1, 1, 1 );
|
||||||
self.suicidetexthud.hidewheninmenu = 1;
|
self.suicidetexthud.hidewheninmenu = 1;
|
||||||
self.suicidetexthud settext( &"ZOMBIE_SUICIDING" );
|
self.suicidetexthud settext( &"ZOMBIE_SUICIDING" );
|
||||||
while ( self is_suiciding() )
|
while ( self is_suiciding() )
|
||||||
{
|
{
|
||||||
wait 0,05;
|
wait 0.05;
|
||||||
timer += 0,05;
|
timer += 0.05;
|
||||||
if ( timer >= suicidetime )
|
if ( timer >= suicidetime )
|
||||||
{
|
{
|
||||||
suicided = 1;
|
suicided = 1;
|
||||||
@ -659,7 +658,7 @@ suicide_do_suicide( duration )
|
|||||||
return suicided;
|
return suicided;
|
||||||
}
|
}
|
||||||
|
|
||||||
can_suicide()
|
can_suicide() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !isalive( self ) )
|
if ( !isalive( self ) )
|
||||||
{
|
{
|
||||||
@ -684,15 +683,16 @@ can_suicide()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_suiciding( revivee )
|
is_suiciding( revivee ) //checked changed at own discretion
|
||||||
{
|
{
|
||||||
if ( self usebuttonpressed() )
|
if ( self usebuttonpressed() && can_suicide() )
|
||||||
{
|
{
|
||||||
return can_suicide();
|
return 1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_trigger_spawn()
|
revive_trigger_spawn() //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( level.revive_trigger_spawn_override_link ) )
|
if ( isDefined( level.revive_trigger_spawn_override_link ) )
|
||||||
{
|
{
|
||||||
@ -701,7 +701,7 @@ revive_trigger_spawn()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
radius = getDvarInt( "revive_trigger_radius" );
|
radius = getDvarInt( "revive_trigger_radius" );
|
||||||
self.revivetrigger = spawn( "trigger_radius", ( 1, 1, 1 ), 0, radius, radius );
|
self.revivetrigger = spawn( "trigger_radius", ( 0, 0, 0 ), 0, radius, radius );
|
||||||
self.revivetrigger sethintstring( "" );
|
self.revivetrigger sethintstring( "" );
|
||||||
self.revivetrigger setcursorhint( "HINT_NOICON" );
|
self.revivetrigger setcursorhint( "HINT_NOICON" );
|
||||||
self.revivetrigger setmovingplatformenabled( 1 );
|
self.revivetrigger setmovingplatformenabled( 1 );
|
||||||
@ -714,7 +714,7 @@ revive_trigger_spawn()
|
|||||||
self thread revive_trigger_think();
|
self thread revive_trigger_think();
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_trigger_think()
|
revive_trigger_think() //checked partially changed to match cerberus output //did not change while loop to for loop because of infinite loop continue bug
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
self endon( "zombified" );
|
self endon( "zombified" );
|
||||||
@ -723,11 +723,10 @@ revive_trigger_think()
|
|||||||
self endon( "death" );
|
self endon( "death" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0.1;
|
||||||
self.revivetrigger sethintstring( "" );
|
self.revivetrigger sethintstring( "" );
|
||||||
players = get_players();
|
players = get_players();
|
||||||
i = 0;
|
for ( i = 0; i < players.size; i++ )
|
||||||
while ( i < players.size )
|
|
||||||
{
|
{
|
||||||
d = 0;
|
d = 0;
|
||||||
d = self depthinwater();
|
d = self depthinwater();
|
||||||
@ -736,10 +735,6 @@ revive_trigger_think()
|
|||||||
self.revivetrigger setrevivehintstring( &"ZOMBIE_BUTTON_TO_REVIVE_PLAYER", self.team );
|
self.revivetrigger setrevivehintstring( &"ZOMBIE_BUTTON_TO_REVIVE_PLAYER", self.team );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
i = 0;
|
i = 0;
|
||||||
while ( i < players.size )
|
while ( i < players.size )
|
||||||
@ -750,19 +745,17 @@ revive_trigger_think()
|
|||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
gun = reviver getcurrentweapon();
|
gun = reviver getcurrentweapon();
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( gun ) );
|
assert( isDefined( gun ) );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
if ( gun == level.revive_tool )
|
if ( gun == level.revive_tool )
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
reviver giveweapon( level.revive_tool );
|
reviver giveweapon( level.revive_tool );
|
||||||
reviver switchtoweapon( level.revive_tool );
|
reviver switchtoweapon( level.revive_tool );
|
||||||
reviver setweaponammostock( level.revive_tool, 1 );
|
reviver setweaponammostock( level.revive_tool, 1 );
|
||||||
@ -783,14 +776,12 @@ revive_trigger_think()
|
|||||||
self cleanup_suicide_hud();
|
self cleanup_suicide_hud();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_give_back_weapons( gun )
|
revive_give_back_weapons( gun ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self takeweapon( level.revive_tool );
|
self takeweapon( level.revive_tool );
|
||||||
if ( self player_is_in_laststand() )
|
if ( self player_is_in_laststand() )
|
||||||
@ -811,7 +802,7 @@ revive_give_back_weapons( gun )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
can_revive( revivee )
|
can_revive( revivee ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( revivee.revivetrigger ) )
|
if ( !isDefined( revivee.revivetrigger ) )
|
||||||
{
|
{
|
||||||
@ -841,11 +832,11 @@ can_revive( revivee )
|
|||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ( isDefined( level.can_revive ) && !( [[ level.can_revive ]]( revivee ) ) )
|
if ( isDefined( level.can_revive ) && ![[ level.can_revive ]]( revivee ) )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ( isDefined( level.can_revive_game_module ) && !( [[ level.can_revive_game_module ]]( revivee ) ) )
|
if ( isDefined( level.can_revive_game_module ) && ![[ level.can_revive_game_module ]]( revivee ) )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -872,11 +863,11 @@ can_revive( revivee )
|
|||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ( !sighttracepassed( self.origin + vectorScale( ( 1, 1, 1 ), 50 ), revivee.origin + vectorScale( ( 1, 1, 1 ), 30 ), 0, undefined ) )
|
if ( !sighttracepassed( self.origin + vectorScale( ( 0, 0, 1 ), 50 ), revivee.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, undefined ) )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ( !bullettracepassed( self.origin + vectorScale( ( 1, 1, 1 ), 50 ), revivee.origin + vectorScale( ( 1, 1, 1 ), 30 ), 0, undefined ) )
|
if ( !bullettracepassed( self.origin + vectorScale( ( 0, 0, 1 ), 50 ), revivee.origin + vectorScale( ( 0, 0, 1 ), 30 ), 0, undefined ) )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -884,23 +875,25 @@ can_revive( revivee )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_reviving( revivee )
|
is_reviving( revivee ) //checked changed at own discretion
|
||||||
{
|
{
|
||||||
if ( self usebuttonpressed() )
|
if ( self usebuttonpressed() && can_revive( revivee ) )
|
||||||
{
|
{
|
||||||
return can_revive( revivee );
|
return 1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_reviving_any()
|
is_reviving_any() //checked changed at own discretion
|
||||||
{
|
{
|
||||||
if ( isDefined( self.is_reviving_any ) )
|
if ( isDefined( self.is_reviving_any ) && self.is_reviving_any )
|
||||||
{
|
{
|
||||||
return self.is_reviving_any;
|
return 1;
|
||||||
}
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_facing( facee )
|
is_facing( facee ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
orientation = self getplayerangles();
|
orientation = self getplayerangles();
|
||||||
forwardvec = anglesToForward( orientation );
|
forwardvec = anglesToForward( orientation );
|
||||||
@ -910,14 +903,16 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_do_revive( playerbeingrevived, revivergun )
|
revive_do_revive( playerbeingrevived, revivergun ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( self is_reviving( playerbeingrevived ) );
|
assert( self is_reviving( playerbeingrevived ) );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
revivetime = 3;
|
revivetime = 3;
|
||||||
if ( self hasperk( "specialty_quickrevive" ) )
|
if ( self hasperk( "specialty_quickrevive" ) )
|
||||||
{
|
{
|
||||||
@ -925,7 +920,7 @@ revive_do_revive( playerbeingrevived, revivergun )
|
|||||||
}
|
}
|
||||||
if ( self maps/mp/zombies/_zm_pers_upgrades_functions::pers_revive_active() )
|
if ( self maps/mp/zombies/_zm_pers_upgrades_functions::pers_revive_active() )
|
||||||
{
|
{
|
||||||
revivetime *= 0,5;
|
revivetime *= 0.5;
|
||||||
}
|
}
|
||||||
timer = 0;
|
timer = 0;
|
||||||
revived = 0;
|
revived = 0;
|
||||||
@ -952,7 +947,7 @@ revive_do_revive( playerbeingrevived, revivergun )
|
|||||||
}
|
}
|
||||||
self.is_reviving_any++;
|
self.is_reviving_any++;
|
||||||
self thread laststand_clean_up_reviving_any( playerbeingrevived );
|
self thread laststand_clean_up_reviving_any( playerbeingrevived );
|
||||||
self.reviveprogressbar updatebar( 0,01, 1 / revivetime );
|
self.reviveprogressbar updatebar( 0.01, 1 / revivetime );
|
||||||
self.revivetexthud.alignx = "center";
|
self.revivetexthud.alignx = "center";
|
||||||
self.revivetexthud.aligny = "middle";
|
self.revivetexthud.aligny = "middle";
|
||||||
self.revivetexthud.horzalign = "center";
|
self.revivetexthud.horzalign = "center";
|
||||||
@ -964,20 +959,20 @@ revive_do_revive( playerbeingrevived, revivergun )
|
|||||||
}
|
}
|
||||||
self.revivetexthud.foreground = 1;
|
self.revivetexthud.foreground = 1;
|
||||||
self.revivetexthud.font = "default";
|
self.revivetexthud.font = "default";
|
||||||
self.revivetexthud.fontscale = 1,8;
|
self.revivetexthud.fontscale = 1.8;
|
||||||
self.revivetexthud.alpha = 1;
|
self.revivetexthud.alpha = 1;
|
||||||
self.revivetexthud.color = ( 1, 1, 1 );
|
self.revivetexthud.color = ( 1, 1, 1 );
|
||||||
self.revivetexthud.hidewheninmenu = 1;
|
self.revivetexthud.hidewheninmenu = 1;
|
||||||
if ( self maps/mp/zombies/_zm_pers_upgrades_functions::pers_revive_active() )
|
if ( self maps/mp/zombies/_zm_pers_upgrades_functions::pers_revive_active() )
|
||||||
{
|
{
|
||||||
self.revivetexthud.color = ( 0,5, 0,5, 1 );
|
self.revivetexthud.color = ( 0.5, 0.5, 1 );
|
||||||
}
|
}
|
||||||
self.revivetexthud settext( &"ZOMBIE_REVIVING" );
|
self.revivetexthud settext( &"ZOMBIE_REVIVING" );
|
||||||
self thread check_for_failed_revive( playerbeingrevived );
|
self thread check_for_failed_revive( playerbeingrevived );
|
||||||
while ( self is_reviving( playerbeingrevived ) )
|
while ( self is_reviving( playerbeingrevived ) )
|
||||||
{
|
{
|
||||||
wait 0,05;
|
wait 0.05;
|
||||||
timer += 0,05;
|
timer += 0.05;
|
||||||
if ( self player_is_in_laststand() )
|
if ( self player_is_in_laststand() )
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@ -986,17 +981,11 @@ revive_do_revive( playerbeingrevived, revivergun )
|
|||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( timer >= revivetime )
|
if ( timer >= revivetime )
|
||||||
{
|
{
|
||||||
revived = 1;
|
revived = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( isDefined( self.reviveprogressbar ) )
|
if ( isDefined( self.reviveprogressbar ) )
|
||||||
{
|
{
|
||||||
@ -1028,7 +1017,7 @@ revive_do_revive( playerbeingrevived, revivergun )
|
|||||||
return revived;
|
return revived;
|
||||||
}
|
}
|
||||||
|
|
||||||
checkforbleedout( player )
|
checkforbleedout( player ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "player_revived" );
|
self endon( "player_revived" );
|
||||||
self endon( "player_suicide" );
|
self endon( "player_suicide" );
|
||||||
@ -1041,7 +1030,7 @@ checkforbleedout( player )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto_revive( reviver, dont_enable_weapons )
|
auto_revive( reviver, dont_enable_weapons ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( isDefined( self.revivetrigger ) )
|
if ( isDefined( self.revivetrigger ) )
|
||||||
{
|
{
|
||||||
@ -1054,12 +1043,9 @@ auto_revive( reviver, dont_enable_weapons )
|
|||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
wait_network_frame();
|
wait_network_frame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
self.revivetrigger.auto_trigger = 0;
|
self.revivetrigger.auto_trigger = 0;
|
||||||
}
|
}
|
||||||
self reviveplayer();
|
self reviveplayer();
|
||||||
@ -1090,7 +1076,7 @@ auto_revive( reviver, dont_enable_weapons )
|
|||||||
self notify( "player_revived" );
|
self notify( "player_revived" );
|
||||||
}
|
}
|
||||||
|
|
||||||
remote_revive( reviver )
|
remote_revive( reviver ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !self player_is_in_laststand() )
|
if ( !self player_is_in_laststand() )
|
||||||
{
|
{
|
||||||
@ -1099,7 +1085,7 @@ remote_revive( reviver )
|
|||||||
self auto_revive( reviver );
|
self auto_revive( reviver );
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_success( reviver, b_track_stats )
|
revive_success( reviver, b_track_stats ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
if ( !isDefined( b_track_stats ) )
|
if ( !isDefined( b_track_stats ) )
|
||||||
{
|
{
|
||||||
@ -1107,14 +1093,14 @@ revive_success( reviver, b_track_stats )
|
|||||||
}
|
}
|
||||||
if ( !isplayer( self ) )
|
if ( !isplayer( self ) )
|
||||||
{
|
{
|
||||||
self notify( "player_revived" );
|
self notify( "player_revived", reviver );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( isDefined( b_track_stats ) && b_track_stats )
|
if ( isDefined( b_track_stats ) && b_track_stats )
|
||||||
{
|
{
|
||||||
maps/mp/_demo::bookmark( "zm_player_revived", getTime(), self, reviver );
|
maps/mp/_demo::bookmark( "zm_player_revived", getTime(), self, reviver );
|
||||||
}
|
}
|
||||||
self notify( "player_revived" );
|
self notify( "player_revived", reviver );
|
||||||
self reviveplayer();
|
self reviveplayer();
|
||||||
self maps/mp/zombies/_zm_perks::perk_set_max_health_if_jugg( "health_reboot", 1, 0 );
|
self maps/mp/zombies/_zm_perks::perk_set_max_health_if_jugg( "health_reboot", 1, 0 );
|
||||||
if ( isDefined( self.pers_upgrades_awarded[ "perk_lose" ] ) && self.pers_upgrades_awarded[ "perk_lose" ] )
|
if ( isDefined( self.pers_upgrades_awarded[ "perk_lose" ] ) && self.pers_upgrades_awarded[ "perk_lose" ] )
|
||||||
@ -1137,9 +1123,6 @@ revive_success( reviver, b_track_stats )
|
|||||||
{
|
{
|
||||||
reviver thread check_for_sacrifice();
|
reviver thread check_for_sacrifice();
|
||||||
}
|
}
|
||||||
if ( isDefined( level.missioncallbacks ) )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
setclientsysstate( "lsm", "0", self );
|
setclientsysstate( "lsm", "0", self );
|
||||||
self.revivetrigger delete();
|
self.revivetrigger delete();
|
||||||
self.revivetrigger = undefined;
|
self.revivetrigger = undefined;
|
||||||
@ -1148,8 +1131,9 @@ revive_success( reviver, b_track_stats )
|
|||||||
self.ignoreme = 0;
|
self.ignoreme = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_force_revive( reviver )
|
revive_force_revive( reviver ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( self ) );
|
assert( isDefined( self ) );
|
||||||
#/
|
#/
|
||||||
@ -1159,10 +1143,11 @@ revive_force_revive( reviver )
|
|||||||
/#
|
/#
|
||||||
assert( self player_is_in_laststand() );
|
assert( self player_is_in_laststand() );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
self thread revive_success( reviver );
|
self thread revive_success( reviver );
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_hud_create()
|
revive_hud_create() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self.revive_hud = newclienthudelem( self );
|
self.revive_hud = newclienthudelem( self );
|
||||||
self.revive_hud.alignx = "center";
|
self.revive_hud.alignx = "center";
|
||||||
@ -1171,7 +1156,7 @@ revive_hud_create()
|
|||||||
self.revive_hud.vertalign = "bottom";
|
self.revive_hud.vertalign = "bottom";
|
||||||
self.revive_hud.foreground = 1;
|
self.revive_hud.foreground = 1;
|
||||||
self.revive_hud.font = "default";
|
self.revive_hud.font = "default";
|
||||||
self.revive_hud.fontscale = 1,5;
|
self.revive_hud.fontscale = 1.5;
|
||||||
self.revive_hud.alpha = 0;
|
self.revive_hud.alpha = 0;
|
||||||
self.revive_hud.color = ( 1, 1, 1 );
|
self.revive_hud.color = ( 1, 1, 1 );
|
||||||
self.revive_hud.hidewheninmenu = 1;
|
self.revive_hud.hidewheninmenu = 1;
|
||||||
@ -1179,13 +1164,13 @@ revive_hud_create()
|
|||||||
self.revive_hud.y = -160;
|
self.revive_hud.y = -160;
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_hud_think()
|
revive_hud_think() //checked partially changed to match cerberus output //did not change while loops to for loops to prevent infinite loop bug due to continue
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
wait 0,1;
|
wait 0,1;
|
||||||
while ( !player_any_player_in_laststand() )
|
if ( !player_any_player_in_laststand() )
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1199,13 +1184,10 @@ revive_hud_think()
|
|||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( !isDefined( playertorevive ) || playertorevive.revivetrigger.createtime > players[ i ].revivetrigger.createtime )
|
if ( !isDefined( playertorevive ) || playertorevive.revivetrigger.createtime > players[ i ].revivetrigger.createtime )
|
||||||
{
|
{
|
||||||
playertorevive = players[ i ];
|
playertorevive = players[ i ];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
if ( isDefined( playertorevive ) )
|
if ( isDefined( playertorevive ) )
|
||||||
@ -1218,7 +1200,7 @@ revive_hud_think()
|
|||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if ( getDvar( "g_gametype" ) == "vs" )
|
if ( getDvar( "g_gametype" ) == "vs" )
|
||||||
{
|
{
|
||||||
if ( players[ i ].team != playertorevive.team )
|
if ( players[ i ].team != playertorevive.team )
|
||||||
{
|
{
|
||||||
@ -1226,32 +1208,29 @@ revive_hud_think()
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( is_encounter() )
|
if ( is_encounter() )
|
||||||
{
|
{
|
||||||
if ( players[ i ].sessionteam != playertorevive.sessionteam )
|
if ( players[ i ].sessionteam != playertorevive.sessionteam )
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if ( isDefined( level.hide_revive_message ) && level.hide_revive_message )
|
if ( isDefined( level.hide_revive_message ) && level.hide_revive_message )
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
players[ i ] thread faderevivemessageover( playertorevive, 3 );
|
players[ i ] thread faderevivemessageover( playertorevive, 3 );
|
||||||
}
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
playertorevive.revivetrigger.createtime = undefined;
|
playertorevive.revivetrigger.createtime = undefined;
|
||||||
wait 3,5;
|
wait 3.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
faderevivemessageover( playertorevive, time )
|
faderevivemessageover( playertorevive, time ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
revive_hud_show();
|
revive_hud_show();
|
||||||
self.revive_hud settext( &"ZOMBIE_PLAYER_NEEDS_TO_BE_REVIVED", playertorevive );
|
self.revive_hud settext( &"ZOMBIE_PLAYER_NEEDS_TO_BE_REVIVED", playertorevive );
|
||||||
@ -1259,26 +1238,29 @@ faderevivemessageover( playertorevive, time )
|
|||||||
self.revive_hud.alpha = 0;
|
self.revive_hud.alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_hud_show()
|
revive_hud_show() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( isDefined( self ) );
|
assert( isDefined( self ) );
|
||||||
#/
|
#/
|
||||||
/#
|
/#
|
||||||
assert( isDefined( self.revive_hud ) );
|
assert( isDefined( self.revive_hud ) );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
self.revive_hud.alpha = 1;
|
self.revive_hud.alpha = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
revive_hud_show_n_fade( time )
|
revive_hud_show_n_fade( time ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
revive_hud_show();
|
revive_hud_show();
|
||||||
self.revive_hud fadeovertime( time );
|
self.revive_hud fadeovertime( time );
|
||||||
self.revive_hud.alpha = 0;
|
self.revive_hud.alpha = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
drawcylinder( pos, rad, height )
|
drawcylinder( pos, rad, height ) //checked matches cerberus output //may need to review order of operations
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
currad = rad;
|
currad = rad;
|
||||||
curheight = height;
|
curheight = height;
|
||||||
@ -1293,13 +1275,16 @@ drawcylinder( pos, rad, height )
|
|||||||
r++;
|
r++;
|
||||||
#/
|
#/
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
get_lives_remaining()
|
get_lives_remaining() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( level.laststandgetupallowed, "Lives only exist in the Laststand type GETUP." );
|
assert( level.laststandgetupallowed, "Lives only exist in the Laststand type GETUP." );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
if ( level.laststandgetupallowed && isDefined( self.laststand_info ) && isDefined( self.laststand_info.type_getup_lives ) )
|
if ( level.laststandgetupallowed && isDefined( self.laststand_info ) && isDefined( self.laststand_info.type_getup_lives ) )
|
||||||
{
|
{
|
||||||
return max( 0, self.laststand_info.type_getup_lives );
|
return max( 0, self.laststand_info.type_getup_lives );
|
||||||
@ -1307,14 +1292,16 @@ get_lives_remaining()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
update_lives_remaining( increment )
|
update_lives_remaining( increment ) //checked changed to match cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
assert( level.laststandgetupallowed, "Lives only exist in the Laststand type GETUP." );
|
assert( level.laststandgetupallowed, "Lives only exist in the Laststand type GETUP." );
|
||||||
#/
|
#/
|
||||||
/#
|
/#
|
||||||
assert( isDefined( increment ), "Must specify increment true or false" );
|
assert( isDefined( increment ), "Must specify increment true or false" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
if ( isDefined( increment ) )
|
if ( isDefined( increment ) )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -1329,25 +1316,29 @@ update_lives_remaining( increment )
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
self.laststand_info.type_getup_lives = max( 0, self.laststand_info.type_getup_lives - 1, self.laststand_info.type_getup_lives + 1 );
|
self.laststand_info.type_getup_lives = max( 0, self.laststand_info.type_getup_lives - 1, self.laststand_info.type_getup_lives + 1 );
|
||||||
self notify( "laststand_lives_updated" );
|
self notify( "laststand_lives_updated", self.laststand_info.type_getup_lives + 1, increment );
|
||||||
}
|
}
|
||||||
|
|
||||||
player_getup_setup()
|
player_getup_setup() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
println( "ZM >> player_getup_setup called" );
|
println( "ZM >> player_getup_setup called" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
self.laststand_info = spawnstruct();
|
self.laststand_info = spawnstruct();
|
||||||
self.laststand_info.type_getup_lives = level.const_laststand_getup_count_start;
|
self.laststand_info.type_getup_lives = level.const_laststand_getup_count_start;
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_getup()
|
laststand_getup() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "player_revived" );
|
self endon( "player_revived" );
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
|
/*
|
||||||
/#
|
/#
|
||||||
println( "ZM >> laststand_getup called" );
|
println( "ZM >> laststand_getup called" );
|
||||||
#/
|
#/
|
||||||
|
*/
|
||||||
self update_lives_remaining( 0 );
|
self update_lives_remaining( 0 );
|
||||||
setclientsysstate( "lsm", "1", self );
|
setclientsysstate( "lsm", "1", self );
|
||||||
self.laststand_info.getup_bar_value = level.const_laststand_getup_bar_start;
|
self.laststand_info.getup_bar_value = level.const_laststand_getup_bar_start;
|
||||||
@ -1356,13 +1347,13 @@ laststand_getup()
|
|||||||
while ( self.laststand_info.getup_bar_value < 1 )
|
while ( self.laststand_info.getup_bar_value < 1 )
|
||||||
{
|
{
|
||||||
self.laststand_info.getup_bar_value += level.const_laststand_getup_bar_regen;
|
self.laststand_info.getup_bar_value += level.const_laststand_getup_bar_regen;
|
||||||
wait 0,05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
self auto_revive( self );
|
self auto_revive( self );
|
||||||
setclientsysstate( "lsm", "0", self );
|
setclientsysstate( "lsm", "0", self );
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_getup_damage_watcher()
|
laststand_getup_damage_watcher() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "player_revived" );
|
self endon( "player_revived" );
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
@ -1377,7 +1368,7 @@ laststand_getup_damage_watcher()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_getup_hud()
|
laststand_getup_hud() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "player_revived" );
|
self endon( "player_revived" );
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
@ -1389,7 +1380,7 @@ laststand_getup_hud()
|
|||||||
hudelem.x = 5;
|
hudelem.x = 5;
|
||||||
hudelem.y = 170;
|
hudelem.y = 170;
|
||||||
hudelem.font = "big";
|
hudelem.font = "big";
|
||||||
hudelem.fontscale = 1,5;
|
hudelem.fontscale = 1.5;
|
||||||
hudelem.foreground = 1;
|
hudelem.foreground = 1;
|
||||||
hudelem.hidewheninmenu = 1;
|
hudelem.hidewheninmenu = 1;
|
||||||
hudelem.hidewhendead = 1;
|
hudelem.hidewhendead = 1;
|
||||||
@ -1399,17 +1390,17 @@ laststand_getup_hud()
|
|||||||
while ( 1 )
|
while ( 1 )
|
||||||
{
|
{
|
||||||
hudelem setvalue( self.laststand_info.getup_bar_value );
|
hudelem setvalue( self.laststand_info.getup_bar_value );
|
||||||
wait 0,05;
|
wait 0.05;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
laststand_getup_hud_destroy( hudelem )
|
laststand_getup_hud_destroy( hudelem ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self waittill_either( "player_revived", "disconnect" );
|
self waittill_either( "player_revived", "disconnect" );
|
||||||
hudelem destroy();
|
hudelem destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
check_for_sacrifice()
|
check_for_sacrifice() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self delay_notify( "sacrifice_denied", 1 );
|
self delay_notify( "sacrifice_denied", 1 );
|
||||||
self endon( "sacrifice_denied" );
|
self endon( "sacrifice_denied" );
|
||||||
@ -1418,7 +1409,7 @@ check_for_sacrifice()
|
|||||||
self maps/mp/zombies/_zm_stats::increment_player_stat( "sacrifices" );
|
self maps/mp/zombies/_zm_stats::increment_player_stat( "sacrifices" );
|
||||||
}
|
}
|
||||||
|
|
||||||
check_for_failed_revive( playerbeingrevived )
|
check_for_failed_revive( playerbeingrevived ) //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "disconnect" );
|
self endon( "disconnect" );
|
||||||
playerbeingrevived endon( "disconnect" );
|
playerbeingrevived endon( "disconnect" );
|
||||||
@ -1431,7 +1422,7 @@ check_for_failed_revive( playerbeingrevived )
|
|||||||
self maps/mp/zombies/_zm_stats::increment_player_stat( "failed_revives" );
|
self maps/mp/zombies/_zm_stats::increment_player_stat( "failed_revives" );
|
||||||
}
|
}
|
||||||
|
|
||||||
add_weighted_down()
|
add_weighted_down() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
if ( !level.curr_gametype_affects_rank )
|
if ( !level.curr_gametype_affects_rank )
|
||||||
{
|
{
|
||||||
@ -1445,7 +1436,7 @@ add_weighted_down()
|
|||||||
self addplayerstat( "weighted_downs", weighted_down );
|
self addplayerstat( "weighted_downs", weighted_down );
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup_laststand_on_disconnect()
|
cleanup_laststand_on_disconnect() //checked matches cerberus output
|
||||||
{
|
{
|
||||||
self endon( "player_revived" );
|
self endon( "player_revived" );
|
||||||
self endon( "player_suicide" );
|
self endon( "player_suicide" );
|
||||||
@ -1457,3 +1448,4 @@ cleanup_laststand_on_disconnect()
|
|||||||
trig delete();
|
trig delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,14 +214,11 @@ 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 );
|
||||||
newtime = getTime();
|
newtime = getTime();
|
||||||
i = 0;
|
i = 0;
|
||||||
@ -233,8 +230,6 @@ update_players_stats_at_match_end( players )
|
|||||||
i++;
|
i++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
distance = player get_stat_distance_traveled();
|
distance = player get_stat_distance_traveled();
|
||||||
player addplayerstatwithgametype( "distance_traveled", distance );
|
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" ] );
|
player add_location_gametype_stat( level.scr_zm_map_start_location, level.scr_zm_ui_gametype, "time_played_total", player.pers[ "time_played_total" ] );
|
||||||
@ -270,12 +265,11 @@ update_players_stats_at_match_end( players )
|
|||||||
distancethisround = int( player.pers[ "distance_traveled" ] - player.pers[ "previous_distance_traveled" ] );
|
distancethisround = int( player.pers[ "distance_traveled" ] - player.pers[ "previous_distance_traveled" ] );
|
||||||
player.pers[ "previous_distance_traveled" ] = player.pers[ "distance_traveled" ];
|
player.pers[ "previous_distance_traveled" ] = player.pers[ "distance_traveled" ];
|
||||||
player incrementplayerstat( "distance_traveled", distancethisround );
|
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( stat_name, 0 );
|
||||||
zombie.attacker increment_client_stat( "gibs" );
|
zombie.attacker increment_client_stat( "gibs" );
|
||||||
}
|
i++;
|
||||||
_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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 ] ) )
|
||||||
}
|
|
||||||
|
|
||||||
is_equipment_that_blocks_purchase( weaponname ) //checked matches cerberus output
|
|
||||||
{
|
{
|
||||||
return is_equipment( weaponname );
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_player_equipment( weaponname ) //checked matches cerberus output
|
is_equipment_that_blocks_purchase( weaponname ) //checked matches cerberus output //changed at own discretion
|
||||||
|
{
|
||||||
|
if ( is_equipment( weaponname ) )
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -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:
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user