291 lines
8.3 KiB
Plaintext
291 lines
8.3 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
init()
|
|
{
|
|
level.juggsettings = [];
|
|
level.juggsettings["juggernaut"] = spawnstruct();
|
|
level.juggsettings["juggernaut"].splashusedname = "used_juggernaut";
|
|
level.juggsettings["juggernaut_recon"] = spawnstruct();
|
|
level.juggsettings["juggernaut_recon"].splashusedname = "used_juggernaut_recon";
|
|
level.juggsettings["juggernaut_maniac"] = spawnstruct();
|
|
level.juggsettings["juggernaut_maniac"].splashusedname = "used_juggernaut_maniac";
|
|
level thread watchjugghostmigrationfinishedinit();
|
|
}
|
|
|
|
givejuggernaut( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
wait 0.05;
|
|
|
|
if ( isdefined( self.lightarmorhp ) )
|
|
maps\mp\perks\_perkfunctions::unsetlightarmor();
|
|
|
|
maps\mp\gametypes\_weapons::disableplantedequipmentuse();
|
|
|
|
if ( maps\mp\_utility::_hasperk( "specialty_explosivebullets" ) )
|
|
maps\mp\_utility::_unsetperk( "specialty_explosivebullets" );
|
|
|
|
self.health = self.maxhealth;
|
|
var_1 = 1;
|
|
|
|
switch ( var_0 )
|
|
{
|
|
case "juggernaut":
|
|
self.isjuggernaut = 1;
|
|
self.juggmovespeedscaler = 0.8;
|
|
maps\mp\gametypes\_class::giveloadout( self.pers["team"], var_0, 0 );
|
|
self.movespeedscaler = 0.8;
|
|
maps\mp\_utility::giveperk( "specialty_scavenger", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_quickdraw", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_detectexplosive", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_sharp_focus", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_radarjuggernaut", 0 );
|
|
break;
|
|
case "juggernaut_recon":
|
|
self.isjuggernautrecon = 1;
|
|
self.juggmovespeedscaler = 0.8;
|
|
maps\mp\gametypes\_class::giveloadout( self.pers["team"], var_0, 0 );
|
|
self.movespeedscaler = 0.8;
|
|
maps\mp\_utility::giveperk( "specialty_scavenger", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_coldblooded", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_noscopeoutline", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_detectexplosive", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_sharp_focus", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_radarjuggernaut", 0 );
|
|
|
|
if ( !isagent( self ) )
|
|
{
|
|
self makeportableradar( self );
|
|
maps\mp\gametypes\_missions::processchallenge( "ch_airdrop_juggernaut_recon" );
|
|
}
|
|
|
|
break;
|
|
case "juggernaut_maniac":
|
|
self.isjuggernautmaniac = 1;
|
|
self.juggmovespeedscaler = 1.15;
|
|
maps\mp\gametypes\_class::giveloadout( self.pers["team"], var_0, 0 );
|
|
maps\mp\_utility::giveperk( "specialty_blindeye", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_coldblooded", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_noscopeoutline", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_detectexplosive", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_marathon", 0 );
|
|
maps\mp\_utility::giveperk( "specialty_falldamage", 0 );
|
|
self.movespeedscaler = 1.15;
|
|
break;
|
|
default:
|
|
var_1 = self [[ level.mapcustomjuggfunc ]]( var_0 );
|
|
break;
|
|
}
|
|
|
|
if ( perkcheck( "specialty_hardline" ) )
|
|
maps\mp\_utility::giveperk( "specialty_hardline", 0 );
|
|
|
|
maps\mp\gametypes\_weapons::updatemovespeedscale();
|
|
self disableweaponpickup();
|
|
|
|
if ( !isagent( self ) )
|
|
{
|
|
if ( var_1 )
|
|
{
|
|
self setclientomnvar( "ui_juggernaut", 1 );
|
|
thread maps\mp\_utility::teamplayercardsplash( level.juggsettings[var_0].splashusedname, self );
|
|
thread juggernautsounds();
|
|
thread watchdisablejuggernaut();
|
|
thread watchenablejuggernaut();
|
|
}
|
|
}
|
|
|
|
if ( self.streaktype == "specialist" )
|
|
thread maps\mp\killstreaks\_killstreaks::clearkillstreaks();
|
|
else
|
|
thread maps\mp\killstreaks\_killstreaks::updatekillstreaks( 1 );
|
|
|
|
thread juggremover();
|
|
|
|
if ( isdefined( self.carryflag ) )
|
|
{
|
|
wait 0.05;
|
|
self attach( self.carryflag, "J_spine4", 1 );
|
|
}
|
|
|
|
level notify( "juggernaut_equipped", self );
|
|
maps\mp\_matchdata::logkillstreakevent( var_0, self.origin );
|
|
}
|
|
|
|
perkcheck( var_0 )
|
|
{
|
|
var_1 = self.pers["loadoutPerks"];
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
if ( var_3 == var_0 )
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
juggernautsounds()
|
|
{
|
|
level endon( "game_ended" );
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
self endon( "jugg_removed" );
|
|
|
|
for (;;)
|
|
{
|
|
wait 3.0;
|
|
maps\mp\_utility::playplayerandnpcsounds( self, "juggernaut_breathing_player", "juggernaut_breathing_sound" );
|
|
}
|
|
}
|
|
|
|
watchjugghostmigrationfinishedinit()
|
|
{
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
level waittill( "host_migration_end" );
|
|
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
if ( isai( var_1 ) )
|
|
continue;
|
|
else
|
|
{
|
|
if ( var_1 maps\mp\_utility::isjuggernaut() && !( isdefined( var_1.isjuggernautlevelcustom ) && var_1.isjuggernautlevelcustom ) )
|
|
{
|
|
var_1 setclientomnvar( "ui_juggernaut", 1 );
|
|
continue;
|
|
}
|
|
|
|
var_1 setclientomnvar( "ui_juggernaut", 0 );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
juggremover()
|
|
{
|
|
level endon( "game_ended" );
|
|
self endon( "disconnect" );
|
|
self endon( "jugg_removed" );
|
|
thread juggremoveongameended();
|
|
common_scripts\utility::waittill_any( "death", "joined_team", "joined_spectators", "lost_juggernaut" );
|
|
self enableweaponpickup();
|
|
self.isjuggernaut = 0;
|
|
self.isjuggernautdef = 0;
|
|
self.isjuggernautgl = 0;
|
|
self.isjuggernautrecon = 0;
|
|
self.isjuggernautmaniac = 0;
|
|
self.isjuggernautlevelcustom = 0;
|
|
|
|
if ( isplayer( self ) )
|
|
self setclientomnvar( "ui_juggernaut", 0 );
|
|
|
|
self unsetperk( "specialty_radarjuggernaut", 1 );
|
|
self notify( "jugg_removed" );
|
|
}
|
|
|
|
juggremoveongameended()
|
|
{
|
|
self endon( "disconnect" );
|
|
self endon( "jugg_removed" );
|
|
level waittill( "game_ended" );
|
|
|
|
if ( isplayer( self ) )
|
|
self setclientomnvar( "ui_juggernaut", 0 );
|
|
}
|
|
|
|
setjugg()
|
|
{
|
|
if ( isdefined( self.headmodel ) )
|
|
{
|
|
self detach( self.headmodel, "" );
|
|
self.headmodel = undefined;
|
|
}
|
|
|
|
self setmodel( "mp_fullbody_juggernaut_heavy_black" );
|
|
self setviewmodel( "viewhands_juggernaut_ally" );
|
|
self setclothtype( "vestheavy" );
|
|
}
|
|
|
|
setjuggmaniac()
|
|
{
|
|
if ( isdefined( self.headmodel ) )
|
|
{
|
|
self detach( self.headmodel, "" );
|
|
self.headmodel = undefined;
|
|
}
|
|
|
|
self setmodel( "mp_body_juggernaut_light_black" );
|
|
self setviewmodel( "viewhands_juggernaut_ally" );
|
|
self attach( "head_juggernaut_light_black", "", 1 );
|
|
self.headmodel = "head_juggernaut_light_black";
|
|
self setclothtype( "nylon" );
|
|
}
|
|
|
|
disablejuggernaut()
|
|
{
|
|
if ( maps\mp\_utility::isjuggernaut() )
|
|
{
|
|
self.juggernaut_disabled = 1;
|
|
self setclientomnvar( "ui_juggernaut", 0 );
|
|
}
|
|
}
|
|
|
|
enablejuggernaut()
|
|
{
|
|
if ( maps\mp\_utility::isjuggernaut() )
|
|
{
|
|
self.juggernaut_disabled = undefined;
|
|
self setclientomnvar( "ui_juggernaut", 1 );
|
|
}
|
|
}
|
|
|
|
watchdisablejuggernaut()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
self endon( "jugg_removed" );
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
if ( !isdefined( self.juggernaut_disabled ) && maps\mp\_utility::isusingremote() )
|
|
{
|
|
self waittill( "black_out_done" );
|
|
disablejuggernaut();
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
watchenablejuggernaut()
|
|
{
|
|
self endon( "death" );
|
|
self endon( "disconnect" );
|
|
self endon( "jugg_removed" );
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
if ( isdefined( self.juggernaut_disabled ) && !maps\mp\_utility::isusingremote() )
|
|
enablejuggernaut();
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
initlevelcustomjuggernaut( var_0, var_1, var_2, var_3 )
|
|
{
|
|
level.mapcustomjuggfunc = var_0;
|
|
level.mapcustomjuggsetclass = var_1;
|
|
level.mapcustomjuggkilledsplash = var_3;
|
|
game["allies_model"]["JUGGERNAUT_CUSTOM"] = var_2;
|
|
game["axis_model"]["JUGGERNAUT_CUSTOM"] = var_2;
|
|
}
|