mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-11 02:37:56 -05:00
2240 lines
34 KiB
Plaintext
2240 lines
34 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: animscripts\utility.gsc
|
|
* Game: Call of Duty: Modern Warfare 3
|
|
* Platform: PC
|
|
* Function Count: 132
|
|
* Decompile Time: 2211 ms
|
|
* Timestamp: 10/27/2023 2:18:57 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_2479(param_00)
|
|
{
|
|
self clearanim(%body,0.3);
|
|
self setanim(%body,1,0);
|
|
if(param_00 != "pain" && param_00 != "death")
|
|
{
|
|
self.a.var_D19 = "none";
|
|
}
|
|
|
|
self.var_247A = 0;
|
|
self.a.var_CC3 = 1;
|
|
self.a.var_CC5 = 1;
|
|
self.a.var_CC6 = 1;
|
|
self.a.var_CC7 = 0;
|
|
self.a.var_CC8 = 0;
|
|
func_0A69();
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_247B()
|
|
{
|
|
if(isdefined(self.desired_anim_pose) && self.desired_anim_pose != self.a.pose)
|
|
{
|
|
if(self.a.pose == "prone")
|
|
{
|
|
func_0F7D(0.5);
|
|
}
|
|
|
|
if(self.desired_anim_pose == "prone")
|
|
{
|
|
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_aiming,%prone_legs_up);
|
|
func_10E1(0.5);
|
|
self setanimknoball(%prone_aim_5,%body,1,0.1,1);
|
|
}
|
|
}
|
|
|
|
self.desired_anim_pose = undefined;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_0D15(param_00)
|
|
{
|
|
if(isdefined(self.var_D0F))
|
|
{
|
|
if(param_00 != "pain" && param_00 != "death")
|
|
{
|
|
self kill(self.origin);
|
|
}
|
|
|
|
if(param_00 != "pain")
|
|
{
|
|
self.var_D0F = undefined;
|
|
self notify("kill_long_death");
|
|
}
|
|
}
|
|
|
|
if(isdefined(self.a.var_D6A) && param_00 != "death")
|
|
{
|
|
self kill(self.origin);
|
|
}
|
|
|
|
if(isdefined(self.a.var_20AD))
|
|
{
|
|
var_01 = self.a.var_20AD;
|
|
self.a.var_20AD = undefined;
|
|
[[ var_01 ]](param_00);
|
|
}
|
|
|
|
if(param_00 != "combat" && param_00 != "pain" && param_00 != "death" && func_0C95())
|
|
{
|
|
animscripts/combat::func_1159(%pistol_stand_switch,1);
|
|
}
|
|
|
|
if(param_00 != "combat" && param_00 != "move" && param_00 != "pain")
|
|
{
|
|
self.a.var_1111 = undefined;
|
|
}
|
|
|
|
if(param_00 != "death")
|
|
{
|
|
self.a.var_D55 = 0;
|
|
}
|
|
|
|
if(isdefined(self.var_23A0) && param_00 == "pain" || param_00 == "death" || param_00 == "flashed")
|
|
{
|
|
animscripts/combat_utility::func_23AA();
|
|
}
|
|
|
|
self.var_23A0 = undefined;
|
|
animscripts/squadmanager::func_A96(param_00);
|
|
self.var_CAF = undefined;
|
|
self.var_A9D = 0;
|
|
self.var_F53 = 0;
|
|
self.var_CDD = 0;
|
|
self.a.aimidlethread = undefined;
|
|
self.a.var_1019 = gettime();
|
|
self.a.var_CE2 = 0;
|
|
if(isdefined(self.node) && self.node.type == "Conceal Prone" || self.node.type == "Conceal Crouch" || self.node.type == "Conceal Stand")
|
|
{
|
|
self.a.var_CE2 = 1;
|
|
}
|
|
|
|
func_2479(param_00);
|
|
func_247B();
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_23F1()
|
|
{
|
|
if(isdefined(self.wantshotgun) && self.wantshotgun)
|
|
{
|
|
if(func_0CEA(self.primaryweapon))
|
|
{
|
|
return self.primaryweapon;
|
|
}
|
|
else if(func_0CEA(self.secondaryweapon))
|
|
{
|
|
return self.secondaryweapon;
|
|
}
|
|
}
|
|
|
|
return self.primaryweapon;
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_247D(param_00,param_01,param_02)
|
|
{
|
|
for(var_03 = 0;var_03 < param_00 * 20;var_03++)
|
|
{
|
|
for(var_04 = 0;var_04 < 10;var_04++)
|
|
{
|
|
var_05 = (0,randomint(360),0);
|
|
var_06 = anglestoforward(var_05);
|
|
var_07 = var_06 * param_02;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_247E()
|
|
{
|
|
self endon("death");
|
|
self notify("displaceprint");
|
|
self endon("displaceprint");
|
|
wait 0.05;
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_0A69()
|
|
{
|
|
if(self.var_74B > 1)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(self.enemy))
|
|
{
|
|
self.a.var_20A9 = gettime() + level.var_20CA + randomint(level.var_20CB);
|
|
return 1;
|
|
}
|
|
|
|
return self.a.var_20A9 > gettime();
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_0FB8()
|
|
{
|
|
if(isdefined(self.enemy))
|
|
{
|
|
self.a.var_247F = self.enemy getshootatpos();
|
|
self.a.var_20AA = gettime();
|
|
return self.a.var_247F;
|
|
}
|
|
|
|
if(isdefined(self.a.var_20AA) && isdefined(self.a.var_247F) && self.a.var_20AA + 3000 < gettime())
|
|
{
|
|
return self.a.var_247F;
|
|
}
|
|
|
|
var_00 = self getshootatpos();
|
|
var_00 = var_00 + (196 * self.var_70F[0],196 * self.var_70F[1],196 * self.var_70F[2]);
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_0F41(param_00)
|
|
{
|
|
if(!isdefined(self.heat))
|
|
{
|
|
if(param_00.type == "Cover Left")
|
|
{
|
|
return param_00.angles[1] + 90;
|
|
}
|
|
else if(param_00.type == "Cover Right")
|
|
{
|
|
return param_00.angles[1] - 90;
|
|
}
|
|
}
|
|
|
|
return param_00.angles[1];
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_2480(param_00)
|
|
{
|
|
if(isdefined(self.node))
|
|
{
|
|
var_01 = self.node.angles[1] - func_101A(param_00);
|
|
}
|
|
else
|
|
{
|
|
var_01 = self.angles[1] - func_101A(var_01);
|
|
}
|
|
|
|
var_01 = angleclamp180(var_01);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_116D()
|
|
{
|
|
var_00 = undefined;
|
|
if(isdefined(self.enemy))
|
|
{
|
|
var_00 = self.enemy.origin;
|
|
}
|
|
else
|
|
{
|
|
if(isdefined(self.node))
|
|
{
|
|
var_01 = anglestoforward(self.node.angles);
|
|
}
|
|
else
|
|
{
|
|
var_01 = anglestoforward(self.angles);
|
|
}
|
|
|
|
var_01 = var_01 * 150;
|
|
var_00 = self.origin + var_01;
|
|
}
|
|
|
|
if(isdefined(self.node))
|
|
{
|
|
var_02 = self.node.angles[1] - func_101A(var_00);
|
|
}
|
|
else
|
|
{
|
|
var_02 = self.angles[1] - func_101A(var_02);
|
|
}
|
|
|
|
var_02 = angleclamp180(var_02);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_113E(param_00)
|
|
{
|
|
var_01 = self.angles[1] - func_101A(param_00);
|
|
var_01 = angleclamp180(var_01);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_0D5C()
|
|
{
|
|
var_00 = undefined;
|
|
if(isdefined(self.enemy))
|
|
{
|
|
var_00 = self.enemy.origin;
|
|
}
|
|
else
|
|
{
|
|
var_01 = anglestoforward(self.angles);
|
|
var_01 = var_01 * 150;
|
|
var_00 = self.origin + var_01;
|
|
}
|
|
|
|
var_02 = self.angles[1] - func_101A(var_00);
|
|
var_02 = angleclamp180(var_02);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_101A(param_00)
|
|
{
|
|
return vectortoyaw(param_00 - self.origin);
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_2481(param_00)
|
|
{
|
|
var_01 = vectortoangles((param_00[0],param_00[1],0) - (self.origin[0],self.origin[1],0));
|
|
return var_01[1];
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_2482()
|
|
{
|
|
var_00 = self.angles[1] - func_101A(self.enemy.origin);
|
|
var_00 = angleclamp180(var_00);
|
|
if(var_00 < 0)
|
|
{
|
|
var_00 = -1 * var_00;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_2483()
|
|
{
|
|
var_00 = self.angles[1] - func_2481(self.enemy.origin);
|
|
var_00 = angleclamp180(var_00);
|
|
if(var_00 < 0)
|
|
{
|
|
var_00 = -1 * var_00;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_2484(param_00)
|
|
{
|
|
var_01 = self.angles[1] - func_101A(param_00);
|
|
var_01 = angleclamp180(var_01);
|
|
if(var_01 < 0)
|
|
{
|
|
var_01 = -1 * var_01;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_2485(param_00)
|
|
{
|
|
var_01 = self.angles[1] - param_00;
|
|
var_01 = angleclamp180(var_01);
|
|
if(var_01 < 0)
|
|
{
|
|
var_01 = -1 * var_01;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_2486(param_00,param_01)
|
|
{
|
|
var_02 = vectortoangles(param_00 - param_01);
|
|
return var_02[1];
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_2487(param_00,param_01)
|
|
{
|
|
var_02 = self gettagangles(param_00)[1] - func_2486(param_01,self gettagorigin(param_00));
|
|
var_02 = angleclamp180(var_02);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_244F(param_00)
|
|
{
|
|
var_01 = self.angles[1] - func_101A(param_00);
|
|
var_01 = angleclamp180(var_01);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_2488(param_00)
|
|
{
|
|
var_01 = self gettagangles("TAG_EYE")[1] - func_101A(param_00);
|
|
var_01 = angleclamp180(var_01);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_2489(param_00)
|
|
{
|
|
if(isdefined(self.var_CAF))
|
|
{
|
|
return self.var_CAF doesnodeallowstance(param_00);
|
|
}
|
|
|
|
return self isstanceallowed(param_00);
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_10AF(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = self.a.pose;
|
|
}
|
|
|
|
switch(param_00)
|
|
{
|
|
case "stand":
|
|
if(func_2489("stand"))
|
|
{
|
|
var_01 = "stand";
|
|
}
|
|
else if(func_2489("crouch"))
|
|
{
|
|
var_01 = "crouch";
|
|
}
|
|
else if(func_2489("prone"))
|
|
{
|
|
var_01 = "prone";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "stand";
|
|
}
|
|
break;
|
|
|
|
case "crouch":
|
|
if(func_2489("crouch"))
|
|
{
|
|
var_01 = "crouch";
|
|
}
|
|
else if(func_2489("stand"))
|
|
{
|
|
var_01 = "stand";
|
|
}
|
|
else if(func_2489("prone"))
|
|
{
|
|
var_01 = "prone";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "crouch";
|
|
}
|
|
break;
|
|
|
|
case "prone":
|
|
if(func_2489("prone"))
|
|
{
|
|
var_01 = "prone";
|
|
}
|
|
else if(func_2489("crouch"))
|
|
{
|
|
var_01 = "crouch";
|
|
}
|
|
else if(func_2489("stand"))
|
|
{
|
|
var_01 = "stand";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "prone";
|
|
}
|
|
break;
|
|
|
|
default:
|
|
var_01 = "stand";
|
|
break;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_0BEE()
|
|
{
|
|
var_00 = self.node;
|
|
if(isdefined(var_00) && self nearnode(var_00) || isdefined(self.var_CAF) && var_00 == self.var_CAF)
|
|
{
|
|
return var_00;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_248A()
|
|
{
|
|
var_00 = func_0BEE();
|
|
if(isdefined(var_00))
|
|
{
|
|
return var_00.type;
|
|
}
|
|
|
|
return "none";
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_2472()
|
|
{
|
|
var_00 = func_0BEE();
|
|
if(isdefined(var_00))
|
|
{
|
|
return var_00.angles[1];
|
|
}
|
|
|
|
return self.var_72B;
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_248B()
|
|
{
|
|
var_00 = func_0BEE();
|
|
if(isdefined(var_00))
|
|
{
|
|
return anglestoforward(var_00.angles);
|
|
}
|
|
|
|
return anglestoforward(self.angles);
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_2473()
|
|
{
|
|
var_00 = func_0BEE();
|
|
if(isdefined(var_00))
|
|
{
|
|
return var_00.origin;
|
|
}
|
|
|
|
return self.origin;
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_0D08(param_00,param_01)
|
|
{
|
|
var_02 = int(param_00) % param_01;
|
|
var_02 = var_02 + param_01;
|
|
return var_02 % param_01;
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_0D61(param_00)
|
|
{
|
|
return abs(angleclamp180(param_00));
|
|
}
|
|
|
|
//Function Number: 33
|
|
func_0FFC(param_00)
|
|
{
|
|
var_01 = cos(param_00);
|
|
var_02 = sin(param_00);
|
|
var_03["front"] = 0;
|
|
if(isdefined(self.alwaysrunforward))
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(var_02 > 0)
|
|
{
|
|
if(var_03 > var_02)
|
|
{
|
|
}
|
|
else if(var_03 < -1 * var_02)
|
|
{
|
|
}
|
|
else
|
|
{
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_04 = -1 * var_02;
|
|
if(var_03 > var_04)
|
|
{
|
|
var_7B["left"] = 1;
|
|
}
|
|
else if(var_03 < var_02)
|
|
{
|
|
var_7B["right"] = 1;
|
|
}
|
|
else
|
|
{
|
|
var_7B["back"] = 1;
|
|
}
|
|
}
|
|
|
|
return var_7B;
|
|
}
|
|
|
|
//Function Number: 34
|
|
func_243A(param_00)
|
|
{
|
|
param_00 = angleclamp(param_00);
|
|
if(param_00 < 45 || param_00 > 315)
|
|
{
|
|
var_01 = "front";
|
|
}
|
|
else if(var_01 < 135)
|
|
{
|
|
var_01 = "left";
|
|
}
|
|
else if(var_01 < 225)
|
|
{
|
|
var_01 = "back";
|
|
}
|
|
else
|
|
{
|
|
var_01 = "right";
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 35
|
|
func_248C(param_00,param_01)
|
|
{
|
|
for(var_02 = param_01.size - 1;var_02 >= 0;var_02--)
|
|
{
|
|
if(param_00 == param_01[var_02])
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 36
|
|
func_248D(param_00)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
self setflaggedanimknoballrestart("playAnim",param_00,%root,1,0.1,1);
|
|
var_01 = getanimlength(param_00);
|
|
var_01 = 3 * var_01 + 1;
|
|
thread func_248E("time is up","time is up",var_01);
|
|
self waittill("time is up");
|
|
self notify("enddrawstring");
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
func_248E(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
self endon(param_01);
|
|
wait param_02;
|
|
self notify(param_00);
|
|
}
|
|
|
|
//Function Number: 38
|
|
func_248F(param_00)
|
|
{
|
|
self endon("killanimscript");
|
|
self endon("enddrawstring");
|
|
wait 0.05;
|
|
}
|
|
|
|
//Function Number: 39
|
|
func_2490(param_00,param_01,param_02,param_03)
|
|
{
|
|
var_04 = param_03 * 20;
|
|
for(var_05 = 0;var_05 < var_04;var_05++)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 40
|
|
func_2491(param_00)
|
|
{
|
|
self notify("got known enemy2");
|
|
self endon("got known enemy2");
|
|
self endon("death");
|
|
if(!isdefined(self.enemy))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(self.enemy.team == "allies")
|
|
{
|
|
var_01 = (0.4,0.7,1);
|
|
}
|
|
else
|
|
{
|
|
var_01 = (1,0.7,0.4);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
if(!isdefined(self.lastenemysightpos))
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 41
|
|
func_0F8C()
|
|
{
|
|
if(isdefined(self.node))
|
|
{
|
|
return func_0F4A() || func_0F39();
|
|
}
|
|
|
|
return func_0CE3() || func_0CF3();
|
|
}
|
|
|
|
//Function Number: 42
|
|
func_0CEE()
|
|
{
|
|
return self.goodshootpos;
|
|
}
|
|
|
|
//Function Number: 43
|
|
func_2492()
|
|
{
|
|
if(!func_0F8C())
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_2493 = func_0CEE();
|
|
self.var_2494 = self.origin;
|
|
}
|
|
|
|
//Function Number: 44
|
|
func_2495()
|
|
{
|
|
if(!func_0F8C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = self getmuzzlepos();
|
|
var_01 = self getshootatpos() - var_00;
|
|
if(isdefined(self.var_2493) && isdefined(self.var_2494))
|
|
{
|
|
if(distance(self.origin,self.var_2494) < 25)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
self.var_2493 = undefined;
|
|
var_02 = self canshoot(func_0CEE(),var_01);
|
|
if(!var_02)
|
|
{
|
|
self.var_2493 = func_0CEE();
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 45
|
|
func_2496()
|
|
{
|
|
wait 5;
|
|
self notify("timeout");
|
|
}
|
|
|
|
//Function Number: 46
|
|
func_2497(param_00,param_01,param_02)
|
|
{
|
|
self endon("death");
|
|
self notify("stop debug " + param_00);
|
|
self endon("stop debug " + param_00);
|
|
var_03 = spawnstruct();
|
|
var_03 thread func_2496();
|
|
var_03 endon("timeout");
|
|
if(self.enemy.team == "allies")
|
|
{
|
|
var_04 = (0.4,0.7,1);
|
|
}
|
|
else
|
|
{
|
|
var_04 = (1,0.7,0.4);
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
//Function Number: 47
|
|
func_2498(param_00,param_01)
|
|
{
|
|
thread func_2497(param_00,param_01,2.15);
|
|
}
|
|
|
|
//Function Number: 48
|
|
func_2499(param_00,param_01,param_02)
|
|
{
|
|
thread func_2497(param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 49
|
|
func_249A(param_00,param_01)
|
|
{
|
|
var_02 = param_00 / param_01;
|
|
var_03 = undefined;
|
|
if(param_00 == self.bulletsinclip)
|
|
{
|
|
var_03 = "all rounds";
|
|
}
|
|
else if(var_02 < 0.25)
|
|
{
|
|
var_03 = "small burst";
|
|
}
|
|
else if(var_02 < 0.5)
|
|
{
|
|
var_03 = "med burst";
|
|
}
|
|
else
|
|
{
|
|
var_03 = "long burst";
|
|
}
|
|
|
|
thread func_2499(self.origin + (0,0,42),var_03,1.5);
|
|
thread func_2498(self.origin + (0,0,60),"Suppressing");
|
|
}
|
|
|
|
//Function Number: 50
|
|
func_249B()
|
|
{
|
|
self endon("death");
|
|
self notify("stop shoot " + self.export);
|
|
self endon("stop shoot " + self.export);
|
|
var_00 = 0.25;
|
|
var_01 = var_00 * 20;
|
|
for(var_02 = 0;var_02 < var_01;var_02 = var_02 + 1)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 51
|
|
func_249C()
|
|
{
|
|
}
|
|
|
|
//Function Number: 52
|
|
func_249D(param_00,param_01,param_02,param_03)
|
|
{
|
|
self endon("death");
|
|
var_04 = param_03 * 20;
|
|
for(var_05 = 0;var_05 < var_04;var_05 = var_05 + 1)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
func_249E(param_00,param_01,param_02,param_03)
|
|
{
|
|
thread func_249D(param_00,param_01 + (0,0,-5),param_02,param_03);
|
|
}
|
|
|
|
//Function Number: 54
|
|
func_0D5F()
|
|
{
|
|
[[ level.var_20D4 ]]();
|
|
}
|
|
|
|
//Function Number: 55
|
|
func_249F()
|
|
{
|
|
self.a.lastshoottime = gettime();
|
|
maps\_gameskill::set_accuracy_based_on_situation();
|
|
self notify("shooting");
|
|
self shoot();
|
|
}
|
|
|
|
//Function Number: 56
|
|
func_20D3()
|
|
{
|
|
level notify("an_enemy_shot",self);
|
|
func_249F();
|
|
}
|
|
|
|
//Function Number: 57
|
|
func_2384(param_00)
|
|
{
|
|
var_01 = bulletspread(self getmuzzlepos(),param_00,4);
|
|
self.a.lastshoottime = gettime();
|
|
self notify("shooting");
|
|
self shoot(1,var_01);
|
|
}
|
|
|
|
//Function Number: 58
|
|
func_24A0()
|
|
{
|
|
var_00 = spawn("script_model",(0,0,0));
|
|
var_00 setmodel("temp");
|
|
var_00.origin = self gettagorigin("tag_weapon_right") + (50,50,0);
|
|
var_00.angles = self gettagangles("tag_weapon_right");
|
|
var_01 = anglestoright(var_00.angles);
|
|
var_01 = var_01 * 15;
|
|
var_02 = anglestoforward(var_00.angles);
|
|
var_02 = var_02 * 15;
|
|
var_00 movegravity((0,50,150),100);
|
|
var_03 = "weapon_" + self.weapon;
|
|
var_04 = spawn(var_03,var_00.origin);
|
|
var_04.angles = self gettagangles("tag_weapon_right");
|
|
var_04 linkto(var_00);
|
|
var_05 = var_00.origin;
|
|
while(isdefined(var_04) && isdefined(var_04.origin))
|
|
{
|
|
var_06 = var_05;
|
|
var_07 = var_00.origin;
|
|
var_08 = vectortoangles(var_07 - var_06);
|
|
var_02 = anglestoforward(var_08);
|
|
var_02 = var_02 * 4;
|
|
var_09 = bullettrace(var_07,var_07 + var_02,1,var_04);
|
|
if(isalive(var_09["entity"]) && var_09["entity"] == self)
|
|
{
|
|
wait 0.05;
|
|
continue;
|
|
}
|
|
|
|
if(var_09["fraction"] < 1)
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_05 = var_00.origin;
|
|
wait 0.05;
|
|
}
|
|
|
|
if(isdefined(var_04) && isdefined(var_04.origin))
|
|
{
|
|
var_04 unlink();
|
|
}
|
|
|
|
var_00 delete();
|
|
}
|
|
|
|
//Function Number: 59
|
|
func_20CC(param_00)
|
|
{
|
|
level.var_10FA["stand"]["in"] = %casual_stand_idle_trans_in;
|
|
level.var_1100["stand"][0][0] = %casual_stand_idle;
|
|
level.var_1100["stand"][0][1] = %casual_stand_idle_twitch;
|
|
level.var_1100["stand"][0][2] = %casual_stand_idle_twitchb;
|
|
level.var_1101["stand"][0][0] = 2;
|
|
level.var_1101["stand"][0][1] = 1;
|
|
level.var_1101["stand"][0][2] = 1;
|
|
level.var_1100["stand"][1][0] = %casual_stand_v2_idle;
|
|
level.var_1100["stand"][1][1] = %casual_stand_v2_twitch_radio;
|
|
level.var_1100["stand"][1][2] = %casual_stand_v2_twitch_shift;
|
|
level.var_1100["stand"][1][3] = %casual_stand_v2_twitch_talk;
|
|
level.var_1101["stand"][1][0] = 10;
|
|
level.var_1101["stand"][1][1] = 4;
|
|
level.var_1101["stand"][1][2] = 7;
|
|
level.var_1101["stand"][1][3] = 4;
|
|
level.var_1100["stand_cqb"][0][0] = %cqb_stand_idle;
|
|
level.var_1100["stand_cqb"][0][1] = %cqb_stand_twitch;
|
|
level.var_1101["stand_cqb"][0][0] = 2;
|
|
level.var_1101["stand_cqb"][0][1] = 1;
|
|
level.var_10FA["crouch"]["in"] = %casual_crouch_idle_in;
|
|
level.var_1100["crouch"][0][0] = %casual_crouch_idle;
|
|
level.var_1101["crouch"][0][0] = 6;
|
|
}
|
|
|
|
//Function Number: 60
|
|
func_24A1()
|
|
{
|
|
var_00 = "TAG_EYE";
|
|
self endon("death");
|
|
self notify("stop personal effect");
|
|
self endon("stop personal effect");
|
|
while(isdefined(self))
|
|
{
|
|
wait 0.05;
|
|
if(!isdefined(self))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(isdefined(self.a.movement) && self.a.movement == "stop")
|
|
{
|
|
if(isdefined(self.var_1097) && self.var_1097 == 1)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
playfxontag(level._effect["cold_breath"],self,var_00);
|
|
wait 2.5 + randomfloat(3);
|
|
continue;
|
|
}
|
|
|
|
wait 0.5;
|
|
}
|
|
}
|
|
|
|
//Function Number: 61
|
|
func_24A2()
|
|
{
|
|
self notify("stop personal effect");
|
|
}
|
|
|
|
//Function Number: 62
|
|
func_24A3()
|
|
{
|
|
self endon("death");
|
|
self notify("stop personal effect");
|
|
self endon("stop personal effect");
|
|
for(;;)
|
|
{
|
|
self waittill("spawned",var_00);
|
|
if(maps\_utility::spawn_failed(var_00))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_00 thread func_24A1();
|
|
}
|
|
}
|
|
|
|
//Function Number: 63
|
|
func_0F4C()
|
|
{
|
|
if(isdefined(self.forcesuppression))
|
|
{
|
|
return self.forcesuppression;
|
|
}
|
|
|
|
if(self.var_738 <= self.var_CFB)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return self issuppressed();
|
|
}
|
|
|
|
//Function Number: 64
|
|
func_0F62()
|
|
{
|
|
if(self.var_738 <= self.var_CFB * 0.25)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return self issuppressed();
|
|
}
|
|
|
|
//Function Number: 65
|
|
func_0F8E(param_00)
|
|
{
|
|
if(isdefined(param_00.offset))
|
|
{
|
|
return param_00.offset;
|
|
}
|
|
|
|
var_01 = (-26,0.4,36);
|
|
var_02 = (-32,7,63);
|
|
var_03 = (43.5,11,36);
|
|
var_04 = (36,8.3,63);
|
|
var_05 = (3.5,-12.5,45);
|
|
var_06 = (-3.7,-22,63);
|
|
var_07 = 0;
|
|
var_08 = (0,0,0);
|
|
var_09 = anglestoright(param_00.angles);
|
|
var_0A = anglestoforward(param_00.angles);
|
|
switch(param_00.type)
|
|
{
|
|
case "Cover Left":
|
|
if(param_00 gethighestnodestance() == "crouch")
|
|
{
|
|
var_08 = func_24A5(var_09,var_0A,var_01);
|
|
}
|
|
else
|
|
{
|
|
var_08 = func_24A5(var_09,var_0A,var_02);
|
|
}
|
|
break;
|
|
|
|
case "Cover Right":
|
|
if(param_00 gethighestnodestance() == "crouch")
|
|
{
|
|
var_08 = func_24A5(var_09,var_0A,var_03);
|
|
}
|
|
else
|
|
{
|
|
var_08 = func_24A5(var_09,var_0A,var_04);
|
|
}
|
|
break;
|
|
|
|
case "Turret":
|
|
case "Cover Stand":
|
|
case "Conceal Stand":
|
|
var_08 = func_24A5(var_09,var_0A,var_06);
|
|
break;
|
|
|
|
case "Cover Crouch Window":
|
|
case "Cover Crouch":
|
|
case "Conceal Crouch":
|
|
var_08 = func_24A5(var_09,var_0A,var_05);
|
|
break;
|
|
}
|
|
|
|
param_00.offset = var_08;
|
|
return param_00.offset;
|
|
}
|
|
|
|
//Function Number: 66
|
|
func_24A5(param_00,param_01,param_02)
|
|
{
|
|
return param_00 * param_02[0] + param_01 * param_02[1] + (0,0,param_02[2]);
|
|
}
|
|
|
|
//Function Number: 67
|
|
func_0CBC()
|
|
{
|
|
return isdefined(self.enemy) && self seerecently(self.enemy,5);
|
|
}
|
|
|
|
//Function Number: 68
|
|
func_0CE3(param_00)
|
|
{
|
|
if(!isdefined(self.enemy))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if((isdefined(param_00) && self cansee(self.enemy,param_00)) || self cansee(self.enemy))
|
|
{
|
|
if(!func_24A6(self geteye(),self.enemy getshootatpos()))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
self.goodshootpos = func_0FB8();
|
|
func_24A7();
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 69
|
|
func_0F4A()
|
|
{
|
|
if(!isdefined(self.enemy))
|
|
{
|
|
self.goodshootpos = undefined;
|
|
return 0;
|
|
}
|
|
|
|
var_00 = func_0FB8();
|
|
if(!isdefined(self.node))
|
|
{
|
|
var_01 = self cansee(self.enemy);
|
|
}
|
|
else
|
|
{
|
|
var_01 = func_117A(var_01,self.node);
|
|
}
|
|
|
|
if(var_01)
|
|
{
|
|
self.goodshootpos = var_00;
|
|
func_24A7();
|
|
}
|
|
else
|
|
{
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 70
|
|
func_117A(param_00,param_01)
|
|
{
|
|
if(param_01.type == "Cover Left" || param_01.type == "Cover Right")
|
|
{
|
|
if(!animscripts/corner::func_244E(param_00,param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
var_02 = func_0F8E(param_01);
|
|
var_03 = param_01.origin + var_02;
|
|
if(!func_24A6(var_03,param_00,param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!sighttracepassed(var_03,param_00,0,undefined))
|
|
{
|
|
if(param_01.type == "Cover Crouch" || param_01.type == "Conceal Crouch")
|
|
{
|
|
var_03 = (0,0,64) + param_01.origin;
|
|
return sighttracepassed(var_03,param_00,0,undefined);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 71
|
|
func_24A6(param_00,param_01,param_02)
|
|
{
|
|
var_03 = self.var_715 - level.var_20A1;
|
|
var_04 = self.var_714 + level.var_20A1;
|
|
var_05 = angleclamp180(vectortoangles(param_01 - param_00)[0]);
|
|
if(var_05 > var_04)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_05 < var_03)
|
|
{
|
|
if(isdefined(param_02) && param_02.type != "Cover Crouch" && param_02.type != "Conceal Crouch")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(var_05 < level.var_CAD + var_03)
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 72
|
|
func_24A7()
|
|
{
|
|
self.a.var_24A8 = 1;
|
|
}
|
|
|
|
//Function Number: 73
|
|
func_24A9()
|
|
{
|
|
if(!isdefined(self.a.var_24A8))
|
|
{
|
|
self.a.var_24A8 = 1;
|
|
}
|
|
|
|
if(self.a.var_24A8)
|
|
{
|
|
self.a.var_24AA = gettime() + randomintrange(15000,30000);
|
|
self.a.var_24A8 = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 74
|
|
func_24AB(param_00,param_01,param_02)
|
|
{
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 75
|
|
func_24AC()
|
|
{
|
|
if(!self canattackenemynode())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = undefined;
|
|
if(isdefined(self.enemy.node))
|
|
{
|
|
var_01 = func_0F8E(self.enemy.node);
|
|
var_00 = self.enemy.node.origin + var_01;
|
|
}
|
|
else
|
|
{
|
|
var_00 = self.enemy getshootatpos();
|
|
}
|
|
|
|
if(!self canshoot(var_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.script == "combat")
|
|
{
|
|
if(!sighttracepassed(self geteye(),self getmuzzlepos(),0,undefined))
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
self.goodshootpos = var_00;
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 76
|
|
func_0F39()
|
|
{
|
|
if(!func_24AD())
|
|
{
|
|
self.goodshootpos = undefined;
|
|
return 0;
|
|
}
|
|
|
|
if(!isplayer(self.enemy))
|
|
{
|
|
return func_24AC();
|
|
}
|
|
|
|
if(isdefined(self.node))
|
|
{
|
|
if(self.node.type == "Cover Left" || self.node.type == "Cover Right")
|
|
{
|
|
if(!animscripts/corner::func_244E(func_0FB8(),self.node))
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
var_00 = func_0F8E(self.node);
|
|
var_01 = self.node.origin + var_00;
|
|
}
|
|
else
|
|
{
|
|
var_01 = self getmuzzlepos();
|
|
}
|
|
|
|
if(!func_24A6(var_01,self.lastenemysightpos))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return func_24B2(var_01);
|
|
}
|
|
|
|
//Function Number: 77
|
|
func_0CF3()
|
|
{
|
|
if(!func_24AD())
|
|
{
|
|
self.goodshootpos = undefined;
|
|
return 0;
|
|
}
|
|
|
|
if(!isplayer(self.enemy))
|
|
{
|
|
return func_24AC();
|
|
}
|
|
|
|
var_00 = self getmuzzlepos();
|
|
if(!func_24A6(var_00,self.lastenemysightpos))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return func_24B2(var_00);
|
|
}
|
|
|
|
//Function Number: 78
|
|
func_24AD()
|
|
{
|
|
if(!isdefined(self.enemy))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!isdefined(self.lastenemysightpos))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
func_24A9();
|
|
if(gettime() > self.a.var_24AA)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!func_24AF())
|
|
{
|
|
return isdefined(self.goodshootpos);
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 79
|
|
func_24AE(param_00)
|
|
{
|
|
if(!sighttracepassed(self getshootatpos(),param_00,0,undefined))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.a.weaponpos["right"] == "none")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_01 = self getmuzzlepos();
|
|
return sighttracepassed(var_01,param_00,0,undefined);
|
|
}
|
|
|
|
//Function Number: 80
|
|
func_24AF()
|
|
{
|
|
if(isdefined(self.goodshootpos) && !func_24AE(self.goodshootpos))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return !isdefined(self.var_24B0) || self.var_24B0 != self.lastenemysightpos || distancesquared(self.var_24B1,self.origin) > 1024;
|
|
}
|
|
|
|
//Function Number: 81
|
|
func_24B2(param_00)
|
|
{
|
|
if(!func_24AF())
|
|
{
|
|
return isdefined(self.goodshootpos);
|
|
}
|
|
|
|
if(isdefined(self.enemy) && distancesquared(self.origin,self.enemy.origin) > squared(self.enemy.maxvisibledist))
|
|
{
|
|
self.goodshootpos = undefined;
|
|
return 0;
|
|
}
|
|
|
|
if(!sighttracepassed(self getshootatpos(),param_00,0,undefined))
|
|
{
|
|
self.goodshootpos = undefined;
|
|
return 0;
|
|
}
|
|
|
|
self.var_24B1 = self.origin;
|
|
self.var_24B0 = self.lastenemysightpos;
|
|
var_01 = func_0FB8();
|
|
var_02 = bullettrace(self.lastenemysightpos,var_01,0,undefined);
|
|
var_03 = var_02["position"];
|
|
var_04 = self.lastenemysightpos - var_03;
|
|
var_05 = vectornormalize(self.lastenemysightpos - param_00);
|
|
var_04 = var_04 - var_05 * vectordot(var_04,var_05);
|
|
var_06 = 20;
|
|
var_07 = int(length(var_04) / var_06 + 0.5);
|
|
if(var_07 < 1)
|
|
{
|
|
var_07 = 1;
|
|
}
|
|
|
|
if(var_07 > 20)
|
|
{
|
|
var_07 = 20;
|
|
}
|
|
|
|
var_08 = self.lastenemysightpos - var_03;
|
|
var_08 = (var_08[0] / var_07,var_08[1] / var_07,var_08[2] / var_07);
|
|
var_07++;
|
|
var_09 = var_03;
|
|
self.goodshootpos = undefined;
|
|
var_0A = 0;
|
|
var_0B = 2;
|
|
for(var_0C = 0;var_0C < var_07 + var_0B;var_0C++)
|
|
{
|
|
var_0D = sighttracepassed(param_00,var_09,0,undefined);
|
|
var_0E = var_09;
|
|
if(var_0C == var_07 - 1)
|
|
{
|
|
var_08 = var_08 - var_05 * vectordot(var_08,var_05);
|
|
}
|
|
|
|
var_09 = var_09 + var_08;
|
|
if(var_0D)
|
|
{
|
|
var_0A++;
|
|
self.goodshootpos = var_0E;
|
|
if(var_0C > 0 && var_0A < var_0B && var_0C < var_07 + var_0B - 1)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
var_0A = 0;
|
|
}
|
|
}
|
|
|
|
return isdefined(self.goodshootpos);
|
|
}
|
|
|
|
//Function Number: 82
|
|
func_10FF(param_00,param_01)
|
|
{
|
|
var_02 = param_00.size;
|
|
var_03 = randomint(var_02);
|
|
if(var_02 == 1)
|
|
{
|
|
return param_00[0];
|
|
}
|
|
|
|
var_04 = 0;
|
|
var_05 = 0;
|
|
for(var_06 = 0;var_06 < var_02;var_06++)
|
|
{
|
|
var_05 = var_05 + param_01[var_06];
|
|
}
|
|
|
|
var_07 = randomfloat(var_05);
|
|
var_08 = 0;
|
|
for(var_06 = 0;var_06 < var_02;var_06++)
|
|
{
|
|
var_08 = var_08 + param_01[var_06];
|
|
if(var_07 >= var_08)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 = var_06;
|
|
break;
|
|
}
|
|
|
|
return param_00[var_03];
|
|
}
|
|
|
|
//Function Number: 83
|
|
func_24B3(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
var_06 = param_00 / 0.05;
|
|
for(var_07 = 0;var_07 < var_06;var_07++)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 84
|
|
func_24B4(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = 100;
|
|
var_06 = 0;
|
|
param_00 = param_00 + common_scripts\utility::randomvector(30);
|
|
for(var_07 = 0;var_07 < var_05;var_07++)
|
|
{
|
|
var_06 = var_06 + 0.5;
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 85
|
|
func_24B5(param_00,param_01)
|
|
{
|
|
return param_00[0] * param_01[1] - param_00[1] * param_01[0] > 0;
|
|
}
|
|
|
|
//Function Number: 86
|
|
func_239F()
|
|
{
|
|
return getweaponmodel(self.grenadeweapon);
|
|
}
|
|
|
|
//Function Number: 87
|
|
func_24B6(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 500;
|
|
}
|
|
|
|
return gettime() - self.var_24B7 < param_00;
|
|
}
|
|
|
|
//Function Number: 88
|
|
func_24B8()
|
|
{
|
|
if(!self.grenadeammo)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.script_forcegrenade)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return isplayer(self.enemy);
|
|
}
|
|
|
|
//Function Number: 89
|
|
func_24B9()
|
|
{
|
|
return weaponisboltaction(self.weapon);
|
|
}
|
|
|
|
//Function Number: 90
|
|
func_24BA(param_00)
|
|
{
|
|
var_01 = randomint(param_00.size);
|
|
if(param_00.size > 1)
|
|
{
|
|
var_02 = 0;
|
|
for(var_03 = 0;var_03 < param_00.size;var_03++)
|
|
{
|
|
var_02 = var_02 + param_00[var_03];
|
|
}
|
|
|
|
var_04 = randomfloat(var_02);
|
|
var_02 = 0;
|
|
for(var_03 = 0;var_03 < param_00.size;var_03++)
|
|
{
|
|
var_02 = var_02 + param_00[var_03];
|
|
if(var_04 < var_02)
|
|
{
|
|
var_01 = var_03;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 91
|
|
func_24BB(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_20D1))
|
|
{
|
|
anim.var_20D1 = [];
|
|
}
|
|
|
|
level.var_20D1[level.var_20D1.size] = param_00;
|
|
level._effect["step_" + param_00] = param_01;
|
|
}
|
|
|
|
//Function Number: 92
|
|
func_24BC(param_00,param_01)
|
|
{
|
|
if(!isdefined(level.var_20D2))
|
|
{
|
|
anim.var_20D2 = [];
|
|
}
|
|
|
|
level.var_20D2[level.var_20D2.size] = param_00;
|
|
level._effect["step_small_" + param_00] = param_01;
|
|
}
|
|
|
|
//Function Number: 93
|
|
func_24BD(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = "all";
|
|
}
|
|
|
|
if(!isdefined(level._notetrackfx))
|
|
{
|
|
level._notetrackfx = [];
|
|
}
|
|
|
|
level._notetrackfx[param_00][param_02] = spawnstruct();
|
|
level._notetrackfx[param_00][param_02].tag = param_01;
|
|
level._notetrackfx[param_00][param_02].fx = param_03;
|
|
if(isdefined(param_04))
|
|
{
|
|
level._notetrackfx[param_00][param_02].var_23FC = param_04;
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
level._notetrackfx[param_00][param_02].var_23FD = param_05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 94
|
|
func_24BE(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
level notify("newdebugline");
|
|
level endon("newdebugline");
|
|
wait 0.05;
|
|
}
|
|
|
|
//Function Number: 95
|
|
func_10E1(param_00)
|
|
{
|
|
thread func_24BF(param_00);
|
|
}
|
|
|
|
//Function Number: 96
|
|
func_24BF(param_00)
|
|
{
|
|
self endon("death");
|
|
self notify("anim_prone_change");
|
|
self endon("anim_prone_change");
|
|
self enterprone(param_00,isdefined(self.a.var_D29));
|
|
self waittill("killanimscript");
|
|
if(self.a.pose != "prone" && !isdefined(self.a.var_D29))
|
|
{
|
|
self.a.pose = "prone";
|
|
}
|
|
}
|
|
|
|
//Function Number: 97
|
|
func_0F7D(param_00)
|
|
{
|
|
thread func_24C0(param_00);
|
|
}
|
|
|
|
//Function Number: 98
|
|
func_24C0(param_00)
|
|
{
|
|
self endon("death");
|
|
self notify("anim_prone_change");
|
|
self endon("anim_prone_change");
|
|
self exitprone(param_00);
|
|
self waittill("killanimscript");
|
|
if(self.a.pose == "prone")
|
|
{
|
|
self.a.pose = "crouch";
|
|
}
|
|
}
|
|
|
|
//Function Number: 99
|
|
func_0F65()
|
|
{
|
|
if(self.a.var_CE2)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(!animscripts/weaponlist::func_CCA())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(weaponclass(self.weapon) == "mg")
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(isdefined(self.disable_blindfire) && self.disable_blindfire == 1)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 100
|
|
func_24C2()
|
|
{
|
|
if(!func_0F8C())
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_00 = self getmuzzlepos();
|
|
return sighttracepassed(var_00,func_0CEE(),0,undefined);
|
|
}
|
|
|
|
//Function Number: 101
|
|
func_0FC3(param_00)
|
|
{
|
|
return self.a.var_CA6[param_00];
|
|
}
|
|
|
|
//Function Number: 102
|
|
func_0F26(param_00,param_01)
|
|
{
|
|
if(randomint(2))
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
return param_01;
|
|
}
|
|
|
|
//Function Number: 103
|
|
func_0D4D(param_00)
|
|
{
|
|
return self.a.array[param_00];
|
|
}
|
|
|
|
//Function Number: 104
|
|
func_0F8D(param_00)
|
|
{
|
|
return self.a.array[param_00].size > 0;
|
|
}
|
|
|
|
//Function Number: 105
|
|
func_0CA8(param_00)
|
|
{
|
|
var_01 = randomint(self.a.array[param_00].size);
|
|
return self.a.array[param_00][var_01];
|
|
}
|
|
|
|
//Function Number: 106
|
|
array(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D)
|
|
{
|
|
var_0E = [];
|
|
if(isdefined(param_00))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_07))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_08))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_09))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_0A))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_0B))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_0C))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(param_0D))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
return var_7B;
|
|
}
|
|
|
|
if(isdefined(var_0E))
|
|
{
|
|
}
|
|
|
|
return var_7B;
|
|
}
|
|
|
|
//Function Number: 107
|
|
func_115A()
|
|
{
|
|
return self.primaryweapon;
|
|
}
|
|
|
|
//Function Number: 108
|
|
func_24C3()
|
|
{
|
|
return self.secondaryweapon;
|
|
}
|
|
|
|
//Function Number: 109
|
|
func_24C4()
|
|
{
|
|
return self.sidearm;
|
|
}
|
|
|
|
//Function Number: 110
|
|
func_24C5()
|
|
{
|
|
return self.weapon;
|
|
}
|
|
|
|
//Function Number: 111
|
|
func_1118()
|
|
{
|
|
return self.weapon == self.primaryweapon && self.weapon != "none";
|
|
}
|
|
|
|
//Function Number: 112
|
|
func_24C6()
|
|
{
|
|
return self.weapon == self.secondaryweapon && self.weapon != "none";
|
|
}
|
|
|
|
//Function Number: 113
|
|
func_0C95()
|
|
{
|
|
return self.weapon == self.sidearm && self.weapon != "none";
|
|
}
|
|
|
|
//Function Number: 114
|
|
func_24C7()
|
|
{
|
|
if(self.weapon == self.primaryweapon)
|
|
{
|
|
return "primary";
|
|
}
|
|
|
|
if(self.weapon == self.secondaryweapon)
|
|
{
|
|
return "secondary";
|
|
}
|
|
|
|
if(self.weapon == self.sidearm)
|
|
{
|
|
return "sidearm";
|
|
}
|
|
}
|
|
|
|
//Function Number: 115
|
|
func_24C8(param_00)
|
|
{
|
|
if(isdefined(self.weaponinfo[param_00]))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 116
|
|
func_0F99(param_00)
|
|
{
|
|
var_01 = getmovedelta(param_00,0,1);
|
|
return self localtoworldcoords(var_01);
|
|
}
|
|
|
|
//Function Number: 117
|
|
func_0D2F(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_00)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_01)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_02)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_03))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_03)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_04)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_05))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_05)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_06))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_06)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_07))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_07)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_08))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_08)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_09))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_09)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(!isdefined(param_0A))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if(self.damagelocation == param_0A)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 118
|
|
func_24C9()
|
|
{
|
|
return weaponclass(self.weapon) == "pistol";
|
|
}
|
|
|
|
//Function Number: 119
|
|
func_0BB6()
|
|
{
|
|
return weaponclass(self.weapon) == "rocketlauncher";
|
|
}
|
|
|
|
//Function Number: 120
|
|
func_0F79()
|
|
{
|
|
return weaponclass(self.weapon) == "mg";
|
|
}
|
|
|
|
//Function Number: 121
|
|
func_2380()
|
|
{
|
|
return weaponclass(self.weapon) == "spread";
|
|
}
|
|
|
|
//Function Number: 122
|
|
func_0EE3()
|
|
{
|
|
var_00 = weaponclass(self.weapon);
|
|
switch(var_00)
|
|
{
|
|
case "rifle":
|
|
case "sniper":
|
|
case "smg":
|
|
case "spread":
|
|
case "mg":
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 123
|
|
func_24CA(param_00)
|
|
{
|
|
self endon("killanimscript");
|
|
var_01 = self.origin;
|
|
var_02 = (0,0,0);
|
|
for(;;)
|
|
{
|
|
wait 0.05;
|
|
var_03 = distance(self.origin,var_01);
|
|
var_01 = self.origin;
|
|
if(self.health == 1)
|
|
{
|
|
self.a.var_D55 = 1;
|
|
self startragdoll();
|
|
self clearanim(param_00,0.1);
|
|
wait 0.05;
|
|
physicsexplosionsphere(var_01,600,0,var_03 * 0.1);
|
|
self notify("killanimscript");
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 124
|
|
func_0CB2()
|
|
{
|
|
return isdefined(self.cqbwalking) && !isdefined(self.var_73C);
|
|
}
|
|
|
|
//Function Number: 125
|
|
func_0C98()
|
|
{
|
|
return isdefined(self.cqbwalking);
|
|
}
|
|
|
|
//Function Number: 126
|
|
func_10B9()
|
|
{
|
|
return !self.var_781 || isdefined(self.cqbwalking);
|
|
}
|
|
|
|
//Function Number: 127
|
|
func_10F0()
|
|
{
|
|
self.a.var_10F2 = randomint(2);
|
|
}
|
|
|
|
//Function Number: 128
|
|
func_0CEA(param_00)
|
|
{
|
|
return weaponclass(param_00) == "spread";
|
|
}
|
|
|
|
//Function Number: 129
|
|
func_0BEB(param_00)
|
|
{
|
|
return weaponclass(param_00) == "sniper";
|
|
}
|
|
|
|
//Function Number: 130
|
|
func_0C97()
|
|
{
|
|
return self.weapon != "none" && weaponisboltaction(self.weapon) && weaponclass(self.weapon) == "spread";
|
|
}
|
|
|
|
//Function Number: 131
|
|
func_1078(param_00,param_01)
|
|
{
|
|
var_02 = param_00 % level.var_20F6;
|
|
return level.var_20F7[var_02] % param_01;
|
|
}
|
|
|
|
//Function Number: 132
|
|
func_104B()
|
|
{
|
|
if(func_24C6())
|
|
{
|
|
return "secondary";
|
|
}
|
|
|
|
if(func_0C95())
|
|
{
|
|
return "sidearm";
|
|
}
|
|
|
|
return "primary";
|
|
} |