Files
IL-GSC/IW/PC/ALL/scripts/mp/perks/_perk_equipmentping.gsc
2023-10-27 03:49:01 -04:00

141 lines
3.4 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\perks\_perk_equipmentping.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 4
* Decompile Time: 205 ms
* Timestamp: 10/27/2023 12:30:03 AM
*******************************************************************/
//Function Number: 1
func_E84B(param_00,param_01)
{
self endon("death");
self.var_222 endon("disconnect");
var_02 = self.var_222;
var_03 = level.var_12AF7["uav_3dping"];
if(!isdefined(param_01))
{
param_01 = 0;
}
self.equipping_lastpingtime = param_01;
if(var_02 scripts\mp\_utility::_hasperk("specialty_equipment_ping"))
{
for(;;)
{
var_04 = 0;
if(gettime() >= self.equipping_lastpingtime + 3000)
{
foreach(var_06 in level.players)
{
if(!scripts\mp\_utility::func_9F19(var_06))
{
continue;
}
if(!var_02 scripts\mp\_utility::func_9DD6(var_06))
{
continue;
}
if(var_06 scripts\mp\_utility::_hasperk("specialty_engineer"))
{
continue;
}
if(isdefined(var_06.var_C78B))
{
continue;
}
var_07 = scripts\common\utility::array_add(level.players,self);
if(isdefined(param_00))
{
var_07 = scripts\common\utility::array_add(var_07,param_00);
}
var_08 = self.origin + anglestoup(self.angles) * 10;
if(distance2d(var_06.origin,self.origin) < 300 && scripts\common\trace::func_DCF1(var_08,var_06 gettagorigin("j_head"),var_07))
{
if(!var_06 scripts\mp\_utility::_hasperk("specialty_gpsjammer"))
{
var_02 thread markasrelaysource(var_06);
}
var_04 = 1;
}
}
if(var_04)
{
if(!scripts\mp\_utility::func_9FB3(self.eyespyalerted))
{
var_02 scripts\mp\_missions::func_D991("ch_trait_eye_spy");
self.eyespyalerted = 1;
}
playfxontagforclients(var_03.var_7636,self,"tag_origin",var_02);
self playsoundtoplayer("ghost_senses_ping",var_02);
function_0222(self.origin,var_02,400,800);
wait(3);
}
}
scripts\common\utility::func_136F7();
}
}
}
//Function Number: 2
func_B369(param_00,param_01)
{
param_00 endon("death");
param_00 endon("disconnect");
if(!isdefined(param_00) || !scripts\mp\_utility::func_9F19(param_00))
{
return;
}
thread markasrelaysource(param_00);
var_02 = scripts\mp\objidpoolmanager::requestminimapid(10);
if(var_02 == -1)
{
return;
}
scripts\mp\objidpoolmanager::minimap_objective_add(var_02,"active",param_01.origin,"cb_compassping_eqp_ping","icon_large");
scripts\mp\objidpoolmanager::minimap_objective_player(var_02,self getentitynumber());
param_00 thread func_13A35(var_02);
wait(3);
scripts\mp\objidpoolmanager::returnminimapid(var_02);
}
//Function Number: 3
func_13A35(param_00)
{
scripts\common\utility::waittill_any_3("death","disconnect");
scripts\mp\objidpoolmanager::returnminimapid(param_00);
}
//Function Number: 4
markasrelaysource(param_00)
{
level endon("game_ended");
self endon("disconnect");
var_01 = param_00 getentitynumber();
if(!isdefined(self.relaysource))
{
self.relaysource = [];
}
else if(isdefined(self.relaysource[var_01]))
{
self notify("markAsRelaySource");
self endon("markAsRelaySource");
}
self.relaysource[var_01] = 1;
param_00 scripts\common\utility::waittill_any_timeout_1(10,"death","disconnect");
self.relaysource[var_01] = 0;
}