mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
743 lines
14 KiB
Plaintext
743 lines
14 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: 3877.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 27
|
|
* Decompile Time: 14 ms
|
|
* Timestamp: 10/27/2023 12:31:06 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_11408()
|
|
{
|
|
if(!isdefined(self.var_11400))
|
|
{
|
|
func_11406();
|
|
}
|
|
|
|
func_1140B(1);
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_11407()
|
|
{
|
|
func_1140B(0);
|
|
self notify("tagging_think");
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_1140B(param_00,param_01)
|
|
{
|
|
if(!isdefined(self.var_11400))
|
|
{
|
|
func_11406();
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 4;
|
|
}
|
|
|
|
self.var_11400["enabled"] = param_00;
|
|
self.var_11400["action_slot"] = param_01;
|
|
func_1140C(param_00);
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_1140C(param_00)
|
|
{
|
|
if(!isdefined(self.var_11400))
|
|
{
|
|
func_11406();
|
|
}
|
|
|
|
self.var_11400["marking_enabled"] = param_00;
|
|
var_01 = func_11401();
|
|
if(!self.var_11400["marking_enabled"])
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(issentient(var_03) && !isalive(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 func_113EB("none",self);
|
|
var_03 notify("tagged_entity_death_cleanup");
|
|
var_03 func_113FA();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
foreach(var_03 in var_03)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(issentient(var_03) && !isalive(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.var_113F3) && isdefined(var_03.var_113F3[self getentitynumber()]))
|
|
{
|
|
var_03 func_113D9(self);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_113D9(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_11414))
|
|
{
|
|
level func_11AE9();
|
|
level.var_11414 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 1;
|
|
}
|
|
|
|
if(!isdefined(self) || issentient(self) && !isalive(self))
|
|
{
|
|
if(isdefined(self))
|
|
{
|
|
func_113E2(0);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(param_01 && !isdefined(self.var_113F3) || !isdefined(self.var_113F3[param_00 getentitynumber()]) || !self.var_113F3[param_00 getentitynumber()])
|
|
{
|
|
param_00 thread scripts\sp\_utility::func_CE2F("drone_tag_success");
|
|
}
|
|
|
|
self.var_113F3[param_00 getentitynumber()] = 1;
|
|
func_113E2(1);
|
|
self.var_113E9 = undefined;
|
|
self.var_113E8 = undefined;
|
|
self.var_113EA = undefined;
|
|
func_113FB();
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_113DA(param_00,param_01)
|
|
{
|
|
if(isdefined(self.var_113DB) && self.var_113DB == param_01)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_113DB = param_01;
|
|
self notify("tag_flash_entity");
|
|
self endon("tag_flash_entity");
|
|
self endon("death");
|
|
param_00 endon("death");
|
|
param_00 endon("disconnect");
|
|
if(!isdefined(self) || issentient(self) && !isalive(self))
|
|
{
|
|
if(isdefined(self))
|
|
{
|
|
func_113E2(0);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
var_02 = param_00 getentitynumber();
|
|
if(!isdefined(param_00.var_113E1))
|
|
{
|
|
param_00.var_113E1 = 0;
|
|
}
|
|
|
|
var_03 = isdefined(self.var_113F3) && scripts\common\utility::istrue(self.var_113F3[var_02]);
|
|
var_04 = 1;
|
|
while(param_01 && getdvarint("ai_threatsight",1))
|
|
{
|
|
self.var_113F9 = 1;
|
|
if(var_04)
|
|
{
|
|
func_113E2(1,"dead");
|
|
}
|
|
else
|
|
{
|
|
func_113E2(var_03);
|
|
}
|
|
|
|
var_05 = param_00.var_113E1 - gettime();
|
|
if(var_05 > 0)
|
|
{
|
|
wait(float(var_05) / 1000);
|
|
}
|
|
|
|
var_04 = !var_04;
|
|
param_00.var_113E1 = gettime() + 200;
|
|
var_03 = isdefined(self.var_113F3) && scripts\common\utility::istrue(self.var_113F3[var_02]);
|
|
}
|
|
|
|
func_113E2(var_03);
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_11406()
|
|
{
|
|
if(!isdefined(level.var_11414))
|
|
{
|
|
level func_11AE9();
|
|
level.var_11414 = 1;
|
|
}
|
|
|
|
self.var_11400 = [];
|
|
self.var_11400["enabled"] = 1;
|
|
self.var_11400["marking_enabled"] = 1;
|
|
self.var_11400["outline_enabled"] = 1;
|
|
self.var_11400["tagging_mode"] = 0;
|
|
self.var_11400["last_tag_start"] = 0;
|
|
self.var_11400["action_slot"] = 4;
|
|
self.var_11400["tagging_fade_min"] = 500;
|
|
self.var_11400["tagging_fade_max"] = 3000;
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_11AE9()
|
|
{
|
|
setdvarifuninitialized("tagging_ads_cone_range",3000);
|
|
setdvarifuninitialized("tagging_ads_cone_angle",10);
|
|
setdvarifuninitialized("tagging_normal_pulse_rate",50);
|
|
setdvarifuninitialized("tagging_normal_prep_time",250);
|
|
setdvarifuninitialized("tagging_normal_track_time",500);
|
|
setdvarifuninitialized("tagging_slow_pulse_rate",100);
|
|
setdvarifuninitialized("tagging_slow_prep_time",500);
|
|
setdvarifuninitialized("tagging_slow_track_time",1000);
|
|
setdvarifuninitialized("tagging_foliage",0);
|
|
setdvarifuninitialized("tagging_vehicle_ride",0);
|
|
scripts\sp\_utility::func_9189("tagging",-1,"default");
|
|
function_01C5("r_hudoutlineEnable",1);
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_11405()
|
|
{
|
|
var_00 = [];
|
|
var_00["r_hudoutlineFillColor0"] = "0.5 0.5 0.5 0";
|
|
var_00["r_hudoutlineFillColor1"] = "0.5 0.5 0.5 0";
|
|
var_00["r_hudoutlineOccludedOutlineColor"] = "0.5 0.5 0.5 1";
|
|
var_00["r_hudoutlineOccludedInlineColor"] = "0.5 0.5 0.5 0.5";
|
|
var_00["r_hudoutlineOccludedInteriorColor"] = "0.5 0.5 0.5 0.5";
|
|
var_00["r_hudOutlineOccludedColorFromFill"] = 1;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_1140E()
|
|
{
|
|
self notify("tagging_shutdown");
|
|
func_1140B(0);
|
|
if(isdefined(self.var_11400) && isdefined(self.var_11400["camera"]))
|
|
{
|
|
self.var_11400["camera"] delete();
|
|
}
|
|
|
|
self.var_11400 = undefined;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_11401()
|
|
{
|
|
var_00 = level.var_10E6D.var_639D[self.team];
|
|
var_01 = getentarray("rss_static_robot","script_noteworthy");
|
|
var_02 = function_0072(self.team);
|
|
var_03 = scripts\common\utility::array_combine(var_00,var_01);
|
|
var_04 = scripts\common\utility::array_combine(var_03,var_02);
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_1140D()
|
|
{
|
|
return isdefined(self.var_C337) && isdefined(self.var_C337.var_19) && self.var_C337.var_19;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_11412()
|
|
{
|
|
self notify("tagging_think");
|
|
self endon("tagging_think");
|
|
self endon("death");
|
|
self endon("disconnect");
|
|
while(isdefined(self) && isdefined(self.var_11400))
|
|
{
|
|
if(!isdefined(self.var_11400["enabled"]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_11400["outline_enabled"]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = self.var_11400["enabled"] && self.var_11400["outline_enabled"];
|
|
if(var_00 && scripts\sp\_utility::func_9D27() || func_1140D())
|
|
{
|
|
func_113EC();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_113EC()
|
|
{
|
|
var_00 = func_11401();
|
|
var_01 = self geteye();
|
|
var_02 = anglestoforward(self getplayerangles());
|
|
var_03 = undefined;
|
|
var_04 = max(0.01,getdvarfloat("tagging_ads_cone_range"));
|
|
var_05 = cos(getdvarfloat("tagging_ads_cone_angle"));
|
|
var_06 = [0,0.5,1];
|
|
if(func_1140D())
|
|
{
|
|
var_04 = level.player.var_11400["tagging_fade_max"];
|
|
var_05 = cos(getdvarfloat("cg_fov"));
|
|
}
|
|
|
|
var_07 = bullettrace(var_01,var_01 + var_02 * 32000,1,self);
|
|
var_03 = var_07["entity"];
|
|
foreach(var_09 in var_00)
|
|
{
|
|
if(!isdefined(var_09))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(issentient(var_09) && !isalive(var_09))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_09.var_113F3) && isdefined(var_09.var_113F3[self getentitynumber()]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!getdvarint("tagging_vehicle_ride") && isdefined(var_09.var_13223) && var_09.var_13223.var_37A > 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_0A = isdefined(var_03) && var_03 == var_09;
|
|
if(!var_0A)
|
|
{
|
|
var_0B = var_09 gettagorigin("tag_origin");
|
|
if(isai(var_09))
|
|
{
|
|
var_0B = var_09 geteye();
|
|
}
|
|
|
|
var_0C = distance(var_0B,var_01);
|
|
if(var_0C <= var_04)
|
|
{
|
|
var_0D = min(1,var_05 + 1 - var_05 * var_0C / var_04);
|
|
foreach(var_0F in var_06)
|
|
{
|
|
var_10 = vectorlerp(var_09.origin,var_0B,var_0F);
|
|
var_11 = var_10 - var_01;
|
|
var_12 = vectornormalize(var_11);
|
|
var_13 = vectordot(var_12,var_02);
|
|
if(var_13 > var_0D)
|
|
{
|
|
if(func_1140D())
|
|
{
|
|
var_0A = 1;
|
|
break;
|
|
}
|
|
|
|
if(func_650A(var_09))
|
|
{
|
|
var_0A = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(var_0A)
|
|
{
|
|
var_09 func_113EB("tracking",self,1);
|
|
continue;
|
|
}
|
|
|
|
var_09 func_113EB("none",self,0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_650C()
|
|
{
|
|
if(isdefined(self.var_11411))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_1140F))
|
|
{
|
|
self.var_1140F = 0;
|
|
}
|
|
|
|
if(!isdefined(level.var_11410))
|
|
{
|
|
level.var_11410 = [];
|
|
level thread func_650B();
|
|
}
|
|
|
|
level.var_11410 = scripts\common\utility::array_add(level.var_11410,self);
|
|
self.var_11411 = 1;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_650B()
|
|
{
|
|
self notify("enemy_sight_trace_process");
|
|
self endon("enemy_sight_trace_process");
|
|
var_00 = 3;
|
|
for(;;)
|
|
{
|
|
level.var_11410 = scripts\common\utility::func_22BC(level.var_11410);
|
|
for(var_01 = 0;var_01 < min(var_00,level.var_11410.size);var_01++)
|
|
{
|
|
var_02 = level.var_11410[0];
|
|
level.var_11410 = scripts\common\utility::func_22A9(level.var_11410,var_02);
|
|
var_02.var_1140F = func_6509(var_02);
|
|
var_02.var_11411 = undefined;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_650A(param_00)
|
|
{
|
|
param_00 func_650C();
|
|
return param_00.var_1140F;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_6509(param_00)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = level.player geteye();
|
|
if(!var_01 && param_00 scripts\sp\_utility::func_8C32(param_00.model,"j_head"))
|
|
{
|
|
if(sighttracepassed(var_02,param_00 gettagorigin("j_head"),0,param_00.var_101E1,param_00,0))
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
}
|
|
|
|
if(!var_01 && param_00 scripts\sp\_utility::func_8C32(param_00.model,"j_spinelower"))
|
|
{
|
|
if(sighttracepassed(var_02,param_00 gettagorigin("j_spinelower"),0,param_00.var_101E1,param_00,0))
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
}
|
|
|
|
if(!var_01 && param_00 scripts\sp\_utility::func_8C32(param_00.model,"tag_attach"))
|
|
{
|
|
if(sighttracepassed(var_02,param_00 gettagorigin("tag_attach"),0,param_00.var_101E1,param_00,0))
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
}
|
|
|
|
if(!var_01 && sighttracepassed(var_02,param_00.origin,0,param_00.var_101E1,param_00,0))
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_113EB(param_00,param_01,param_02)
|
|
{
|
|
var_03 = gettime();
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 0;
|
|
}
|
|
|
|
var_04 = getdvarint("tagging_normal_pulse_rate");
|
|
var_05 = getdvarint("tagging_normal_prep_time");
|
|
var_06 = getdvarint("tagging_normal_track_time");
|
|
var_07 = 0;
|
|
if(!param_01.var_11400["marking_enabled"])
|
|
{
|
|
param_00 = "range";
|
|
}
|
|
|
|
switch(param_00)
|
|
{
|
|
case "view":
|
|
var_07 = 1;
|
|
self.var_113E9 = 0;
|
|
self.var_113EA = undefined;
|
|
break;
|
|
|
|
case "range":
|
|
self.var_113E9 = 0;
|
|
self.var_113EA = undefined;
|
|
break;
|
|
|
|
case "tracking_slow":
|
|
var_04 = getdvarint("tagging_slow_pulse_rate");
|
|
var_05 = getdvarint("tagging_slow_prep_time");
|
|
var_06 = getdvarint("tagging_slow_track_time");
|
|
break;
|
|
|
|
case "tracking":
|
|
if(!isdefined(self.var_113EA))
|
|
{
|
|
if(gettime() - param_01.var_11400["last_tag_start"] / 1000 <= 0.25)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_113EA = var_03;
|
|
param_01.var_11400["last_tag_start"] = var_03;
|
|
}
|
|
break;
|
|
|
|
case "obstructed":
|
|
case "none":
|
|
default:
|
|
func_113E2(0);
|
|
self.var_113EA = undefined;
|
|
break;
|
|
}
|
|
|
|
var_08 = var_06 + var_05;
|
|
var_09 = 0;
|
|
if(isdefined(self.var_113EA))
|
|
{
|
|
var_09 = var_03 - self.var_113EA;
|
|
}
|
|
|
|
if(var_09 >= var_08)
|
|
{
|
|
if(param_02)
|
|
{
|
|
param_01.var_113F4 = 1;
|
|
}
|
|
|
|
func_113D9(param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_113E2(param_00,param_01)
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(param_00)
|
|
{
|
|
func_113FB(param_01);
|
|
thread func_113F7();
|
|
thread func_113F8();
|
|
return;
|
|
}
|
|
|
|
func_113FA();
|
|
self notify("tagged_entity_update");
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_113F8()
|
|
{
|
|
self endon("death");
|
|
self notify("tagged_entity_update");
|
|
self endon("tagged_entity_update");
|
|
for(;;)
|
|
{
|
|
if(!getdvarint("tagging_vehicle_ride") && isdefined(self.var_13223) && self.var_13223.var_37A > 0)
|
|
{
|
|
func_113E2(0);
|
|
self notify("tagged_entity_death_cleanup");
|
|
self.var_113F3 = undefined;
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.var_113F9))
|
|
{
|
|
if(!isdefined(self.var_113FD))
|
|
{
|
|
self.var_113FD = gettime();
|
|
}
|
|
|
|
var_00 = int(gettime() - self.var_113FD / 100);
|
|
if(var_00 % 2)
|
|
{
|
|
func_113FA();
|
|
}
|
|
else
|
|
{
|
|
func_113FB();
|
|
}
|
|
|
|
if(var_00 > 3)
|
|
{
|
|
func_113FB();
|
|
self.var_113F9 = 1;
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_FC9D))
|
|
{
|
|
thread func_113FE();
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_113FE()
|
|
{
|
|
self notify("tagged_wait_shield_off");
|
|
self endon("tagged_wait_shield_off");
|
|
self endon("death");
|
|
self waittill("hudoutline_off");
|
|
func_113FB();
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_113F5()
|
|
{
|
|
var_00["allies"] = 3;
|
|
var_00["axis"] = 1;
|
|
var_00["team3"] = 0;
|
|
var_00["dead"] = 0;
|
|
var_01 = "dead";
|
|
if(isdefined(self.team))
|
|
{
|
|
var_01 = self.team;
|
|
}
|
|
|
|
return var_00[var_01];
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_113FB(param_00)
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
func_113FA();
|
|
var_01 = func_113F5();
|
|
scripts\sp\_utility::func_9196(var_01,0,1,"tagging");
|
|
thread func_113FC();
|
|
self.var_11413 = 1;
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_113FA()
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self notify("tagged_status_update");
|
|
scripts\sp\_utility::func_9193("tagging");
|
|
self.var_11413 = undefined;
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_113FC()
|
|
{
|
|
self notify("tagged_status_update");
|
|
self endon("tagged_status_update");
|
|
self endon("death");
|
|
while(isdefined(self) && !issentient(self) || isalive(self))
|
|
{
|
|
var_00 = level.player.var_11400["tagging_fade_max"];
|
|
var_01 = var_00 * var_00;
|
|
var_02 = lengthsquared(level.player.origin - self.origin);
|
|
if(var_02 > var_01)
|
|
{
|
|
func_113FA();
|
|
continue;
|
|
}
|
|
|
|
func_113FB();
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_113F7()
|
|
{
|
|
if(isdefined(self.var_113F7))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self notify("tagged_entity_death_cleanup");
|
|
self endon("tagged_entity_death_cleanup");
|
|
self.var_113F7 = 1;
|
|
self waittill("death",var_00,var_01);
|
|
if(isplayer(var_00))
|
|
{
|
|
wait(0.1);
|
|
if(isdefined(self) && distancesquared(self.origin,level.player.origin) > 90000)
|
|
{
|
|
var_02 = gettime();
|
|
var_03 = 1;
|
|
while(isdefined(self) && gettime() - var_02 < 1000)
|
|
{
|
|
if(var_03 == 0 && randomint(100) < 30)
|
|
{
|
|
func_113E2(1);
|
|
var_03 = 1;
|
|
continue;
|
|
}
|
|
|
|
if(var_03 == 1)
|
|
{
|
|
func_113E2(0);
|
|
var_03 = 0;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isdefined(self))
|
|
{
|
|
func_113E2(0);
|
|
}
|
|
|
|
self.var_113F7 = undefined;
|
|
} |