mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
457 lines
8.5 KiB
Plaintext
457 lines
8.5 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: maps/mp/_entityheadicons.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 10
|
|
* Decompile Time: 158 ms
|
|
* Timestamp: 10/27/2023 1:48:37 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init()
|
|
{
|
|
if(isdefined(level.initedentityheadicons))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.initedentityheadicons = 1;
|
|
if(level.multiteambased)
|
|
{
|
|
foreach(var_01 in level.teamnamelist)
|
|
{
|
|
var_02 = "entity_headicon_" + var_01;
|
|
game[var_02] = maps\mp\gametypes\_teams::mt_getteamheadicon(var_01);
|
|
precacheshader(game[var_02]);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
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"]);
|
|
}
|
|
|
|
//Function Number: 2
|
|
setheadicon(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if(maps\mp\_utility::isgameparticipant(param_00) && !isplayer(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.entityheadicons))
|
|
{
|
|
self.entityheadicons = [];
|
|
}
|
|
|
|
if(!isdefined(param_05))
|
|
{
|
|
param_05 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_06))
|
|
{
|
|
param_06 = 0.05;
|
|
}
|
|
|
|
if(!isdefined(param_07))
|
|
{
|
|
param_07 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_08))
|
|
{
|
|
param_08 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_09))
|
|
{
|
|
param_09 = 0;
|
|
}
|
|
|
|
if(!isdefined(param_0A))
|
|
{
|
|
param_0A = 1;
|
|
}
|
|
|
|
if(!isdefined(param_0B))
|
|
{
|
|
param_0B = "";
|
|
}
|
|
|
|
if(!isplayer(param_00) && param_00 == "none")
|
|
{
|
|
foreach(var_0E, var_0D in self.entityheadicons)
|
|
{
|
|
if(isdefined(var_0D))
|
|
{
|
|
var_0D destroy();
|
|
}
|
|
|
|
self.entityheadicons[var_0E] = undefined;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isplayer(param_03))
|
|
{
|
|
if(isdefined(self.entityheadicons[param_03.guid]))
|
|
{
|
|
self.entityheadicons[param_03.guid] destroy();
|
|
self.entityheadicons[param_03.guid] = undefined;
|
|
}
|
|
|
|
if(param_04 == "")
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.entityheadicons[param_03.team]))
|
|
{
|
|
self.entityheadicons[param_03.team] destroy();
|
|
self.entityheadicons[param_03.team] = undefined;
|
|
}
|
|
|
|
var_0D = newclienthudelem(param_03);
|
|
self.entityheadicons[param_02.guid] = var_0E;
|
|
}
|
|
else
|
|
{
|
|
if(isdefined(self.entityheadicons[param_03]))
|
|
{
|
|
self.entityheadicons[param_03] destroy();
|
|
self.entityheadicons[param_03] = undefined;
|
|
}
|
|
|
|
if(param_04 == "")
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_0F in self.entityheadicons)
|
|
{
|
|
if(var_11 == "axis" || var_11 == "allies")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_10 = maps\mp\_utility::getplayerforguid(var_11);
|
|
if(var_10.team == param_01)
|
|
{
|
|
self.entityheadicons[var_11] destroy();
|
|
self.entityheadicons[var_11] = undefined;
|
|
}
|
|
}
|
|
|
|
var_0D = newteamhudelem(param_01);
|
|
self.entityheadicons[param_01] = var_0D;
|
|
}
|
|
|
|
if(!isdefined(param_04) || !isdefined(param_05))
|
|
{
|
|
param_04 = 10;
|
|
param_05 = 10;
|
|
}
|
|
|
|
var_0D.archived = param_06;
|
|
var_0D.alpha = 0.85;
|
|
var_0D setshader(param_02,param_04,param_05);
|
|
var_0D setwaypoint(param_08,param_09,param_0A,param_0B);
|
|
if(var_0C == "")
|
|
{
|
|
var_0D.x = self.origin[0] + param_03[0];
|
|
var_0D.y = self.origin[1] + param_03[1];
|
|
var_0D.z = self.origin[2] + param_03[2];
|
|
var_0D thread keeppositioned(self,param_03,param_07);
|
|
}
|
|
else
|
|
{
|
|
var_0D.x = param_03[0];
|
|
var_0D.y = param_03[1];
|
|
var_0D.z = param_03[2];
|
|
var_0D settargetent(self,var_0C);
|
|
}
|
|
|
|
thread destroyiconsondeath();
|
|
if(isplayer(param_01))
|
|
{
|
|
var_0D thread destroyonownerdisconnect(param_01);
|
|
}
|
|
|
|
if(isplayer(self))
|
|
{
|
|
var_0D thread destroyonownerdisconnect(self);
|
|
}
|
|
|
|
return var_0D;
|
|
}
|
|
|
|
//Function Number: 3
|
|
destroyonownerdisconnect(param_00)
|
|
{
|
|
self endon("death");
|
|
param_00 waittill("disconnect");
|
|
self destroy();
|
|
}
|
|
|
|
//Function Number: 4
|
|
destroyiconsondeath()
|
|
{
|
|
self notify("destroyIconsOnDeath");
|
|
self endon("destroyIconsOnDeath");
|
|
self waittill("death");
|
|
foreach(var_01 in self.entityheadicons)
|
|
{
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 destroy();
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
keeppositioned(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
param_00 endon("death");
|
|
param_00 endon("disconnect");
|
|
var_03 = param_00.origin;
|
|
for(;;)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(var_03 != param_00.origin)
|
|
{
|
|
var_03 = param_00.origin;
|
|
self.x = var_03[0] + param_01[0];
|
|
self.y = var_03[1] + param_01[1];
|
|
self.z = var_03[2] + param_01[2];
|
|
}
|
|
|
|
if(param_02 > 0.05)
|
|
{
|
|
self.alpha = 0.85;
|
|
self fadeovertime(param_02);
|
|
self.alpha = 0;
|
|
}
|
|
|
|
wait(param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
setteamheadicon(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(!level.teambased)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = "";
|
|
}
|
|
|
|
if(!isdefined(self.entityheadiconteam))
|
|
{
|
|
self.entityheadiconteam = "none";
|
|
self.entityheadicon = undefined;
|
|
}
|
|
|
|
if(isdefined(param_03) && param_03 == 0)
|
|
{
|
|
var_04 = undefined;
|
|
}
|
|
|
|
var_05 = game["entity_headicon_" + param_00];
|
|
self.entityheadiconteam = param_00;
|
|
if(isdefined(param_01))
|
|
{
|
|
self.entityheadiconoffset = param_01;
|
|
}
|
|
else
|
|
{
|
|
self.entityheadiconoffset = (0,0,0);
|
|
}
|
|
|
|
self notify("kill_entity_headicon_thread");
|
|
if(param_00 == "none")
|
|
{
|
|
if(isdefined(self.entityheadicon))
|
|
{
|
|
self.entityheadicon destroy();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
var_06 = newteamhudelem(param_00);
|
|
var_06.archived = 1;
|
|
var_06.alpha = 0.8;
|
|
var_06 setshader(var_05,10,10);
|
|
var_06 setwaypoint(0,0,0,1);
|
|
self.entityheadicon = var_06;
|
|
if(!isdefined(param_03))
|
|
{
|
|
if(param_02 == "")
|
|
{
|
|
var_06.x = self.origin[0] + self.entityheadiconoffset[0];
|
|
var_06.y = self.origin[1] + self.entityheadiconoffset[1];
|
|
var_06.z = self.origin[2] + self.entityheadiconoffset[2];
|
|
thread keepiconpositioned();
|
|
}
|
|
else
|
|
{
|
|
var_06.x = self.entityheadiconoffset[0];
|
|
var_06.y = self.entityheadiconoffset[1];
|
|
var_06.z = self.entityheadiconoffset[2];
|
|
var_06 settargetent(self,param_02);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_07 = anglestoup(self.angles);
|
|
var_08 = self.origin + var_07 * 28;
|
|
if(param_02 == "")
|
|
{
|
|
var_06.x = var_08[0];
|
|
var_06.y = var_08[1];
|
|
var_06.z = var_08[2];
|
|
thread keepiconpositioned(param_03);
|
|
}
|
|
else
|
|
{
|
|
var_06.x = var_08[0];
|
|
var_06.y = var_08[1];
|
|
var_06.z = var_08[2];
|
|
var_06 settargetent(self,param_02);
|
|
}
|
|
}
|
|
|
|
thread destroyheadiconsondeath();
|
|
}
|
|
|
|
//Function Number: 7
|
|
setplayerheadicon(param_00,param_01,param_02)
|
|
{
|
|
if(level.teambased)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = "";
|
|
}
|
|
|
|
if(!isdefined(self.entityheadiconteam))
|
|
{
|
|
self.entityheadiconteam = "none";
|
|
self.entityheadicon = undefined;
|
|
}
|
|
|
|
self notify("kill_entity_headicon_thread");
|
|
if(!isdefined(param_00))
|
|
{
|
|
if(isdefined(self.entityheadicon))
|
|
{
|
|
self.entityheadicon destroy();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
var_03 = param_00.team;
|
|
self.entityheadiconteam = var_03;
|
|
if(isdefined(param_01))
|
|
{
|
|
self.entityheadiconoffset = param_01;
|
|
}
|
|
else
|
|
{
|
|
self.entityheadiconoffset = (0,0,0);
|
|
}
|
|
|
|
var_04 = game["entity_headicon_" + var_03];
|
|
var_05 = newclienthudelem(param_00);
|
|
var_05.archived = 1;
|
|
var_05.alpha = 0.8;
|
|
var_05 setshader(var_04,10,10);
|
|
var_05 setwaypoint(0,0,0,1);
|
|
self.entityheadicon = var_05;
|
|
if(param_02 == "")
|
|
{
|
|
var_05.x = self.origin[0] + self.entityheadiconoffset[0];
|
|
var_05.y = self.origin[1] + self.entityheadiconoffset[1];
|
|
var_05.z = self.origin[2] + self.entityheadiconoffset[2];
|
|
thread keepiconpositioned();
|
|
}
|
|
else
|
|
{
|
|
var_05.x = self.entityheadiconoffset[0];
|
|
var_05.y = self.entityheadiconoffset[1];
|
|
var_05.z = self.entityheadiconoffset[2];
|
|
var_05 settargetent(self,param_02);
|
|
}
|
|
|
|
thread destroyheadiconsondeath();
|
|
}
|
|
|
|
//Function Number: 8
|
|
keepiconpositioned(param_00)
|
|
{
|
|
self endon("kill_entity_headicon_thread");
|
|
self endon("death");
|
|
var_01 = self.origin;
|
|
for(;;)
|
|
{
|
|
if(var_01 != self.origin)
|
|
{
|
|
updateheadiconorigin(param_00);
|
|
var_01 = self.origin;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
destroyheadiconsondeath()
|
|
{
|
|
self endon("kill_entity_headicon_thread");
|
|
self waittill("death");
|
|
if(!isdefined(self.entityheadicon))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.entityheadicon destroy();
|
|
}
|
|
|
|
//Function Number: 10
|
|
updateheadiconorigin(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
self.entityheadicon.x = self.origin[0] + self.entityheadiconoffset[0];
|
|
self.entityheadicon.y = self.origin[1] + self.entityheadiconoffset[1];
|
|
self.entityheadicon.z = self.origin[2] + self.entityheadiconoffset[2];
|
|
return;
|
|
}
|
|
|
|
var_01 = anglestoup(self.angles);
|
|
var_02 = self.origin + var_01 * 28;
|
|
self.entityheadicon.x = var_02[0];
|
|
self.entityheadicon.y = var_02[1];
|
|
self.entityheadicon.z = var_02[2];
|
|
} |