2024-01-07 18:35:38 -08:00

92 lines
2.2 KiB
Plaintext

// T6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
#include clientscripts\mp\_utility;
#include clientscripts\mp\zombies\_zm_utility;
precache()
{
}
main()
{
if ( getDvar( "mapname" ) == "zm_prison" )
{
return;
}
registerclientfield( "actor", "helmet_off", 9000, 1, "int", ::brutus_helmet_launch_cb );
registerclientfield( "actor", "brutus_lock_down", 9000, 1, "int", ::brutus_lock_down_effects_cb );
registerbrutusfootstepcb( "zm_alcatraz_brutus", ::brutusfootstepcbfunc );
}
brutus_helmet_launch_cb( localclientnum, oldval, newval, bnewent, binitialsnap, fieldname, bwasdemojump )
{
if ( is_true( self.helmet_launched ) )
return;
if ( newval )
{
self.helmet_launched = 1;
createdynentandlaunch( localclientnum, "c_zom_cellbreaker_helmet", self.origin + vectorscale( ( 0, 0, 1 ), 85.0 ), self.angles, self.origin + vectorscale( ( 0, 0, 1 ), 85.0 ), anglestoforward( self.angles ) );
}
}
brutus_lock_down_effects_cb( localclientnum, oldval, newval, bnewent, binitialsnap, fieldname, bwasdemojump )
{
if ( bwasdemojump )
return;
if ( bnewent )
{
/#
println( "LDS: NewEnt!" );
#/
}
if ( binitialsnap )
{
/#
println( "LDS: InitialSnap!" );
#/
}
player = getlocalplayer( localclientnum );
player earthquake( 0.7, 1, self.origin, 1500 );
playrumbleonposition( localclientnum, "explosion_generic", self.origin );
}
brutusfootstepcbfunc( localclientnum, pos, surface, notetrack, bone )
{
players = getlocalplayers();
for ( i = 0; i < players.size; i++ )
{
if ( abs( self.origin[2] - players[i].origin[2] ) < 100 )
{
players[i] earthquake( 0.5, 0.1, self.origin, 1500 );
playerlocalclientnum = players[i] getlocalclientnumber();
if ( isdefined( playerlocalclientnum ) )
playrumbleonposition( playerlocalclientnum, "brutus_footsteps", self.origin );
}
}
footstepdoeverything();
}
registerbrutusfootstepcb( aitype, func )
{
if ( !isdefined( level._footstepcbfuncs ) )
level._footstepcbfuncs = [];
if ( isdefined( level._footstepcbfuncs[aitype] ) )
{
/#
println( "Attempting to register footstep callback function for ai type " + aitype + " multiple times." );
#/
return;
}
level._footstepcbfuncs[aitype] = func;
}