mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 02:17:56 -05:00
1646 lines
28 KiB
Plaintext
1646 lines
28 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\anim\combat_utility.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 80
|
|
* Decompile Time: 3996 ms
|
|
* Timestamp: 10/27/2023 12:00:16 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_8197(param_00)
|
|
{
|
|
var_01 = self method_815B() + (0,0,-3);
|
|
var_02 = (var_01[0] - param_00[0],var_01[1] - param_00[1],var_01[2] - param_00[2]);
|
|
var_02 = vectornormalize(var_02);
|
|
var_03 = var_02[2] * -1;
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_8130()
|
|
{
|
|
if(isplayer(self.var_10C))
|
|
{
|
|
return randomfloatrange(self.var_10C.var_86A9.var_B750,self.var_10C.var_86A9.var_B461);
|
|
}
|
|
|
|
return randomfloatrange(level.var_B750,level.var_B461);
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_80E7()
|
|
{
|
|
var_00 = gettime() - self.var_1491.var_A9ED / 1000;
|
|
var_01 = func_7E12();
|
|
if(var_01 > var_00)
|
|
{
|
|
return var_01 - var_00;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_7E12()
|
|
{
|
|
if(scripts\anim\utility_common::func_9FCA())
|
|
{
|
|
return randomfloatrange(0.15,0.55);
|
|
}
|
|
|
|
if(scripts\anim\utility_common::func_13C40())
|
|
{
|
|
return randomfloatrange(1,1.7);
|
|
}
|
|
|
|
if(scripts\anim\utility_common::func_9D4D())
|
|
{
|
|
return func_8130();
|
|
}
|
|
|
|
if(self.var_6B92)
|
|
{
|
|
return randomfloatrange(0.1,0.35);
|
|
}
|
|
|
|
return randomfloatrange(0.4,0.9);
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_32BE()
|
|
{
|
|
if(self.var_3250)
|
|
{
|
|
if(self.var_FED7 == "full" && !self.var_6B92)
|
|
{
|
|
if(self.var_1491.var_A9ED == gettime())
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
var_00 = func_80E7();
|
|
if(var_00)
|
|
{
|
|
wait(var_00);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_1A39()
|
|
{
|
|
for(var_00 = int(60);var_00 > 0;var_00--)
|
|
{
|
|
if(isdefined(self.var_595D) || isdefined(self.var_10C) && isdefined(self.var_10C.var_5951))
|
|
{
|
|
wait(0.05);
|
|
continue;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_FEDF()
|
|
{
|
|
self endon("shoot_behavior_change");
|
|
self endon("stopShooting");
|
|
if(scripts\anim\utility_common::func_9E83())
|
|
{
|
|
if(isdefined(self.var_10C) && isai(self.var_10C) && distancesquared(level.player.origin,self.var_10C.origin) < 147456)
|
|
{
|
|
self.var_10C scripts\anim\battlechatter_ai::func_183F("infantry",self,1);
|
|
}
|
|
|
|
if(scripts\anim\utility_common::func_1311B() && issentient(self.var_10C))
|
|
{
|
|
wait(randomfloat(2));
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.var_10C) && distancesquared(self.origin,self.var_10C.origin) > 160000)
|
|
{
|
|
var_00 = randomintrange(1,5);
|
|
}
|
|
else
|
|
{
|
|
var_00 = 10;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
func_32BE();
|
|
if(func_1A39())
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(self.var_FED7 == "full")
|
|
{
|
|
func_6D97(scripts\anim\utility::func_1F64("fire"),1,scripts\anim\shared::func_4F66());
|
|
}
|
|
else if(self.var_FED7 == "burst" || self.var_FED7 == "semi")
|
|
{
|
|
var_01 = scripts\anim\shared::func_4F65();
|
|
if(var_01 == 1)
|
|
{
|
|
func_6D97(scripts\anim\utility::func_1F67("single"),1,var_01);
|
|
}
|
|
else
|
|
{
|
|
func_6D97(scripts\anim\utility::func_1F64(self.var_FED7 + var_01),1,var_01);
|
|
}
|
|
}
|
|
else if(self.var_FED7 == "single")
|
|
{
|
|
func_6D97(scripts\anim\utility::func_1F67("single"),1,1);
|
|
}
|
|
else
|
|
{
|
|
self waittill("hell freezes over");
|
|
}
|
|
|
|
if(!self.var_3250)
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_00--;
|
|
if(var_00 < 0)
|
|
{
|
|
self.var_1006D = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_81EB()
|
|
{
|
|
level.var_1FB5++;
|
|
return level.var_1FB5;
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_FA8C(param_00)
|
|
{
|
|
self method_82A2(%exposed_aiming,1,0.2);
|
|
if(scripts\common\utility::func_167E())
|
|
{
|
|
self method_82E5("exposed_aim",scripts\anim\utility::func_1F64("straight_level"),1,param_00);
|
|
}
|
|
else
|
|
{
|
|
self method_82A9(scripts\anim\utility::func_1F64("straight_level"),1,param_00);
|
|
}
|
|
|
|
self method_82A9(scripts\anim\utility::func_1F64("add_aim_up"),1,param_00);
|
|
self method_82A9(scripts\anim\utility::func_1F64("add_aim_down"),1,param_00);
|
|
self method_82A9(scripts\anim\utility::func_1F64("add_aim_left"),1,param_00);
|
|
self method_82A9(scripts\anim\utility::func_1F64("add_aim_right"),1,param_00);
|
|
self.var_6A89 = scripts\anim\face::func_D475(undefined,"aim",self.var_6A89);
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_10D9A()
|
|
{
|
|
if(!isdefined(self.var_1491.var_1A3E))
|
|
{
|
|
func_FA8C(0.2);
|
|
thread func_1A3E();
|
|
thread scripts\anim\track::func_11B07();
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_631A()
|
|
{
|
|
func_6309();
|
|
self method_806F(%add_fire,0.1);
|
|
self notify("stop tracking");
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_10126()
|
|
{
|
|
if(isdefined(self.var_1491.var_1A3E))
|
|
{
|
|
self method_82A2(%add_idle,0,0.2);
|
|
}
|
|
|
|
self method_82A2(%add_fire,1,0.1);
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_8EBF()
|
|
{
|
|
if(isdefined(self.var_1491.var_1A3E))
|
|
{
|
|
self method_82A2(%add_idle,1,0.2);
|
|
}
|
|
|
|
self method_82A2(%add_fire,0,0.1);
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_1A3E(param_00)
|
|
{
|
|
self endon("killanimscript");
|
|
self endon("end_aim_idle_thread");
|
|
if(isdefined(self.var_1491.var_1A3E))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_1491.var_1A3E = 1;
|
|
wait(0.1);
|
|
self method_82AC(%add_idle,1,0.2);
|
|
var_01 = %add_idle;
|
|
var_02 = 0;
|
|
for(;;)
|
|
{
|
|
var_03 = "idle" + var_02;
|
|
if(isdefined(self.var_1491.var_AAF2))
|
|
{
|
|
var_04 = scripts\anim\utility::func_1F67("lean_idle");
|
|
}
|
|
else if(scripts\anim\utility::func_1F65("exposed_idle"))
|
|
{
|
|
var_04 = scripts\anim\utility::func_1F67("exposed_idle");
|
|
}
|
|
else
|
|
{
|
|
wait(0.5);
|
|
}
|
|
else
|
|
{
|
|
if(var_04 == var_01)
|
|
{
|
|
self method_82E9(var_03,var_04,1,0.2);
|
|
}
|
|
else
|
|
{
|
|
self method_82E6(var_03,var_04,1,0.2);
|
|
}
|
|
|
|
var_01 = var_04;
|
|
self waittillmatch("end",var_03);
|
|
}
|
|
|
|
var_02++;
|
|
}
|
|
|
|
self method_806F(%add_idle,0.1);
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_6309()
|
|
{
|
|
self notify("end_aim_idle_thread");
|
|
self.var_1491.var_1A3E = undefined;
|
|
self method_806F(%add_idle,0.1);
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_FEFE()
|
|
{
|
|
if(scripts\anim\utility_common::func_13C40())
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(scripts\anim\weaponlist::func_1310F())
|
|
{
|
|
return scripts\anim\weaponlist::func_2691() * 0.7;
|
|
}
|
|
|
|
return 0.4;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_6D97(param_00,param_01,param_02)
|
|
{
|
|
var_03 = "fireAnim_" + func_81EB();
|
|
scripts\sp\_gameskill::func_E259();
|
|
while(!func_1A3B())
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
func_10126();
|
|
var_04 = 1;
|
|
if(isdefined(self.var_FED4))
|
|
{
|
|
var_04 = self.var_FED4;
|
|
}
|
|
else if(self.var_FED7 == "full")
|
|
{
|
|
var_04 = scripts\anim\weaponlist::func_2691() * randomfloatrange(0.5,1);
|
|
}
|
|
else if(self.var_FED7 == "burst")
|
|
{
|
|
var_04 = scripts\anim\weaponlist::func_32C3();
|
|
}
|
|
else if(scripts\anim\utility_common::func_9FCA())
|
|
{
|
|
var_04 = 3;
|
|
}
|
|
else if(scripts\anim\utility_common::func_9FC9())
|
|
{
|
|
var_04 = func_FEFE();
|
|
}
|
|
|
|
self method_82E7(var_03,param_00,1,0.2,var_04);
|
|
self method_83CE();
|
|
func_6D99(var_03,param_00,param_01,param_02);
|
|
func_8EBF();
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_6D98()
|
|
{
|
|
self endon("killanimscript");
|
|
self endon("fireAnimEnd");
|
|
var_00 = thisthread;
|
|
for(;;)
|
|
{
|
|
waittillframeend;
|
|
if(!isdefined(var_00))
|
|
{
|
|
self method_837D();
|
|
return;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_6D99(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("enemy");
|
|
if(isplayer(self.var_10C) && self.var_FED7 == "full" || self.var_FED7 == "semi")
|
|
{
|
|
level endon("player_becoming_invulnerable");
|
|
}
|
|
|
|
if(param_02)
|
|
{
|
|
thread func_C168(param_00,"fireAnimEnd");
|
|
self endon("fireAnimEnd");
|
|
}
|
|
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = -1;
|
|
}
|
|
|
|
var_04 = 0;
|
|
var_05 = animhasnotetrack(param_01,"fire");
|
|
var_06 = scripts\common\utility::func_13C07(self.var_394) == "rocketlauncher";
|
|
thread func_6D98();
|
|
while(var_04 < param_03 && param_03 > 0)
|
|
{
|
|
if(var_05)
|
|
{
|
|
self waittillmatch("fire",param_00);
|
|
}
|
|
|
|
if(!self.var_3250)
|
|
{
|
|
if(!scripts\anim\utility_common::func_3D55())
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(!func_1A3B())
|
|
{
|
|
break;
|
|
}
|
|
|
|
func_FE96();
|
|
if(isplayer(self.var_10C) && self.var_10C scripts\sp\_utility::func_65DB("player_is_invulnerable"))
|
|
{
|
|
if(randomint(3) == 0)
|
|
{
|
|
self.var_3250--;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self.var_3250--;
|
|
}
|
|
|
|
if(var_06)
|
|
{
|
|
self.var_1491.var_E5DE--;
|
|
if(issubstr(tolower(self.var_394),"rpg") || issubstr(tolower(self.var_394),"panzerfaust"))
|
|
{
|
|
self method_8187("tag_rocket");
|
|
self.var_1491.var_E5E3 = 0;
|
|
}
|
|
}
|
|
|
|
var_04++;
|
|
thread func_FEFF(param_00);
|
|
if(self.var_6B92 && var_04 == param_03)
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(!var_05 || param_03 == 1 && self.var_FED7 == "single")
|
|
{
|
|
self waittillmatch("end",param_00);
|
|
}
|
|
}
|
|
|
|
self method_837D();
|
|
if(param_02)
|
|
{
|
|
self notify("fireAnimEnd");
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_1A3B()
|
|
{
|
|
if(!isdefined(self.var_FECF))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
var_00 = self method_8141();
|
|
var_01 = scripts\anim\shared::func_811C();
|
|
var_02 = vectortoangles(self.var_FECF - var_01);
|
|
var_03 = scripts\common\utility::func_152F(var_00[1] - var_02[1]);
|
|
if(var_03 > level.var_1A52)
|
|
{
|
|
if(distancesquared(self geteye(),self.var_FECF) > level.var_1A50 || var_03 > level.var_1A51)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return scripts\common\utility::func_152F(var_00[0] - var_02[0]) <= level.var_1A44;
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_C168(param_00,param_01)
|
|
{
|
|
self endon("killanimscript");
|
|
self endon(param_01);
|
|
self waittillmatch("end",param_00);
|
|
self notify(param_01);
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_9F57()
|
|
{
|
|
if(function_023C(self.var_394) > 0)
|
|
{
|
|
return 0;
|
|
}
|
|
else if(function_0245(self.var_394) || function_02BE(self.var_394))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_FE96()
|
|
{
|
|
var_00 = func_9F57();
|
|
if(isdefined(self.var_FE9E))
|
|
{
|
|
if(isdefined(self.var_10C) && self.var_FE9E == self.var_10C)
|
|
{
|
|
scripts\anim\utility_common::func_FE9A(var_00);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
self [[ level.var_FED3 ]](self.var_FECF,var_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_4FBE()
|
|
{
|
|
if(self.var_3250)
|
|
{
|
|
self.var_3250--;
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_FEFF(param_00)
|
|
{
|
|
if(!scripts\anim\utility_common::func_13C40())
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("killanimscript");
|
|
self notify("shotgun_pump_sound_end");
|
|
self endon("shotgun_pump_sound_end");
|
|
thread func_1108B(2);
|
|
self waittillmatch("rechamber",param_00);
|
|
self playsound("ai_shotgun_pump");
|
|
self notify("shotgun_pump_sound_end");
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_1108B(param_00)
|
|
{
|
|
self endon("killanimscript");
|
|
self endon("shotgun_pump_sound_end");
|
|
wait(param_00);
|
|
self notify("shotgun_pump_sound_end");
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_DDCF(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_DB37()
|
|
{
|
|
self endon("weapon_switch_done");
|
|
self endon("death");
|
|
self waittill("killanimscript");
|
|
scripts\anim\shared::func_CC2C(self.var_D8E1,"right");
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_0260(param_00,param_01)
|
|
{
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_17CC(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_85DF))
|
|
{
|
|
anim.var_85DF = [];
|
|
anim.var_85E1 = [];
|
|
}
|
|
|
|
var_02 = level.var_85DF.size;
|
|
level.var_85DF[var_02] = param_00;
|
|
level.var_85E1[var_02] = param_01;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_9812()
|
|
{
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_7EE8(param_00)
|
|
{
|
|
var_01 = (0,0,64);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_11814()
|
|
{
|
|
for(var_00 = 0;var_00 < level.players.size;var_00++)
|
|
{
|
|
if(level.players[var_00].var_C231 == 0)
|
|
{
|
|
level.players[var_00].var_85E4["frag"] = 0;
|
|
level.players[var_00].var_85E4["flash_grenade"] = 0;
|
|
level.players[var_00].var_85E4["seeker"] = 0;
|
|
}
|
|
}
|
|
|
|
anim.var_11813 = 1;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_F62B(param_00)
|
|
{
|
|
self.var_1652 = spawnstruct();
|
|
if(isplayer(param_00))
|
|
{
|
|
self.var_1652.var_9EFB = 1;
|
|
self.var_1652.player = param_00;
|
|
self.var_1652.var_1191A = self.var_166;
|
|
return;
|
|
}
|
|
|
|
self.var_1652.var_9EFB = 0;
|
|
self.var_1652.var_1191A = "AI_" + self.var_166;
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_13116()
|
|
{
|
|
return self.var_1652.var_9EFB;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_F72C(param_00,param_01)
|
|
{
|
|
if(param_00.var_9EFB)
|
|
{
|
|
var_02 = param_00.player;
|
|
var_03 = var_02.var_85E4[param_00.var_1191A];
|
|
var_02.var_85E4[param_00.var_1191A] = max(param_01,var_03);
|
|
return;
|
|
}
|
|
|
|
var_03 = level.var_85E4[param_01.var_1191A];
|
|
level.var_85E4[param_00.var_1191A] = max(param_01,var_03);
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_7E6D()
|
|
{
|
|
var_00 = undefined;
|
|
if(func_13116())
|
|
{
|
|
var_01 = self.var_1652.player;
|
|
var_00 = gettime() + var_01.var_86A9.var_D396 + randomint(var_01.var_86A9.var_D397);
|
|
}
|
|
else
|
|
{
|
|
var_00 = gettime() + 30000 + randomint(30000);
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_7EE9(param_00)
|
|
{
|
|
if(param_00.var_9EFB)
|
|
{
|
|
return param_00.player.var_85E4[param_00.var_1191A];
|
|
}
|
|
|
|
return level.var_85E4[param_00.var_1191A];
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_453D(param_00)
|
|
{
|
|
if(!isplayer(param_00) && self method_8198())
|
|
{
|
|
if(gettime() < func_7EE9(self.var_1652))
|
|
{
|
|
if(level.player.ignoreme)
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
var_01 = self method_8163();
|
|
var_02 = level.player method_8163();
|
|
if(var_01 != "" && var_02 != "" && function_00D7(var_02,var_01) < -10000)
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
if(self method_805F(level.player) || isai(param_00) && param_00 method_805F(level.player))
|
|
{
|
|
if(isdefined(self.var_473C))
|
|
{
|
|
var_03 = vectortoangles(level.player.origin - self.origin);
|
|
var_04 = angleclamp180(self.var_473C.angles[1] - var_03[1]);
|
|
}
|
|
else
|
|
{
|
|
var_04 = scripts\common\utility::func_824D(level.player.origin);
|
|
}
|
|
|
|
if(abs(var_04) < 60)
|
|
{
|
|
param_00 = level.player;
|
|
func_F62B(param_00);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_B4EF(param_00)
|
|
{
|
|
if(scripts\sp\_utility::func_D022())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!param_00.var_86A9.var_5ACF)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = gettime();
|
|
if(var_01 < param_00.var_85E4["double_grenade"])
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_01 > param_00.var_A98C + 3000)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_01 < param_00.var_A98C + 500)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return param_00.var_C231 < 2;
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_BE18()
|
|
{
|
|
return gettime() >= self.var_1491.var_BF84;
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_85B5(param_00)
|
|
{
|
|
if(scripts\sp\_utility::func_D022())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_EDB1 == 1)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!func_BE18())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(gettime() >= func_7EE9(self.var_1652))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(self.var_1652.var_9EFB && self.var_1652.var_1191A == "fraggrenade")
|
|
{
|
|
return func_B4EF(param_00);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_128A1(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(!self method_81A2(param_00,param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
else if(distancesquared(self.origin,param_01) < -25536)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_04 = physicstrace(param_01 + (0,0,1),param_01 + (0,0,-500));
|
|
if(var_04 == param_01 + (0,0,-500))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_04 = var_04 + (0,0,0.1);
|
|
return func_128A2(param_00,var_04,param_02,param_03);
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_128A0(param_00,param_01)
|
|
{
|
|
if(self.var_394 == "mg42" || self.var_162 <= 0)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
func_F62B(param_00);
|
|
param_00 = func_453D(param_00);
|
|
if(!func_85B5(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_02 = func_7EE8(param_01);
|
|
if(isdefined(self.var_10C) && param_00 == self.var_10C)
|
|
{
|
|
if(!func_3E1C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\anim\utility_common::func_3908())
|
|
{
|
|
if(!self method_81A2(param_00,param_00.origin))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return func_128A2(param_00,undefined,param_01,var_02);
|
|
}
|
|
else if(scripts\anim\utility_common::func_3918())
|
|
{
|
|
return func_128A1(param_00,scripts\anim\utility::func_7E90(),param_01,var_02);
|
|
}
|
|
else
|
|
{
|
|
if(!self method_81A2(param_00,param_00.origin))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return func_128A2(param_00,undefined,param_01,var_02);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
return func_128A1(param_00,param_00.origin,param_01,var_02);
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_128A2(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
|
{
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_DE37(param_00)
|
|
{
|
|
self endon("dont_reduce_giptp_on_killanimscript");
|
|
self waittill("killanimscript");
|
|
param_00.var_C231--;
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_58BA(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("killanimscript");
|
|
if(self.script == "combat" || self.script == "move")
|
|
{
|
|
self method_8221("face direction",param_01);
|
|
}
|
|
|
|
scripts\anim\battlechatter_ai::func_67CF(self.var_166);
|
|
self notify("stop_aiming_at_enemy");
|
|
self method_82E4("throwanim",param_00,%body,func_6B9A(),0.1,1);
|
|
thread scripts\anim\notetracks::func_592D("throwanim","killanimscript");
|
|
var_04 = scripts\anim\utility_common::func_7EE7();
|
|
var_05 = "none";
|
|
for(;;)
|
|
{
|
|
self waittill("throwanim",var_06);
|
|
if(var_06 == "grenade_left" || var_06 == "grenade_right")
|
|
{
|
|
var_05 = func_2481(var_04,"TAG_INHAND");
|
|
self.var_9E33 = 1;
|
|
}
|
|
|
|
if(var_06 == "grenade_throw" || var_06 == "grenade throw")
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(var_06 == "end")
|
|
{
|
|
self.var_1652.player.var_C231--;
|
|
self notify("dont_reduce_giptp_on_killanimscript");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
self notify("dont_reduce_giptp_on_killanimscript");
|
|
if(func_13116())
|
|
{
|
|
thread func_13A98(self.var_1652.player,param_02);
|
|
}
|
|
|
|
self method_83C2();
|
|
if(!func_13116())
|
|
{
|
|
func_F72C(self.var_1652,param_02);
|
|
}
|
|
|
|
if(param_03)
|
|
{
|
|
var_0D = self.var_1652.player;
|
|
if(var_0D.var_C231 > 1 || gettime() - var_0D.var_A990 < 2000)
|
|
{
|
|
var_0D.var_85E4["double_grenade"] = gettime() + min(5000,var_0D.var_86A9.var_D382);
|
|
}
|
|
}
|
|
|
|
self notify("stop grenade check");
|
|
if(var_05 != "none")
|
|
{
|
|
self detach(var_04,var_05);
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
self.var_9E33 = undefined;
|
|
self.var_163 = self.var_C3F3;
|
|
self.var_C3F3 = undefined;
|
|
self waittillmatch("end","throwanim");
|
|
self notify("done_grenade_throw");
|
|
self notify("weapon_switch_done");
|
|
self method_82A2(%exposed_modern,1,0.2);
|
|
self method_82A2(%exposed_aiming,1);
|
|
self method_806F(param_00,0.2);
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_13A98(param_00,param_01)
|
|
{
|
|
param_00 endon("death");
|
|
func_13A99(param_01);
|
|
param_00.var_C231--;
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_13A99(param_00)
|
|
{
|
|
var_01 = self.var_1652;
|
|
var_02 = spawnstruct();
|
|
var_02 thread func_13A9A(5);
|
|
var_02 endon("watchGrenadeTowardsPlayerTimeout");
|
|
var_03 = self.var_166;
|
|
var_04 = func_7EE6();
|
|
if(!isdefined(var_04))
|
|
{
|
|
return;
|
|
}
|
|
|
|
func_F72C(var_01,min(gettime() + 5000,param_00));
|
|
var_05 = -3036;
|
|
var_06 = 160000;
|
|
if(var_03 == "flash_grenade")
|
|
{
|
|
var_05 = 810000;
|
|
var_06 = 1690000;
|
|
}
|
|
|
|
var_07 = level.players;
|
|
var_08 = var_04.origin;
|
|
for(;;)
|
|
{
|
|
wait(0.1);
|
|
if(!isdefined(var_04))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(distancesquared(var_04.origin,var_08) < 400)
|
|
{
|
|
var_09 = [];
|
|
for(var_0A = 0;var_0A < var_07.size;var_0A++)
|
|
{
|
|
var_0B = var_07[var_0A];
|
|
var_0C = distancesquared(var_04.origin,var_0B.origin);
|
|
if(var_0C < var_05)
|
|
{
|
|
var_0B func_85C8(var_01,param_00);
|
|
continue;
|
|
}
|
|
|
|
if(var_0C < var_06)
|
|
{
|
|
var_09[var_09.size] = var_0B;
|
|
}
|
|
}
|
|
|
|
var_07 = var_09;
|
|
if(var_07.size == 0)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_08 = var_04.origin;
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_85C8(param_00,param_01)
|
|
{
|
|
var_02 = self;
|
|
anim.var_11813 = undefined;
|
|
if(gettime() - var_02.var_A990 < 3000)
|
|
{
|
|
var_02.var_85E4["double_grenade"] = gettime() + var_02.var_86A9.var_D382;
|
|
}
|
|
|
|
var_02.var_A990 = gettime();
|
|
var_03 = var_02.var_85E4[param_00.var_1191A];
|
|
var_02.var_85E4[param_00.var_1191A] = max(param_01,var_03);
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_7EE6()
|
|
{
|
|
self endon("killanimscript");
|
|
self waittill("grenade_fire",var_00);
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_13A9A(param_00)
|
|
{
|
|
wait(param_00);
|
|
self notify("watchGrenadeTowardsPlayerTimeout");
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_2481(param_00,param_01)
|
|
{
|
|
self attach(param_00,param_01);
|
|
thread func_5392(param_00,param_01);
|
|
return param_01;
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_5392(param_00,param_01)
|
|
{
|
|
self endon("stop grenade check");
|
|
self waittill("killanimscript");
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.var_C3F3))
|
|
{
|
|
self.var_163 = self.var_C3F3;
|
|
self.var_C3F3 = undefined;
|
|
}
|
|
|
|
self detach(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_C371(param_00)
|
|
{
|
|
var_01 = anglestoforward(self.angles);
|
|
var_02 = anglestoright(self.angles);
|
|
var_03 = anglestoup(self.angles);
|
|
var_01 = var_01 * param_00[0];
|
|
var_02 = var_02 * param_00[1];
|
|
var_03 = var_03 * param_00[2];
|
|
return var_01 + var_02 + var_03;
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_85C9(param_00,param_01)
|
|
{
|
|
level notify("armoffset");
|
|
level endon("armoffset");
|
|
param_00 = self.origin + func_C371(param_00);
|
|
wait(0.05);
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_7EE3()
|
|
{
|
|
var_00 = randomfloat(360);
|
|
var_01 = randomfloatrange(30,75);
|
|
var_02 = sin(var_01);
|
|
var_03 = cos(var_01);
|
|
var_04 = cos(var_00) * var_03;
|
|
var_05 = sin(var_00) * var_03;
|
|
var_06 = randomfloatrange(100,200);
|
|
var_07 = (var_04,var_05,var_02) * var_06;
|
|
return var_07;
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_5D29()
|
|
{
|
|
var_00 = self gettagorigin("tag_accessory_right");
|
|
var_01 = func_7EE3();
|
|
self method_81EE(var_00,var_01,3);
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_B019()
|
|
{
|
|
if(!isdefined(self.var_10C))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_132 || self.var_FC)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = func_7DFB();
|
|
if(isdefined(var_00))
|
|
{
|
|
return func_13059(var_00);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_7DFB()
|
|
{
|
|
var_00 = self method_80E3();
|
|
if(!isdefined(var_00))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
var_01 = scripts\anim\utility_common::func_7E28();
|
|
if(isdefined(var_01) && var_00 == var_01)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(isdefined(self.var_473C) && var_00 == self.var_473C)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_13059(param_00)
|
|
{
|
|
var_01 = self.var_1A4;
|
|
var_02 = self.var_1A3;
|
|
self.var_1A4 = 0;
|
|
self.var_1A3 = 0;
|
|
if(self method_83D4(param_00))
|
|
{
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
self.var_1A4 = var_01;
|
|
self.var_1A3 = var_02;
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_10026()
|
|
{
|
|
if(level.var_18D5[self.team] > 0 && level.var_18D5[self.team] < level.var_18D6)
|
|
{
|
|
if(gettime() - level.var_A936[self.team] > 4000)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = level.var_A933[self.team];
|
|
if(var_00 == self)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = isdefined(var_00) && distancesquared(self.origin,var_00.origin) < 65536;
|
|
if((var_01 || distancesquared(self.origin,level.var_A935[self.team]) < 65536) && !isdefined(self.var_10C) || distancesquared(self.var_10C.origin,level.var_A934[self.team]) < 262144)
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_3DE5()
|
|
{
|
|
if(!isdefined(level.var_A936[self.team]))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(func_10026())
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(gettime() - level.var_A936[self.team] < level.var_18D7)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!issentient(self.var_10C))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(level.var_18D5[self.team])
|
|
{
|
|
level.var_18D5[self.team] = 0;
|
|
}
|
|
|
|
var_00 = isdefined(self.var_18CC) && self.var_18CC;
|
|
if(!var_00 && function_0073(self.team) < function_0073(self.var_10C.team))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_128AA(param_00)
|
|
{
|
|
if(!isdefined(self.var_10C))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_132)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.var_BC == "ambush" || self.var_BC == "ambush_nodes_only")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!self method_81A5(self.var_10C.origin))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(scripts\anim\utility_common::func_9E83())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!func_3DE5())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self.var_36F) && self.var_36F)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
self method_80E6(param_00);
|
|
if(self method_8254())
|
|
{
|
|
self.var_1A4 = 0;
|
|
self.var_1A3 = 0;
|
|
self.var_1491.var_B168 = 1;
|
|
if(level.var_18D5[self.team] == 0)
|
|
{
|
|
level.var_A936[self.team] = gettime();
|
|
level.var_A933[self.team] = self;
|
|
}
|
|
|
|
level.var_A935[self.team] = self.origin;
|
|
level.var_A934[self.team] = self.var_10C.origin;
|
|
level.var_18D5[self.team]++;
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_50FB(param_00)
|
|
{
|
|
self endon("death");
|
|
wait(0.5);
|
|
var_01 = "" + level.var_2755;
|
|
badplace_cylinder(var_01,5,param_00,16,64,self.team);
|
|
level.var_2759[level.var_2759.size] = var_01;
|
|
if(level.var_2759.size >= 10)
|
|
{
|
|
var_02 = [];
|
|
for(var_03 = 1;var_03 < level.var_2759.size;var_03++)
|
|
{
|
|
var_02[var_02.size] = level.var_2759[var_03];
|
|
}
|
|
|
|
badplace_delete(level.var_2759[0]);
|
|
anim.var_2759 = var_02;
|
|
}
|
|
|
|
level.var_2755++;
|
|
if(level.var_2755 > 10)
|
|
{
|
|
anim.var_2755 = level.var_2755 - 20;
|
|
}
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_13156(param_00,param_01,param_02)
|
|
{
|
|
if(param_00 > param_01 && param_00 < param_02)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_7EEC()
|
|
{
|
|
if(!isdefined(self.var_FECF))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = self method_8141()[1] - scripts\common\utility::func_8246(self.var_FECF);
|
|
var_00 = angleclamp180(var_00);
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_7EEB()
|
|
{
|
|
if(!isdefined(self.var_FECF))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = self method_8141()[0] - vectortoangles(self.var_FECF - self method_8142())[0];
|
|
var_00 = angleclamp180(var_00);
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_8062()
|
|
{
|
|
if(!isdefined(self.var_10C))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = self.var_10C method_815B() - self method_815B();
|
|
var_00 = vectornormalize(var_00);
|
|
var_01 = vectortoangles(var_00)[0];
|
|
return angleclamp180(var_01);
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_8065(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = param_00 - self method_815B();
|
|
var_01 = vectornormalize(var_01);
|
|
var_02 = vectortoangles(var_01)[0];
|
|
return angleclamp180(var_02);
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_8063(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_00) || !isdefined(param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self) && scripts\common\utility::func_167E())
|
|
{
|
|
var_02 = anglestoforward(self.angles);
|
|
var_03 = rotatepointaroundvector(var_02,param_00 - self.origin,self.angles[2] * -1);
|
|
param_00 = var_03 + self.origin;
|
|
}
|
|
|
|
var_04 = param_00 - param_01;
|
|
var_04 = vectornormalize(var_04);
|
|
var_05 = vectortoangles(var_04)[0];
|
|
return angleclamp180(var_05);
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_13B22()
|
|
{
|
|
self.var_9F21 = 0;
|
|
self.var_A9DC = -1;
|
|
for(;;)
|
|
{
|
|
self waittill("reload_start");
|
|
self.var_9F21 = 1;
|
|
self.var_A9DC = gettime();
|
|
scripts\anim\battlechatter_ai::func_67D4();
|
|
func_1383F();
|
|
self.var_9F21 = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_1383F()
|
|
{
|
|
thread func_118EC(4,"reloadtimeout");
|
|
self endon("reloadtimeout");
|
|
self endon("weapon_taken");
|
|
for(;;)
|
|
{
|
|
self waittill("reload");
|
|
var_00 = self getcurrentweapon();
|
|
if(var_00 == "none")
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(self method_8118() >= weaponclipsize(var_00))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
self notify("reloadtimeout");
|
|
}
|
|
|
|
//Function Number: 74
|
|
func_118EC(param_00,param_01)
|
|
{
|
|
self endon(param_01);
|
|
wait(param_00);
|
|
self notify(param_01);
|
|
}
|
|
|
|
//Function Number: 75
|
|
func_3E1C()
|
|
{
|
|
var_00 = self.var_10C.origin - self.origin;
|
|
var_01 = lengthsquared((var_00[0],var_00[1],0));
|
|
if(self.var_166 == "flash_grenade")
|
|
{
|
|
return var_01 < 589824;
|
|
}
|
|
|
|
return var_01 >= -25536 && var_01 <= 1562500;
|
|
}
|
|
|
|
//Function Number: 76
|
|
func_B9D9()
|
|
{
|
|
self endon("death");
|
|
if(!isdefined(level.var_BEFB))
|
|
{
|
|
self endon("stop_monitoring_flash");
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_00 = undefined;
|
|
var_01 = undefined;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
self waittill("flashbang",var_01,var_00,var_02,var_03,var_04);
|
|
if(isdefined(self.var_6EC4) && self.var_6EC4)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_EDE6) && self.var_EDE6 != 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.team) && isdefined(var_04) && self.team == var_04)
|
|
{
|
|
var_00 = 3 * var_00 - 0.75;
|
|
if(var_00 < 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_115CE))
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var_05 = 0.2;
|
|
if(var_00 > 1 - var_05)
|
|
{
|
|
var_00 = 1;
|
|
}
|
|
else
|
|
{
|
|
var_00 = var_00 / 1 - var_05;
|
|
}
|
|
|
|
var_06 = 4.5 * var_00;
|
|
if(var_06 < 0.25)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self.var_6ECE = var_04;
|
|
scripts\sp\_utility::func_6EC6(var_06);
|
|
self notify("doFlashBanged",var_01,var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 77
|
|
func_6B9A()
|
|
{
|
|
return 1.5;
|
|
}
|
|
|
|
//Function Number: 78
|
|
func_DCAD()
|
|
{
|
|
return randomfloatrange(1,1.2);
|
|
}
|
|
|
|
//Function Number: 79
|
|
func_80B5(param_00)
|
|
{
|
|
if(param_00.size == 0)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(param_00.size == 1)
|
|
{
|
|
return param_00[0];
|
|
}
|
|
|
|
if(isdefined(self.var_1491.var_D892) && randomint(100) > 20)
|
|
{
|
|
foreach(var_03, var_02 in param_00)
|
|
{
|
|
if(var_02 == self.var_1491.var_D892)
|
|
{
|
|
if(var_03 < param_00.size - 1)
|
|
{
|
|
param_00[var_03] = param_00[param_00.size - 1];
|
|
}
|
|
|
|
param_00[param_00.size - 1] = undefined;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return param_00[randomint(param_00.size)];
|
|
}
|
|
|
|
//Function Number: 80
|
|
func_D285()
|
|
{
|
|
var_00 = self geteye();
|
|
foreach(var_02 in level.players)
|
|
{
|
|
if(!self method_805F(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 = var_02 geteye();
|
|
var_04 = vectortoangles(var_00 - var_03);
|
|
var_05 = anglestoforward(var_04);
|
|
var_06 = var_02 getplayerangles();
|
|
var_07 = anglestoforward(var_06);
|
|
var_08 = vectordot(var_05,var_07);
|
|
if(var_08 < 0.805)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(scripts\common\utility::func_4347() && var_08 >= 0.996)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
} |