307 lines
7.6 KiB
Plaintext
307 lines
7.6 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
init()
|
|
{
|
|
if ( isdefined( level.initedentityheadicons ) )
|
|
return;
|
|
|
|
level.initedentityheadicons = 1;
|
|
|
|
if ( level.multiteambased )
|
|
{
|
|
foreach ( var_1 in level.teamnamelist )
|
|
{
|
|
var_2 = "entity_headicon_" + var_1;
|
|
game[var_2] = maps\mp\gametypes\_teams::mt_getteamheadicon( var_1 );
|
|
precacheshader( game[var_2] );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
game["entity_headicon_allies"] = maps\mp\gametypes\_teams::getteamheadicon( "allies" );
|
|
game["entity_headicon_axis"] = maps\mp\gametypes\_teams::getteamheadicon( "axis" );
|
|
precacheshader( game["entity_headicon_allies"] );
|
|
precacheshader( game["entity_headicon_axis"] );
|
|
}
|
|
}
|
|
|
|
setheadicon( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9, var_10 )
|
|
{
|
|
if ( maps\mp\_utility::isgameparticipant( var_0 ) && !isplayer( var_0 ) )
|
|
return;
|
|
|
|
if ( !isdefined( self.entityheadicons ) )
|
|
self.entityheadicons = [];
|
|
|
|
if ( !isdefined( var_5 ) )
|
|
var_5 = 1;
|
|
|
|
if ( !isdefined( var_6 ) )
|
|
var_6 = 0.05;
|
|
|
|
if ( !isdefined( var_7 ) )
|
|
var_7 = 1;
|
|
|
|
if ( !isdefined( var_8 ) )
|
|
var_8 = 1;
|
|
|
|
if ( !isdefined( var_9 ) )
|
|
var_9 = 0;
|
|
|
|
if ( !isdefined( var_10 ) )
|
|
var_10 = 1;
|
|
|
|
if ( !isplayer( var_0 ) && var_0 == "none" )
|
|
{
|
|
foreach ( var_13, var_12 in self.entityheadicons )
|
|
{
|
|
if ( isdefined( var_12 ) )
|
|
var_12 destroy();
|
|
|
|
self.entityheadicons[var_13] = undefined;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ( isplayer( var_0 ) )
|
|
{
|
|
if ( isdefined( self.entityheadicons[var_0.guid] ) )
|
|
{
|
|
self.entityheadicons[var_0.guid] destroy();
|
|
self.entityheadicons[var_0.guid] = undefined;
|
|
}
|
|
|
|
if ( var_1 == "" )
|
|
return;
|
|
|
|
if ( isdefined( var_0.team ) )
|
|
{
|
|
if ( isdefined( self.entityheadicons[var_0.team] ) )
|
|
{
|
|
self.entityheadicons[var_0.team] destroy();
|
|
self.entityheadicons[var_0.team] = undefined;
|
|
}
|
|
}
|
|
|
|
var_12 = newclienthudelem( var_0 );
|
|
self.entityheadicons[var_0.guid] = var_12;
|
|
}
|
|
else
|
|
{
|
|
if ( isdefined( self.entityheadicons[var_0] ) )
|
|
{
|
|
self.entityheadicons[var_0] destroy();
|
|
self.entityheadicons[var_0] = undefined;
|
|
}
|
|
|
|
if ( var_1 == "" )
|
|
return;
|
|
|
|
foreach ( var_13, var_15 in self.entityheadicons )
|
|
{
|
|
if ( var_13 == "axis" || var_13 == "allies" )
|
|
continue;
|
|
|
|
var_16 = maps\mp\_utility::getplayerforguid( var_13 );
|
|
|
|
if ( var_16.team == var_0 )
|
|
{
|
|
self.entityheadicons[var_13] destroy();
|
|
self.entityheadicons[var_13] = undefined;
|
|
}
|
|
}
|
|
|
|
var_12 = newteamhudelem( var_0 );
|
|
self.entityheadicons[var_0] = var_12;
|
|
}
|
|
|
|
if ( !isdefined( var_3 ) || !isdefined( var_4 ) )
|
|
{
|
|
var_3 = 10;
|
|
var_4 = 10;
|
|
}
|
|
|
|
var_12.archived = var_5;
|
|
var_12.x = self.origin[0] + var_2[0];
|
|
var_12.y = self.origin[1] + var_2[1];
|
|
var_12.z = self.origin[2] + var_2[2];
|
|
var_12.alpha = 0.85;
|
|
var_12 setshader( var_1, var_3, var_4 );
|
|
var_12 setwaypoint( var_7, var_8, var_9, var_10 );
|
|
var_12 thread keeppositioned( self, var_2, var_6 );
|
|
thread destroyiconsondeath();
|
|
|
|
if ( isplayer( var_0 ) )
|
|
var_12 thread destroyonownerdisconnect( var_0 );
|
|
|
|
if ( isplayer( self ) )
|
|
var_12 thread destroyonownerdisconnect( self );
|
|
}
|
|
}
|
|
|
|
destroyonownerdisconnect( var_0 )
|
|
{
|
|
self endon( "death" );
|
|
var_0 waittill( "disconnect" );
|
|
self destroy();
|
|
}
|
|
|
|
destroyiconsondeath()
|
|
{
|
|
self notify( "destroyIconsOnDeath" );
|
|
self endon( "destroyIconsOnDeath" );
|
|
self waittill( "death" );
|
|
|
|
if ( !isdefined( self.entityheadicons ) )
|
|
return;
|
|
|
|
foreach ( var_2, var_1 in self.entityheadicons )
|
|
{
|
|
if ( !isdefined( var_1 ) )
|
|
continue;
|
|
|
|
var_1 destroy();
|
|
}
|
|
}
|
|
|
|
keeppositioned( var_0, var_1, var_2 )
|
|
{
|
|
self endon( "death" );
|
|
var_0 endon( "death" );
|
|
var_0 endon( "disconnect" );
|
|
var_3 = isdefined( var_0.classname ) && !isownercarepakage( var_0 );
|
|
|
|
if ( var_3 )
|
|
self linkwaypointtotargetwithoffset( var_0, var_1 );
|
|
|
|
for (;;)
|
|
{
|
|
if ( !isdefined( var_0 ) )
|
|
return;
|
|
|
|
if ( !var_3 )
|
|
{
|
|
var_4 = var_0.origin;
|
|
self.x = var_4[0] + var_1[0];
|
|
self.y = var_4[1] + var_1[1];
|
|
self.z = var_4[2] + var_1[2];
|
|
}
|
|
|
|
if ( var_2 > 0.05 )
|
|
{
|
|
self.alpha = 0.85;
|
|
self fadeovertime( var_2 );
|
|
self.alpha = 0;
|
|
}
|
|
|
|
wait( var_2 );
|
|
}
|
|
}
|
|
|
|
isownercarepakage( var_0 )
|
|
{
|
|
return isdefined( var_0.targetname ) && var_0.targetname == "care_package";
|
|
}
|
|
|
|
setteamheadicon( var_0, var_1 )
|
|
{
|
|
if ( !level.teambased )
|
|
return;
|
|
|
|
if ( !isdefined( self.entityheadiconteam ) )
|
|
{
|
|
self.entityheadiconteam = "none";
|
|
self.entityheadicon = undefined;
|
|
}
|
|
|
|
var_2 = game["entity_headicon_" + var_0];
|
|
self.entityheadiconteam = var_0;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
self.entityheadiconoffset = var_1;
|
|
else
|
|
self.entityheadiconoffset = ( 0, 0, 0 );
|
|
|
|
self notify( "kill_entity_headicon_thread" );
|
|
|
|
if ( var_0 == "none" )
|
|
{
|
|
if ( isdefined( self.entityheadicon ) )
|
|
self.entityheadicon destroy();
|
|
|
|
return;
|
|
}
|
|
|
|
var_3 = newteamhudelem( var_0 );
|
|
var_3.archived = 1;
|
|
var_3.x = self.origin[0] + self.entityheadiconoffset[0];
|
|
var_3.y = self.origin[1] + self.entityheadiconoffset[1];
|
|
var_3.z = self.origin[2] + self.entityheadiconoffset[2];
|
|
var_3.alpha = 0.8;
|
|
var_3 setshader( var_2, 10, 10 );
|
|
var_3 setwaypoint( 0, 0, 0, 1 );
|
|
self.entityheadicon = var_3;
|
|
thread keepiconpositioned();
|
|
thread destroyheadiconsondeath();
|
|
}
|
|
|
|
setplayerheadicon( var_0, var_1 )
|
|
{
|
|
if ( level.teambased )
|
|
return;
|
|
|
|
if ( !isdefined( self.entityheadiconteam ) )
|
|
{
|
|
self.entityheadiconteam = "none";
|
|
self.entityheadicon = undefined;
|
|
}
|
|
|
|
self notify( "kill_entity_headicon_thread" );
|
|
|
|
if ( !isdefined( var_0 ) )
|
|
{
|
|
if ( isdefined( self.entityheadicon ) )
|
|
self.entityheadicon destroy();
|
|
|
|
return;
|
|
}
|
|
|
|
var_2 = var_0.team;
|
|
self.entityheadiconteam = var_2;
|
|
|
|
if ( isdefined( var_1 ) )
|
|
self.entityheadiconoffset = var_1;
|
|
else
|
|
self.entityheadiconoffset = ( 0, 0, 0 );
|
|
|
|
var_3 = game["entity_headicon_" + var_2];
|
|
var_4 = newclienthudelem( var_0 );
|
|
var_4.archived = 1;
|
|
var_4.x = self.origin[0] + self.entityheadiconoffset[0];
|
|
var_4.y = self.origin[1] + self.entityheadiconoffset[1];
|
|
var_4.z = self.origin[2] + self.entityheadiconoffset[2];
|
|
var_4.alpha = 0.8;
|
|
var_4 setshader( var_3, 10, 10 );
|
|
var_4 setwaypoint( 0, 0, 0, 1 );
|
|
self.entityheadicon = var_4;
|
|
thread keepiconpositioned();
|
|
thread destroyheadiconsondeath();
|
|
}
|
|
|
|
keepiconpositioned()
|
|
{
|
|
self.entityheadicon linkwaypointtotargetwithoffset( self, self.entityheadiconoffset );
|
|
}
|
|
|
|
destroyheadiconsondeath()
|
|
{
|
|
self endon( "kill_entity_headicon_thread" );
|
|
self waittill( "death" );
|
|
|
|
if ( !isdefined( self.entityheadicon ) )
|
|
return;
|
|
|
|
self.entityheadicon destroy();
|
|
}
|