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

1340 lines
34 KiB
Plaintext

/*******************************************************************
* Decompiled By: Bog
* Decompiled File: scripts\mp\killstreaks\_odin.gsc
* Game: Call of Duty: Infinite Warfare
* Platform: PC
* Function Count: 48
* Decompile Time: 2562 ms
* Timestamp: 10/27/2023 12:29:12 AM
*******************************************************************/
//Function Number: 1
init()
{
scripts\mp\killstreaks\_killstreaks::func_DEFB("odin_support",::func_128F1);
scripts\mp\killstreaks\_killstreaks::func_DEFB("odin_assault",::func_128F1);
level._effect["odin_clouds"] = loadfx("vfx/core/mp/killstreaks/odin/odin_parallax_clouds");
level._effect["odin_fisheye"] = loadfx("vfx/code/screen/vfx_scrnfx_odin_fisheye.vfx");
level._effect["odin_targeting"] = loadfx("vfx/core/mp/killstreaks/odin/vfx_marker_odin_cyan");
level.var_C321 = [];
level.var_C321["odin_support"] = spawnstruct();
level.var_C321["odin_support"].var_11901 = 60;
level.var_C321["odin_support"].var_110EA = "odin_support";
level.var_C321["odin_support"].var_13260 = "odin_mp";
level.var_C321["odin_support"].var_B91A = "vehicle_odin_mp";
level.var_C321["odin_support"].var_115EB = "used_odin_support";
level.var_C321["odin_support"].var_13553 = "odin_gone";
level.var_C321["odin_support"].var_1352D = "odin_target_killed";
level.var_C321["odin_support"].var_1352C = "odin_targets_killed";
level.var_C321["odin_support"].var_12B20 = 1;
level.var_C321["odin_support"].var_12B80 = &"KILLSTREAKS_ODIN_UNAVAILABLE";
level.var_C321["odin_support"].var_394["airdrop"] = spawnstruct();
level.var_C321["odin_support"].var_394["airdrop"].var_DA5A = "odin_projectile_airdrop_mp";
level.var_C321["odin_support"].var_394["airdrop"].var_E7BA = "smg_fire";
level.var_C321["odin_support"].var_394["airdrop"].var_1E44 = "ui_odin_airdrop_ammo";
level.var_C321["odin_support"].var_394["airdrop"].var_1AA0 = "airdrop_support";
level.var_C321["odin_support"].var_394["airdrop"].var_DF5D = 20;
level.var_C321["odin_support"].var_394["airdrop"].var_12B22 = -1;
level.var_C321["odin_support"].var_394["airdrop"].var_13521 = "odin_carepackage";
level.var_C321["odin_support"].var_394["airdrop"].var_D5E4 = "odin_carepack_ready";
level.var_C321["odin_support"].var_394["airdrop"].var_D5DD = "odin_carepack_launch";
level.var_C321["odin_support"].var_394["marking"] = spawnstruct();
level.var_C321["odin_support"].var_394["marking"].var_DA5A = "odin_projectile_marking_mp";
level.var_C321["odin_support"].var_394["marking"].var_E7BA = "heavygun_fire";
level.var_C321["odin_support"].var_394["marking"].var_1E44 = "ui_odin_marking_ammo";
level.var_C321["odin_support"].var_394["marking"].var_DF5D = 4;
level.var_C321["odin_support"].var_394["marking"].var_12B22 = -1;
level.var_C321["odin_support"].var_394["marking"].var_1354C = "odin_marking";
level.var_C321["odin_support"].var_394["marking"].var_1354B = "odin_marked";
level.var_C321["odin_support"].var_394["marking"].var_1354A = "odin_m_marked";
level.var_C321["odin_support"].var_394["marking"].var_D5E4 = "odin_flash_ready";
level.var_C321["odin_support"].var_394["marking"].var_D5DD = "odin_flash_launch";
level.var_C321["odin_support"].var_394["smoke"] = spawnstruct();
level.var_C321["odin_support"].var_394["smoke"].var_DA5A = "odin_projectile_smoke_mp";
level.var_C321["odin_support"].var_394["smoke"].var_E7BA = "smg_fire";
level.var_C321["odin_support"].var_394["smoke"].var_1E44 = "ui_odin_smoke_ammo";
level.var_C321["odin_support"].var_394["smoke"].var_DF5D = 7;
level.var_C321["odin_support"].var_394["smoke"].var_12B22 = -1;
level.var_C321["odin_support"].var_394["smoke"].var_13551 = "odin_smoke";
level.var_C321["odin_support"].var_394["smoke"].var_D5E4 = "odin_smoke_ready";
level.var_C321["odin_support"].var_394["smoke"].var_D5DD = "odin_smoke_launch";
level.var_C321["odin_support"].var_394["juggernaut"] = spawnstruct();
level.var_C321["odin_support"].var_394["juggernaut"].var_DA5A = "odin_projectile_smoke_mp";
level.var_C321["odin_support"].var_394["juggernaut"].var_E7BA = "heavygun_fire";
level.var_C321["odin_support"].var_394["juggernaut"].var_1E44 = "ui_odin_juggernaut_ammo";
level.var_C321["odin_support"].var_394["juggernaut"].var_A4AF = "juggernaut_recon";
level.var_C321["odin_support"].var_394["juggernaut"].var_DF5D = level.var_C321["odin_support"].var_11901;
level.var_C321["odin_support"].var_394["juggernaut"].var_12B22 = -1;
level.var_C321["odin_support"].var_394["juggernaut"].var_12B23 = -2;
level.var_C321["odin_support"].var_394["juggernaut"].var_12B21 = -3;
level.var_C321["odin_support"].var_394["juggernaut"].var_1352B = "odin_moving";
level.var_C321["odin_support"].var_394["juggernaut"].var_D5E4 = "null";
level.var_C321["odin_support"].var_394["juggernaut"].var_D5DD = "odin_jugg_launch";
level.var_C321["odin_assault"] = spawnstruct();
level.var_C321["odin_assault"].var_11901 = 60;
level.var_C321["odin_assault"].var_110EA = "odin_assault";
level.var_C321["odin_assault"].var_13260 = "odin_mp";
level.var_C321["odin_assault"].var_B91A = "vehicle_odin_mp";
level.var_C321["odin_assault"].var_115EB = "used_odin_assault";
level.var_C321["odin_assault"].var_13553 = "loki_gone";
level.var_C321["odin_assault"].var_1352D = "odin_target_killed";
level.var_C321["odin_assault"].var_1352C = "odin_targets_killed";
level.var_C321["odin_assault"].var_12B20 = 2;
level.var_C321["odin_assault"].var_12B80 = &"KILLSTREAKS_LOKI_UNAVAILABLE";
level.var_C321["odin_assault"].var_394["airdrop"] = spawnstruct();
level.var_C321["odin_assault"].var_394["airdrop"].var_DA5A = "odin_projectile_airdrop_mp";
level.var_C321["odin_assault"].var_394["airdrop"].var_E7BA = "smg_fire";
level.var_C321["odin_assault"].var_394["airdrop"].var_1E44 = "ui_odin_airdrop_ammo";
level.var_C321["odin_assault"].var_394["airdrop"].var_1AA0 = "airdrop_assault";
level.var_C321["odin_assault"].var_394["airdrop"].var_DF5D = 20;
level.var_C321["odin_assault"].var_394["airdrop"].var_12B22 = -1;
level.var_C321["odin_assault"].var_394["airdrop"].var_13521 = "odin_carepackage";
level.var_C321["odin_assault"].var_394["airdrop"].var_D5E4 = "odin_carepack_ready";
level.var_C321["odin_assault"].var_394["airdrop"].var_D5DD = "odin_carepack_launch";
level.var_C321["odin_assault"].var_394["large_rod"] = spawnstruct();
level.var_C321["odin_assault"].var_394["large_rod"].var_DA5A = "odin_projectile_large_rod_mp";
level.var_C321["odin_assault"].var_394["large_rod"].var_E7BA = "heavygun_fire";
level.var_C321["odin_assault"].var_394["large_rod"].var_1E44 = "ui_odin_marking_ammo";
level.var_C321["odin_assault"].var_394["large_rod"].var_DF5D = 4;
level.var_C321["odin_assault"].var_394["large_rod"].var_12B22 = -2;
level.var_C321["odin_assault"].var_394["large_rod"].var_D5E4 = "null";
level.var_C321["odin_assault"].var_394["large_rod"].var_D5DD = "ac130_105mm_fire";
level.var_C321["odin_assault"].var_394["large_rod"].var_C195 = "ac130_105mm_fire_npc";
level.var_C321["odin_assault"].var_394["small_rod"] = spawnstruct();
level.var_C321["odin_assault"].var_394["small_rod"].var_DA5A = "odin_projectile_small_rod_mp";
level.var_C321["odin_assault"].var_394["small_rod"].var_E7BA = "smg_fire";
level.var_C321["odin_assault"].var_394["small_rod"].var_1E44 = "ui_odin_smoke_ammo";
level.var_C321["odin_assault"].var_394["small_rod"].var_DF5D = 2;
level.var_C321["odin_assault"].var_394["small_rod"].var_12B22 = -2;
level.var_C321["odin_assault"].var_394["small_rod"].var_D5E4 = "null";
level.var_C321["odin_assault"].var_394["small_rod"].var_D5DD = "ac130_40mm_fire";
level.var_C321["odin_assault"].var_394["small_rod"].var_C195 = "ac130_40mm_fire_npc";
level.var_C321["odin_assault"].var_394["juggernaut"] = spawnstruct();
level.var_C321["odin_assault"].var_394["juggernaut"].var_DA5A = "odin_projectile_smoke_mp";
level.var_C321["odin_assault"].var_394["juggernaut"].var_E7BA = "heavygun_fire";
level.var_C321["odin_assault"].var_394["juggernaut"].var_1E44 = "ui_odin_juggernaut_ammo";
level.var_C321["odin_assault"].var_394["juggernaut"].var_A4AF = "juggernaut";
level.var_C321["odin_assault"].var_394["juggernaut"].var_DF5D = level.var_C321["odin_assault"].var_11901;
level.var_C321["odin_assault"].var_394["juggernaut"].var_12B22 = -1;
level.var_C321["odin_assault"].var_394["juggernaut"].var_12B23 = -2;
level.var_C321["odin_assault"].var_394["juggernaut"].var_12B21 = -3;
level.var_C321["odin_assault"].var_394["juggernaut"].var_1352B = "odin_moving";
level.var_C321["odin_assault"].var_394["juggernaut"].var_D5E4 = "null";
level.var_C321["odin_assault"].var_394["juggernaut"].var_D5DD = "odin_jugg_launch";
if(!isdefined(level.var_8D7C))
{
level.var_8D7C = getent("heli_pilot_mesh","targetname");
if(!isdefined(level.var_8D7C))
{
}
else
{
level.var_8D7C.origin = level.var_8D7C.origin + scripts\mp\_utility::func_7EF9();
}
}
scripts\mp\agents\_agents::func_13672();
level.agent_funcs["odin_juggernaut"] = level.agent_funcs["player"];
level.agent_funcs["odin_juggernaut"]["think"] = ::scripts\common\utility::func_61B9;
level.var_C2FF = 800;
level.var_C300 = 200;
level.var_1639 = [];
}
//Function Number: 2
func_128F1(param_00,param_01)
{
if(isdefined(self.var_12B90) && self.var_12B90)
{
return 0;
}
var_02 = param_01;
var_03 = 1;
if(scripts\mp\_utility::func_4BD7() >= scripts\mp\_utility::func_B4D2() || level.var_6BAA + var_03 >= scripts\mp\_utility::func_B4D2())
{
self iprintlnbold(&"KILLSTREAKS_TOO_MANY_VEHICLES");
return 0;
}
if(isdefined(level.var_1639[var_02]))
{
self iprintlnbold(level.var_C321[var_02].var_12B80);
return 0;
}
scripts\mp\_utility::func_93FA();
var_04 = func_49F9(var_02);
if(!isdefined(var_04))
{
scripts\mp\_utility::func_4FC1();
return 0;
}
var_05 = func_10DD2(var_04);
if(!isdefined(var_05))
{
var_05 = 0;
}
return var_05;
}
//Function Number: 3
func_13AA2(param_00)
{
param_00 endon("disconnect");
param_00 endon("joined_team");
param_00 endon("joined_spectators");
param_00 endon("killstreak_disowned");
level endon("game_ended");
self endon("death");
for(;;)
{
level waittill("host_migration_end");
param_00 setclientomnvar("ui_odin",level.var_C321[self.var_C322].var_12B20);
param_00 thermalvisionfofoverlayon();
playfxontag(level._effect["odin_targeting"],self.var_1156A,"tag_origin");
self.var_1156A showtoplayer(param_00);
}
}
//Function Number: 4
func_49F9(param_00)
{
var_01 = self.origin * (1,1,0) + level.var_8D7C.origin - scripts\mp\_utility::func_7EF9() * (0,0,1);
var_02 = (0,0,0);
var_03 = spawnhelicopter(self,var_01,var_02,level.var_C321[param_00].var_13260,level.var_C321[param_00].var_B91A);
if(!isdefined(var_03))
{
return;
}
var_03.var_2B3 = 40;
var_03.var_222 = self;
var_03.team = self.team;
var_03.var_C322 = param_00;
level.var_1639[param_00] = 1;
self.var_C2D3 = var_03;
var_03 thread func_C318();
var_03 thread func_C31F();
var_03 thread func_C31B();
var_03 thread func_C31D();
var_03 thread func_C31E();
var_03 thread func_C319();
var_03 thread func_C31A();
var_03 thread func_C31C();
var_03 thread func_C2DD();
var_03 thread func_C303();
var_03.var_222 scripts\mp\_matchdata::func_AFC9(level.var_C321[param_00].var_110EA,var_01);
return var_03;
}
//Function Number: 5
func_10DD2(param_00)
{
level endon("game_ended");
param_00 endon("death");
self.var_E2D7 = vectortoangles(anglestoforward(self.angles));
func_C30E(param_00);
if(getdvarint("camera_thirdPerson"))
{
scripts\mp\_utility::setthirdpersondof(0);
}
thread func_13AA8(param_00);
scripts\mp\_utility::func_7385(1);
func_C320(param_00);
thread scripts\mp\killstreaks\_juggernaut::func_55F4();
var_01 = scripts\mp\killstreaks\_killstreaks::func_98C2(param_00.var_C322);
if(var_01 != "success")
{
if(isdefined(self.var_55E6) && self.var_55E6)
{
scripts\common\utility::allow_weapon(1);
}
param_00 notify("death");
return 0;
}
scripts\mp\_utility::func_7385(0);
self method_825C(param_00);
param_00 thread func_13AA2(self);
param_00.var_C305 = function_01E1(level._effect["odin_fisheye"],self geteye(),self);
triggerfx(param_00.var_C305);
param_00.var_C305 method_82EC();
level thread scripts\mp\_utility::func_115DE(level.var_C321[param_00.var_C322].var_115EB,self);
self thermalvisionfofoverlayon();
thread func_1369B(param_00);
return 1;
}
//Function Number: 6
func_1369B(param_00)
{
self endon("disconnect");
param_00 endon("death");
wait(1);
var_01 = scripts\mp\_utility::func_C794(self,"cyan",self,0,0,"killstreak");
param_00 thread func_E146(var_01,self);
}
//Function Number: 7
func_C320(param_00)
{
var_01 = spawn("script_model",param_00.origin + (0,0,3000));
var_01.angles = vectortoangles((0,0,1));
var_01 setmodel("tag_origin");
var_01 thread func_13699(5);
var_02 = "odin_zoom_up";
var_03 = var_01 getentitynumber();
var_04 = self getentitynumber();
var_05 = bullettrace(self.origin,param_00.origin,0,self);
if(var_05["surfacetype"] != "none")
{
var_02 = "odin_zoom_down";
var_03 = param_00 getentitynumber();
var_04 = var_01 getentitynumber();
}
var_06 = scripts\common\utility::array_add(scripts\mp\_utility::func_7BC3(),self);
foreach(var_08 in var_06)
{
var_08 setclientomnvar("cam_scene_name",var_02);
var_08 setclientomnvar("cam_scene_lead",var_03);
var_08 setclientomnvar("cam_scene_support",var_04);
var_08 thread func_42CF();
}
}
//Function Number: 8
func_13699(param_00)
{
self endon("death");
level endon("game_ended");
wait(param_00);
self delete();
}
//Function Number: 9
func_42CF()
{
level endon("game_ended");
var_00 = spawn("script_model",self.origin + (0,0,250));
var_00.angles = vectortoangles((0,0,1));
var_00 setmodel("tag_origin");
var_00 thread func_13699(2);
wait(0.1);
playfxontagforclients(level._effect["odin_clouds"],var_00,"tag_origin",self);
}
//Function Number: 10
func_C30E(param_00)
{
scripts\mp\_utility::func_FB09(param_00.var_C322);
self.var_C2D3 = param_00;
}
//Function Number: 11
func_C2DA(param_00)
{
param_00.var_C2F8 = undefined;
param_00.var_C301 = undefined;
param_00.var_C311 = undefined;
param_00.var_C2D4 = undefined;
param_00.var_C2FA = undefined;
param_00.var_C310 = undefined;
if(isdefined(self))
{
scripts\mp\_utility::func_41E9();
self.var_C2D3 = undefined;
}
}
//Function Number: 12
func_13AA8(param_00)
{
self endon("disconnect");
self endon("joined_team");
self endon("joined_spectators");
level endon("game_ended");
param_00 endon("death");
self waittill("intro_cleared");
self setclientomnvar("ui_odin",level.var_C321[param_00.var_C322].var_12B20);
func_13A0D(param_00);
}
//Function Number: 13
func_C317(param_00)
{
while(isdefined(self.var_9BE2) && param_00 > 0)
{
wait(0.05);
param_00 = param_00 - 0.05;
}
}
//Function Number: 14
func_C318()
{
level endon("game_ended");
self endon("gone");
self waittill("death");
if(isdefined(self.var_222))
{
self.var_222 func_C2E3(self);
}
func_4074();
func_C317(3);
scripts\mp\_utility::func_4FC1();
level.var_1639[self.var_C322] = undefined;
self delete();
}
//Function Number: 15
func_C31F()
{
level endon("game_ended");
self endon("death");
self.var_222 endon("disconnect");
self.var_222 endon("joined_team");
self.var_222 endon("joined_spectators");
var_00 = level.var_C321[self.var_C322];
var_01 = var_00.var_11901;
scripts\mp\_hostmigration::func_13708(var_01);
thread func_C2FC();
}
//Function Number: 16
func_C31B()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
self.var_222 scripts\common\utility::waittill_any_3("disconnect","joined_team","joined_spectators");
thread func_C2FC();
}
//Function Number: 17
func_C319()
{
level endon("game_ended");
self endon("death");
self endon("leaving");
self.var_222 endon("disconnect");
self.var_222 endon("joined_team");
self.var_222 endon("joined_spectators");
level waittill("objective_cam");
thread func_C2FC();
}
//Function Number: 18
func_C31D()
{
self endon("death");
self endon("leaving");
self.var_222 endon("disconnect");
self.var_222 endon("joined_team");
self.var_222 endon("joined_spectators");
level scripts\common\utility::waittill_any_3("round_end_finished","game_ended");
thread func_C2FC();
}
//Function Number: 19
func_C2FC()
{
self endon("death");
self notify("leaving");
var_00 = level.var_C321[self.var_C322];
scripts\mp\_utility::func_AAE7(var_00.var_13553);
if(isdefined(self.var_222))
{
self.var_222 func_C2E3(self);
}
self notify("gone");
func_4074();
func_C317(3);
scripts\mp\_utility::func_4FC1();
level.var_1639[self.var_C322] = undefined;
self delete();
}
//Function Number: 20
func_C2E3(param_00)
{
if(isdefined(param_00))
{
self setclientomnvar("ui_odin",-1);
param_00 notify("end_remote");
self notify("odin_ride_ended");
func_C2DA(param_00);
if(getdvarint("camera_thirdPerson"))
{
scripts\mp\_utility::setthirdpersondof(1);
}
self thermalvisionfofoverlayoff();
self method_825D(param_00);
self setplayerangles(self.var_E2D7);
thread func_C2EB();
self stoplocalsound("odin_negative_action");
self stoplocalsound("odin_positive_action");
foreach(var_02 in level.var_C321[param_00.var_C322].var_394)
{
if(isdefined(var_02.var_D5E4))
{
self stoplocalsound(var_02.var_D5E4);
}
if(isdefined(var_02.var_D5DD))
{
self stoplocalsound(var_02.var_D5DD);
}
}
if(isdefined(param_00.var_A4A3))
{
param_00.var_A4A3 scripts\mp\bots\_bots_strategy::func_2DC1(self,350);
}
}
}
//Function Number: 21
func_C2EB()
{
self endon("disconnect");
self endon("death");
level endon("game_ended");
scripts\mp\_utility::func_7385(1);
wait(0.5);
scripts\mp\_utility::func_7385(0);
}
//Function Number: 22
func_C31E()
{
self endon("death");
level endon("game_ended");
var_00 = self.var_222;
var_00 endon("disconnect");
var_01 = var_00 method_816E();
var_02 = var_01 + anglestoforward(self gettagangles("tag_player")) * 10000;
var_03 = bullettrace(var_01,var_02,0,self);
var_04 = spawn("script_model",var_03["position"]);
var_04.angles = vectortoangles((0,0,1));
var_04 setmodel("tag_origin");
self.var_1156A = var_04;
var_04 endon("death");
var_05 = bullettrace(var_04.origin + (0,0,50),var_04.origin + (0,0,-100),0,var_04);
var_04.origin = var_05["position"] + (0,0,50);
var_04 hide();
var_04 showtoplayer(var_00);
var_04 childthread func_B9F2(var_00);
thread func_10129();
thread func_1399C();
thread func_13AAF();
switch(self.var_C322)
{
case "odin_support":
thread func_13B49();
thread func_13ACA();
break;
case "odin_assault":
thread func_13AB1();
thread func_13B47();
break;
}
self method_831F(var_04);
}
//Function Number: 23
func_B9F2(param_00)
{
wait(1.5);
var_01 = [];
for(;;)
{
var_02 = param_00 scripts\mp\_utility::func_7BC3();
foreach(var_04 in var_01)
{
if(!scripts\common\utility::func_2286(var_02,var_04))
{
var_01 = scripts\common\utility::func_22A9(var_01,var_04);
self hide();
self showtoplayer(param_00);
}
}
foreach(var_04 in var_02)
{
self showtoplayer(var_04);
if(!scripts\common\utility::func_2286(var_01,var_04))
{
var_01 = scripts\common\utility::array_add(var_01,var_04);
stopfxontag(level._effect["odin_targeting"],self,"tag_origin");
wait(0.05);
playfxontag(level._effect["odin_targeting"],self,"tag_origin");
}
}
wait(0.25);
}
}
//Function Number: 24
func_1399C()
{
self endon("death");
level endon("game_ended");
var_00 = self.var_222;
var_00 endon("disconnect");
var_01 = level.var_C321[self.var_C322].var_394["airdrop"];
self.var_C2D4 = 0;
var_00 setclientomnvar(var_01.var_1E44,level.var_C321[self.var_C322].var_12B20);
if(!isai(var_00))
{
var_00 notifyonplayercommand("airdrop_action","+smoke");
}
for(;;)
{
var_00 waittill("airdrop_action");
if(isdefined(level.var_90A9))
{
continue;
}
if(!isdefined(var_00.var_C2D3))
{
return;
}
if(gettime() >= self.var_C2D4)
{
if(level.teambased)
{
scripts\mp\_utility::func_AAE7(var_01.var_13521,self.team);
}
else
{
var_00 scripts\mp\_utility::func_AAEC(var_01.var_13521);
}
self.var_C2D4 = func_C2E6("airdrop");
var_01 = level.var_C321[self.var_C322].var_394["airdrop"];
level thread scripts\mp\killstreaks\_airdrop::func_5857(var_00,self.var_1156A.origin,randomfloat(360),var_01.var_1AA0);
}
else
{
var_00 scripts\mp\_utility::_playlocalsound("odin_negative_action");
}
wait(1);
}
}
//Function Number: 25
func_13B49()
{
self endon("death");
level endon("game_ended");
var_00 = self.var_222;
var_00 endon("disconnect");
var_01 = level.var_C321[self.var_C322].var_394["smoke"];
self.var_C311 = 0;
var_00 setclientomnvar(var_01.var_1E44,level.var_C321[self.var_C322].var_12B20);
if(!isai(var_00))
{
var_00 notifyonplayercommand("smoke_action","+speed_throw");
var_00 notifyonplayercommand("smoke_action","+ads_akimbo_accessible");
if(!level.console)
{
var_00 notifyonplayercommand("smoke_action","+toggleads_throw");
}
}
for(;;)
{
var_00 waittill("smoke_action");
if(isdefined(level.var_90A9))
{
continue;
}
if(!isdefined(var_00.var_C2D3))
{
return;
}
if(gettime() >= self.var_C311)
{
if(level.teambased)
{
scripts\mp\_utility::func_AAE7(var_01.var_13551,self.team);
}
else
{
var_00 scripts\mp\_utility::func_AAEC(var_01.var_13551);
}
self.var_C311 = func_C2E6("smoke");
}
else
{
var_00 scripts\mp\_utility::_playlocalsound("odin_negative_action");
}
wait(1);
}
}
//Function Number: 26
func_13ACA()
{
self endon("death");
level endon("game_ended");
var_00 = self.var_222;
var_00 endon("disconnect");
var_01 = level.var_C321[self.var_C322].var_394["marking"];
self.var_C301 = 0;
var_00 setclientomnvar(var_01.var_1E44,level.var_C321[self.var_C322].var_12B20);
if(!isai(var_00))
{
var_00 notifyonplayercommand("marking_action","+attack");
var_00 notifyonplayercommand("marking_action","+attack_akimbo_accessible");
}
for(;;)
{
var_00 waittill("marking_action");
if(isdefined(level.var_90A9))
{
continue;
}
if(!isdefined(var_00.var_C2D3))
{
return;
}
if(gettime() >= self.var_C301)
{
self.var_C301 = func_C2E6("marking");
thread func_58EE(self.var_1156A.origin + (0,0,10));
}
else
{
var_00 scripts\mp\_utility::_playlocalsound("odin_negative_action");
}
wait(1);
}
}
//Function Number: 27
func_13AAF()
{
self endon("death");
level endon("game_ended");
var_00 = self.var_222;
var_00 endon("disconnect");
var_00 endon("juggernaut_dead");
var_01 = level.var_C321[self.var_C322].var_394["juggernaut"];
self.var_C2F8 = 0;
var_00 setclientomnvar(var_01.var_1E44,level.var_C321[self.var_C322].var_12B20);
if(!isai(var_00))
{
var_00 notifyonplayercommand("juggernaut_action","+frag");
}
for(;;)
{
var_00 waittill("juggernaut_action");
if(isdefined(level.var_90A9))
{
continue;
}
if(!isdefined(var_00.var_C2D3))
{
return;
}
if(gettime() >= self.var_C2F8)
{
var_02 = func_7F26(self.var_1156A.origin);
if(isdefined(var_02))
{
self.var_C2F8 = func_C2E6("juggernaut");
thread func_1369E(var_02);
}
else
{
var_00 scripts\mp\_utility::_playlocalsound("odin_negative_action");
}
}
else if(isdefined(self.var_A4A3))
{
var_02 = func_7F25(self.var_1156A.origin);
if(isdefined(var_02))
{
var_00 scripts\mp\_utility::func_AAEC(var_01.var_1352B);
var_00 scripts\mp\_utility::_playlocalsound("odin_positive_action");
var_00 playrumbleonentity("pistol_fire");
self.var_A4A3 scripts\mp\bots\_bots_strategy::func_2E57(var_02.origin,128);
var_00 setclientomnvar(var_01.var_1E44,level.var_C321[self.var_C322].var_12B20);
}
else
{
var_00 scripts\mp\_utility::_playlocalsound("odin_negative_action");
}
}
wait(1.1);
if(isdefined(self.var_A4A3))
{
var_00 setclientomnvar(var_01.var_1E44,var_01.var_12B23);
}
}
}
//Function Number: 28
func_13AB1()
{
self endon("death");
level endon("game_ended");
var_00 = self.var_222;
var_00 endon("disconnect");
var_01 = level.var_C321[self.var_C322].var_394["large_rod"];
self.var_C2FA = 0;
var_00 setclientomnvar(var_01.var_1E44,level.var_C321[self.var_C322].var_12B20);
if(!isai(var_00))
{
var_00 notifyonplayercommand("large_rod_action","+attack");
var_00 notifyonplayercommand("large_rod_action","+attack_akimbo_accessible");
}
for(;;)
{
var_00 waittill("large_rod_action");
if(isdefined(level.var_90A9))
{
continue;
}
if(!isdefined(var_00.var_C2D3))
{
return;
}
if(gettime() >= self.var_C2FA)
{
self.var_C2FA = func_C2E6("large_rod");
}
else
{
var_00 scripts\mp\_utility::_playlocalsound("odin_negative_action");
}
wait(1);
}
}
//Function Number: 29
func_13B47()
{
self endon("death");
level endon("game_ended");
var_00 = self.var_222;
var_00 endon("disconnect");
var_01 = level.var_C321[self.var_C322].var_394["small_rod"];
self.var_C310 = 0;
var_00 setclientomnvar(var_01.var_1E44,level.var_C321[self.var_C322].var_12B20);
if(!isai(var_00))
{
var_00 notifyonplayercommand("small_rod_action","+speed_throw");
var_00 notifyonplayercommand("small_rod_action","+ads_akimbo_accessible");
if(!level.console)
{
var_00 notifyonplayercommand("small_rod_action","+toggleads_throw");
}
}
for(;;)
{
var_00 waittill("small_rod_action");
if(isdefined(level.var_90A9))
{
continue;
}
if(!isdefined(var_00.var_C2D3))
{
return;
}
if(gettime() >= self.var_C310)
{
self.var_C310 = func_C2E6("small_rod");
}
else
{
var_00 scripts\mp\_utility::_playlocalsound("odin_negative_action");
}
wait(1);
}
}
//Function Number: 30
func_C2E6(param_00)
{
self.var_9BE2 = 1;
var_01 = self.var_222;
var_02 = level.var_C321[self.var_C322].var_394[param_00];
var_03 = anglestoforward(var_01 getplayerangles());
var_04 = self.origin + var_03 * 100;
var_01 setclientomnvar(var_02.var_1E44,var_02.var_12B22);
thread func_13B21(var_02);
var_05 = self.var_1156A.origin;
var_06 = gettime() + var_02.var_DF5D * 1000;
if(param_00 == "large_rod")
{
wait(0.5);
var_01 playrumbleonentity(var_02.var_E7BA);
earthquake(0.3,1.5,self.origin,1000);
var_01 playsoundtoplayer(var_02.var_D5DD,var_01);
playsoundatpos(self.origin,var_02.var_C195);
wait(1.5);
}
else if(param_00 == "small_rod")
{
wait(0.5);
var_01 playrumbleonentity(var_02.var_E7BA);
earthquake(0.2,1,self.origin,1000);
var_01 playsoundtoplayer(var_02.var_D5DD,var_01);
playsoundatpos(self.origin,var_02.var_C195);
wait(0.3);
}
else
{
if(isdefined(var_02.var_D5DD))
{
var_01 playsoundtoplayer(var_02.var_D5DD,var_01);
}
if(isdefined(var_02.var_C195))
{
playsoundatpos(self.origin,var_02.var_C195);
}
var_01 playrumbleonentity(var_02.var_E7BA);
}
var_07 = scripts\mp\_utility::func_1309(var_02.var_DA5A,var_04,var_05,var_01);
var_07.type = "odin";
var_07 thread func_13A22(param_00);
if(param_00 == "smoke" || param_00 == "juggernaut" || param_00 == "large_rod")
{
level notify("smoke",var_07,var_02.var_DA5A);
}
self.var_9BE2 = undefined;
return var_06;
}
//Function Number: 31
func_13A22(param_00)
{
self waittill("explode",var_01);
if(param_00 == "small_rod")
{
playrumbleonposition("grenade_rumble",var_01);
earthquake(0.7,1,var_01,1000);
return;
}
if(param_00 == "large_rod")
{
playrumbleonposition("artillery_rumble",var_01);
earthquake(1,1,var_01,2000);
}
}
//Function Number: 32
func_7F26(param_00)
{
if(!isdefined(param_00))
{
return;
}
var_01 = getnodesinradiussorted(param_00,256,0,128,"Path");
if(!isdefined(var_01[0]))
{
return;
}
return var_01[0];
}
//Function Number: 33
func_7F25(param_00)
{
if(!isdefined(param_00))
{
return;
}
var_01 = getnodesinradiussorted(param_00,128,0,64,"Path");
if(!isdefined(var_01[0]))
{
return;
}
return var_01[0];
}
//Function Number: 34
func_1369E(param_00)
{
self endon("death");
level endon("game_ended");
var_01 = self.var_222;
var_01 endon("disconnect");
var_02 = self.var_1156A.origin;
wait(3);
var_03 = scripts\mp\agents\_agents::func_16F2("odin_juggernaut",var_01.team,"class1",param_00.origin,vectortoangles(var_02 - param_00.origin),var_01,0,0,"veteran");
if(isdefined(var_03))
{
var_04 = level.var_C321[self.var_C322].var_394["juggernaut"];
var_03 thread scripts\mp\killstreaks\_juggernaut::func_8371(var_04.var_A4AF);
var_03 thread scripts\mp\killstreaks\_agent_killstreak::func_F22B();
var_03 scripts\mp\bots\_bots_strategy::func_2E57(param_00.origin,128);
self.var_A4A3 = var_03;
thread func_13AAE();
var_01 setclientomnvar(var_04.var_1E44,var_04.var_12B23);
var_05 = scripts\mp\_utility::func_C794(var_03,"cyan",self.var_222,0,0,"killstreak");
thread func_E146(var_05,var_03);
var_03 scripts\mp\_utility::func_13CE("player_name_bg_green_agent","player_name_bg_red_agent");
return;
}
var_01 iprintlnbold(&"KILLSTREAKS_AGENT_MAX");
}
//Function Number: 35
func_13AAE()
{
self endon("death");
level endon("game_ended");
self.var_A4A3 waittill("death");
self.var_222 notify("juggernaut_dead");
var_00 = level.var_C321[self.var_C322].var_394["juggernaut"];
self.var_222 setclientomnvar(var_00.var_1E44,var_00.var_12B21);
self.var_A4A3 = undefined;
}
//Function Number: 36
func_10129()
{
self endon("death");
wait(1);
playfxontag(level._effect["odin_targeting"],self.var_1156A,"tag_origin");
}
//Function Number: 37
func_13B21(param_00)
{
self endon("death");
level endon("game_ended");
var_01 = self.var_222;
var_01 endon("disconnect");
var_01 endon("odin_ride_ended");
var_02 = param_00.var_1E44;
var_03 = param_00.var_DF5D;
var_04 = param_00.var_D5E4;
var_05 = level.var_C321[self.var_C322].var_12B20;
wait(var_03);
if(!isdefined(var_01.var_C2D3))
{
return;
}
if(isdefined(var_04))
{
var_01 scripts\mp\_utility::_playlocalsound(var_04);
}
var_01 setclientomnvar(var_02,var_05);
}
//Function Number: 38
func_58EE(param_00)
{
level endon("game_ended");
var_01 = self.var_222;
var_02 = level.var_C2FF * level.var_C2FF;
var_03 = level.var_C300 * level.var_C300;
var_04 = 60;
var_05 = 40;
var_06 = 11;
var_07 = 0;
foreach(var_09 in level.var_C928)
{
if(!scripts\mp\_utility::func_9F19(var_09) || var_09.sessionstate != "playing")
{
continue;
}
if(level.teambased && var_09.team == self.team)
{
continue;
}
var_0A = distancesquared(param_00,var_09.origin);
if(var_0A > var_02)
{
continue;
}
var_0B = var_09 getstance();
var_0C = var_09.origin;
switch(var_0B)
{
case "stand":
var_0C = (var_0C[0],var_0C[1],var_0C[2] + var_04);
break;
case "crouch":
var_0C = (var_0C[0],var_0C[1],var_0C[2] + var_05);
break;
case "prone":
var_0C = (var_0C[0],var_0C[1],var_0C[2] + var_06);
break;
}
if(!bullettracepassed(param_00,var_0C,0,var_09))
{
continue;
}
if(var_0A <= var_03)
{
var_0D = 1;
}
else
{
var_0D = 1 - var_0A - var_03 / var_02 - var_03;
}
var_0E = anglestoforward(var_09 getplayerangles());
var_0F = param_00 - var_0C;
var_0F = vectornormalize(var_0F);
var_10 = 0.5 * 1 + vectordot(var_0E,var_0F);
var_11 = 1;
var_09 notify("flashbang",param_00,var_0D,var_10,var_01,var_11);
var_07++;
if(!func_6565(var_09))
{
if(level.teambased)
{
var_12 = scripts\mp\_utility::func_C795(var_09,"orange",self.team,0,0,"killstreak");
}
else
{
var_12 = scripts\mp\_utility::func_C794(var_0A,"orange",self.var_222,0,0,"killstreak");
}
thread func_E146(var_12,var_09,3);
}
}
var_14 = level.var_C321[self.var_C322].var_394["marking"];
if(var_07 == 1)
{
if(level.teambased)
{
scripts\mp\_utility::func_AAE7(var_14.var_1354B,self.team);
}
else
{
var_01 scripts\mp\_utility::func_AAEC(var_14.var_1354B);
}
}
else if(var_07 > 1)
{
if(level.teambased)
{
scripts\mp\_utility::func_AAE7(var_14.var_1354A,self.team);
}
else
{
var_01 scripts\mp\_utility::func_AAEC(var_14.var_1354A);
}
}
var_15 = scripts\mp\_weapons::func_7E8C(param_00,512,0);
foreach(var_17 in var_15)
{
if(isdefined(var_17.var_222) && !scripts\mp\_weapons::func_7415(self.var_222,var_17.var_222))
{
continue;
}
var_17 notify("emp_damage",self.var_222,8);
}
}
//Function Number: 39
func_20D2(param_00)
{
if(level.teambased && param_00.team == self.team)
{
return;
}
else if(!level.teambased && param_00 == self.var_222)
{
return;
}
if(func_6565(param_00))
{
return;
}
var_01 = scripts\mp\_utility::func_C794(param_00,"orange",self.var_222,1,0,"killstreak");
thread func_E146(var_01,param_00);
}
//Function Number: 40
func_6565(param_00)
{
return param_00 scripts\mp\_utility::_hasperk("specialty_noplayertarget");
}
//Function Number: 41
func_E146(param_00,param_01,param_02)
{
if(isdefined(param_01))
{
param_01 endon("disconnect");
}
level endon("game_ended");
var_03 = ["leave","death"];
if(isdefined(param_02))
{
scripts\common\utility::func_1372F(var_03,param_02);
}
else
{
scripts\common\utility::func_13731(var_03);
}
if(isdefined(param_01))
{
scripts\mp\_utility::func_C78F(param_00,param_01);
}
}
//Function Number: 42
func_C31A()
{
self endon("death");
level endon("game_ended");
foreach(var_01 in level.var_C928)
{
func_20D2(var_01);
}
}
//Function Number: 43
func_C31C()
{
self endon("death");
level endon("game_ended");
self.var_63AB = 0;
for(;;)
{
level waittill("odin_killed_player",var_00);
self.var_63AB++;
self notify("odin_enemy_killed");
}
}
//Function Number: 44
func_C2DD(param_00)
{
self endon("death");
level endon("game_ended");
var_01 = level.var_C321[self.var_C322];
var_02 = 1;
for(;;)
{
self waittill("odin_enemy_killed");
wait(var_02);
if(self.var_63AB > 1)
{
self.var_222 scripts\mp\_utility::func_AAEC(var_01.var_1352C);
}
else
{
self.var_222 scripts\mp\_utility::func_AAEC(var_01.var_1352D);
}
self.var_63AB = 0;
}
}
//Function Number: 45
func_C303()
{
self endon("death");
level endon("game_ended");
for(;;)
{
level waittill("connected",var_00);
var_00 thread func_C304(self);
}
}
//Function Number: 46
func_C304(param_00)
{
self endon("disconnect");
self waittill("spawned_player");
param_00 func_20D2(self);
}
//Function Number: 47
func_4074()
{
if(isdefined(self.var_1156A))
{
self.var_1156A delete();
}
if(isdefined(self.var_C305))
{
self.var_C305 delete();
}
}
//Function Number: 48
func_13A0D(param_00)
{
level endon("game_ended");
param_00 endon("death");
param_00 thread scripts\mp\killstreaks\_killstreaks::func_1CA5();
param_00 waittill("killstreakExit");
var_01 = level.var_C321[param_00.var_C322];
scripts\mp\_utility::func_AAE7(var_01.var_13553);
param_00 notify("death");
}