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

1422 lines
28 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\_battlechatter_mp.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 64
* Decompile Time: 3056 ms
* Timestamp: 10/27/2023 12:14:34 AM
*******************************************************************/
//Function Number: 1
init()
{
if(level.multiteambased)
{
foreach(var_01 in level.teamnamelist)
{
level.var_9F9F[var_01] = 0;
level.var_1092F[var_01] = [];
}
}
else
{
level.var_9F9F["allies"] = 0;
level.var_9F9F["axis"] = 0;
level.var_1092F["allies"] = [];
level.var_1092F["axis"] = [];
}
func_FAE9();
level.var_29CB = [];
level.var_29CB["reload"] = "inform_reloading_generic";
level.var_29CB["frag_out"] = "inform_attack_grenade";
level.var_29CB["flash_out"] = "inform_attack_flashbang";
level.var_29CB["smoke_out"] = "inform_attack_smoke";
level.var_29CB["conc_out"] = "inform_attack_stun";
level.var_29CB["c4_plant"] = "inform_attack_thwc4";
level.var_29CB["claymore_plant"] = "inform_plant_claymore";
level.var_29CB["semtex_out"] = "semtex_use";
level.var_29CB["kill"] = "inform_killfirm_infantry";
level.var_29CB["casualty"] = "reaction_casualty_generic";
level.var_29CB["suppressing_fire"] = "cmd_suppressfire";
level.var_29CB["moving"] = "order_move_combat";
level.var_29CB["callout_generic"] = "threat_infantry_generic";
level.var_29CB["callout_response_generic"] = "response_ack_yes";
level.var_29CB["damage"] = "inform_taking_fire";
level.var_29CB["semtex_incoming"] = "semtex_incoming";
level.var_29CB["c4_incoming"] = "c4_incoming";
level.var_29CB["flash_incoming"] = "flash_incoming";
level.var_29CB["stun_incoming"] = "stun_incoming";
level.var_29CB["grenade_incoming"] = "grenade_incoming";
level.var_29CB["rpg_incoming"] = "rpg_incoming";
level.var_29AA = [];
level.var_29AA["timeout"]["suppressing_fire"] = 5000;
level.var_29AA["timeout"]["moving"] = -20536;
level.var_29AA["timeout"]["callout_generic"] = 15000;
level.var_29AA["timeout"]["callout_location"] = 3000;
level.var_29AA["timeout_player"]["suppressing_fire"] = 10000;
level.var_29AA["timeout_player"]["moving"] = 120000;
level.var_29AA["timeout_player"]["callout_generic"] = 5000;
level.var_29AA["timeout_player"]["callout_location"] = 5000;
foreach(var_05, var_04 in level.var_1092F)
{
level.var_29AA["last_say_time"][var_05]["suppressing_fire"] = -99999;
level.var_29AA["last_say_time"][var_05]["moving"] = -99999;
level.var_29AA["last_say_time"][var_05]["callout_generic"] = -99999;
level.var_29AA["last_say_time"][var_05]["callout_location"] = -99999;
level.var_29AA["last_say_pos"][var_05]["suppressing_fire"] = (0,0,-9000);
level.var_29AA["last_say_pos"][var_05]["moving"] = (0,0,-9000);
level.var_29AA["last_say_pos"][var_05]["callout_generic"] = (0,0,-9000);
level.var_29AA["last_say_pos"][var_05]["callout_location"] = (0,0,-9000);
level.var_13526[var_05][""] = 0;
level.var_13526[var_05]["w"] = 0;
}
scripts\common\bcs_location_trigs::func_29BB();
scripts\mp\bcs_location_trigs::func_29BB();
var_06 = getdvar("g_gametype");
level.var_9F92 = 1;
if(var_06 == "war" || var_06 == "kc" || var_06 == "dom")
{
level.var_9F92 = 0;
}
level thread func_C56E();
}
//Function Number: 2
func_C56E()
{
for(;;)
{
level waittill("connected",var_00);
var_01 = var_00 getplayerdata("common","gender");
if(var_01)
{
var_00.var_7727 = "female";
}
else
{
var_00.var_7727 = "male";
}
var_00 thread func_C57B();
}
}
//Function Number: 3
func_C57B()
{
self endon("disconnect");
for(;;)
{
self waittill("spawned_player");
self.var_29AA = [];
self.var_29AA["last_say_time"]["suppressing_fire"] = -99999;
self.var_29AA["last_say_time"]["moving"] = -99999;
self.var_29AA["last_say_time"]["callout_generic"] = -99999;
self.var_29AA["last_say_time"]["callout_location"] = -99999;
if(scripts\mp\_utility::func_9D48("archetype_heavy"))
{
var_00 = "HV_";
}
else if(scripts\mp\_utility::func_9D48("archetype_scout"))
{
var_00 = "SN_";
}
else if(scripts\mp\_utility::func_9D48("archetype_assassin"))
{
var_00 = "FT_";
}
else if(scripts\mp\_utility::func_9D48("archetype_engineer"))
{
var_00 = "N6_";
}
else if(scripts\mp\_utility::func_9D48("archetype_sniper"))
{
var_00 = "GH_";
}
else if(scripts\mp\_utility::func_9D48("archetype_assault"))
{
var_00 = "AS_";
}
else
{
var_00 = "AS_";
}
var_01 = scripts\mp\_teams::func_7E55();
if(isdefined(var_01))
{
var_02 = var_01["body"];
if(isdefined(var_02))
{
switch(var_02)
{
case "mp_ftl_hero_valley_girl_body":
var_00 = "N6_";
break;
case "body_mp_ghost_zombies":
var_00 = "N6_";
break;
}
}
}
var_03 = !isagent(self) && !scripts\mp\_utility::isfemale();
self.pers["voicePrefix"] = var_00 + var_03 + "_";
if(level.splitscreen)
{
continue;
}
if(!level.teambased)
{
continue;
}
if(scripts\mp\_utility::func_9D46())
{
self.var_29A4 = 1;
continue;
}
thread func_402C();
thread func_DF5F();
thread func_85E5();
thread func_85D1();
thread func_112CC();
thread func_3B20();
thread func_4D73();
thread func_10AC4();
thread func_117E1();
}
}
//Function Number: 4
func_85D1()
{
self endon("disconnect");
self endon("death");
var_00 = self.origin;
var_01 = 147456;
for(;;)
{
var_02 = scripts\common\utility::func_116D7(isdefined(level.var_85D5),level.var_85D5,[]);
var_03 = scripts\common\utility::func_116D7(isdefined(level.var_B898),level.var_B898,[]);
if(var_02.size + var_03.size < 1 || !scripts\mp\_utility::func_9F19(self))
{
wait(0.05);
continue;
}
var_02 = scripts\common\utility::array_combine(var_02,var_03);
foreach(var_05 in var_02)
{
wait(0.05);
if(!isdefined(var_05))
{
continue;
}
if(isdefined(var_05.var_13C2E))
{
switch(var_05.var_13C2E)
{
case "mobile_radar_mp":
case "motion_sensor_mp":
case "proximity_explosive_mp":
case "throwingreaper_mp":
case "throwingknifesmokewall_mp":
case "throwingknifeteleport_mp":
case "trophy_mp":
case "smoke_grenade_mp":
case "throwingknife_mp":
case "blackhole_grenade_mp":
case "throwingknifec4_mp":
break;
}
if(function_0244(var_05.var_13C2E) != "offhand" && weaponclass(var_05.var_13C2E) == "grenade")
{
continue;
}
if(!isdefined(var_05.var_222))
{
var_05.var_222 = getmissileowner(var_05);
}
if(isdefined(var_05.var_222) && level.teambased && var_05.var_222.team == self.team)
{
continue;
}
var_06 = distancesquared(var_05.origin,self.origin);
if(var_06 < var_01)
{
if(scripts\common\utility::func_4347())
{
wait(5);
continue;
}
if(bullettracepassed(var_05.origin,self.origin,0,self))
{
if(var_05.var_13C2E == "concussion_grenade_mp" || var_05.var_13C2E == "sensor_grenade_mp")
{
level thread func_EB84(self,"stun_incoming");
wait(5);
continue;
}
if(var_05.var_13C2E == "flash_grenade_mp")
{
level thread func_EB84(self,"flash_incoming");
wait(5);
continue;
}
if(weaponclass(var_05.var_13C2E) == "rocketlauncher")
{
level thread func_EB84(self,"rpg_incoming");
wait(5);
continue;
}
if(var_05.var_13C2E == "c4_mp")
{
level thread func_EB84(self,"c4_incoming");
wait(5);
continue;
}
if(var_05.var_13C2E == "semtex_mp")
{
level thread func_EB84(self,"semtex_incoming");
wait(5);
continue;
}
level thread func_EB84(self,"grenade_incoming");
wait(5);
}
}
}
}
}
}
//Function Number: 5
func_112CC()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
var_00 = undefined;
for(;;)
{
self waittill("begin_firing");
thread func_112D1();
thread func_112D0();
self waittill("stoppedFiring");
}
}
//Function Number: 6
func_112D0()
{
thread func_1371B();
self endon("begin_firing");
self waittill("end_firing");
wait(0.3);
self notify("stoppedFiring");
}
//Function Number: 7
func_1371B()
{
self endon("stoppedFiring");
self waittill("begin_firing");
thread func_112D0();
}
//Function Number: 8
func_112D1()
{
self notify("suppressWaiter");
self endon("suppressWaiter");
self endon("death");
self endon("disconnect");
self endon("stoppedFiring");
wait(1);
if(func_3902("suppressing_fire"))
{
level thread func_EB84(self,"suppressing_fire");
}
}
//Function Number: 9
func_402C()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("begin_firing");
var_00 = self getcurrentweapon();
if(var_00 == "claymore_mp")
{
level thread func_EB84(self,"claymore_plant");
}
}
}
//Function Number: 10
func_DF5F()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("reload_start");
level thread func_EB84(self,"reload");
}
}
//Function Number: 11
func_85E5()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
if(var_01 == "frag_grenade_mp")
{
level thread func_EB84(self,"frag_out");
continue;
}
if(var_01 == "semtex_mp")
{
level thread func_EB84(self,"semtex_out");
continue;
}
if(var_01 == "cluster_grenade_mp")
{
level thread func_EB84(self,"frag_out");
continue;
}
if(var_01 == "flash_grenade_mp")
{
level thread func_EB84(self,"flash_out");
continue;
}
if(var_01 == "concussion_grenade_mp" || var_01 == "sensor_grenade_mp")
{
level thread func_EB84(self,"conc_out");
continue;
}
if(var_01 == "smoke_grenade_mp" || var_01 == "gas_grenade_mp")
{
level thread func_EB84(self,"smoke_out");
continue;
}
if(var_01 == "c4_mp")
{
level thread func_EB84(self,"c4_plant");
}
}
}
//Function Number: 12
func_10AC4()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("sprint_begin");
if(func_3902("moving"))
{
level thread func_EB84(self,"moving",0,0);
}
}
}
//Function Number: 13
func_4D73()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("damage",var_00,var_01);
if(!isdefined(var_01))
{
continue;
}
if(!isdefined(var_01.classname))
{
continue;
}
if(var_01 != self && var_01.classname != "worldspawn")
{
wait(1.5);
level thread func_EB84(self,"damage");
wait(3);
}
}
}
//Function Number: 14
func_3B20()
{
self endon("disconnect");
self endon("faux_spawn");
self waittill("death");
foreach(var_01 in level.var_C928)
{
if(!isdefined(var_01))
{
continue;
}
if(var_01 == self)
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_01))
{
continue;
}
if(!isdefined(self.team))
{
continue;
}
if(var_01.team != self.team)
{
continue;
}
if(isagent(var_01))
{
continue;
}
if(distancesquared(self.origin,var_01.origin) <= 262144)
{
level thread func_EB85(var_01,"casualty",0.75);
break;
}
}
}
//Function Number: 15
func_117E1()
{
self endon("death");
self endon("disconnect");
self endon("faux_spawn");
for(;;)
{
self waittill("enemy_sighted");
if(getomnvar("ui_prematch_period"))
{
level waittill("prematch_over");
continue;
}
if(!func_3902("callout_location") && !func_3902("callout_generic"))
{
continue;
}
var_00 = self method_815C();
if(!isdefined(var_00))
{
continue;
}
var_01 = 0;
var_02 = 4000000;
if(self method_822E() > 0.7)
{
var_02 = 6250000;
}
foreach(var_04 in var_00)
{
if(isdefined(var_04) && scripts\mp\_utility::func_9F19(var_04) && !var_04 scripts\mp\_utility::_hasperk("specialty_coldblooded") && distancesquared(self.origin,var_04.origin) < var_02)
{
var_05 = var_04 func_81F7(self);
var_01 = 1;
if(isdefined(var_05) && func_3902("callout_location") && func_73DC(4840000))
{
if(scripts\mp\_utility::_hasperk("specialty_quieter") || !func_73DC(262144))
{
level thread func_EB84(self,var_05.var_AECB[0],0);
}
else
{
level thread func_EB84(self,var_05.var_AECB[0],1);
}
break;
}
}
}
if(var_01 && func_3902("callout_generic"))
{
level thread func_EB84(self,"callout_generic");
level thread func_EB87(self,"plr_target_generic",undefined,0.75);
}
}
}
//Function Number: 16
func_EB85(param_00,param_01,param_02,param_03,param_04)
{
param_00 endon("death");
param_00 endon("disconnect");
wait(param_02);
func_EB84(param_00,param_01,param_03,param_04);
}
//Function Number: 17
func_EB84(param_00,param_01,param_02,param_03)
{
param_00 endon("death");
param_00 endon("disconnect");
if(scripts\mp\_utility::func_9FB3(param_00.var_29A4))
{
return;
}
if(func_9F6A(param_00))
{
return;
}
if(param_00.team != "spectator")
{
var_04 = param_00.pers["voicePrefix"];
if(isdefined(level.var_29CB[param_01]))
{
var_05 = var_04 + level.var_29CB[param_01];
}
else
{
func_AEC5(param_02);
var_05 = var_05 + "co_loc_" + param_02;
param_00 thread func_5ABF(var_05,param_01);
param_01 = "callout_location";
}
param_00 func_12E72(param_01);
param_00 thread func_5AB0(var_05,param_02,param_03);
}
}
//Function Number: 18
func_5AB0(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = 1;
}
var_03 = self.pers["team"];
level func_182A(self,var_03);
var_04 = !level.var_9F92 || !scripts\mp\_utility::_hasperk("specialty_coldblooded") && isagent(self) || self method_81B9();
if(param_02 && var_04)
{
if(isagent(self) || level.var_1BE6[var_03] > 3)
{
thread func_5AB1(param_00,var_03);
}
}
if(isagent(self) || isdefined(param_01) && param_01)
{
self playsoundtoteam(param_00,var_03);
}
else
{
self playsoundtoteam(param_00,var_03,self);
}
thread func_118EF(param_00);
scripts\common\utility::waittill_any_3(param_00,"death","disconnect");
level func_E173(self,var_03);
}
//Function Number: 19
func_5AB1(param_00,param_01)
{
var_02 = spawn("script_origin",self.origin + (0,0,256));
var_03 = param_00 + "_n";
if(soundexists(var_03))
{
foreach(var_05 in level.teamnamelist)
{
if(var_05 != param_01)
{
var_02 playsoundtoteam(var_03,var_05);
}
}
}
wait(3);
var_02 delete();
}
//Function Number: 20
func_5ABF(param_00,param_01)
{
var_02 = scripts\common\utility::func_13734(param_00,"death","disconnect");
if(var_02 == param_00)
{
var_03 = self.team;
var_04 = self.pers["voicePrefix"];
var_05 = self.origin;
wait(0.5);
foreach(var_0B, var_07 in level.var_C928)
{
if(!isdefined(var_07))
{
continue;
}
if(var_07 == self)
{
continue;
}
if(!scripts\mp\_utility::func_9F19(var_07))
{
continue;
}
if(var_07.team != var_03)
{
continue;
}
var_08 = var_07.pers["voicePrefix"];
if(!isdefined(var_08))
{
continue;
}
if(var_08 != var_04 && distancesquared(var_05,var_07.origin) <= 262144 && !func_9F6A(var_07))
{
var_09 = var_08 + "co_loc_" + param_01 + "_echo";
if(soundexists(var_09) && scripts\common\utility::func_4347())
{
var_0A = var_09;
}
else
{
var_0A = var_0B + level.var_29CB["callout_response_generic"];
}
var_07 thread func_5AB0(var_0A,0,1);
break;
}
}
}
}
//Function Number: 21
func_118EF(param_00)
{
self endon("death");
self endon("disconnect");
wait(2);
self notify(param_00);
}
//Function Number: 22
func_9F6A(param_00,param_01)
{
param_00 endon("death");
param_00 endon("disconnect");
if(!isdefined(param_01))
{
param_01 = 1000;
}
var_02 = param_01 * param_01;
if(isdefined(param_00) && isdefined(param_00.team) && param_00.team != "spectator")
{
for(var_03 = 0;var_03 < level.var_1092F[param_00.team].size;var_03++)
{
var_04 = level.var_1092F[param_00.team][var_03];
if(var_04 == param_00)
{
return 1;
}
if(!isdefined(var_04))
{
continue;
}
if(distancesquared(var_04.origin,param_00.origin) < var_02)
{
return 1;
}
}
}
return 0;
}
//Function Number: 23
func_182A(param_00,param_01)
{
level.var_1092F[param_01][level.var_1092F[param_01].size] = param_00;
}
//Function Number: 24
func_E173(param_00,param_01)
{
var_02 = [];
for(var_03 = 0;var_03 < level.var_1092F[param_01].size;var_03++)
{
if(level.var_1092F[param_01][var_03] == param_00)
{
continue;
}
var_02[var_02.size] = level.var_1092F[param_01][var_03];
}
level.var_1092F[param_01] = var_02;
}
//Function Number: 25
func_55B4(param_00)
{
param_00.var_29A4 = 1;
}
//Function Number: 26
func_6260(param_00)
{
param_00.var_29A4 = undefined;
}
//Function Number: 27
func_3902(param_00)
{
var_01 = self.pers["team"];
if(var_01 == "spectator")
{
return 0;
}
var_02 = level.var_29AA["timeout_player"][param_00];
var_03 = gettime() - self.var_29AA["last_say_time"][param_00];
if(var_02 > var_03)
{
return 0;
}
var_02 = level.var_29AA["timeout"][param_00];
var_03 = gettime() - level.var_29AA["last_say_time"][var_01][param_00];
if(var_02 < var_03)
{
return 1;
}
return 0;
}
//Function Number: 28
func_12E72(param_00)
{
var_01 = self.pers["team"];
self.var_29AA["last_say_time"][param_00] = gettime();
level.var_29AA["last_say_time"][var_01][param_00] = gettime();
level.var_29AA["last_say_pos"][var_01][param_00] = self.origin;
}
//Function Number: 29
func_12EC1(param_00)
{
}
//Function Number: 30
func_7F7E()
{
var_00 = func_7803();
var_00 = scripts\common\utility::array_randomize(var_00);
if(var_00.size)
{
foreach(var_02 in var_00)
{
if(!func_AEC6(var_02))
{
return var_02;
}
}
foreach(var_02 in var_00)
{
if(!func_AEC7(var_02))
{
return var_02;
}
}
}
return undefined;
}
//Function Number: 31
func_81F7(param_00)
{
var_01 = func_7803();
var_01 = scripts\common\utility::array_randomize(var_01);
if(var_01.size)
{
foreach(var_03 in var_01)
{
if(!func_AEC6(var_03) && param_00 func_3878(var_03))
{
return var_03;
}
}
foreach(var_03 in var_01)
{
if(!func_AEC7(var_03) && param_00 func_3878(var_03))
{
return var_03;
}
}
}
return undefined;
}
//Function Number: 32
func_7803()
{
var_00 = level.var_29BC;
var_01 = self getistouchingentities(var_00);
var_02 = [];
foreach(var_04 in var_01)
{
if(isdefined(var_04.var_AECB))
{
var_02[var_02.size] = var_04;
}
}
return var_02;
}
//Function Number: 33
func_12D96()
{
if(isdefined(level.var_29BC))
{
anim.var_29BC = scripts\common\utility::func_22BC(level.var_29BC);
}
}
//Function Number: 34
func_9C15()
{
var_00 = func_7803();
foreach(var_02 in var_00)
{
if(!func_AEC7(var_02))
{
return 1;
}
}
return 0;
}
//Function Number: 35
func_AEC6(param_00)
{
var_01 = func_AEC9(param_00.var_AECB[0]);
if(!isdefined(var_01))
{
return 0;
}
return 1;
}
//Function Number: 36
func_AEC7(param_00)
{
var_01 = func_AEC9(param_00.var_AECB[0]);
if(!isdefined(var_01))
{
return 0;
}
var_02 = var_01 + 25000;
if(gettime() < var_02)
{
return 1;
}
return 0;
}
//Function Number: 37
func_AEC5(param_00)
{
level.var_AECC[param_00] = gettime();
}
//Function Number: 38
func_AEC9(param_00)
{
if(isdefined(level.var_AECC[param_00]))
{
return level.var_AECC[param_00];
}
return undefined;
}
//Function Number: 39
func_3878(param_00)
{
foreach(var_02 in param_00.var_AECB)
{
var_03 = func_7F7F("co_loc_" + var_02);
var_04 = func_80A3(var_02,0);
var_05 = func_7F7F("concat_loc_" + var_02);
var_06 = soundexists(var_03) || soundexists(var_04) || soundexists(var_05);
if(var_06)
{
return var_06;
}
}
return 0;
}
//Function Number: 40
func_3896(param_00)
{
var_01 = param_00.var_AECB;
foreach(var_03 in var_01)
{
if(func_9D7A(var_03,self))
{
return 1;
}
}
return 0;
}
//Function Number: 41
func_7E18(param_00)
{
var_01 = undefined;
var_02 = self.var_AECB;
foreach(var_04 in var_02)
{
if(func_9D7B(var_04,param_00) && !isdefined(self.var_DB40))
{
var_01 = var_04;
break;
}
if(func_9D7C(var_04))
{
var_01 = var_04;
}
}
return var_01;
}
//Function Number: 42
func_9D7C(param_00)
{
return issubstr(param_00,"_report");
}
//Function Number: 43
func_9D7A(param_00,param_01)
{
var_02 = param_01 func_7F7F("concat_loc_" + param_00);
if(soundexists(var_02))
{
return 1;
}
return 0;
}
//Function Number: 44
func_9D7B(param_00,param_01)
{
if(issubstr(param_00,"_qa") && soundexists(param_00))
{
return 1;
}
var_02 = param_01 func_80A3(param_00,0);
if(soundexists(var_02))
{
return 1;
}
return 0;
}
//Function Number: 45
func_7F7F(param_00)
{
var_01 = self.pers["voicePrefix"] + param_00;
return var_01;
}
//Function Number: 46
func_80A3(param_00,param_01)
{
var_02 = func_7F7F(param_00);
var_02 = var_02 + "_qa" + param_01;
return var_02;
}
//Function Number: 47
func_28D2()
{
return 0;
}
//Function Number: 48
func_28D3()
{
return 0;
}
//Function Number: 49
func_28DA(param_00)
{
}
//Function Number: 50
func_28DB(param_00)
{
}
//Function Number: 51
func_28D4(param_00)
{
}
//Function Number: 52
func_7DAD(param_00)
{
}
//Function Number: 53
func_28DC(param_00,param_01,param_02)
{
}
//Function Number: 54
func_73DC(param_00)
{
if(!isdefined(param_00))
{
param_00 = 262144;
}
foreach(var_02 in level.players)
{
if(var_02.team == self.pers["team"])
{
if(var_02 != self && distancesquared(var_02.origin,self.origin) <= param_00)
{
return 1;
}
}
}
return 0;
}
//Function Number: 55
func_FAE9()
{
level.var_F215 = [];
level.var_F215["plr_killfirm_c6"] = "kill_rig";
level.var_F215["plr_killfirm_ftl"] = "kill_rig";
level.var_F215["plr_killfirm_ghost"] = "kill_rig";
level.var_F215["plr_killfirm_merc"] = "kill_rig";
level.var_F215["plr_killfirm_stryker"] = "kill_rig";
level.var_F215["plr_killfirm_warfighter"] = "kill_rig";
level.var_F215["plr_killfirm_generic"] = "kill_gen";
level.var_F215["plr_killfirm_amf"] = "kill_amf";
level.var_F215["plr_killfirm_headshot"] = "kill_headshot";
level.var_F215["plr_killfirm_grenade"] = "kill_grenade";
level.var_F215["plr_killfirm_rival"] = "kill_rival";
level.var_F215["plr_killfirm_semtex"] = "kill_semtex";
level.var_F215["plr_killfirm_multi"] = "kill_multi";
level.var_F215["plr_killfirm_twofer"] = "kill_twofer";
level.var_F215["plr_killfirm_threefer"] = "kill_threefer";
level.var_F215["plr_killfirm_killstreak"] = "kill_ss";
level.var_F215["plr_killstreak_destroy"] = "kill_other_ss";
level.var_F215["plr_killstreak_target"] = "targeted_by_ss";
level.var_F215["plr_hit_back"] = "dmg_back";
level.var_F215["plr_damaged_light"] = "dmg_light";
level.var_F215["plr_damaged_heavy"] = "dmg_heavy";
level.var_F215["plr_damaged_emp"] = "dmg_emp";
level.var_F215["plr_healing"] = "healing";
level.var_F215["plr_kd_high"] = "kd_high";
level.var_F215["plr_firefight"] = "firefight";
level.var_F215["plr_target_generic"] = "enemy_sighted";
level.var_F215["plr_perk_super"] = "super_activate";
level.var_F215["plr_perk_trophy"] = "super_activate";
level.var_F215["plr_perk_turret"] = "super_activate";
level.var_F215["plr_perk_amplify"] = "super_activate";
level.var_F215["plr_perk_overdrive"] = "super_activate";
level.var_F215["plr_perk_ftl"] = "super_activate";
level.var_F215["plr_perk_pulse"] = "super_activate";
level.var_F215["plr_perk_rewind"] = "super_activate";
level.var_F215["plr_perk_super_kill"] = "super_kill";
level.var_F215["plr_perk_trophy_block"] = "super_kill";
level.var_F215["plr_perk_turret_kill"] = "super_kill";
level.var_F215["plr_killfirm_shift"] = "super_kill";
level.var_F215["plr_perk_railgun"] = "super_kill";
level.var_F215["plr_perk_stealth"] = "super_kill";
level.var_F215["plr_perk_armor"] = "super_kill";
level.var_F215["plr_perk_charge"] = "super_kill";
level.var_F215["plr_perk_dragon"] = "super_kill";
level.var_F215["plr_perk_pound"] = "super_kill";
level.var_F215["plr_perk_reaper"] = "super_kill";
level.var_F214 = [];
func_F839("kill_rig",15,0.3,0.25);
func_F839("kill_gen",30,0.1,0.25);
func_F839("kill_amf",15,0.5,0.5);
func_F839("kill_headshot",15,0.7,0.25);
func_F839("kill_grenade",15,0.5,0.25);
func_F839("kill_rival",15,0.7,0.25);
func_F839("kill_semtex",15,0.5,0.25);
func_F839("kill_multi",20,0.6,0.25);
func_F839("kill_twofer",10,0.7,0.75);
func_F839("kill_threefer",10,0.8,0.75);
func_F839("kill_ss",10,0.5,0.2);
func_F839("kill_other_ss",10,0.7,0.75);
func_F839("targeted_by_ss",10,0.4,0.33);
func_F839("dmg_back",20,0.5,0.5);
func_F839("dmg_light",20,0.4,0.1);
func_F839("dmg_heavy",20,0.5,0.2);
func_F839("healing",10,0.3,0.1);
func_F839("kd_high",20,0.7,0.8);
func_F839("enemy_sighted",20,0.2,0.25);
func_F839("firefight",10,0.4,0.33);
func_F839("super_activate",10,1,1);
func_F839("super_kill",10,0.9,0.66);
}
//Function Number: 56
func_F839(param_00,param_01,param_02,param_03)
{
level.var_F214[param_00]["timeout"] = param_01;
level.var_F214[param_00]["priority"] = param_02;
level.var_F214[param_00]["chance"] = param_03;
}
//Function Number: 57
func_EB87(param_00,param_01,param_02,param_03)
{
if(isagent(param_00) || !isplayer(param_00))
{
return;
}
if(scripts\mp\_utility::func_9FB3(param_00.var_29A4))
{
return;
}
var_04 = param_00.pers["voicePrefix"] + param_01;
if(!isdefined(param_01) || !soundexists(var_04))
{
if(!isdefined(param_02))
{
return;
}
param_01 = param_02;
var_04 = param_00.pers["voicePrefix"] + param_01;
if(!soundexists(var_04))
{
return;
}
}
if(!isdefined(param_00.var_F213))
{
param_00.var_F213 = [];
param_00.var_D4B0 = 0;
param_00.var_DB91 = "none";
}
if(isdefined(param_00.var_F213[level.var_F215[param_01]]) && param_00.var_F213[level.var_F215[param_01]] > 0)
{
return;
}
if(!isdefined(param_00.pers["selfVOBonusChance"]))
{
param_00 thread func_12F14();
}
if(randomfloat(1) > level.var_F214[level.var_F215[param_01]]["chance"] + param_00.pers["selfVOBonusChance"])
{
return;
}
param_00 thread func_128AC(param_01,param_03);
}
//Function Number: 58
func_12F14()
{
self endon("disconnect");
level endon("game_ended");
self.pers["selfVOBonusChance"] = 0;
for(;;)
{
self.pers["selfVOBonusChance"] = self.pers["selfVOBonusChance"] + 0.1;
wait(3);
}
}
//Function Number: 59
func_128AC(param_00,param_01)
{
self endon("death");
self endon("disconnect");
if(self.var_DB91 == param_00)
{
return;
}
if(self.var_DB91 == "none" || level.var_F214[level.var_F215[self.var_DB91]]["priority"] < level.var_F214[level.var_F215[param_00]]["priority"] || level.var_F214[level.var_F215[self.var_DB91]]["priority"] == level.var_F214[level.var_F215[param_00]]["priority"] && scripts\common\utility::func_4347())
{
self.var_DB91 = param_00;
}
else
{
return;
}
self notify("addToSelfVOQueue");
self endon("addToSelfVOQueue");
self.var_F212 = 1;
if(isdefined(param_01))
{
thread func_F211(param_01);
}
var_02 = func_809D(param_00);
var_03 = gettime();
while(self.var_D4B0 || !self.var_F212 || var_02 > gettime())
{
if(gettime() > var_03 + 2000)
{
self.var_DB91 = "none";
return;
}
wait(0.05);
}
scripts\common\utility::func_136F7();
thread func_D510(param_00);
}
//Function Number: 60
func_809D(param_00)
{
if(!isdefined(self.var_A9EC))
{
self.var_A9EC = 0;
}
return self.var_A9EC + 2000 + 10000 * 1 - level.var_F214[level.var_F215[param_00]]["priority"];
}
//Function Number: 61
func_F211(param_00)
{
self endon("death");
self endon("disconnect");
self endon("addToSelfVOQueue");
self.var_F212 = 0;
wait(param_00);
self.var_F212 = 1;
}
//Function Number: 62
func_D510(param_00)
{
self endon("death");
self endon("disconnect");
var_01 = self.pers["voicePrefix"] + param_00;
self.pers["selfVOBonusChance"] = 0;
self.var_DB91 = "none";
var_02 = lookupsoundlength(var_01) / 1000;
self.var_A9EC = gettime();
thread func_D4B1(var_02);
thread func_12F15(param_00);
self playsoundtoplayer(var_01,self);
}
//Function Number: 63
func_D4B1(param_00)
{
self endon("disconnect");
self.var_D4B0 = 1;
wait(param_00);
self.var_D4B0 = 0;
}
//Function Number: 64
func_12F15(param_00)
{
self endon("disconnect");
self.var_F213[level.var_F215[param_00]] = gettime();
wait(level.var_F214[level.var_F215[param_00]]["timeout"]);
self.var_F213[level.var_F215[param_00]] = 0;
}