mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-07 17:37:50 -05:00
checked 3 zm_highrise scripts
Checked mp zm_highrise.gsc, mp zm_highrise_ffotd.gsc, and _zm_weap_slipgun.gsc.
This commit is contained in:
parent
9763aea127
commit
9665312608
File diff suppressed because it is too large
Load Diff
@ -1,22 +1,23 @@
|
||||
//checked includes match cerberus output
|
||||
#include maps/mp/zombies/_zm_weapons;
|
||||
#include maps/mp/zombies/_zm_zonemgr;
|
||||
#include maps/mp/zombies/_zm_utility;
|
||||
#include common_scripts/utility;
|
||||
#include maps/mp/_utility;
|
||||
|
||||
main_start()
|
||||
main_start() //checked matches cerberus output
|
||||
{
|
||||
level thread spawned_collision_ffotd();
|
||||
level thread eject_player_trigger_init();
|
||||
level thread change_bad_spawner();
|
||||
}
|
||||
|
||||
main_end()
|
||||
main_end() //checked matches cerberus output
|
||||
{
|
||||
level thread eject_player_trigger();
|
||||
}
|
||||
|
||||
spawned_collision_ffotd()
|
||||
spawned_collision_ffotd() //checked changed to match cerberus output
|
||||
{
|
||||
precachemodel( "collision_wall_32x32x10_standard" );
|
||||
flag_wait( "start_zombie_round_logic" );
|
||||
@ -24,11 +25,11 @@ spawned_collision_ffotd()
|
||||
{
|
||||
collision1 = spawn( "script_model", ( 2044, 499, 2893 ) );
|
||||
collision1 setmodel( "collision_wall_32x32x10_standard" );
|
||||
collision1.angles = vectorScale( ( 0, 0, 0 ), 330 );
|
||||
collision1.angles = vectorScale( ( 0, 1, 0 ), 330 );
|
||||
collision1 ghost();
|
||||
collision2 = spawn( "script_model", ( 2044, 499, 2925 ) );
|
||||
collision2 setmodel( "collision_wall_32x32x10_standard" );
|
||||
collision2.angles = vectorScale( ( 0, 0, 0 ), 330 );
|
||||
collision2.angles = vectorScale( ( 0, 1, 0 ), 330 );
|
||||
collision2 ghost();
|
||||
collision3 = spawn( "script_model", ( 1768, 1507, 3075 ) );
|
||||
collision3 setmodel( "collision_wall_256x256x10_standard" );
|
||||
@ -44,11 +45,11 @@ spawned_collision_ffotd()
|
||||
collision3 ghost();
|
||||
collision4 = spawn( "script_model", ( 2257, 2374, 3101 ) );
|
||||
collision4 setmodel( "collision_wall_256x256x10_standard" );
|
||||
collision4.angles = vectorScale( ( 0, 0, 0 ), 270 );
|
||||
collision4.angles = vectorScale( ( 0, 1, 0 ), 270 );
|
||||
collision4 ghost();
|
||||
collision5 = spawn( "script_model", ( 3076, 1598, 2791 ) );
|
||||
collision5 setmodel( "collision_wall_256x256x10_standard" );
|
||||
collision5.angles = vectorScale( ( 0, 0, 0 ), 347,6 );
|
||||
collision5.angles = vectorScale( ( 1, 0, 0 ), 347.6 );
|
||||
collision5 ghost();
|
||||
collision6b = spawn( "script_model", ( 3693, 1840, 1897 ) );
|
||||
collision6b setmodel( "collision_wall_256x256x10_standard" );
|
||||
@ -60,7 +61,7 @@ spawned_collision_ffotd()
|
||||
collision6c ghost();
|
||||
collision7 = spawn( "script_model", ( 2157, 839, 3129 ) );
|
||||
collision7 setmodel( "collision_wall_128x128x10_standard" );
|
||||
collision7.angles = ( 0, 9,79996, -90 );
|
||||
collision7.angles = ( 0, 9.79996, -90 );
|
||||
collision7 ghost();
|
||||
collision7 = spawn( "script_model", ( 3594, 1708, 2247 ) );
|
||||
collision7 setmodel( "collision_wall_128x128x10_standard" );
|
||||
@ -69,29 +70,29 @@ spawned_collision_ffotd()
|
||||
}
|
||||
}
|
||||
|
||||
eject_player_trigger_init()
|
||||
eject_player_trigger_init() //checked matches cerberus output
|
||||
{
|
||||
trig1 = spawn( "trigger_box", ( 3172, 1679, 1296,09 ), 0, 64, 10, 64 );
|
||||
trig1 = spawn( "trigger_box", ( 3172, 1679, 1296.09 ), 0, 64, 10, 64 );
|
||||
trig1.angles = ( 0, 0, 0 );
|
||||
trig1.targetname = "eject_player_pos";
|
||||
trig1.point = spawn( "script_origin", ( 3266, 1703,5, 1325 ) );
|
||||
trig2 = spawn( "trigger_box", ( 3225,5, 1153, 1346,48 ), 0, 64, 10, 64 );
|
||||
trig1.point = spawn( "script_origin", ( 3266, 1703.5, 1325 ) );
|
||||
trig2 = spawn( "trigger_box", ( 3225.5, 1153, 1346.48 ), 0, 64, 10, 64 );
|
||||
trig2.angles = ( 0, 0, 0 );
|
||||
trig2.targetname = "eject_player_pos";
|
||||
trig2.point = spawn( "script_origin", ( 3074, 1137,5, 1282,26 ) );
|
||||
trig3 = spawn( "trigger_radius", ( 3583, 1964, 2751,95 ), 0, 30, 64 );
|
||||
trig2.point = spawn( "script_origin", ( 3074, 1137.5, 1282.26 ) );
|
||||
trig3 = spawn( "trigger_radius", ( 3583, 1964, 2751.95 ), 0, 30, 64 );
|
||||
trig3.angles = ( 0, 0, 0 );
|
||||
trig3.targetname = "eject_player_pos";
|
||||
trig3.point = spawn( "script_origin", ( 3590,2, 2068, 2720,34 ) );
|
||||
trig3.point = spawn( "script_origin", ( 3590.2, 2068, 2720.34 ) );
|
||||
}
|
||||
|
||||
eject_player_trigger()
|
||||
eject_player_trigger() //checked matches cerberus output
|
||||
{
|
||||
trigs = getentarray( "eject_player_pos", "targetname" );
|
||||
array_thread( trigs, ::player_eject_watcher );
|
||||
}
|
||||
|
||||
player_eject_watcher()
|
||||
player_eject_watcher() //checked matches cerberus output
|
||||
{
|
||||
time = 0;
|
||||
while ( 1 )
|
||||
@ -111,7 +112,7 @@ player_eject_watcher()
|
||||
who setorigin( self.point.origin );
|
||||
who playlocalsound( level.zmb_laugh_alias );
|
||||
who playrumbleonentity( "damage_light" );
|
||||
earthquake( 0,5, 0,5, who.origin, 100 );
|
||||
earthquake( 0.5, 0.5, who.origin, 100 );
|
||||
who thread ejected_overrun( self );
|
||||
}
|
||||
}
|
||||
@ -120,11 +121,11 @@ player_eject_watcher()
|
||||
}
|
||||
time = 0;
|
||||
}
|
||||
wait 0,1;
|
||||
wait 0.1;
|
||||
}
|
||||
}
|
||||
|
||||
ejected_overrun( trig )
|
||||
ejected_overrun( trig ) //checked changed to match cerberus output
|
||||
{
|
||||
if ( !isDefined( trig.ejected ) )
|
||||
{
|
||||
@ -136,13 +137,9 @@ ejected_overrun( trig )
|
||||
if ( trig.ejected >= 3 )
|
||||
{
|
||||
primaries = self getweaponslistprimaries();
|
||||
_a169 = primaries;
|
||||
_k169 = getFirstArrayKey( _a169 );
|
||||
while ( isDefined( _k169 ) )
|
||||
foreach ( weapon in primaries )
|
||||
{
|
||||
weapon = _a169[ _k169 ];
|
||||
self takeweapon( weapon );
|
||||
_k169 = getNextArrayKey( _a169, _k169 );
|
||||
}
|
||||
lethal = self get_player_lethal_grenade();
|
||||
if ( isDefined( lethal ) && lethal != "" )
|
||||
@ -176,20 +173,17 @@ ejected_overrun( trig )
|
||||
}
|
||||
}
|
||||
|
||||
change_bad_spawner()
|
||||
change_bad_spawner() //checked changed to match cerberus output
|
||||
{
|
||||
flag_wait( "always_on" );
|
||||
spawner_array = getstructarray( "zone_blue_level4a_spawners", "targetname" );
|
||||
_a214 = spawner_array;
|
||||
_k214 = getFirstArrayKey( _a214 );
|
||||
while ( isDefined( _k214 ) )
|
||||
foreach ( struct in spawner_array )
|
||||
{
|
||||
struct = _a214[ _k214 ];
|
||||
if ( isDefined( struct.origin ) && struct.origin == ( 2154, 748,5, 1312 ) )
|
||||
if ( isDefined( struct.origin ) && struct.origin == ( 2154, 748.5, 1312 ) )
|
||||
{
|
||||
struct.script_noteworthy = "riser_location";
|
||||
return;
|
||||
}
|
||||
_k214 = getNextArrayKey( _a214, _k214 );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
//checked includes match cerberus output
|
||||
#include maps/mp/zombies/_zm_audio;
|
||||
#include maps/mp/zombies/_zm_powerups;
|
||||
#include maps/mp/zombies/_zm_ai_basic;
|
||||
@ -12,7 +13,7 @@
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
set_zombie_var_once( var, value, is_float, column, is_team_based )
|
||||
set_zombie_var_once( var, value, is_float, column, is_team_based ) //checked matches cerberus output
|
||||
{
|
||||
if ( !isDefined( level.zombie_vars ) || !isDefined( level.zombie_vars[ var ] ) )
|
||||
{
|
||||
@ -20,7 +21,7 @@ set_zombie_var_once( var, value, is_float, column, is_team_based )
|
||||
}
|
||||
}
|
||||
|
||||
init()
|
||||
init() //checked matches cerberus output
|
||||
{
|
||||
if ( !maps/mp/zombies/_zm_weapons::is_weapon_included( "slipgun_zm" ) )
|
||||
{
|
||||
@ -55,7 +56,7 @@ init()
|
||||
thread wait_init_damage();
|
||||
}
|
||||
|
||||
wait_init_damage()
|
||||
wait_init_damage() //checked matches cerberus output
|
||||
{
|
||||
while ( !isDefined( level.zombie_vars ) || !isDefined( level.zombie_vars[ "zombie_health_start" ] ) )
|
||||
{
|
||||
@ -66,12 +67,12 @@ wait_init_damage()
|
||||
level.slipgun_damage_mod = "MOD_PROJECTILE_SPLASH";
|
||||
}
|
||||
|
||||
slipgun_player_connect()
|
||||
slipgun_player_connect() //checked matches cerberus output
|
||||
{
|
||||
self thread watch_for_slip_bolt();
|
||||
}
|
||||
|
||||
watch_for_slip_bolt()
|
||||
watch_for_slip_bolt() //checked changed to match cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
@ -84,16 +85,14 @@ watch_for_slip_bolt()
|
||||
case "slip_bolt_zm":
|
||||
grenade thread slip_bolt( self, 0 );
|
||||
break;
|
||||
continue;
|
||||
case "slip_bolt_upgraded_zm":
|
||||
grenade thread slip_bolt( self, 1 );
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
slip_bolt( player, upgraded )
|
||||
slip_bolt( player, upgraded ) //checked matches cerberus output
|
||||
{
|
||||
startpos = player getweaponmuzzlepoint();
|
||||
self waittill( "explode", position );
|
||||
@ -105,7 +104,7 @@ slip_bolt( player, upgraded )
|
||||
thread add_slippery_spot( position, duration, startpos );
|
||||
}
|
||||
|
||||
dropslipgun()
|
||||
dropslipgun() //checked matches cerberus output
|
||||
{
|
||||
item = self maps/mp/zombies/_zm_equipment::placed_equipment_think( "t6_wpn_zmb_slipgun_world", "slipgun_zm", self.origin + vectorScale( ( 0, 0, 1 ), 30 ), self.angles );
|
||||
if ( isDefined( item ) )
|
||||
@ -121,7 +120,7 @@ dropslipgun()
|
||||
return item;
|
||||
}
|
||||
|
||||
pickupslipgun( item )
|
||||
pickupslipgun( item ) //checked matches cerberus output
|
||||
{
|
||||
item.owner = self;
|
||||
self giveweapon( item.name );
|
||||
@ -140,7 +139,7 @@ transferslipgun( fromplayer, toplayer )
|
||||
fromplayer notify( "slipgun_zm_taken" );
|
||||
}
|
||||
|
||||
slipgun_activation_watcher_thread()
|
||||
slipgun_activation_watcher_thread() //checked matches cerberus output
|
||||
{
|
||||
self endon( "zombified" );
|
||||
self endon( "disconnect" );
|
||||
@ -151,7 +150,7 @@ slipgun_activation_watcher_thread()
|
||||
}
|
||||
}
|
||||
|
||||
slipgun_debug_circle( origin, radius, seconds, onslope, parent, start )
|
||||
slipgun_debug_circle( origin, radius, seconds, onslope, parent, start ) //dev call didn't check
|
||||
{
|
||||
/*
|
||||
/#
|
||||
@ -191,7 +190,7 @@ slipgun_debug_circle( origin, radius, seconds, onslope, parent, start )
|
||||
*/
|
||||
}
|
||||
|
||||
slipgun_debug_line( start, end, color, seconds )
|
||||
slipgun_debug_line( start, end, color, seconds ) //dev call didn't check
|
||||
{
|
||||
/*
|
||||
/#
|
||||
@ -204,7 +203,7 @@ slipgun_debug_line( start, end, color, seconds )
|
||||
*/
|
||||
}
|
||||
|
||||
canzombieongoofall()
|
||||
canzombieongoofall() //checked changed to match cerberus output
|
||||
{
|
||||
if ( is_true( self.is_inert ) )
|
||||
{
|
||||
@ -220,7 +219,7 @@ canzombieongoofall()
|
||||
}
|
||||
if ( randomint( 100 ) < 20 )
|
||||
{
|
||||
trace = groundtrace( self.origin + vectorScale( ( 0, 0, 1 ), 5 ), self.origin + vectorScale( ( 0, 0, 1 ), 300 ), 0, undefined );
|
||||
trace = groundtrace( self.origin + vectorScale( ( 0, 0, 1 ), 5 ), self.origin + vectorScale( ( 0, 0, -1 ), 300 ), 0, undefined );
|
||||
origin = trace[ "position" ];
|
||||
groundnormal = trace[ "normal" ];
|
||||
if ( distancesquared( self.origin, origin ) > 256 )
|
||||
@ -233,7 +232,7 @@ canzombieongoofall()
|
||||
return 0;
|
||||
}
|
||||
trace_origin = self.origin + vectorScale( anglesToForward( self.angles ), 200 );
|
||||
trace = groundtrace( trace_origin + vectorScale( ( 0, 0, 1 ), 5 ), self.origin + vectorScale( ( 0, 0, 1 ), 300 ), 0, undefined );
|
||||
trace = groundtrace( trace_origin + vectorScale( ( 0, 0, 1 ), 5 ), self.origin + vectorScale( ( 0, 0, -1 ), 300 ), 0, undefined );
|
||||
origin = trace[ "position" ];
|
||||
groundnormal = trace[ "normal" ];
|
||||
if ( distancesquared( trace_origin, origin ) > 256 )
|
||||
@ -250,7 +249,7 @@ canzombieongoofall()
|
||||
return 0;
|
||||
}
|
||||
|
||||
zombiemoveongoo()
|
||||
zombiemoveongoo() //checked partially changed to match cerberus output some conditionals changed to is_true()
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "removed" );
|
||||
@ -274,48 +273,40 @@ zombiemoveongoo()
|
||||
self maps/mp/zombies/_zm_spawner::zombie_history( "zombieMoveOnGoo " + getTime() );
|
||||
self.sliding_on_goo = 0;
|
||||
self thread zombiemoveongoo_on_killanimscript();
|
||||
for ( ;; )
|
||||
while ( 1 )
|
||||
{
|
||||
while ( 1 )
|
||||
self_on_goo = is_true( self.is_on_goo );
|
||||
velocity = self getvelocity();
|
||||
velocitylength = length( self getvelocity() );
|
||||
iscrawler = !is_true( self.has_legs );
|
||||
isleaper = self is_leaper();
|
||||
while ( is_true( self.is_leaping ) )
|
||||
{
|
||||
if ( isDefined( self.is_on_goo ) )
|
||||
wait 0.1;
|
||||
continue;
|
||||
}
|
||||
if ( !self_on_goo )
|
||||
{
|
||||
self animcustom( ::zombie_moveongoo_animcustom_recover );
|
||||
self waittill( "zombie_MoveOnGoo_animCustom_recover_done" );
|
||||
break;
|
||||
}
|
||||
if ( velocitylength <= 0.2 )
|
||||
{
|
||||
self animmode( "normal" );
|
||||
wait 0.1;
|
||||
self animmode( "slide" );
|
||||
}
|
||||
if ( !self.sliding_on_goo || !issubstr( self.zombie_move_speed, "slide" ) )
|
||||
{
|
||||
if ( !iscrawler && !isleaper && !isDefined( self.fell_while_sliding ) && canzombieongoofall() )
|
||||
{
|
||||
self_on_goo = self.is_on_goo;
|
||||
}
|
||||
velocity = self getvelocity();
|
||||
velocitylength = length( self getvelocity() );
|
||||
if ( isDefined( self.has_legs ) )
|
||||
{
|
||||
iscrawler = !self.has_legs;
|
||||
}
|
||||
isleaper = self is_leaper();
|
||||
while ( is_true( self.is_leaping ) )
|
||||
{
|
||||
wait 0.1;
|
||||
}
|
||||
if ( !self_on_goo )
|
||||
{
|
||||
self animcustom( ::zombie_moveongoo_animcustom_recover );
|
||||
self waittill( "zombie_MoveOnGoo_animCustom_recover_done" );
|
||||
break;
|
||||
self animcustom( ::zombie_moveongoo_animcustom_fall );
|
||||
self waittill( "zombie_MoveOnGoo_animCustom_fall_done" );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( velocitylength <= 0.2 )
|
||||
{
|
||||
self animmode( "normal" );
|
||||
wait 0.1;
|
||||
self animmode( "slide" );
|
||||
}
|
||||
if ( !self.sliding_on_goo || !issubstr( self.zombie_move_speed, "slide" ) )
|
||||
{
|
||||
if ( !iscrawler && !isleaper && !isDefined( self.fell_while_sliding ) && canzombieongoofall() )
|
||||
{
|
||||
self animcustom( ::zombie_moveongoo_animcustom_fall );
|
||||
self waittill( "zombie_MoveOnGoo_animCustom_fall_done" );
|
||||
}
|
||||
}
|
||||
else self.sliding_on_goo = 1;
|
||||
self.sliding_on_goo = 1;
|
||||
if ( velocitylength <= 0.2 )
|
||||
{
|
||||
wait 0.1;
|
||||
@ -329,7 +320,6 @@ zombiemoveongoo()
|
||||
animstatedef = self maps/mp/animscripts/zm_utility::append_missing_legs_suffix( "sprint_slide" );
|
||||
self set_zombie_run_cycle( animstatedef );
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if ( self.zombie_move_speed == "run" )
|
||||
{
|
||||
@ -338,24 +328,20 @@ zombiemoveongoo()
|
||||
animstatedef = self maps/mp/animscripts/zm_utility::append_missing_legs_suffix( "run_slide" );
|
||||
self set_zombie_run_cycle( animstatedef );
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
else if ( !isDefined( self.zombie_move_speed ) || isDefined( self.zombie_move_speed ) && self.zombie_move_speed != "walk_slide" )
|
||||
{
|
||||
if ( !isDefined( self.zombie_move_speed ) || isDefined( self.zombie_move_speed ) && self.zombie_move_speed != "walk_slide" )
|
||||
{
|
||||
animstatedef = self maps/mp/animscripts/zm_utility::append_missing_legs_suffix( "walk_slide" );
|
||||
self set_zombie_run_cycle( animstatedef );
|
||||
}
|
||||
animstatedef = self maps/mp/animscripts/zm_utility::append_missing_legs_suffix( "walk_slide" );
|
||||
self set_zombie_run_cycle( animstatedef );
|
||||
}
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
wait 0.05;
|
||||
}
|
||||
zombiemoveongoo_gobacktonormal();
|
||||
}
|
||||
|
||||
zombie_moveongoo_animcustom_fall()
|
||||
zombie_moveongoo_animcustom_fall() //checked matches cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "removed" );
|
||||
@ -369,7 +355,7 @@ zombie_moveongoo_animcustom_fall()
|
||||
self notify( "zombie_MoveOnGoo_animCustom_fall_done" );
|
||||
}
|
||||
|
||||
zombie_moveongoo_animcustom_recover()
|
||||
zombie_moveongoo_animcustom_recover() //checked matches cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "removed" );
|
||||
@ -386,7 +372,7 @@ zombie_moveongoo_animcustom_recover()
|
||||
self notify( "zombie_MoveOnGoo_animCustom_recover_done" );
|
||||
}
|
||||
|
||||
zombiemoveongoo_on_killanimscript()
|
||||
zombiemoveongoo_on_killanimscript() //checked matches cerberus output
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "removed" );
|
||||
@ -397,7 +383,7 @@ zombiemoveongoo_on_killanimscript()
|
||||
zombiemoveongoo_gobacktonormal();
|
||||
}
|
||||
|
||||
zombiemoveongoo_gobacktonormal()
|
||||
zombiemoveongoo_gobacktonormal() //checked matches cerberus output
|
||||
{
|
||||
self animmode( "normal" );
|
||||
self set_zombie_run_cycle();
|
||||
@ -424,7 +410,7 @@ zombiemoveongoo_gobacktonormal()
|
||||
}
|
||||
}
|
||||
|
||||
zombie_can_slip()
|
||||
zombie_can_slip() //checked matches cerberus output
|
||||
{
|
||||
if ( is_true( self.barricade_enter ) )
|
||||
{
|
||||
@ -445,7 +431,7 @@ zombie_can_slip()
|
||||
return 1;
|
||||
}
|
||||
|
||||
zombie_set_slipping( onoff )
|
||||
zombie_set_slipping( onoff ) //checked matches cerberus output
|
||||
{
|
||||
if ( isDefined( self ) )
|
||||
{
|
||||
@ -457,7 +443,7 @@ zombie_set_slipping( onoff )
|
||||
}
|
||||
}
|
||||
|
||||
slippery_spot_choke( lifetime )
|
||||
slippery_spot_choke( lifetime ) //checked matches cerberus output
|
||||
{
|
||||
level.sliquifier_distance_checks++;
|
||||
if ( level.sliquifier_distance_checks >= 32 )
|
||||
@ -469,7 +455,7 @@ slippery_spot_choke( lifetime )
|
||||
return lifetime;
|
||||
}
|
||||
|
||||
add_slippery_spot( origin, duration, startpos )
|
||||
add_slippery_spot( origin, duration, startpos ) //checked partially changed to match cerberus output
|
||||
{
|
||||
wait 0.5;
|
||||
level.slippery_spot_count++;
|
||||
@ -541,20 +527,21 @@ add_slippery_spot( origin, duration, startpos )
|
||||
while ( lifetime > 0 )
|
||||
{
|
||||
oldlifetime = lifetime;
|
||||
_a612 = get_players();
|
||||
_k612 = getFirstArrayKey( _a612 );
|
||||
while ( isDefined( _k612 ) )
|
||||
foreach ( player in get_players() )
|
||||
{
|
||||
player = _a612[ _k612 ];
|
||||
num = player getentitynumber();
|
||||
morigin = origin;
|
||||
if ( isDefined( moving_parent ) )
|
||||
{
|
||||
morigin = origin + ( moving_parent.origin - moving_parent_start );
|
||||
}
|
||||
if ( distance2dsquared( player.origin, morigin ) < radius2 )
|
||||
if ( distance2dsquared( player.origin, morigin ) < radius2 && abs( player.origin[ 2 ] - morigin[ 2 ] ) < height )
|
||||
{
|
||||
should_be_slick = abs( player.origin[ 2 ] - morigin[ 2 ] ) < height;
|
||||
should_be_slick = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
should_be_slick = 0;
|
||||
}
|
||||
is_slick = isDefined( slicked_players[ num ] );
|
||||
if ( should_be_slick != is_slick )
|
||||
@ -576,20 +563,17 @@ add_slippery_spot( origin, duration, startpos )
|
||||
assert( player.slick_count >= 0 );
|
||||
#/
|
||||
*/
|
||||
slicked_players[ num ] = undefined;
|
||||
}
|
||||
player forceslick( player.slick_count );
|
||||
}
|
||||
lifetime = slippery_spot_choke( lifetime );
|
||||
_k612 = getNextArrayKey( _a612, _k612 );
|
||||
}
|
||||
zombies = get_round_enemy_array();
|
||||
while ( isDefined( zombies ) )
|
||||
if ( isDefined( zombies ) )
|
||||
{
|
||||
_a645 = zombies;
|
||||
_k645 = getFirstArrayKey( _a645 );
|
||||
while ( isDefined( _k645 ) )
|
||||
foreach ( zombie in zombies )
|
||||
{
|
||||
zombie = _a645[ _k645 ];
|
||||
if ( isDefined( zombie ) )
|
||||
{
|
||||
num = zombie getentitynumber();
|
||||
@ -598,9 +582,13 @@ add_slippery_spot( origin, duration, startpos )
|
||||
{
|
||||
morigin = origin + ( moving_parent.origin - moving_parent_start );
|
||||
}
|
||||
if ( distance2dsquared( zombie.origin, morigin ) < radius2 )
|
||||
if ( distance2dsquared( zombie.origin, morigin ) < radius2 && abs( zombie.origin[ 2 ] - morigin[ 2 ] ) < height )
|
||||
{
|
||||
should_be_slick = abs( zombie.origin[ 2 ] - morigin[ 2 ] ) < height;
|
||||
should_be_slick = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
should_be_slick = 0;
|
||||
}
|
||||
if ( should_be_slick && !zombie zombie_can_slip() )
|
||||
{
|
||||
@ -618,32 +606,25 @@ add_slippery_spot( origin, duration, startpos )
|
||||
zombie.slick_count++;
|
||||
slicked_zombies[ num ] = zombie;
|
||||
}
|
||||
else
|
||||
else if ( zombie.slick_count > 0 )
|
||||
{
|
||||
if ( zombie.slick_count > 0 )
|
||||
{
|
||||
zombie.slick_count--;
|
||||
zombie.slick_count--;
|
||||
|
||||
}
|
||||
}
|
||||
zombie zombie_set_slipping( zombie.slick_count > 0 );
|
||||
}
|
||||
lifetime = slippery_spot_choke( lifetime );
|
||||
}
|
||||
_k645 = getNextArrayKey( _a645, _k645 );
|
||||
}
|
||||
}
|
||||
if ( oldlifetime == lifetime )
|
||||
else if ( oldlifetime == lifetime )
|
||||
{
|
||||
lifetime -= 0.05;
|
||||
wait 0.05;
|
||||
}
|
||||
}
|
||||
_a684 = slicked_players;
|
||||
_k684 = getFirstArrayKey( _a684 );
|
||||
while ( isDefined( _k684 ) )
|
||||
foreach ( player in slicked_players )
|
||||
{
|
||||
player = _a684[ _k684 ];
|
||||
player.slick_count--;
|
||||
/*
|
||||
|
||||
@ -652,13 +633,9 @@ add_slippery_spot( origin, duration, startpos )
|
||||
#/
|
||||
*/
|
||||
player forceslick( player.slick_count );
|
||||
_k684 = getNextArrayKey( _a684, _k684 );
|
||||
}
|
||||
_a690 = slicked_zombies;
|
||||
_k690 = getFirstArrayKey( _a690 );
|
||||
while ( isDefined( _k690 ) )
|
||||
foreach ( zombie in slicked_zombies )
|
||||
{
|
||||
zombie = _a690[ _k690 ];
|
||||
if ( isDefined( zombie ) )
|
||||
{
|
||||
if ( zombie.slick_count > 0 )
|
||||
@ -668,14 +645,12 @@ add_slippery_spot( origin, duration, startpos )
|
||||
}
|
||||
zombie zombie_set_slipping( zombie.slick_count > 0 );
|
||||
}
|
||||
_k690 = getNextArrayKey( _a690, _k690 );
|
||||
}
|
||||
arrayremovevalue( level.slippery_spots, origin, 0 );
|
||||
level.slippery_spot_count--;
|
||||
|
||||
}
|
||||
|
||||
pool_of_goo( origin, duration )
|
||||
pool_of_goo( origin, duration ) //checked matches cerberus output
|
||||
{
|
||||
effect_life = 24;
|
||||
if ( duration > effect_life )
|
||||
@ -690,7 +665,7 @@ pool_of_goo( origin, duration )
|
||||
wait duration;
|
||||
}
|
||||
|
||||
explode_into_goo( player, chain_depth )
|
||||
explode_into_goo( player, chain_depth ) //checked matches cerberus output
|
||||
{
|
||||
if ( isDefined( self.marked_for_insta_upgraded_death ) )
|
||||
{
|
||||
@ -720,7 +695,7 @@ explode_into_goo( player, chain_depth )
|
||||
level thread explode_to_near_zombies( player, self.origin, chain_radius, self.goo_chain_depth );
|
||||
}
|
||||
|
||||
explode_to_near_zombies( player, origin, radius, chain_depth )
|
||||
explode_to_near_zombies( player, origin, radius, chain_depth ) //checked partially changed to match cerberus output changed at own discretion
|
||||
{
|
||||
if ( level.zombie_vars[ "slipgun_max_kill_chain_depth" ] > 0 && chain_depth > level.zombie_vars[ "slipgun_max_kill_chain_depth" ] )
|
||||
{
|
||||
@ -733,7 +708,7 @@ explode_to_near_zombies( player, origin, radius, chain_depth )
|
||||
rsquared = radius * radius;
|
||||
tag = "J_Head";
|
||||
marked_zombies = [];
|
||||
while ( isDefined( enemies ) && enemies.size )
|
||||
if ( isDefined( enemies ) && enemies.size )
|
||||
{
|
||||
index = 0;
|
||||
enemy = enemies[ index ];
|
||||
@ -759,13 +734,10 @@ explode_to_near_zombies( player, origin, radius, chain_depth )
|
||||
}
|
||||
}
|
||||
}
|
||||
while ( isDefined( marked_zombies ) && marked_zombies.size )
|
||||
if ( isDefined( marked_zombies ) && marked_zombies.size )
|
||||
{
|
||||
_a799 = marked_zombies;
|
||||
_k799 = getFirstArrayKey( _a799 );
|
||||
while ( isDefined( _k799 ) )
|
||||
foreach(enemy in marked_zombies)
|
||||
{
|
||||
enemy = _a799[ _k799 ];
|
||||
if ( isalive( enemy ) && !is_true( enemy.guts_explosion ) && !is_true( enemy.nuked ) )
|
||||
{
|
||||
wait randomfloatrange( minchainwait, maxchainwait );
|
||||
@ -797,12 +769,11 @@ explode_to_near_zombies( player, origin, radius, chain_depth )
|
||||
}
|
||||
}
|
||||
}
|
||||
_k799 = getNextArrayKey( _a799, _k799 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
slipgun_zombie_1st_hit_response( upgraded, player )
|
||||
slipgun_zombie_1st_hit_response( upgraded, player ) //checked matches cerberus output
|
||||
{
|
||||
self notify( "stop_find_flesh" );
|
||||
self notify( "zombie_acquire_enemy" );
|
||||
@ -826,7 +797,7 @@ slipgun_zombie_1st_hit_response( upgraded, player )
|
||||
}
|
||||
}
|
||||
|
||||
slipgun_zombie_hit_response_internal( mod, damageweapon, player )
|
||||
slipgun_zombie_hit_response_internal( mod, damageweapon, player ) //checked matches cerberus output
|
||||
{
|
||||
if ( !self is_slipgun_damage( mod, damageweapon ) && !is_slipgun_explosive_damage( mod, damageweapon ) )
|
||||
{
|
||||
@ -842,12 +813,12 @@ slipgun_zombie_hit_response_internal( mod, damageweapon, player )
|
||||
return 1;
|
||||
}
|
||||
|
||||
slipgun_zombie_damage_response( mod, hit_location, hit_origin, player, amount )
|
||||
slipgun_zombie_damage_response( mod, hit_location, hit_origin, player, amount ) //checked matches cerberus output
|
||||
{
|
||||
return slipgun_zombie_hit_response_internal( mod, self.damageweapon, player );
|
||||
}
|
||||
|
||||
slipgun_zombie_death_response()
|
||||
slipgun_zombie_death_response() //checked matches cerberus output
|
||||
{
|
||||
if ( !self is_slipgun_damage( self.damagemod, self.damageweapon ) && !is_slipgun_explosive_damage( self.damagemod, self.damageweapon ) )
|
||||
{
|
||||
@ -862,25 +833,29 @@ is_slipgun_explosive_damage( mod, weapon )
|
||||
{
|
||||
if ( isDefined( weapon ) )
|
||||
{
|
||||
if ( weapon != "slip_goo_zm" && weapon != "slip_bolt_zm" )
|
||||
if ( weapon == "slip_goo_zm" || weapon == "slip_bolt_zm" || weapon == "slip_bolt_upgraded_zm" )
|
||||
{
|
||||
return weapon == "slip_bolt_upgraded_zm";
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
is_slipgun_damage( mod, weapon )
|
||||
{
|
||||
if ( isDefined( weapon ) )
|
||||
{
|
||||
if ( weapon != "slipgun_zm" )
|
||||
if ( weapon == "slipgun_zm" || weapon == "slipgun_upgraded_zm" )
|
||||
{
|
||||
return weapon == "slipgun_upgraded_zm";
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
slipgun_play_zombie_hit_vox()
|
||||
slipgun_play_zombie_hit_vox() //checked matches cerberus output
|
||||
{
|
||||
rand = randomintrange( 0, 101 );
|
||||
if ( rand >= 20 )
|
||||
@ -889,3 +864,4 @@ slipgun_play_zombie_hit_vox()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -4,11 +4,34 @@
|
||||
|
||||
### The following scripts compile and run successfully with major errors:
|
||||
```
|
||||
zm_highrise_patch/maps/mp/zombies/_zm_weap_slipgun.gsc
|
||||
```
|
||||
### The following scripts compile and run serverside but clients cannot join due to exe_client_field_mismatch
|
||||
|
||||
### The following scripts compile but cause a minidump or other severe error:
|
||||
|
||||
### The following scripts have been checked, but they have not been tested yet
|
||||
```
|
||||
zm_highrise_patch/maps/mp/zm_highrise.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_ffotd.gsc
|
||||
zm_highrise_patch/maps/mp/zombies/_zm_weap_slipgun.gsc
|
||||
```
|
||||
### The following scripts are not checked yet, uploaded to setup a baseline:
|
||||
```
|
||||
zm_highrise_patch/maps/mp/_sticky_grenade.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_achievement.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_amb.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_buildables.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_classic.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_distance_tracking.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_elevators.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_fx.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_gamemodes.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_sq.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_sq_atd.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_sq_pts.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_sq_slb.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_sq_ssp.gsc
|
||||
zm_highrise_patch/maps/mp/zm_highrise_utility.gsc
|
||||
```
|
||||
### notes:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user