mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
555 lines
11 KiB
Plaintext
555 lines
11 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3876.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 14
|
|
* Decompile Time: 11 ms
|
|
* Timestamp: 10/27/2023 12:31:06 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
if(isdefined(self.var_10E6D))
|
|
{
|
|
return;
|
|
}
|
|
|
|
lib_0F27::func_868B("stealth_spotted");
|
|
scripts\sp\_utility::func_65E0("stealth_enabled");
|
|
scripts\sp\_utility::func_65E1("stealth_enabled");
|
|
scripts\sp\_utility::func_65E0("stealth_in_shadow");
|
|
self.var_10E6D = spawnstruct();
|
|
self.var_10E6D.var_10A9D = [];
|
|
lib_0F27::func_8682();
|
|
thread func_13436();
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_13436()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
scripts\sp\_utility::func_65E3("stealth_enabled");
|
|
self.var_1D4 = func_7938();
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_7938()
|
|
{
|
|
var_00 = self getstance();
|
|
if(lib_0F27::func_869D())
|
|
{
|
|
var_01 = "spotted";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "hidden";
|
|
}
|
|
|
|
var_02 = level.var_10E6D.var_53A0.var_DCCA[var_01][var_00];
|
|
var_03 = 1;
|
|
if(scripts\sp\_utility::func_65DB("stealth_in_shadow"))
|
|
{
|
|
var_03 = var_03 * 0.5;
|
|
}
|
|
|
|
var_02 = var_02 * var_03;
|
|
if(var_02 < level.var_10E6D.var_53A0.var_DCCA["hidden"]["prone"])
|
|
{
|
|
var_02 = level.var_10E6D.var_53A0.var_DCCA["hidden"]["prone"];
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_10EE3(param_00)
|
|
{
|
|
self notify("stealth_noteworthy_thread");
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 1;
|
|
}
|
|
|
|
if(!param_00)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("stealth_noteworthy_thread");
|
|
self endon("disconnect");
|
|
if(!isdefined(self.var_10E6D.var_10EDF))
|
|
{
|
|
self.var_10E6D.var_10EDF = [];
|
|
}
|
|
|
|
thread func_10EE1();
|
|
for(;;)
|
|
{
|
|
scripts\common\utility::flag_wait("stealth_enabled");
|
|
scripts\common\utility::func_6E5A("stealth_spotted");
|
|
var_01 = -1;
|
|
var_02 = undefined;
|
|
if(self method_822E() > 0.3)
|
|
{
|
|
var_03 = self geteye();
|
|
var_04 = anglestoforward(self getplayerangles());
|
|
var_05 = function_0072();
|
|
foreach(var_07 in var_05)
|
|
{
|
|
var_08 = var_07 getentitynumber();
|
|
if(isdefined(self.var_10E6D.var_10EDF[var_08]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_09 = var_07.origin;
|
|
if(issentient(var_07))
|
|
{
|
|
var_09 = var_07 geteye();
|
|
}
|
|
|
|
var_0A = vectornormalize(var_09 - var_03);
|
|
var_0B = vectordot(var_04,var_0A);
|
|
if(var_0B > 0.99 && var_0B > var_01)
|
|
{
|
|
if(sighttracepassed(var_09,var_03,0,undefined))
|
|
{
|
|
var_01 = var_0B;
|
|
var_02 = var_07;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_02))
|
|
{
|
|
thread func_10EE0("aim",var_02);
|
|
}
|
|
|
|
foreach(var_08, var_0E in self.var_10E6D.var_10EDF)
|
|
{
|
|
if(!isdefined(self.var_10E6D.var_10EDF[var_08]))
|
|
{
|
|
self.var_10E6D.var_10EDF[var_08] = undefined;
|
|
}
|
|
}
|
|
}
|
|
|
|
scripts\common\utility::func_136F7();
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_10EE1()
|
|
{
|
|
self endon("stealth_noteworthy_thread");
|
|
self endon("disconnect");
|
|
var_00 = 0;
|
|
var_01 = undefined;
|
|
for(;;)
|
|
{
|
|
var_01 = self.var_10E53["kills"];
|
|
if(!isdefined(var_01))
|
|
{
|
|
var_01 = 0;
|
|
}
|
|
|
|
var_02 = var_01;
|
|
var_03 = gettime();
|
|
scripts\common\utility::flag_wait("stealth_enabled");
|
|
scripts\common\utility::func_6E5A("stealth_spotted");
|
|
level waittill("ai_killed",var_04,var_05,var_06,var_07);
|
|
if(!isdefined(var_05) || var_05 != self)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!scripts\common\utility::flag("stealth_enabled") || scripts\common\utility::flag("stealth_spotted"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_04) && isdefined(var_04.team) && var_04.team != "axis")
|
|
{
|
|
thread func_10EE0("civilian_kill",var_04);
|
|
}
|
|
|
|
var_01 = self.var_10E53["kills"];
|
|
if(!isdefined(var_01))
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
|
|
var_08 = var_01 - var_02;
|
|
if(gettime() - var_03 > 1000)
|
|
{
|
|
var_00 = 0;
|
|
}
|
|
|
|
var_09 = isdefined(var_07) && function_024C(var_07) == "bullet";
|
|
if(var_08 >= 2 && var_09)
|
|
{
|
|
thread func_10EE0("good_kill_double",var_04,1);
|
|
}
|
|
|
|
var_00 = var_00 + var_08;
|
|
if(var_00 > 1)
|
|
{
|
|
thread func_10EE0("good_kill_impressive",var_04,1);
|
|
continue;
|
|
}
|
|
|
|
if(var_09)
|
|
{
|
|
thread func_10EE0("good_kill_bullet",var_04,1);
|
|
continue;
|
|
}
|
|
|
|
thread func_10EE0("good_kill",var_04,1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_10EE0(param_00,param_01,param_02)
|
|
{
|
|
var_03 = [param_01];
|
|
if(isdefined(self.var_10E6D.var_10EDC))
|
|
{
|
|
if(func_10EE2(self.var_10E6D.var_10EDC) > func_10EE2(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(param_00 == "aim")
|
|
{
|
|
if(self.var_10E6D.var_10EDD[0] == param_01)
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
self.var_10E6D.var_10EDD = var_03;
|
|
}
|
|
}
|
|
else if(self.var_10E6D.var_10EDC == param_00)
|
|
{
|
|
self.var_10E6D.var_10EDD[self.var_10E6D.var_10EDD.size] = param_01;
|
|
}
|
|
else
|
|
{
|
|
self.var_10E6D.var_10EDD = var_03;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self.var_10E6D.var_10EDC = param_00;
|
|
self.var_10E6D.var_10EDD = var_03;
|
|
}
|
|
|
|
self notify("stealth_noteworthy_delayed");
|
|
self endon("stealth_noteworthy_delayed");
|
|
self endon("disconnect");
|
|
if(scripts\common\utility::istrue(param_02) && isdefined(self.var_10E6D.var_B476))
|
|
{
|
|
self.var_10E6D.var_10EDE = self.var_10E6D.var_B476;
|
|
}
|
|
|
|
wait(1);
|
|
self.var_10E6D.var_10EDD = scripts\common\utility::func_22BC(self.var_10E6D.var_10EDD);
|
|
if(scripts\common\utility::istrue(param_02) && isdefined(self.var_10E6D.var_B476) && self.var_10E6D.var_10EDE < self.var_10E6D.var_B476)
|
|
{
|
|
self.var_10E6D.var_10EDC = undefined;
|
|
self.var_10E6D.var_10EDD = undefined;
|
|
return;
|
|
}
|
|
|
|
if(param_00 == "aim")
|
|
{
|
|
foreach(var_05 in self.var_10E6D.var_10EDD)
|
|
{
|
|
self.var_10E6D.var_10EDF[var_05 getentitynumber()] = var_05;
|
|
}
|
|
}
|
|
|
|
self notify("stealth_noteworthy",param_00,self.var_10E6D.var_10EDD);
|
|
self.var_10E6D.var_10EDC = undefined;
|
|
self.var_10E6D.var_10EDD = undefined;
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_10EE2(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
switch(param_00)
|
|
{
|
|
case "civilian_kill":
|
|
return 6;
|
|
|
|
case "good_kill_double":
|
|
return 5;
|
|
|
|
case "good_kill_impressive":
|
|
return 4;
|
|
|
|
case "good_kill_bullet":
|
|
return 3;
|
|
|
|
case "good_kill":
|
|
return 2;
|
|
|
|
case "aim":
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_1DD6(param_00)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
for(var_01 = param_00.size - 1;var_01 >= 0;var_01--)
|
|
{
|
|
var_02 = param_00[var_01];
|
|
for(var_03 = 0;var_03 < var_02.size;var_03++)
|
|
{
|
|
if(!soundexists(var_02[var_03]))
|
|
{
|
|
for(var_04 = var_03;var_04 < var_02.size - 1;var_04++)
|
|
{
|
|
var_02[var_04] = var_02[var_04 + 1];
|
|
}
|
|
|
|
var_02[var_02.size - 1] = undefined;
|
|
}
|
|
}
|
|
|
|
if(var_02.size == 0)
|
|
{
|
|
for(var_04 = var_01;var_04 < param_00.size - 1;var_04++)
|
|
{
|
|
param_00[var_04] = param_00[var_04 + 1];
|
|
}
|
|
|
|
param_00[param_00.size - 1] = undefined;
|
|
}
|
|
}
|
|
}
|
|
|
|
level.var_10E6D.var_DBED = spawnstruct();
|
|
level.var_10E6D.var_DBED.var_AD4E = param_00;
|
|
level.var_10E6D.var_DBED.var_CC65 = undefined;
|
|
func_1DD8();
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_1DD5()
|
|
{
|
|
if(!isdefined(level.var_10E6D))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!isdefined(level.var_10E6D.var_DBED))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!isdefined(level.var_10E6D.var_DBED.var_AD4E))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(level.var_10E6D.var_DBED.var_AD4E.size == 0)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!isdefined(level.var_10E6D.var_DBED.var_CC65) || level.var_10E6D.var_DBED.var_CC65.size == 0)
|
|
{
|
|
level.var_10E6D.var_DBED.var_CC65 = scripts\common\utility::array_randomize(level.var_10E6D.var_DBED.var_AD4E);
|
|
}
|
|
|
|
var_00 = level.var_10E6D.var_DBED.var_CC65.size - 1;
|
|
var_01 = level.var_10E6D.var_DBED.var_CC65[var_00];
|
|
level.var_10E6D.var_DBED.var_CC65[var_00] = undefined;
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_1DD3()
|
|
{
|
|
self notify("ambient_player_thread");
|
|
self endon("ambient_player_thread");
|
|
self endon("disconnect");
|
|
for(;;)
|
|
{
|
|
if(!isalive(self))
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
scripts\sp\_utility::func_65E3("stealth_enabled");
|
|
wait(randomfloatrange(10,15));
|
|
if(scripts\common\utility::flag("stealth_spotted"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00 = func_1D7D(0,1);
|
|
var_01 = undefined;
|
|
var_02 = func_1D7D(!isdefined(self.var_10E6D.var_DBEE),0);
|
|
if(var_02.size > 0 && var_00.size == 0 || randomfloat(1) > 0.5)
|
|
{
|
|
var_01 = func_1DD5();
|
|
}
|
|
|
|
if(isdefined(var_01))
|
|
{
|
|
thread func_1DD7(var_01);
|
|
continue;
|
|
}
|
|
|
|
if(var_00.size > 0 && !scripts\common\utility::istrue(level.var_10E6D.var_5659))
|
|
{
|
|
if(var_00[0].var_10E6D.var_C9A8 == "unaware")
|
|
{
|
|
var_00[0] thread lib_0F27::func_1284A("chatter");
|
|
}
|
|
else
|
|
{
|
|
var_00[0] thread lib_0F27::func_1284A("enemysweep");
|
|
}
|
|
|
|
var_00[0].var_10E6D.var_134F4 = gettime() + randomintrange(30000,-20536);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_1D7D(param_00,param_01)
|
|
{
|
|
var_02 = 1000;
|
|
var_03 = var_02 * var_02;
|
|
var_04 = [];
|
|
if(!param_00 && !param_01)
|
|
{
|
|
return var_04;
|
|
}
|
|
|
|
var_05 = level.var_10E6D.var_639D[self.team];
|
|
if(param_00)
|
|
{
|
|
var_05 = scripts\common\utility::array_combine(var_05,function_0083());
|
|
}
|
|
|
|
var_05 = scripts\common\utility::func_22BC(var_05);
|
|
foreach(var_07 in var_05)
|
|
{
|
|
if(!param_00 && !isalive(var_07))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!param_00 && !isdefined(var_07.var_10E6D) || issentient(var_07) && var_07.var_28 == "combat")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(issentient(var_07) && var_07.var_180)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(issentient(var_07) && !isdefined(var_07.var_10E6D) || !isdefined(var_07.var_10E6D.var_C9A8))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_08 = distancesquared(var_07.origin,self.origin);
|
|
if(var_08 > var_03)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
var_04[var_04.size] = var_07;
|
|
continue;
|
|
}
|
|
|
|
if(param_01 && isdefined(var_07.var_10E6D))
|
|
{
|
|
if(isdefined(var_07.var_10E6D.var_134F4) && gettime() < var_07.var_10E6D.var_134F4)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_07.var_10E6D.var_A90B) && gettime() - var_07.var_10E6D.var_A90B < 10000)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_07.var_10E6D.var_A908) && gettime() - var_07.var_10E6D.var_A908 < 10000)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04[var_04.size] = var_07;
|
|
}
|
|
}
|
|
|
|
var_04 = sortbydistance(var_04,self.origin);
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_1DD7(param_00)
|
|
{
|
|
self notify("ambient_radio_conversation");
|
|
self endon("ambient_radio_conversation");
|
|
self endon("disconnect");
|
|
self.var_10E6D.var_DBEE = param_00;
|
|
for(var_01 = 0;isdefined(self.var_10E6D.var_DBEE) && var_01 < self.var_10E6D.var_DBEE.size;var_01 = var_01 + 1)
|
|
{
|
|
var_02 = self.var_10E6D.var_DBEE[var_01];
|
|
var_03 = func_1D7D(1,0);
|
|
if(isdefined(var_03[0]))
|
|
{
|
|
if(soundexists(param_00[var_01]))
|
|
{
|
|
var_03[0] playsound(var_02,"stealth_ambient_radio",1);
|
|
var_03[0] waittill("stealth_ambient_radio");
|
|
}
|
|
}
|
|
|
|
wait(randomfloatrange(1,3));
|
|
}
|
|
|
|
self.var_10E6D.var_DBEE = undefined;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_1DD8()
|
|
{
|
|
self.var_10E6D.var_DBEE = undefined;
|
|
self notify("ambient_radio_conversation");
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_1DD2()
|
|
{
|
|
self notify("ambient_player_thread");
|
|
func_1DD8();
|
|
} |