mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 02:17:56 -05:00
290 lines
6.7 KiB
Plaintext
290 lines
6.7 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: animscripts\reactions.gsc
|
|
* Game: Call of Duty: Ghosts
|
|
* Platform: PC
|
|
* Function Count: 11
|
|
* Decompile Time: 197 ms
|
|
* Timestamp: 10/27/2023 1:24:17 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
func_4FDD()
|
|
{
|
|
self endon("killanimscript");
|
|
animscripts/utility::func_4622("reactions");
|
|
newenemysurprisedreaction();
|
|
}
|
|
|
|
//Function Number: 2
|
|
init_animset_reactions()
|
|
{
|
|
var_00 = [];
|
|
var_00["cover_stand"] = [%stand_cover_reaction_a,%stand_cover_reaction_b];
|
|
var_00["cover_crouch"] = [%stand_cover_reaction_a,%stand_cover_reaction_b];
|
|
var_00["cover_left"] = [%stand_cover_reaction_a,%stand_cover_reaction_b];
|
|
var_00["cover_right"] = [%stand_cover_reaction_a,%stand_cover_reaction_b];
|
|
level.archetypes["soldier"]["cover_reactions"] = var_00;
|
|
var_00 = [];
|
|
var_00[0] = %run_wizby_a;
|
|
var_00[1] = %run_wizby_b;
|
|
level.archetypes["soldier"]["running_react_to_bullets"] = var_00;
|
|
anim.var_4C94 = 0;
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_63BF()
|
|
{
|
|
thread bulletwhizbycheckloop();
|
|
}
|
|
|
|
//Function Number: 4
|
|
canreactagain()
|
|
{
|
|
return !isdefined(self.var_4C91) || gettime() - self.var_4C91 > 2000;
|
|
}
|
|
|
|
//Function Number: 5
|
|
bulletwhizbyreaction()
|
|
{
|
|
self endon("killanimscript");
|
|
self.var_4C91 = gettime();
|
|
self.a.var_5486 = "stop";
|
|
var_00 = isdefined(self.var_8DE9) && distancesquared(self.origin,self.var_8DE9.origin) < 160000;
|
|
self animmode("gravity");
|
|
self orientmode("face current");
|
|
if(var_00 || common_scripts\utility::func_1DE9())
|
|
{
|
|
self clearanim(%root,0.1);
|
|
var_01 = [];
|
|
var_01[0] = %exposed_idle_reacta;
|
|
var_01[1] = %exposed_idle_reactb;
|
|
var_01[2] = %exposed_idle_twitch;
|
|
var_01[3] = %exposed_idle_twitch_v4;
|
|
var_02 = var_01[randomint(var_01.size)];
|
|
if(var_00)
|
|
{
|
|
var_03 = 1 + randomfloat(0.5);
|
|
}
|
|
else
|
|
{
|
|
var_03 = 0.2 + randomfloat(0.5);
|
|
}
|
|
|
|
self setflaggedanimknobrestart("reactanim",var_02,1,0.1,1);
|
|
animscripts/notetracks::donotetracksfortime(var_03,"reactanim");
|
|
self clearanim(%root,0.1);
|
|
if(!var_00 && self.stairsstate == "none" && !isdefined(self.var_275C))
|
|
{
|
|
var_04 = 1 + randomfloat(0.2);
|
|
var_05 = animscripts/utility::func_632D(%exposed_dive_grenade_b,%exposed_dive_grenade_f);
|
|
self setflaggedanimknobrestart("dive",var_05,1,0.1,var_04);
|
|
animscripts/shared::func_2986("dive");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
wait(randomfloat(0.2));
|
|
var_04 = 1.2 + randomfloat(0.3);
|
|
if(self.a.var_60B1 == "stand")
|
|
{
|
|
self clearanim(%root,0.1);
|
|
self setflaggedanimknobrestart("crouch",%exposed_stand_2_crouch,1,0.1,var_04);
|
|
animscripts/shared::func_2986("crouch");
|
|
}
|
|
|
|
var_06 = anglestoforward(self.angles);
|
|
if(isdefined(self.var_8DE9))
|
|
{
|
|
var_07 = vectornormalize(self.var_8DE9.origin - self.origin);
|
|
}
|
|
else
|
|
{
|
|
var_07 = var_07;
|
|
}
|
|
|
|
if(vectordot(var_07,var_06) > 0)
|
|
{
|
|
var_08 = animscripts/utility::func_632D(%exposed_crouch_idle_twitch_v2,%exposed_crouch_idle_twitch_v3);
|
|
self clearanim(%root,0.1);
|
|
self setflaggedanimknobrestart("twitch",var_08,1,0.1,1);
|
|
animscripts/shared::func_2986("twitch");
|
|
}
|
|
else
|
|
{
|
|
var_09 = animscripts/utility::func_632D(%exposed_crouch_turn_180_left,%exposed_crouch_turn_180_right);
|
|
self clearanim(%root,0.1);
|
|
self setflaggedanimknobrestart("turn",var_09,1,0.1,1);
|
|
animscripts/shared::func_2986("turn");
|
|
}
|
|
}
|
|
|
|
self clearanim(%root,0.1);
|
|
self.var_8DE9 = undefined;
|
|
self animmode("normal");
|
|
self orientmode("face default");
|
|
}
|
|
|
|
//Function Number: 6
|
|
bulletwhizbycheckloop()
|
|
{
|
|
self endon("killanimscript");
|
|
if(isdefined(self.var_279D))
|
|
{
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
self waittill("bulletwhizby",var_00);
|
|
if(!isdefined(var_00.team) || self.team == var_00.team)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(self.var_1FCA) || isdefined(self.var_CFA))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(self.a.var_60B1 != "stand")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!canreactagain())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
self.var_8DE9 = var_00;
|
|
self animcustom(::bulletwhizbyreaction);
|
|
}
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_1D46()
|
|
{
|
|
self endon("killanimscript");
|
|
wait(0.3);
|
|
self setlookatentity();
|
|
}
|
|
|
|
//Function Number: 8
|
|
getnewenemyreactionanim()
|
|
{
|
|
var_00 = undefined;
|
|
if(self nearclaimnodeandangle())
|
|
{
|
|
var_01 = animscripts/utility::func_4F5D("cover_reactions");
|
|
if(isdefined(var_01[self.prevscript]))
|
|
{
|
|
var_02 = anglestoforward(self.node.angles);
|
|
var_03 = vectornormalize(self.reactiontargetpos - self.origin);
|
|
if(vectordot(var_02,var_03) < -0.5)
|
|
{
|
|
self orientmode("face current");
|
|
var_04 = randomint(var_01[self.prevscript].size);
|
|
var_00 = var_01[self.prevscript][var_04];
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!isdefined(var_00))
|
|
{
|
|
var_05 = [];
|
|
var_05[0] = %exposed_backpedal;
|
|
var_05[1] = %exposed_idle_reactb;
|
|
if(isdefined(self.enemy) && distancesquared(self.enemy.origin,self.reactiontargetpos) < 65536)
|
|
{
|
|
self orientmode("face enemy");
|
|
}
|
|
else
|
|
{
|
|
self orientmode("face point",self.reactiontargetpos);
|
|
}
|
|
|
|
if(self.a.var_60B1 == "crouch")
|
|
{
|
|
var_03 = vectornormalize(self.reactiontargetpos - self.origin);
|
|
var_06 = anglestoforward(self.angles);
|
|
if(vectordot(var_06,var_03) < -0.5)
|
|
{
|
|
self orientmode("face current");
|
|
var_05[0] = %crouch_cover_reaction_a;
|
|
var_05[1] = %crouch_cover_reaction_b;
|
|
}
|
|
}
|
|
|
|
var_00 = var_05[randomint(var_05.size)];
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 9
|
|
stealthnewenemyreactanim()
|
|
{
|
|
self clearanim(%root,0.2);
|
|
if(randomint(4) < 3)
|
|
{
|
|
self orientmode("face enemy");
|
|
self setflaggedanimknobrestart("reactanim",%exposed_idle_reactb,1,0.2,1);
|
|
var_00 = getanimlength(%exposed_idle_reactb);
|
|
animscripts/notetracks::donotetracksfortime(var_00 * 0.8,"reactanim");
|
|
self orientmode("face current");
|
|
}
|
|
|
|
self orientmode("face enemy");
|
|
self setflaggedanimknobrestart("reactanim",%exposed_backpedal,1,0.2,1);
|
|
var_00 = getanimlength(%exposed_backpedal);
|
|
animscripts/notetracks::donotetracksfortime(var_00 * 0.8,"reactanim");
|
|
self orientmode("face current");
|
|
self clearanim(%root,0.2);
|
|
self setflaggedanimknobrestart("reactanim",%exposed_backpedal_v2,1,0.2,1);
|
|
animscripts/shared::func_2986("reactanim");
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_55C7()
|
|
{
|
|
self endon("death");
|
|
self endon("endNewEnemyReactionAnim");
|
|
self.var_4C91 = gettime();
|
|
self.a.var_5486 = "stop";
|
|
if(isdefined(self._stealth) && self.alertlevel != "combat")
|
|
{
|
|
stealthnewenemyreactanim();
|
|
}
|
|
else
|
|
{
|
|
var_00 = getnewenemyreactionanim();
|
|
self clearanim(%root,0.2);
|
|
self setflaggedanimknobrestart("reactanim",var_00,1,0.2,1);
|
|
animscripts/shared::func_2986("reactanim");
|
|
}
|
|
|
|
self notify("newEnemyReactionDone");
|
|
}
|
|
|
|
//Function Number: 11
|
|
newenemysurprisedreaction()
|
|
{
|
|
self endon("death");
|
|
if(isdefined(self.var_27BB))
|
|
{
|
|
}
|
|
|
|
if(!canreactagain())
|
|
{
|
|
}
|
|
|
|
if(self.a.var_60B1 == "prone" || isdefined(self.a.onback))
|
|
{
|
|
}
|
|
|
|
self animmode("gravity");
|
|
if(isdefined(self.enemy))
|
|
{
|
|
func_55C7();
|
|
}
|
|
} |