428 lines
11 KiB
Plaintext
428 lines
11 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
init()
|
|
{
|
|
|
|
}
|
|
|
|
onplayerconnect()
|
|
{
|
|
for (;;)
|
|
{
|
|
level waittill( "connected", var_0 );
|
|
var_0 thread onplayerspawned();
|
|
}
|
|
}
|
|
|
|
onplayerspawned()
|
|
{
|
|
self endon( "disconnect" );
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "spawned_player" );
|
|
|
|
if ( level.teambased && level.teamemped[self.team] || !level.teambased && isdefined( level.empplayer ) && level.empplayer != self )
|
|
self setempjammed( 1 );
|
|
}
|
|
}
|
|
|
|
emp_use( var_0, var_1 )
|
|
{
|
|
var_2 = self.pers["team"];
|
|
|
|
if ( level.multiteambased )
|
|
thread emp_jamteams( var_2 );
|
|
else if ( level.teambased )
|
|
{
|
|
var_3 = level.otherteam[var_2];
|
|
thread emp_jamteam( var_3 );
|
|
}
|
|
else
|
|
thread emp_jamplayers( self );
|
|
|
|
maps\mp\_matchdata::logkillstreakevent( "emp", self.origin );
|
|
self notify( "used_emp" );
|
|
return 1;
|
|
}
|
|
|
|
emp_jamteams( var_0 )
|
|
{
|
|
level endon( "game_ended" );
|
|
thread maps\mp\_utility::teamplayercardsplash( "used_emp", self );
|
|
level notify( "EMP_JamTeam" + var_0 );
|
|
level endon( "EMP_JamTeam" + var_0 );
|
|
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
var_2 playlocalsound( "emp_activate" );
|
|
|
|
if ( var_2.team == var_0 )
|
|
continue;
|
|
|
|
if ( var_2 maps\mp\_utility::_hasperk( "specialty_localjammer" ) )
|
|
var_2 clearscrambler();
|
|
}
|
|
|
|
visionsetnaked( "coup_sunblind", 0.1 );
|
|
thread empeffects();
|
|
wait 0.1;
|
|
visionsetnaked( "coup_sunblind", 0 );
|
|
visionsetnaked( "", 3.0 );
|
|
|
|
for ( var_4 = 0; var_4 < level.teamnamelist.size; var_4++ )
|
|
{
|
|
if ( var_0 != level.teamnamelist[var_4] )
|
|
level.teamemped[level.teamnamelist[var_4]] = 1;
|
|
}
|
|
|
|
level notify( "emp_update" );
|
|
|
|
for ( var_4 = 0; var_4 < level.teamnamelist.size; var_4++ )
|
|
{
|
|
if ( var_0 != level.teamnamelist[var_4] )
|
|
level destroyactivevehicles( self, level.teamnamelist[var_4] );
|
|
}
|
|
|
|
level thread keepemptimeremaining();
|
|
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause( level.emptimeout );
|
|
|
|
for ( var_4 = 0; var_4 < level.teamnamelist.size; var_4++ )
|
|
{
|
|
if ( var_0 != level.teamnamelist[var_4] )
|
|
level.teamemped[level.teamnamelist[var_4]] = 0;
|
|
}
|
|
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
if ( var_2.team == var_0 )
|
|
continue;
|
|
|
|
if ( var_2 maps\mp\_utility::_hasperk( "specialty_localjammer" ) )
|
|
var_2 makescrambler();
|
|
}
|
|
|
|
level notify( "emp_update" );
|
|
}
|
|
|
|
emp_jamteam( var_0 )
|
|
{
|
|
level endon( "game_ended" );
|
|
thread maps\mp\_utility::teamplayercardsplash( "used_emp", self );
|
|
level notify( "EMP_JamTeam" + var_0 );
|
|
level endon( "EMP_JamTeam" + var_0 );
|
|
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
var_2 playlocalsound( "emp_activate" );
|
|
|
|
if ( var_2.team != var_0 )
|
|
continue;
|
|
|
|
if ( var_2 maps\mp\_utility::_hasperk( "specialty_localjammer" ) )
|
|
var_2 clearscrambler();
|
|
|
|
var_2 visionsetnakedforplayer( "coup_sunblind", 0.1 );
|
|
}
|
|
|
|
thread empeffects();
|
|
wait 0.1;
|
|
visionsetnaked( "coup_sunblind", 0 );
|
|
visionsetnaked( "", 3.0 );
|
|
level.teamemped[var_0] = 1;
|
|
level notify( "emp_update" );
|
|
level destroyactivevehicles( self, var_0 );
|
|
level thread keepemptimeremaining();
|
|
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause( level.emptimeout );
|
|
level.teamemped[var_0] = 0;
|
|
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
if ( var_2.team != var_0 )
|
|
continue;
|
|
|
|
if ( var_2 maps\mp\_utility::_hasperk( "specialty_localjammer" ) )
|
|
var_2 makescrambler();
|
|
}
|
|
|
|
level notify( "emp_update" );
|
|
}
|
|
|
|
emp_jamplayers( var_0 )
|
|
{
|
|
level notify( "EMP_JamPlayers" );
|
|
level endon( "EMP_JamPlayers" );
|
|
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
var_2 playlocalsound( "emp_activate" );
|
|
|
|
if ( var_2 == var_0 )
|
|
continue;
|
|
|
|
if ( var_2 maps\mp\_utility::_hasperk( "specialty_localjammer" ) )
|
|
var_2 clearscrambler();
|
|
}
|
|
|
|
visionsetnaked( "coup_sunblind", 0.1 );
|
|
thread empeffects();
|
|
wait 0.1;
|
|
visionsetnaked( "coup_sunblind", 0 );
|
|
visionsetnaked( "", 3.0 );
|
|
level notify( "emp_update" );
|
|
level.empplayer = var_0;
|
|
level.empplayer thread empplayerffadisconnect();
|
|
level destroyactivevehicles( var_0 );
|
|
level notify( "emp_update" );
|
|
level thread keepemptimeremaining();
|
|
maps\mp\gametypes\_hostmigration::waitlongdurationwithhostmigrationpause( level.emptimeout );
|
|
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
if ( var_2 == var_0 )
|
|
continue;
|
|
|
|
if ( var_2 maps\mp\_utility::_hasperk( "specialty_localjammer" ) )
|
|
var_2 makescrambler();
|
|
}
|
|
|
|
level.empplayer = undefined;
|
|
level notify( "emp_update" );
|
|
level notify( "emp_ended" );
|
|
}
|
|
|
|
keepemptimeremaining()
|
|
{
|
|
level notify( "keepEMPTimeRemaining" );
|
|
level endon( "keepEMPTimeRemaining" );
|
|
level endon( "emp_ended" );
|
|
|
|
for ( level.emptimeremaining = int( level.emptimeout ); level.emptimeremaining; level.emptimeremaining-- )
|
|
wait 1.0;
|
|
}
|
|
|
|
empplayerffadisconnect()
|
|
{
|
|
level endon( "EMP_JamPlayers" );
|
|
level endon( "emp_ended" );
|
|
self waittill( "disconnect" );
|
|
level notify( "emp_update" );
|
|
}
|
|
|
|
empeffects()
|
|
{
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
var_2 = anglestoforward( var_1.angles );
|
|
var_2 = ( var_2[0], var_2[1], 0 );
|
|
var_2 = vectornormalize( var_2 );
|
|
var_3 = 20000;
|
|
var_4 = spawn( "script_model", var_1.origin + ( 0, 0, 8000 ) + var_2 * var_3 );
|
|
var_4 setmodel( "tag_origin" );
|
|
var_4.angles = var_4.angles + ( 270, 0, 0 );
|
|
var_4 thread empeffect( var_1 );
|
|
}
|
|
}
|
|
|
|
empeffect( var_0 )
|
|
{
|
|
var_0 endon( "disconnect" );
|
|
wait 0.5;
|
|
playfxontagforclients( level._effect["emp_flash"], self, "tag_origin", var_0 );
|
|
}
|
|
|
|
emp_teamtracker()
|
|
{
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
level common_scripts\utility::waittill_either( "joined_team", "emp_update" );
|
|
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
if ( var_1.team == "spectator" )
|
|
continue;
|
|
|
|
if ( !level.teamemped[var_1.team] && !var_1 maps\mp\_utility::isemped() )
|
|
{
|
|
var_1 enablejammedeffect( 0 );
|
|
continue;
|
|
}
|
|
|
|
var_1 enablejammedeffect( 1 );
|
|
}
|
|
}
|
|
}
|
|
|
|
emp_playertracker()
|
|
{
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
level common_scripts\utility::waittill_either( "joined_team", "emp_update" );
|
|
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
if ( var_1.team == "spectator" )
|
|
continue;
|
|
|
|
if ( isdefined( level.empplayer ) && level.empplayer != var_1 )
|
|
{
|
|
var_1 enablejammedeffect( 1 );
|
|
continue;
|
|
}
|
|
|
|
if ( !var_1 maps\mp\_utility::isemped() )
|
|
var_1 enablejammedeffect( 0 );
|
|
}
|
|
}
|
|
}
|
|
|
|
destroyactivevehicles( var_0, var_1 )
|
|
{
|
|
thread destroyactivehelis( var_0, var_1 );
|
|
thread destroyactivelittlebirds( var_0, var_1 );
|
|
thread destroyactiveturrets( var_0, var_1 );
|
|
thread destroyactiverockets( var_0, var_1 );
|
|
thread destroyactiveuavs( var_0, var_1 );
|
|
thread destroyactiveimss( var_0, var_1 );
|
|
thread destroyactiveugvs( var_0, var_1 );
|
|
thread destroyactiveac130( var_0, var_1 );
|
|
thread destroyactiveballdrones( var_0, var_1 );
|
|
thread destroytargets( var_0, var_1, level.remote_uav );
|
|
thread destroytargets( var_0, var_1, level.uplinks );
|
|
}
|
|
|
|
destroytargets( var_0, var_1, var_2 )
|
|
{
|
|
var_3 = "MOD_EXPLOSIVE";
|
|
var_4 = "killstreak_emp_mp";
|
|
var_5 = 5000;
|
|
var_6 = ( 0, 0, 0 );
|
|
var_7 = ( 0, 0, 0 );
|
|
var_8 = "";
|
|
var_9 = "";
|
|
var_10 = "";
|
|
var_11 = undefined;
|
|
|
|
foreach ( var_13 in var_2 )
|
|
{
|
|
if ( level.teambased && isdefined( var_1 ) )
|
|
{
|
|
if ( isdefined( var_13.team ) && var_13.team != var_1 )
|
|
continue;
|
|
}
|
|
else if ( isdefined( var_13.owner ) && var_13.owner == var_0 )
|
|
continue;
|
|
|
|
var_13 notify( "damage", var_5, var_0, var_6, var_7, var_3, var_8, var_9, var_10, var_11, var_4 );
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
destroyactivehelis( var_0, var_1 )
|
|
{
|
|
destroytargets( var_0, var_1, level.helis );
|
|
}
|
|
|
|
destroyactivelittlebirds( var_0, var_1 )
|
|
{
|
|
destroytargets( var_0, var_1, level.littlebirds );
|
|
}
|
|
|
|
destroyactiveturrets( var_0, var_1 )
|
|
{
|
|
destroytargets( var_0, var_1, level.turrets );
|
|
}
|
|
|
|
destroyactiverockets( var_0, var_1 )
|
|
{
|
|
var_2 = "MOD_EXPLOSIVE";
|
|
var_3 = "killstreak_emp_mp";
|
|
var_4 = 5000;
|
|
var_5 = ( 0, 0, 0 );
|
|
var_6 = ( 0, 0, 0 );
|
|
var_7 = "";
|
|
var_8 = "";
|
|
var_9 = "";
|
|
var_10 = undefined;
|
|
|
|
foreach ( var_12 in level.rockets )
|
|
{
|
|
if ( level.teambased && isdefined( var_1 ) )
|
|
{
|
|
if ( isdefined( var_12.team ) && var_12.team != var_1 )
|
|
continue;
|
|
}
|
|
else if ( isdefined( var_12.owner ) && var_12.owner == var_0 )
|
|
continue;
|
|
|
|
playfx( level.remotemissile_fx["explode"], var_12.origin );
|
|
var_12 delete();
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
destroyactiveuavs( var_0, var_1 )
|
|
{
|
|
var_2 = level.uavmodels;
|
|
|
|
if ( level.teambased && isdefined( var_1 ) )
|
|
var_2 = level.uavmodels[var_1];
|
|
|
|
destroytargets( var_0, var_1, var_2 );
|
|
}
|
|
|
|
destroyactiveimss( var_0, var_1 )
|
|
{
|
|
destroytargets( var_0, var_1, level.ims );
|
|
}
|
|
|
|
destroyactiveugvs( var_0, var_1 )
|
|
{
|
|
destroytargets( var_0, var_1, level.ugvs );
|
|
}
|
|
|
|
destroyactiveac130( var_0, var_1 )
|
|
{
|
|
var_2 = "MOD_EXPLOSIVE";
|
|
var_3 = "killstreak_emp_mp";
|
|
var_4 = 5000;
|
|
var_5 = ( 0, 0, 0 );
|
|
var_6 = ( 0, 0, 0 );
|
|
var_7 = "";
|
|
var_8 = "";
|
|
var_9 = "";
|
|
var_10 = undefined;
|
|
|
|
if ( level.teambased && isdefined( var_1 ) )
|
|
{
|
|
if ( isdefined( level.ac130player ) && isdefined( level.ac130player.team ) && level.ac130player.team == var_1 )
|
|
level.ac130.planemodel notify( "damage", var_4, var_0, var_5, var_6, var_2, var_7, var_8, var_9, var_10, var_3 );
|
|
}
|
|
else if ( isdefined( level.ac130player ) )
|
|
{
|
|
if ( !isdefined( level.ac130.owner ) || isdefined( level.ac130.owner ) && level.ac130.owner != var_0 )
|
|
level.ac130.planemodel notify( "damage", var_4, var_0, var_5, var_6, var_2, var_7, var_8, var_9, var_10, var_3 );
|
|
}
|
|
}
|
|
|
|
destroyactiveballdrones( var_0, var_1 )
|
|
{
|
|
destroytargets( var_0, var_1, level.balldrones );
|
|
}
|
|
|
|
enablejammedeffect( var_0 )
|
|
{
|
|
self setempjammed( var_0 );
|
|
var_1 = 0;
|
|
|
|
if ( var_0 )
|
|
var_1 = 1;
|
|
|
|
thread maps\mp\killstreaks\_emp_common::startempjamsequence();
|
|
}
|