Added MW3 Scripts

This commit is contained in:
InfinityLoader
2023-10-27 03:47:01 -04:00
commit d559c1d414
981 changed files with 539970 additions and 0 deletions

View File

@ -0,0 +1,131 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\animmode.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 60 ms
* Timestamp: 10/27/2023 2:17:35 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self endon("stop_animmode");
self notify("killanimscript");
self._tag_entity endon(self._anime);
if(isdefined(self._custom_anim_thread))
{
self thread [[ self._custom_anim_thread ]]();
self._custom_anim_thread = undefined;
}
var_00 = isdefined(self._custom_anim_loop) && self._custom_anim_loop;
if(var_00)
{
self endon("stop_loop");
self._custom_anim_loop = undefined;
}
else
{
thread func_0C63(self._anime);
}
var_01 = self._anime;
self._anime = undefined;
var_02 = 0;
if(var_00)
{
var_02 = level.scr_anim[self._animname][var_01].size;
var_03 = level.scr_anim[self._animname][var_01][randomint(var_02)];
}
else
{
var_03 = level.scr_anim[self._animname][var_02];
}
var_04 = getstartorigin(self._tag_entity.origin,self._tag_entity.angles,var_03);
var_05 = getstartangles(self._tag_entity.origin,self._tag_entity.angles,var_03);
var_06 = self getdroptofloorposition(var_04);
if(isdefined(var_06))
{
var_04 = var_06;
}
else
{
}
if(!isdefined(self.noteleport))
{
self teleport(var_04,var_05);
}
self.pushable = 0;
var_07 = 0.3;
var_08 = 0.2;
if(isdefined(self.var_C5F))
{
var_07 = self.var_C5F;
var_08 = self.var_C5F;
}
self animmode(self._animmode);
self clearanim(self.var_C56,var_07);
self orientmode("face angle",var_05[1]);
var_09 = "custom_animmode";
self setflaggedanimrestart(var_09,var_03,1,var_08,1);
self._tag_entity thread maps\_anim::start_notetrack_wait(self,var_09,var_01,self._animname);
self._tag_entity thread maps\_anim::animscriptdonotetracksthread(self,var_09,var_01);
var_0A = self._tag_entity;
self._tag_entity = undefined;
self._animmode = undefined;
self endon("killanimscript");
var_0B = "end";
if(!var_00)
{
if(animhasnotetrack(var_03,"finish"))
{
var_0B = "finish";
}
else if(animhasnotetrack(var_03,"stop anim"))
{
var_0B = "stop anim";
}
}
for(;;)
{
self waittillmatch(var_0B,var_09);
if(var_00)
{
var_03 = level.scr_anim[self._animname][var_01][randomint(var_02)];
self setflaggedanimknoblimitedrestart(var_09,var_03,1,0.2,1);
if(isdefined(var_0A))
{
var_0A thread maps\_anim::start_notetrack_wait(self,var_09,var_01,self._animname);
var_0A thread maps\_anim::animscriptdonotetracksthread(self,var_09,var_01);
}
continue;
}
break;
}
if(var_0B != "end")
{
self orientmode("face motion");
}
self notify("finished_custom_animmode" + var_01);
}
//Function Number: 2
func_0C63(param_00)
{
self endon("death");
self endon("finished_custom_animmode" + param_00);
self waittill("killanimscript");
self notify("finished_custom_animmode" + param_00);
}

View File

@ -0,0 +1,669 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\animset.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 37
* Decompile Time: 721 ms
* Timestamp: 10/27/2023 2:17:37 AM
*******************************************************************/
//Function Number: 1
func_0C64()
{
anim.animsets = spawnstruct();
level.animsets.move = [];
func_0C77();
func_0C73();
func_0C6C();
func_0C6F();
func_0C71();
func_0C75();
func_0C79();
func_0C7B();
func_0C7D();
func_0C7F();
func_0C67();
func_0C6A();
func_0C6B();
func_0C69();
func_0C9D();
}
//Function Number: 2
func_0C67()
{
anim.var_C68 = [];
level.var_C68["sprint"] = %sprint_loop_distant;
level.var_C68["sprint_short"] = %sprint1_loop;
level.var_C68["prone"] = %prone_crawl;
level.var_C68["straight"] = %run_lowready_f;
level.var_C68["move_f"] = %walk_forward;
level.var_C68["move_l"] = %walk_left;
level.var_C68["move_r"] = %walk_right;
level.var_C68["move_b"] = %walk_backward;
level.var_C68["crouch"] = %crouch_fastwalk_f;
level.var_C68["crouch_l"] = %crouch_fastwalk_l;
level.var_C68["crouch_r"] = %crouch_fastwalk_r;
level.var_C68["crouch_b"] = %crouch_fastwalk_b;
level.var_C68["stairs_up"] = %traverse_stair_run_01;
level.var_C68["stairs_down"] = %traverse_stair_run_down;
level.animsets.move["run"] = level.var_C68;
}
//Function Number: 3
func_0C69()
{
anim.var_C68 = level.animsets.move["run"];
level.var_C68["straight"] = %heat_run_loop;
level.animsets.move["heat_run"] = level.var_C68;
}
//Function Number: 4
func_0C6A()
{
anim.var_C68 = [];
level.var_C68["sprint"] = %sprint_loop_distant;
level.var_C68["sprint_short"] = %sprint1_loop;
level.var_C68["prone"] = %prone_crawl;
level.var_C68["straight"] = %walk_cqb_f;
level.var_C68["move_f"] = %walk_cqb_f;
level.var_C68["move_l"] = %walk_left;
level.var_C68["move_r"] = %walk_right;
level.var_C68["move_b"] = %walk_backward;
level.var_C68["crouch"] = %crouch_fastwalk_f;
level.var_C68["crouch_l"] = %crouch_fastwalk_l;
level.var_C68["crouch_r"] = %crouch_fastwalk_r;
level.var_C68["crouch_b"] = %crouch_fastwalk_b;
level.var_C68["stairs_up"] = %traverse_stair_run;
level.var_C68["stairs_down"] = %traverse_stair_run_down_01;
level.animsets.move["walk"] = level.var_C68;
}
//Function Number: 5
func_0C6B()
{
anim.var_C68 = [];
level.var_C68["sprint"] = %sprint_loop_distant;
level.var_C68["sprint_short"] = %sprint1_loop;
level.var_C68["straight"] = %run_cqb_f_search_v1;
level.var_C68["move_f"] = %walk_cqb_f;
level.var_C68["move_l"] = %walk_left;
level.var_C68["move_r"] = %walk_right;
level.var_C68["move_b"] = %walk_backward;
level.var_C68["stairs_up"] = %traverse_stair_run;
level.var_C68["stairs_down"] = %traverse_stair_run_down_01;
level.animsets.move["cqb"] = level.var_C68;
}
//Function Number: 6
func_0C6C()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %pistol_stand_aim_8_add;
level.var_C68["add_aim_down"] = %pistol_stand_aim_2_add;
level.var_C68["add_aim_left"] = %pistol_stand_aim_4_add;
level.var_C68["add_aim_right"] = %pistol_stand_aim_6_add;
level.var_C68["straight_level"] = %pistol_stand_aim_5;
level.var_C68["fire"] = %pistol_stand_fire_a;
level.var_C68["single"] = animscripts/utility::array(%pistol_stand_fire_a);
level.var_C68["reload"] = animscripts/utility::array(%pistol_stand_reload_a);
level.var_C68["reload_crouchhide"] = animscripts/utility::array();
level.var_C68["exposed_idle"] = animscripts/utility::array(%exposed_idle_alert_v1,%exposed_idle_alert_v2,%exposed_idle_alert_v3);
func_0C8A();
level.var_C68["add_turn_aim_up"] = %pistol_stand_aim_8_alt;
level.var_C68["add_turn_aim_down"] = %pistol_stand_aim_2_alt;
level.var_C68["add_turn_aim_left"] = %pistol_stand_aim_4_alt;
level.var_C68["add_turn_aim_right"] = %pistol_stand_aim_6_alt;
level.animsets.var_C6E = level.var_C68;
}
//Function Number: 7
func_0C6F()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %rpg_stand_aim_8;
level.var_C68["add_aim_down"] = %rpg_stand_aim_2;
level.var_C68["add_aim_left"] = %rpg_stand_aim_4;
level.var_C68["add_aim_right"] = %rpg_stand_aim_6;
level.var_C68["straight_level"] = %rpg_stand_aim_5;
level.var_C68["fire"] = %rpg_stand_fire;
level.var_C68["single"] = animscripts/utility::array(%exposed_shoot_semi1);
level.var_C68["reload"] = animscripts/utility::array(%rpg_stand_reload);
level.var_C68["reload_crouchhide"] = animscripts/utility::array();
level.var_C68["exposed_idle"] = animscripts/utility::array(%rpg_stand_idle);
func_0C8D();
func_0C8B();
func_0C92();
level.animsets.var_C70 = level.var_C68;
}
//Function Number: 8
func_0C71()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %shotgun_aim_8;
level.var_C68["add_aim_down"] = %shotgun_aim_2;
level.var_C68["add_aim_left"] = %shotgun_aim_4;
level.var_C68["add_aim_right"] = %shotgun_aim_6;
level.var_C68["straight_level"] = %shotgun_aim_5;
level.var_C68["fire"] = %exposed_shoot_auto_v3;
level.var_C68["single"] = animscripts/utility::array(%shotgun_stand_fire_1a,%shotgun_stand_fire_1b);
func_0C8E();
level.var_C68["exposed_idle"] = animscripts/utility::array(%exposed_idle_alert_v1,%exposed_idle_alert_v2,%exposed_idle_alert_v3);
level.var_C68["reload"] = animscripts/utility::array(%shotgun_stand_reload_a,%shotgun_stand_reload_b,%shotgun_stand_reload_c,%shotgun_stand_reload_c,%shotgun_stand_reload_c);
level.var_C68["reload_crouchhide"] = animscripts/utility::array(%shotgun_stand_reload_a,%shotgun_stand_reload_b);
func_0C8D();
func_0C8B();
func_0C92();
level.animsets.var_C72 = level.var_C68;
}
//Function Number: 9
func_0C73()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %cqb_stand_aim8;
level.var_C68["add_aim_down"] = %cqb_stand_aim2;
level.var_C68["add_aim_left"] = %cqb_stand_aim4;
level.var_C68["add_aim_right"] = %cqb_stand_aim6;
level.var_C68["straight_level"] = %cqb_stand_aim5;
level.var_C68["fire"] = %exposed_shoot_auto_v3;
level.var_C68["single"] = animscripts/utility::array(%exposed_shoot_semi1);
func_0C8E();
level.var_C68["exposed_idle"] = animscripts/utility::array(%exposed_idle_alert_v1,%exposed_idle_alert_v2,%exposed_idle_alert_v3);
level.var_C68["reload"] = animscripts/utility::array(%cqb_stand_reload_steady);
level.var_C68["reload_crouchhide"] = animscripts/utility::array(%cqb_stand_reload_knee);
func_0C8D();
func_0C8B();
func_0C92();
level.animsets.var_C74 = level.var_C68;
}
//Function Number: 10
func_0C75()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %heat_stand_aim_8;
level.var_C68["add_aim_down"] = %heat_stand_aim_2;
level.var_C68["add_aim_left"] = %heat_stand_aim_4;
level.var_C68["add_aim_right"] = %heat_stand_aim_6;
level.var_C68["straight_level"] = %heat_stand_aim_5;
level.var_C68["fire"] = %heat_stand_fire_auto;
level.var_C68["single"] = animscripts/utility::array(%heat_stand_fire_single);
func_0C8F(%heat_stand_fire_burst);
level.var_C68["exposed_idle"] = animscripts/utility::array(%heat_stand_idle,%heat_stand_scana,%heat_stand_scanb);
level.var_C68["reload"] = animscripts/utility::array(%heat_exposed_reload);
level.var_C68["reload_crouchhide"] = animscripts/utility::array();
func_0C8D();
level.var_C68["turn_left_45"] = %heat_stand_turn_l;
level.var_C68["turn_left_90"] = %heat_stand_turn_l;
level.var_C68["turn_left_135"] = %heat_stand_turn_180;
level.var_C68["turn_left_180"] = %heat_stand_turn_180;
level.var_C68["turn_right_45"] = %heat_stand_turn_r;
level.var_C68["turn_right_90"] = %heat_stand_turn_r;
level.var_C68["turn_right_135"] = %heat_stand_turn_180;
level.var_C68["turn_right_180"] = %heat_stand_turn_180;
func_0C92();
level.animsets.var_C76 = level.var_C68;
}
//Function Number: 11
func_0C77()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %exposed_aim_8;
level.var_C68["add_aim_down"] = %exposed_aim_2;
level.var_C68["add_aim_left"] = %exposed_aim_4;
level.var_C68["add_aim_right"] = %exposed_aim_6;
level.var_C68["straight_level"] = %exposed_aim_5;
level.var_C68["fire"] = %exposed_shoot_auto_v3;
level.var_C68["single"] = animscripts/utility::array(%exposed_shoot_semi1);
func_0C8E();
level.var_C68["exposed_idle"] = animscripts/utility::array(%exposed_idle_alert_v1,%exposed_idle_alert_v2,%exposed_idle_alert_v3);
level.var_C68["exposed_grenade"] = animscripts/utility::array(%exposed_grenadethrowb,%exposed_grenadethrowc);
level.var_C68["reload"] = animscripts/utility::array(%exposed_reload);
level.var_C68["reload_crouchhide"] = animscripts/utility::array(%exposed_reloadb);
func_0C8D();
func_0C8B();
func_0C92();
level.animsets.var_C78 = level.var_C68;
}
//Function Number: 12
func_0C79()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %exposed_crouch_aim_8;
level.var_C68["add_aim_down"] = %exposed_crouch_aim_2;
level.var_C68["add_aim_left"] = %exposed_crouch_aim_4;
level.var_C68["add_aim_right"] = %exposed_crouch_aim_6;
level.var_C68["straight_level"] = %exposed_crouch_aim_5;
level.var_C68["fire"] = %exposed_crouch_shoot_auto_v2;
level.var_C68["single"] = animscripts/utility::array(%exposed_crouch_shoot_semi1);
func_0C90();
level.var_C68["reload"] = animscripts/utility::array(%exposed_crouch_reload);
level.var_C68["exposed_idle"] = animscripts/utility::array(%exposed_crouch_idle_alert_v1,%exposed_crouch_idle_alert_v2,%exposed_crouch_idle_alert_v3);
func_0C8D();
func_0C8C();
func_0C93();
level.animsets.var_C7A = level.var_C68;
}
//Function Number: 13
func_0C7B()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %rpg_crouch_aim_8;
level.var_C68["add_aim_down"] = %rpg_crouch_aim_2;
level.var_C68["add_aim_left"] = %rpg_crouch_aim_4;
level.var_C68["add_aim_right"] = %rpg_crouch_aim_6;
level.var_C68["straight_level"] = %rpg_crouch_aim_5;
level.var_C68["fire"] = %rpg_crouch_fire;
level.var_C68["single"] = animscripts/utility::array(%rpg_crouch_fire);
level.var_C68["reload"] = animscripts/utility::array(%rpg_crouch_reload);
level.var_C68["exposed_idle"] = animscripts/utility::array(%rpg_crouch_idle);
func_0C8D();
func_0C8C();
func_0C93();
level.animsets.var_C7C = level.var_C68;
}
//Function Number: 14
func_0C7D()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %exposed_crouch_aim_8;
level.var_C68["add_aim_down"] = %exposed_crouch_aim_2;
level.var_C68["add_aim_left"] = %exposed_crouch_aim_4;
level.var_C68["add_aim_right"] = %exposed_crouch_aim_6;
level.var_C68["straight_level"] = %exposed_crouch_aim_5;
level.var_C68["fire"] = %exposed_crouch_shoot_auto_v2;
level.var_C68["single"] = animscripts/utility::array(%shotgun_crouch_fire);
func_0C90();
level.var_C68["reload"] = animscripts/utility::array(%shotgun_crouch_reload);
level.var_C68["exposed_idle"] = animscripts/utility::array(%exposed_crouch_idle_alert_v1,%exposed_crouch_idle_alert_v2,%exposed_crouch_idle_alert_v3);
func_0C8D();
func_0C8C();
func_0C93();
level.animsets.var_C7E = level.var_C68;
}
//Function Number: 15
func_0C7F()
{
anim.var_C68 = [];
level.var_C68["add_aim_up"] = %prone_aim_8_add;
level.var_C68["add_aim_down"] = %prone_aim_2_add;
level.var_C68["add_aim_left"] = %prone_aim_4_add;
level.var_C68["add_aim_right"] = %prone_aim_6_add;
level.var_C68["straight_level"] = %prone_aim_5;
level.var_C68["fire"] = %prone_fire_1;
level.var_C68["single"] = animscripts/utility::array(%prone_fire_1);
level.var_C68["reload"] = animscripts/utility::array(%prone_reload);
level.var_C68["burst2"] = %prone_fire_burst;
level.var_C68["burst3"] = %prone_fire_burst;
level.var_C68["burst4"] = %prone_fire_burst;
level.var_C68["burst5"] = %prone_fire_burst;
level.var_C68["burst6"] = %prone_fire_burst;
level.var_C68["semi2"] = %prone_fire_burst;
level.var_C68["semi3"] = %prone_fire_burst;
level.var_C68["semi4"] = %prone_fire_burst;
level.var_C68["semi5"] = %prone_fire_burst;
level.var_C68["exposed_idle"] = animscripts/utility::array(%exposed_crouch_idle_alert_v1,%exposed_crouch_idle_alert_v2,%exposed_crouch_idle_alert_v3);
func_0C8D();
level.animsets.var_C80 = level.var_C68;
}
//Function Number: 16
func_0C81(param_00)
{
self.var_C82 = param_00;
}
//Function Number: 17
func_0C83(param_00,param_01,param_02,param_03)
{
anim.var_C68 = level.animsets.var_C78;
if(isdefined(param_01))
{
level.var_C68["straight_level"] = param_01;
}
if(isdefined(param_00))
{
level.var_C68["fire"] = param_00;
level.var_C68["single"] = animscripts/utility::array(param_00);
func_0C8F(param_00);
}
if(isdefined(param_02))
{
level.var_C68["exposed_idle"] = animscripts/utility::array(param_02);
}
if(isdefined(param_03))
{
level.var_C68["reload"] = animscripts/utility::array(param_03);
level.var_C68["reload_crouchhide"] = animscripts/utility::array(param_03);
}
self.var_C82 = level.var_C68;
}
//Function Number: 18
func_0C84(param_00)
{
self.var_C85 = param_00;
}
//Function Number: 19
func_0C86(param_00,param_01,param_02)
{
anim.var_C68 = level.animsets.var_C7A;
if(isdefined(param_00))
{
level.var_C68["fire"] = param_00;
level.var_C68["single"] = animscripts/utility::array(param_00);
func_0C91(param_00);
}
if(isdefined(param_01))
{
level.var_C68["exposed_idle"] = animscripts/utility::array(param_01);
}
if(isdefined(param_02))
{
level.var_C68["reload"] = animscripts/utility::array(param_02);
}
self.var_C85 = level.var_C68;
}
//Function Number: 20
func_0C87()
{
self.custommoveanimset = undefined;
self.var_C89 = undefined;
self.var_C82 = undefined;
self.var_C85 = undefined;
}
//Function Number: 21
func_0C8A(param_00)
{
level.var_C68["turn_left_45"] = %pistol_stand_turn45l;
level.var_C68["turn_left_90"] = %pistol_stand_turn90l;
level.var_C68["turn_left_135"] = %pistol_stand_turn90l;
level.var_C68["turn_left_180"] = %pistol_stand_turn180l;
level.var_C68["turn_right_45"] = %pistol_stand_turn45r;
level.var_C68["turn_right_90"] = %pistol_stand_turn90r;
level.var_C68["turn_right_135"] = %pistol_stand_turn90r;
level.var_C68["turn_right_180"] = %pistol_stand_turn180l;
}
//Function Number: 22
func_0C8B()
{
level.var_C68["turn_left_45"] = %exposed_tracking_turn45l;
level.var_C68["turn_left_90"] = %exposed_tracking_turn90l;
level.var_C68["turn_left_135"] = %exposed_tracking_turn135l;
level.var_C68["turn_left_180"] = %exposed_tracking_turn180l;
level.var_C68["turn_right_45"] = %exposed_tracking_turn45r;
level.var_C68["turn_right_90"] = %exposed_tracking_turn90r;
level.var_C68["turn_right_135"] = %exposed_tracking_turn135r;
level.var_C68["turn_right_180"] = %exposed_tracking_turn180r;
}
//Function Number: 23
func_0C8C()
{
level.var_C68["turn_left_45"] = %exposed_crouch_turn_90_left;
level.var_C68["turn_left_90"] = %exposed_crouch_turn_90_left;
level.var_C68["turn_left_135"] = %exposed_crouch_turn_180_left;
level.var_C68["turn_left_180"] = %exposed_crouch_turn_180_left;
level.var_C68["turn_right_45"] = %exposed_crouch_turn_90_right;
level.var_C68["turn_right_90"] = %exposed_crouch_turn_90_right;
level.var_C68["turn_right_135"] = %exposed_crouch_turn_180_right;
level.var_C68["turn_right_180"] = %exposed_crouch_turn_180_right;
}
//Function Number: 24
func_0C8D()
{
level.var_C68["crouch_2_stand"] = %exposed_crouch_2_stand;
level.var_C68["crouch_2_prone"] = %crouch_2_prone;
level.var_C68["stand_2_crouch"] = %exposed_stand_2_crouch;
level.var_C68["stand_2_prone"] = %stand_2_prone;
level.var_C68["prone_2_crouch"] = %prone_2_crouch;
level.var_C68["prone_2_stand"] = %prone_2_stand;
}
//Function Number: 25
func_0C8E()
{
level.var_C68["burst2"] = %exposed_shoot_burst3;
level.var_C68["burst3"] = %exposed_shoot_burst3;
level.var_C68["burst4"] = %exposed_shoot_burst4;
level.var_C68["burst5"] = %exposed_shoot_burst5;
level.var_C68["burst6"] = %exposed_shoot_burst6;
level.var_C68["semi2"] = %exposed_shoot_semi2;
level.var_C68["semi3"] = %exposed_shoot_semi3;
level.var_C68["semi4"] = %exposed_shoot_semi4;
level.var_C68["semi5"] = %exposed_shoot_semi5;
}
//Function Number: 26
func_0C8F(param_00)
{
level.var_C68["burst2"] = param_00;
level.var_C68["burst3"] = param_00;
level.var_C68["burst4"] = param_00;
level.var_C68["burst5"] = param_00;
level.var_C68["burst6"] = param_00;
level.var_C68["semi2"] = param_00;
level.var_C68["semi3"] = param_00;
level.var_C68["semi4"] = param_00;
level.var_C68["semi5"] = param_00;
}
//Function Number: 27
func_0C90()
{
level.var_C68["burst2"] = %exposed_crouch_shoot_burst3;
level.var_C68["burst3"] = %exposed_crouch_shoot_burst3;
level.var_C68["burst4"] = %exposed_crouch_shoot_burst4;
level.var_C68["burst5"] = %exposed_crouch_shoot_burst5;
level.var_C68["burst6"] = %exposed_crouch_shoot_burst6;
level.var_C68["semi2"] = %exposed_crouch_shoot_semi2;
level.var_C68["semi3"] = %exposed_crouch_shoot_semi3;
level.var_C68["semi4"] = %exposed_crouch_shoot_semi4;
level.var_C68["semi5"] = %exposed_crouch_shoot_semi5;
}
//Function Number: 28
func_0C91(param_00)
{
level.var_C68["burst2"] = param_00;
level.var_C68["burst3"] = param_00;
level.var_C68["burst4"] = param_00;
level.var_C68["burst5"] = param_00;
level.var_C68["burst6"] = param_00;
level.var_C68["semi2"] = param_00;
level.var_C68["semi3"] = param_00;
level.var_C68["semi4"] = param_00;
level.var_C68["semi5"] = param_00;
}
//Function Number: 29
func_0C92()
{
level.var_C68["add_turn_aim_up"] = %exposed_turn_aim_8;
level.var_C68["add_turn_aim_down"] = %exposed_turn_aim_2;
level.var_C68["add_turn_aim_left"] = %exposed_turn_aim_4;
level.var_C68["add_turn_aim_right"] = %exposed_turn_aim_6;
}
//Function Number: 30
func_0C93()
{
level.var_C68["add_turn_aim_up"] = %exposed_crouch_turn_aim_8;
level.var_C68["add_turn_aim_down"] = %exposed_crouch_turn_aim_2;
level.var_C68["add_turn_aim_left"] = %exposed_crouch_turn_aim_4;
level.var_C68["add_turn_aim_right"] = %exposed_crouch_turn_aim_6;
}
//Function Number: 31
func_0C94()
{
if(animscripts/utility::func_C95())
{
self.a.array = level.animsets.var_C6E;
return;
}
if(isdefined(self.var_C82))
{
self.a.array = self.var_C82;
return;
}
if(isdefined(self.heat))
{
self.a.array = level.animsets.var_C76;
return;
}
if(animscripts/utility::func_BB6())
{
self.a.array = level.animsets.var_C70;
return;
}
if(isdefined(self.weapon) && animscripts/utility::func_C97())
{
self.a.array = level.animsets.var_C72;
return;
}
if(animscripts/utility::func_C98())
{
self.a.array = level.animsets.var_C74;
return;
}
self.a.array = level.animsets.var_C78;
}
//Function Number: 32
func_0C99()
{
if(animscripts/utility::func_C95())
{
animscripts/shared::func_C9B(self.primaryweapon,"right");
}
if(isdefined(self.var_C85))
{
self.a.array = self.var_C85;
return;
}
if(animscripts/utility::func_BB6())
{
self.a.array = level.animsets.var_C7C;
return;
}
if(isdefined(self.weapon) && animscripts/utility::func_C97())
{
self.a.array = level.animsets.var_C7E;
return;
}
self.a.array = level.animsets.var_C7A;
}
//Function Number: 33
func_0C9C()
{
if(animscripts/utility::func_C95())
{
animscripts/shared::func_C9B(self.primaryweapon,"right");
}
self.a.array = level.animsets.var_C80;
}
//Function Number: 34
func_0C9D()
{
level.var_C9E["L90"] = %run_turn_l90;
level.var_C9E["R90"] = %run_turn_r90;
level.var_C9E["L45"] = %run_turn_l45;
level.var_C9E["R45"] = %run_turn_r45;
level.var_C9E["L135"] = %run_turn_l135;
level.var_C9E["R135"] = %run_turn_r135;
level.var_C9E["180"] = %run_turn_180;
level.var_C9F["L90"] = %cqb_walk_turn_4;
level.var_C9F["R90"] = %cqb_walk_turn_6;
level.var_C9F["L45"] = %cqb_walk_turn_7;
level.var_C9F["R45"] = %cqb_walk_turn_9;
level.var_C9F["L135"] = %cqb_walk_turn_1;
level.var_C9F["R135"] = %cqb_walk_turn_3;
level.var_C9F["180"] = %cqb_walk_turn_2;
}
//Function Number: 35
func_0CA0()
{
self.var_CA1 = 130;
self.var_CA2 = 0.4615385;
self.var_CA3 = 0.3;
self.var_CA4["F"] = %run_n_gun_f;
self.var_CA4["L"] = %run_n_gun_l;
self.var_CA4["R"] = %run_n_gun_r;
self.var_CA4["LB"] = %run_n_gun_l_120;
self.var_CA4["RB"] = %run_n_gun_r_120;
}
//Function Number: 36
func_0CA5()
{
self.a.var_CA6["move_l"] = %combatwalk_l;
self.a.var_CA6["move_r"] = %combatwalk_r;
self.a.var_CA6["move_b"] = %combatwalk_b;
}
//Function Number: 37
func_0CA7()
{
if(self.weapon != self.primaryweapon)
{
return animscripts/utility::func_CA8("reload");
}
if(isdefined(self.node))
{
if(self nearclaimnodeandangle())
{
var_00 = undefined;
if(self.node.type == "Cover Left")
{
var_00 = %heat_cover_reload_r;
}
else if(self.node.type == "Cover Right")
{
var_00 = %heat_cover_reload_l;
}
if(isdefined(var_00))
{
return var_00;
}
}
}
return %heat_exposed_reload;
}

View File

@ -0,0 +1,655 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\atv.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 27
* Decompile Time: 478 ms
* Timestamp: 10/27/2023 2:17:39 AM
*******************************************************************/
//Function Number: 1
main()
{
self.var_EE8 = "none";
self.var_EE9 = undefined;
func_24CB();
func_0EF0();
}
//Function Number: 2
func_24CB()
{
self.grenadeawareness = 0;
self.a.pose = "crouch";
maps\_utility::disable_surprise();
self.allowpain = 0;
self.getoffvehiclefunc = ::func_24CC;
self.var_D4B = ::func_24E1;
self.disablebulletwhizbyreaction = 1;
}
//Function Number: 3
func_24CC()
{
self.allowpain = 1;
self.getoffvehiclefunc = undefined;
self.var_D4B = undefined;
self.a.var_CE6 = undefined;
self.disablebulletwhizbyreaction = undefined;
}
//Function Number: 4
func_0EF0()
{
var_00 = self.ridingvehicle.var_EF2 || self.ridingvehicle.riders.size == 1;
func_24E4(var_00);
if(var_00)
{
animscripts/shared::func_C9B(self.primaryweapon,"left");
self.var_716 = 90;
self.var_717 = -90;
animscripts/track::func_CC4(1,0.2);
thread func_24DC();
thread func_24CE();
}
else
{
animscripts/shared::func_C9B(self.primaryweapon,"none");
thread func_24CD();
}
func_24D0("driver");
}
//Function Number: 5
func_24CD()
{
self endon("death");
self endon("killanimscript");
var_00 = "left2right";
var_01 = [];
self setanimknoball(%atv_turn,%body,1,0);
self setanim(animscripts/utility::func_D4D("drive"),1,0);
self setanimknob(animscripts/utility::func_D4D(var_01),1,0);
self setanimtime(animscripts/utility::func_D4D(var_01),0.5);
for(;;)
{
if(self.ridingvehicle.steering_enable)
{
var_02 = 0.5 * 1 + maps\_vehicle::update_steering(self.ridingvehicle);
var_03 = self getanimtime(animscripts/utility::func_D4D(var_01));
if(var_01 == "right2left")
{
var_03 = 1 - var_03;
}
var_04 = 20 * abs(var_03 - var_02);
if(var_03 < var_02)
{
var_01 = "left2right";
var_04 = var_04 * var_7B["left2right"];
}
else
{
var_01 = "right2left";
var_04 = var_04 * var_7B["right2left"];
var_03 = 1 - var_03;
}
}
else
{
var_01 = "left2right";
var_04 = 0;
var_03 = 0.5;
}
self setanimknoblimited(animscripts/utility::func_D4D(var_01),1,0.1,var_04);
self setanimtime(animscripts/utility::func_D4D(var_01),var_03);
wait 0.05;
}
}
//Function Number: 6
func_24CE()
{
self endon("death");
self endon("killanimscript");
var_00 = 0.05;
var_01 = 0;
self setanimknoball(%atv_aiming,%body,1,0);
self setanimknob(animscripts/utility::func_D4D("idle"),1,0);
for(;;)
{
if(self.var_EE8 != "none")
{
self waittill("atv_event_finished");
continue;
}
var_02 = maps\_vehicle::update_steering(self.ridingvehicle);
var_03 = 1 - abs(var_02);
var_04 = max(0,0 - var_02);
var_05 = max(0,var_02);
self setanimlimited(animscripts/utility::func_D4D("straight_level_center"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("straight_level_left"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("straight_level_right"),var_05,var_00);
if(self.bulletsinclip <= 0)
{
animscripts/weaponlist::func_CD0();
var_01 = gettime() + 3000;
}
if(var_01 <= gettime())
{
func_24D1();
}
self setanimknoblimited(animscripts/utility::func_D4D("add_aim_left_center"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_left_left"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_left_right"),var_05,var_00);
self setanimknoblimited(animscripts/utility::func_D4D("add_aim_right_center"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_right_left"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_right_right"),var_05,var_00);
thread func_24D2();
wait 0.05;
}
}
//Function Number: 7
func_24CF(param_00)
{
self endon("death");
self.ridingvehicle.steering_enable = 0;
self setflaggedanimknoblimitedrestart("atv_event",param_00,1,0.17);
animscripts/shared::donotetracks("atv_event",::func_24DB);
self setanimknoblimited(animscripts/utility::func_D4D("event_restore"),1,0.1);
self.ridingvehicle.steering_enable = 1;
self.var_EE8 = "none";
self notify("atv_event_finished");
}
//Function Number: 8
func_24D0(param_00)
{
self endon("death");
self endon("killanimscript");
var_01 = self.ridingvehicle;
for(;;)
{
if(var_01.event["jump"][param_00])
{
var_01.event["jump"][param_00] = 0;
self notify("atv_event_occurred");
self.var_EE8 = "jump";
var_01.steering_enable = 0;
self setflaggedanimknoblimitedrestart("jump",animscripts/utility::func_D4D("event_jump"),1,0.17);
}
if(var_01.event["bump"][param_00])
{
var_01.event["bump"][param_00] = 0;
self notify("atv_event_occurred");
if(self.var_EE8 != "bump_big")
{
thread func_24CF(animscripts/utility::func_D4D("event_bump"));
}
}
if(var_01.event["bump_big"][param_00])
{
var_01.event["bump_big"][param_00] = 0;
self notify("atv_event_occurred");
self.var_EE8 = "bump_big";
thread func_24CF(animscripts/utility::func_D4D("event_bump_big"));
}
if(var_01.event["sway_left"][param_00])
{
var_01.event["sway_left"][param_00] = 0;
self notify("atv_event_occurred");
if(self.var_EE8 != "bump_big")
{
thread func_24CF(animscripts/utility::func_D4D("event_sway")["left"]);
}
}
if(var_01.event["sway_right"][param_00])
{
var_01.event["sway_right"][param_00] = 0;
self notify("atv_event_occurred");
if(self.var_EE8 != "bump_big")
{
thread func_24CF(animscripts/utility::func_D4D("event_sway")["right"]);
}
}
wait 0.05;
}
}
//Function Number: 9
func_24D1()
{
self notify("want_shoot_while_driving");
self setanim(%atv_add_fire,1,0.2);
if(isdefined(self.var_EE9))
{
return;
}
self.var_EE9 = 1;
thread func_24D3();
thread func_24D6();
}
//Function Number: 10
func_24D2()
{
self endon("killanimscript");
self endon("want_shoot_while_driving");
wait 0.05;
self notify("end_shoot_while_driving");
self.var_EE9 = undefined;
self clearanim(%atv_add_fire,0.2);
}
//Function Number: 11
func_24D3()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self.a.var_CE6 = ::func_24D5;
func_24D4();
self.var_EE9 = undefined;
}
//Function Number: 12
func_24D4()
{
self endon("atv_event_occurred");
animscripts/shoot_behavior::func_CD7("normal");
}
//Function Number: 13
func_24D5()
{
if(!isdefined(self.enemy))
{
self.var_CAB = undefined;
self.var_CB1 = undefined;
self.var_CDA = "none";
return;
}
self.var_CAB = self.enemy;
self.var_CB1 = self.enemy getshootatpos();
var_00 = distancesquared(self.origin,self.enemy.origin);
if(var_00 < 1000000)
{
self.var_CDA = "full";
}
else if(var_00 < 4000000)
{
self.var_CDA = "burst";
}
else
{
self.var_CDA = "single";
}
if(isdefined(self.enemy.vehicle))
{
var_01 = 0.5;
var_02 = self.var_CAB.vehicle;
var_03 = self.ridingvehicle;
var_04 = var_03.origin - var_02.origin;
var_05 = anglestoforward(var_02.angles);
var_06 = anglestoright(var_02.angles);
var_07 = vectordot(var_04,var_05);
if(var_07 < 0)
{
var_08 = var_02 vehicle_getspeed() * var_01;
var_08 = var_08 * 17.6;
if(var_08 > 50)
{
var_09 = vectordot(var_04,var_06);
var_09 = var_09 / 3;
if(var_09 > 128)
{
var_09 = 128;
}
else if(var_09 < -128)
{
var_09 = -128;
}
if(var_09 > 0)
{
var_09 = 128 - var_09;
}
else
{
var_09 = -128 - var_09;
}
self.var_CAB = undefined;
self.var_CB1 = var_02.origin + var_08 * var_05 + var_09 * var_06;
return;
}
}
}
}
//Function Number: 14
func_24D6()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self notify("doing_shootWhileDriving");
self endon("doing_shootWhileDriving");
for(;;)
{
if(!self.bulletsinclip)
{
wait 0.5;
continue;
}
animscripts/combat_utility::func_F06();
}
}
//Function Number: 15
func_24D7()
{
if(!self.ridingvehicle.steering_enable)
{
return 0;
}
if(!animscripts/combat_utility::func_F08(0))
{
return 0;
}
if(!animscripts/utility::func_EE3())
{
return 0;
}
func_24D8();
self notify("abort_reload");
return 1;
}
//Function Number: 16
func_24D8()
{
self endon("atv_event_occurred");
self.var_F0A = 1;
self waittill("start_blending_reload");
self setanim(%atv_aiming,0,0.25);
self setflaggedanimrestart("gun_down",animscripts/utility::func_D4D("gun_down"),1,0.25);
animscripts/shared::donotetracks("gun_down");
self clearanim(animscripts/utility::func_D4D("gun_down"),0);
self setflaggedanimknoballrestart("reload_anim",animscripts/utility::func_D4D("reload"),%body,1,0.25);
animscripts/shared::donotetracks("reload_anim");
self clearanim(%atv_reload,0.2);
self setflaggedanimrestart("gun_up",animscripts/utility::func_D4D("gun_up"),1,0.25);
self.var_F0B = 1;
animscripts/shared::donotetracks("gun_up",::func_24D9);
self.var_F0A = undefined;
self clearanim(%atv_reload,0.1);
self setanim(%atv_aiming,1,0.1);
if(isdefined(self.var_F0B))
{
self.var_F0B = undefined;
animscripts/shared::donotetracks("gun_up",::func_24DA);
self clearanim(animscripts/utility::func_D4D("gun_up"),0);
}
}
//Function Number: 17
func_24D9(param_00)
{
if(param_00 == "start_aim")
{
return 1;
}
}
//Function Number: 18
func_24DA(param_00)
{
if(param_00 == "end")
{
return 1;
}
}
//Function Number: 19
func_24DB(param_00)
{
if(param_00 == "start_lean")
{
return 1;
}
}
//Function Number: 20
func_24DC()
{
self endon("killanimscript");
self endon("stop tracking");
var_00 = 0.05;
var_01 = 8;
var_02 = 0;
var_03 = 0;
var_04 = 1;
for(;;)
{
animscripts/track::func_CC9();
var_05 = (self.origin[0],self.origin[1],self geteye()[2]);
var_06 = self.var_CB1;
if(isdefined(self.var_CAB))
{
var_06 = self.var_CAB getshootatpos();
}
if(!isdefined(var_06))
{
var_03 = 0;
var_07 = self getanglestolikelyenemypath();
if(isdefined(var_07))
{
var_03 = angleclamp180(self.angles[1] - var_07[1]);
}
}
else
{
var_08 = var_06 - var_05;
var_09 = vectortoangles(var_08);
var_03 = self.angles[1] - var_09[1];
var_03 = angleclamp180(var_03);
}
if(var_03 > self.var_716 || var_03 < self.var_717)
{
var_03 = 0;
}
if(var_04)
{
var_04 = 0;
}
else
{
var_0A = var_03 - var_02;
if(abs(var_0A) > var_01)
{
var_03 = var_02 + var_01 * common_scripts\utility::sign(var_0A);
}
}
var_02 = var_03;
var_0B = min(max(0 - var_03,0),90) / 90 * self.a.var_CC3;
var_0C = min(max(var_03,0),90) / 90 * self.a.var_CC3;
self setanimlimited(%atv_aim_4,var_0B,var_00);
self setanimlimited(%atv_aim_6,var_0C,var_00);
wait 0.05;
}
}
//Function Number: 21
func_24DD(param_00,param_01,param_02)
{
var_03 = undefined;
var_04 = undefined;
var_05 = 0;
for(var_06 = 0;var_06 < param_00.size;var_06++)
{
var_07 = animscripts/utility::func_D61(param_02 - param_01[var_06]);
if(!isdefined(var_03) || var_07 < var_05)
{
var_04 = var_03;
var_03 = param_00[var_06];
var_05 = var_07;
continue;
}
if(!isdefined(var_04))
{
var_04 = param_00[var_06];
}
}
var_08 = var_03;
if(isdefined(level.var_24DE) && var_08 == level.var_24DE && gettime() - level.var_24DF < 500)
{
var_08 = var_04;
}
anim.var_24DE = var_08;
anim.var_24DF = gettime();
return var_08;
}
//Function Number: 22
func_24E0()
{
var_00 = self.ridingvehicle;
var_01 = var_00.var_F15;
var_01 = (var_01[0],var_01[1],randomfloatrange(200,400)) * 0.75;
if(lengthsquared(var_01) > 1000000)
{
var_01 = vectornormalize(var_01) * 1000;
}
var_02 = spawn("script_origin",self.origin);
var_02 moveslide((0,0,40),15,var_01);
self linkto(var_02);
var_02 thread func_0F18();
}
//Function Number: 23
func_24E1()
{
var_00 = [];
var_01 = [];
var_02 = func_24DD(var_7B,var_01,self.var_723);
animscripts/death::func_D56(var_02);
return 1;
}
//Function Number: 24
func_24E2()
{
var_00 = self.ridingvehicle;
if(!isdefined(var_00))
{
return func_24E1();
}
var_01 = var_00.var_F15;
func_24E0();
var_02 = vectortoangles(var_01);
var_03 = angleclamp180(var_02[1] - self.angles[1]);
var_04 = [];
var_05 = [];
var_06 = func_24DD(var_7B,var_05,var_04);
animscripts/death::func_D56(var_06);
return 1;
}
//Function Number: 25
func_0F18()
{
var_00 = self.origin;
for(var_01 = 0;var_01 < 60;var_01++)
{
wait 0.05;
var_00 = self.origin;
}
wait 3;
if(isdefined(self))
{
self delete();
}
}
//Function Number: 26
func_24E3(param_00)
{
self.a.array["idle"] = level.scr_anim["atv"][param_00]["idle"];
self.a.array["drive"] = level.scr_anim["atv"][param_00]["drive"];
self.a.array["fire"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["single"] = animscripts/utility::array(level.scr_anim["atv"][param_00]["single"]);
self.a.array["burst2"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["burst3"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["burst4"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["burst5"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["burst6"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["semi2"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["semi3"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["semi4"] = level.scr_anim["atv"][param_00]["fire"];
self.a.array["semi5"] = level.scr_anim["atv"][param_00]["fire"];
}
//Function Number: 27
func_24E4(param_00)
{
self.a.array = [];
func_24E3("driver");
self.a.array["left2right"] = level.scr_anim["atv"]["driver"]["left2right"];
self.a.array["right2left"] = level.scr_anim["atv"]["driver"]["right2left"];
self.a.array["straight_level_left"] = level.scr_anim["atv"]["driver"]["straight_level"]["left"];
self.a.array["straight_level_center"] = level.scr_anim["atv"]["driver"]["straight_level"]["center"];
self.a.array["straight_level_right"] = level.scr_anim["atv"]["driver"]["straight_level"]["right"];
self.a.array["add_aim_left_left"] = level.scr_anim["atv"]["driver"]["add_aim_left"]["left"];
self.a.array["add_aim_left_center"] = level.scr_anim["atv"]["driver"]["add_aim_left"]["center"];
self.a.array["add_aim_left_right"] = level.scr_anim["atv"]["driver"]["add_aim_left"]["right"];
self.a.array["add_aim_right_left"] = level.scr_anim["atv"]["driver"]["add_aim_right"]["left"];
self.a.array["add_aim_right_center"] = level.scr_anim["atv"]["driver"]["add_aim_right"]["center"];
self.a.array["add_aim_right_right"] = level.scr_anim["atv"]["driver"]["add_aim_right"]["right"];
if(param_00)
{
self.a.array["event_jump"] = level.scr_anim["atv"]["driver"]["shoot_jump"];
self.a.array["event_bump"] = level.scr_anim["atv"]["driver"]["shoot_bump"];
self.a.array["event_bump_big"] = level.scr_anim["atv"]["driver"]["shoot_bump_big"];
self.a.array["event_sway"] = [];
self.a.array["event_sway"]["left"] = level.scr_anim["atv"]["driver"]["shoot_sway_left"];
self.a.array["event_sway"]["right"] = level.scr_anim["atv"]["driver"]["shoot_sway_right"];
self.a.array["event_restore"] = %atv_aiming;
return;
}
self.a.array["event_jump"] = level.scr_anim["atv"]["driver"]["drive_jump"];
self.a.array["event_bump"] = level.scr_anim["atv"]["driver"]["drive_bump"];
self.a.array["event_bump_big"] = level.scr_anim["atv"]["driver"]["drive_bump_big"];
self.a.array["event_sway"] = [];
self.a.array["event_sway"]["left"] = level.scr_anim["atv"]["driver"]["drive_sway_left"];
self.a.array["event_sway"]["right"] = level.scr_anim["atv"]["driver"]["drive_sway_right"];
self.a.array["event_restore"] = %atv_turn;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\civilian.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 4
* Decompile Time: 77 ms
* Timestamp: 10/27/2023 2:17:52 AM
*******************************************************************/
//Function Number: 1
func_400A()
{
self endon("killanimscript");
self clearanim(%root,0.2);
if(animscripts/utility::func_A69())
{
var_00 = "idle_combat";
}
else
{
var_00 = "idle_noncombat";
}
var_01 = undefined;
if(isdefined(self.animname) && isdefined(level.scr_anim[self.animname]))
{
var_01 = level.scr_anim[self.animname][var_00];
}
if(!isdefined(var_01))
{
if(!isdefined(level.scr_anim["default_civilian"]))
{
return;
}
var_01 = level.scr_anim["default_civilian"][var_00];
}
thread func_400B();
for(;;)
{
self setflaggedanimknoball("idle",common_scripts\utility::random(var_01),%root,1,0.2,1);
self waittillmatch("end","idle");
}
}
//Function Number: 2
func_400B()
{
self endon("killanimscript");
while(!isdefined(self.var_400C))
{
wait 1;
}
}
//Function Number: 3
func_400D()
{
func_400A();
}
//Function Number: 4
func_400E()
{
return level.var_400F[randomint(level.var_400F.size)];
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\combat_say.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 44 ms
* Timestamp: 10/27/2023 2:17:56 AM
*******************************************************************/
//Function Number: 1
func_3FDA()
{
animscripts/battlechatter::func_ABF();
}
//Function Number: 2
func_3FDB(param_00)
{
animscripts/battlechatter::func_ABF();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,982 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_behavior.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 37
* Decompile Time: 637 ms
* Timestamp: 10/27/2023 2:18:09 AM
*******************************************************************/
//Function Number: 1
main(param_00)
{
self.var_CF9 = self.origin;
var_01 = gettime();
var_02 = spawnstruct();
var_02.var_F2E = var_01 - 1;
var_02.var_F2F = var_01 - 1;
func_0F69();
func_0F68();
self.var_F30 = gettime();
self.a.var_F31 = var_01;
self.a.var_F32 = 0;
self.a.movement = "stop";
self.var_F33 = var_01 + 3000;
thread func_0F50();
var_03 = gettime() > 2500;
var_04 = func_0F40();
for(;;)
{
if(animscripts/combat_utility::func_F34())
{
if(animscripts/combat_utility::func_F35(1))
{
wait 0.05;
continue;
}
}
if(isdefined(param_00.var_F36))
{
var_05 = gettime();
thread func_0F60();
[[ param_00.var_F36 ]]();
if(gettime() == var_05)
{
self notify("dont_end_idle");
}
}
if(isdefined(param_00.var_F37))
{
if([[ param_00.var_F37 ]]())
{
continue;
}
}
self safeteleport(self.var_CAF.origin,var_04);
if(!var_03)
{
idle(param_00,0.05 + randomfloat(1.5));
var_03 = 1;
continue;
}
if(func_0F44(param_00))
{
continue;
}
if(isdefined(level.throwgrenadeatplayerasap) && isalive(level.player))
{
if(func_0F61(param_00,level.player))
{
continue;
}
}
if(func_0F42())
{
return;
}
var_06 = 0;
var_07 = 0;
if(isalive(self.enemy))
{
var_06 = func_0F49();
var_07 = animscripts/utility::func_F39();
}
if(var_06)
{
if(self.a.var_F3A < gettime())
{
if(animscripts/combat_utility::func_F3B())
{
return;
}
}
func_0F45(param_00);
continue;
}
if(isdefined(self.aggressivemode) || func_0F67())
{
if(func_0F6D())
{
return;
}
}
if(var_07)
{
func_0F46(param_00,var_02);
continue;
}
if(func_0F48(param_00,var_02))
{
return;
}
}
}
//Function Number: 2
func_067F(param_00)
{
self.var_F3D = undefined;
self.a.var_F3E = undefined;
if(isdefined(self.var_F33) && self.var_F33 <= gettime())
{
self.var_F3F = gettime() + 5000;
self.var_F33 = undefined;
}
}
//Function Number: 3
func_0F40()
{
var_00 = (self.var_CAF.angles[0],animscripts/utility::func_F41(self.var_CAF),self.var_CAF.angles[2]);
return var_00;
}
//Function Number: 4
func_0F42()
{
if(self atdangerousnode() && self.a.var_F43 < gettime())
{
if(animscripts/combat_utility::func_F3B())
{
return 1;
}
self.a.var_F43 = gettime() + 30000;
}
return 0;
}
//Function Number: 5
func_0F44(param_00)
{
if(func_0F4B(param_00))
{
if(func_0F49())
{
func_0F6B();
}
self.a.var_F31 = gettime();
return 1;
}
if(func_0F52(param_00,0))
{
return 1;
}
return 0;
}
//Function Number: 6
func_0F45(param_00)
{
if(distancesquared(self.origin,self.enemy.origin) > 562500)
{
if(func_0F61(param_00,self.enemy))
{
return;
}
}
if(func_0F55(param_00,"normal"))
{
func_0F6B();
self.a.var_F31 = gettime();
return;
}
idle(param_00);
}
//Function Number: 7
func_0F46(param_00,param_01)
{
if(self.var_748)
{
if(func_0F55(param_00,"ambush"))
{
return;
}
}
else if(self.providecoveringfire || gettime() >= param_01.var_F2F)
{
var_02 = "suppress";
if(!self.providecoveringfire && gettime() - self.var_F47 > 5000 && randomint(3) < 2)
{
var_02 = "ambush";
}
else if(!animscripts/shoot_behavior::func_CE9())
{
var_02 = "ambush";
}
if(func_0F55(param_00,var_02))
{
param_01.var_F2F = gettime() + randomintrange(3000,20000);
if(func_0F49())
{
self.a.var_F31 = gettime();
}
return;
}
}
if(func_0F61(param_00,self.enemy))
{
return;
}
idle(param_00);
}
//Function Number: 8
func_0F48(param_00,param_01)
{
if(func_0F52(param_00,0.1))
{
return 0;
}
if(isdefined(self.enemy))
{
if(func_0F61(param_00,self.enemy))
{
return 0;
}
}
if(!self.var_748 && gettime() >= param_01.var_F2E)
{
if(func_0F56(param_00))
{
param_01.var_F2E = gettime() + randomintrange(4000,15000);
return 0;
}
}
if(gettime() > self.a.var_F3A)
{
if(func_0F6C())
{
return 1;
}
}
if(self.var_748 || gettime() >= param_01.var_F2F && isdefined(self.enemy))
{
if(func_0F55(param_00,"ambush"))
{
if(func_0F49())
{
func_0F6B();
}
self.a.var_F31 = gettime();
param_01.var_F2F = gettime() + randomintrange(6000,20000);
return 0;
}
}
idle(param_00);
return 0;
}
//Function Number: 9
func_0F49()
{
if(!isdefined(self.enemy))
{
return 0;
}
if(distancesquared(self.enemy.origin,self.var_CF9) < 256)
{
return 0;
}
return animscripts/utility::func_F4A();
}
//Function Number: 10
func_0F4B(param_00)
{
if(!animscripts/utility::func_F4C())
{
return 0;
}
var_01 = gettime();
var_02 = 1;
while(animscripts/utility::func_F4C())
{
var_02 = 0;
self safeteleport(self.var_CAF.origin);
var_03 = 1;
if(isdefined(self.favor_blindfire))
{
var_03 = common_scripts\utility::cointoss();
}
if(var_03)
{
if(func_0F6E(param_00))
{
self notify("killanimscript");
return 1;
}
}
if(self.a.var_CE2 && animscripts/utility::func_CE3())
{
return 0;
}
if(func_0F49() || animscripts/utility::func_F39())
{
if(isdefined(level.throwgrenadeatplayerasap) && isalive(level.player))
{
if(func_0F61(param_00,level.player))
{
continue;
}
}
if(func_0F52(param_00,0))
{
continue;
}
if(self.team != "allies" && gettime() >= var_01)
{
if(func_0F64(param_00))
{
var_01 = gettime();
if(!isdefined(self.favor_blindfire))
{
var_01 = var_01 + randomintrange(3000,12000);
}
continue;
}
}
if(func_0F61(param_00,self.enemy))
{
var_02 = 1;
continue;
}
}
if(func_0F52(param_00,0.1))
{
continue;
}
idle(param_00);
}
if(!var_02 && randomint(2) == 0)
{
func_0F58(param_00);
}
return 1;
}
//Function Number: 11
func_0F4E(param_00)
{
var_01 = [];
if(param_00 == 1)
{
}
else if(var_01 == 2)
{
}
else
{
for(var_02 = 0;var_02 < var_01;var_02++ = var_7B[1])
{
var_7B[var_02] = var_02;
}
for(var_02 = 0;var_02 < var_01;var_02++ = 1 - var_7B[0])
{
var_03 = var_02 + randomint(var_01 - var_02);
var_04 = var_7B[var_03];
var_7B[var_03] = var_7B[var_02];
var_7B[var_02] = var_04;
}
}
return var_7B;
}
//Function Number: 12
func_0F4F(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_00))
{
return 0;
}
thread func_0F60();
var_04 = gettime();
var_05 = undefined;
if(isdefined(param_03))
{
var_05 = [[ param_00 ]](param_01,param_02,param_03);
}
else if(isdefined(param_02))
{
var_05 = [[ param_00 ]](param_01,param_02);
}
else if(isdefined(param_01))
{
var_05 = [[ param_00 ]](param_01);
}
else
{
var_05 = [[ param_00 ]]();
}
if(!var_05)
{
self notify("dont_end_idle");
}
return var_05;
}
//Function Number: 13
func_0F50()
{
self endon("killanimscript");
self.var_F47 = gettime() - 100000;
self.var_F51 = self.var_F47;
for(;;)
{
self waittill("suppression");
var_00 = gettime();
if(self.var_F47 < var_00 - 700)
{
self.var_F51 = var_00;
}
self.var_F47 = var_00;
}
}
//Function Number: 14
func_0F52(param_00,param_01)
{
if(self.bulletsinclip > weaponclipsize(self.weapon) * param_01)
{
return 0;
}
self.var_F53 = 1;
var_02 = func_0F4F(param_00.var_F54);
self.var_F53 = 0;
return var_02;
}
//Function Number: 15
func_0F55(param_00,param_01)
{
thread animscripts/shoot_behavior::func_CD7(param_01);
if(!self.fixednode && !self.var_748)
{
thread func_0F66();
}
var_02 = func_0F4F(param_00.var_F55);
self notify("stop_deciding_how_to_shoot");
return var_02;
}
//Function Number: 16
func_0F56(param_00)
{
if(self.a.var_CE2 && animscripts/utility::func_CE3())
{
return 0;
}
if(self.a.var_F31 + 6000 > gettime())
{
return func_0F58(param_00);
}
var_01 = func_0F4F(param_00.var_7A8,2 + randomfloat(2));
if(var_01)
{
return 1;
}
return func_0F4F(param_00.var_F57);
}
//Function Number: 17
func_0F58(param_00)
{
var_01 = func_0F4F(param_00.var_F57);
if(var_01)
{
return 1;
}
return func_0F4F(param_00.var_7A8,0);
}
//Function Number: 18
idle(param_00,param_01)
{
self.var_F5A = 0;
if(isdefined(param_00.var_F5B))
{
if(!self.a.var_F32 && gettime() - self.var_F51 < 600)
{
if([[ param_00.var_F5B ]]())
{
return 1;
}
}
else
{
thread func_0F5F(param_00);
}
}
if(!self.a.var_F32)
{
thread func_0F5E(param_00.idle);
self.a.var_F32 = 1;
}
if(isdefined(param_01))
{
func_0F5C(param_01);
}
else
{
func_0F5D();
}
if(self.var_F5A)
{
self waittill("flinch_done");
}
self notify("stop_waiting_to_flinch");
}
//Function Number: 19
func_0F5C(param_00)
{
self endon("end_idle");
wait param_00;
}
//Function Number: 20
func_0F5D()
{
self endon("end_idle");
wait 0.3 + randomfloat(0.1);
self waittill("do_slow_things");
}
//Function Number: 21
func_0F5E(param_00)
{
self endon("killanimscript");
self [[ param_00 ]]();
}
//Function Number: 22
func_0F5F(param_00)
{
self endon("killanimscript");
self endon("stop_waiting_to_flinch");
var_01 = self.var_F47;
for(;;)
{
self waittill("suppression");
var_02 = gettime();
if(var_01 < var_02 - 2000)
{
break;
}
var_01 = var_02;
}
self.var_F5A = 1;
thread func_0F60();
var_03 = [[ param_00.var_F5B ]]();
if(!var_03)
{
self notify("dont_end_idle");
}
self.var_F5A = 0;
self notify("flinch_done");
}
//Function Number: 23
func_0F60()
{
self endon("killanimscript");
self endon("dont_end_idle");
waittillframeend;
if(!isdefined(self))
{
return;
}
self notify("end_idle");
self.a.var_F32 = 0;
}
//Function Number: 24
func_0F61(param_00,param_01)
{
var_02 = anglestoforward(self.angles);
var_03 = vectornormalize(param_01.origin - self.origin);
if(vectordot(var_02,var_03) < 0)
{
return 0;
}
if(self.var_748 && !animscripts/utility::func_CBC())
{
return 0;
}
if(animscripts/utility::func_F62())
{
return func_0F4F(param_00.var_F63,param_01);
}
return func_0F4F(param_00.var_73C,param_01);
}
//Function Number: 25
func_0F64(param_00)
{
if(!animscripts/utility::func_F65())
{
return 0;
}
return func_0F4F(param_00.var_F64);
}
//Function Number: 26
func_0F66()
{
self endon("killanimscript");
self endon("stop_deciding_how_to_shoot");
for(;;)
{
if(self.fixednode || self.var_748)
{
return;
}
wait 0.5 + randomfloat(0.75);
if(!isdefined(self.enemy))
{
continue;
}
if(func_0F67())
{
if(func_0F6D())
{
return;
}
}
if(!animscripts/utility::func_CBC() && !animscripts/utility::func_CF3())
{
if(gettime() > self.a.var_F3A)
{
if(func_0F6C())
{
return;
}
}
}
}
}
//Function Number: 27
func_0F67()
{
if(!isdefined(self.enemy))
{
return 0;
}
if(self.enemy common_scripts\utility::isflashed())
{
return 1;
}
if(isplayer(self.enemy))
{
if(isdefined(self.enemy.health) && self.enemy.health < self.enemy.maxhealth)
{
return 1;
}
}
else if(isai(self.enemy) && self.enemy animscripts/utility::func_F4C())
{
return 1;
}
if(isdefined(self.enemy.var_F53) && self.enemy.var_F53)
{
return 1;
}
return 0;
}
//Function Number: 28
func_0F68()
{
self.a.var_F43 = 0;
}
//Function Number: 29
func_0F69()
{
var_00 = gettime();
if(isdefined(self.var_F6A) && var_00 > self.a.var_F3A)
{
self.a.var_F3A = var_00 + randomintrange(2000,5000);
return;
}
if(isdefined(self.enemy))
{
var_01 = distance2d(self.origin,self.enemy.origin);
if(var_01 < self.var_77C)
{
self.a.var_F3A = var_00 + randomintrange(5000,10000);
return;
}
if(var_01 > self.var_77E && var_01 < self.goalradius)
{
self.a.var_F3A = var_00 + randomintrange(2000,5000);
return;
}
self.a.var_F3A = var_00 + randomintrange(10000,15000);
return;
}
self.a.var_F3A = var_00 + randomintrange(5000,15000);
}
//Function Number: 30
func_0F6B()
{
if(isdefined(self.aggressivemode))
{
self.var_F30 = gettime() + randomintrange(500,1000);
return;
}
self.var_F30 = gettime() + randomintrange(3000,5000);
}
//Function Number: 31
func_0F6C()
{
return func_0F6D();
}
//Function Number: 32
func_0F6D()
{
if(self.fixednode || self.var_748)
{
return 0;
}
if(isdefined(self.aggressivemode) && gettime() >= self.var_F30)
{
return animscripts/combat_utility::func_F35(0);
}
var_00 = 0;
if(!isdefined(self.enemy) || !self.enemy common_scripts\utility::isflashed())
{
var_00 = animscripts/combat_utility::func_F3B();
}
if(!var_00 && isdefined(self.enemy) && !animscripts/utility::func_F4A())
{
if(gettime() >= self.var_F30)
{
return animscripts/combat_utility::func_F35(0);
}
}
return var_00;
}
//Function Number: 33
func_0F6E(param_00)
{
if(isdefined(param_00.var_F37))
{
if([[ param_00.var_F37 ]]())
{
return 1;
}
}
return animscripts/combat_utility::func_F3B();
}
//Function Number: 34
func_0F6F()
{
self.a.array["turn_left_45"] = %exposed_tracking_turn45l;
self.a.array["turn_left_90"] = %exposed_tracking_turn90l;
self.a.array["turn_left_135"] = %exposed_tracking_turn135l;
self.a.array["turn_left_180"] = %exposed_tracking_turn180l;
self.a.array["turn_right_45"] = %exposed_tracking_turn45r;
self.a.array["turn_right_90"] = %exposed_tracking_turn90r;
self.a.array["turn_right_135"] = %exposed_tracking_turn135r;
self.a.array["turn_right_180"] = %exposed_tracking_turn180r;
}
//Function Number: 35
func_0F70()
{
self.a.array["turn_left_45"] = %exposed_crouch_turn_90_left;
self.a.array["turn_left_90"] = %exposed_crouch_turn_90_left;
self.a.array["turn_left_135"] = %exposed_crouch_turn_180_left;
self.a.array["turn_left_180"] = %exposed_crouch_turn_180_left;
self.a.array["turn_right_45"] = %exposed_crouch_turn_90_right;
self.a.array["turn_right_90"] = %exposed_crouch_turn_90_right;
self.a.array["turn_right_135"] = %exposed_crouch_turn_180_right;
self.a.array["turn_right_180"] = %exposed_crouch_turn_180_right;
}
//Function Number: 36
func_0F71(param_00)
{
if(isdefined(self.node))
{
var_01 = self.node;
var_02 = abs(angleclamp180(self.angles[1] - var_01.angles[1] + param_00));
if(self.a.pose == "stand" && var_01 gethighestnodestance() != "stand")
{
if(var_02 > 45 && var_02 < 90)
{
self orientmode("face angle",self.angles[1]);
}
else
{
self orientmode("face current");
}
var_03 = 1.5;
var_04 = getnotetracktimes(%exposed_stand_2_crouch,"anim_pose = \"crouch\")[0];
var_04 = min(1,var_04 * 1.1);
var_05 = var_04 * getanimlength(%exposed_stand_2_crouch) / var_03;
self setflaggedanimknoballrestart("crouchanim",%exposed_stand_2_crouch,%body,1,0.2,var_03);
animscripts/notetracks::func_D4F(var_05,"crouchanim");
self clearanim(%body,0.2);
}
self orientmode("face angle",self.angles[1]);
var_06 = angleclamp180(self.angles[1] - var_01.angles[1] + param_00);
if(abs(var_06) > 45)
{
if(self.a.pose == "stand")
{
func_0F6F();
}
else
{
func_0F70();
}
self.var_F72 = 45;
self.var_F3D = 1;
animscripts/combat::func_F73(var_06);
self.var_F3D = undefined;
}
}
}
//Function Number: 37
func_0F37()
{
if(!isdefined(self.enemy))
{
return 0;
}
if(isdefined(self.var_F6A))
{
self.var_F6A = undefined;
return 0;
}
if(!isdefined(self.node))
{
return 0;
}
if(randomint(3) == 0)
{
return 0;
}
if(self.fixednode || self.var_748 || self.var_766 || self.keepclaimednodeifvalid)
{
return 0;
}
if(distancesquared(self.origin,self.node.origin) > 256)
{
return 0;
}
var_00 = self findshufflecovernode();
if(isdefined(var_00) && var_00 != self.node && self usecovernode(var_00))
{
self.var_F74 = 1;
self.var_F75 = var_00;
self.var_F6A = 1;
wait 0.5;
return 1;
}
return 0;
}

View File

@ -0,0 +1,24 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_crouch.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 45 ms
* Timestamp: 10/27/2023 2:18:09 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
animscripts/utility::func_D15("cover_crouch");
animscripts/cover_wall::func_F76("crouch");
}
//Function Number: 2
func_067F()
{
self.var_CAC = undefined;
animscripts/cover_behavior::func_67F("crouch");
}

View File

@ -0,0 +1,47 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_left.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 4
* Decompile Time: 89 ms
* Timestamp: 10/27/2023 2:18:10 AM
*******************************************************************/
//Function Number: 1
main()
{
self.var_2443 = [];
self.var_2443["hiding"]["stand"] = ::func_3FDC;
self.var_2443["hiding"]["crouch"] = ::func_3FDD;
self endon("killanimscript");
animscripts/utility::func_D15("cover_left");
animscripts/corner::func_2442("left",90);
}
//Function Number: 2
func_067F()
{
animscripts/corner::func_2449();
animscripts/cover_behavior::func_67F("left");
}
//Function Number: 3
func_3FDC()
{
var_00 = [];
if(isdefined(level.ramboanims))
{
}
self.var_2474 = 90;
self.a.array = var_7B;
}
//Function Number: 4
func_3FDD()
{
var_00 = [];
self.var_2474 = 90;
self.a.array = var_7B;
}

View File

@ -0,0 +1,313 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_prone.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 14
* Decompile Time: 231 ms
* Timestamp: 10/27/2023 2:18:11 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
animscripts/utility::func_D15("cover_prone");
if(weaponclass(self.weapon) == "rocketlauncher")
{
animscripts/combat::main();
return;
}
if(isdefined(self.a.var_10DF) && self.a.var_10DF == "prone_saw")
{
animscripts/cover_wall::func_FA5("saw_bipod_prone","weapon_saw_MG_Setup");
}
else if(isdefined(self.node.turret))
{
animscripts/cover_wall::func_FA7();
}
if(isdefined(self.enemy) && lengthsquared(self.origin - self.enemy.origin) < squared(512))
{
thread animscripts/combat::main();
return;
}
func_10E6();
self.var_CAF = self.node;
self orientmode("face angle",self.var_CAF.angles[1]);
self.a.var_10E0 = 1;
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_modern,%prone_legs_up);
if(self.a.pose != "prone")
{
func_10EA("prone");
}
else
{
animscripts/utility::func_10E1(0);
}
thread animscripts/combat_utility::aimidlethread();
func_10EC(0.2);
self setanim(%prone_aim_5,1,0.1);
self orientmode("face angle",self.var_CAF.angles[1]);
self animmode("zonly_physics");
func_10E3();
self notify("stop_deciding_how_to_shoot");
}
//Function Number: 2
func_067F()
{
self.a.var_10E0 = undefined;
}
//Function Number: 3
func_0F5E()
{
self endon("killanimscript");
self endon("kill_idle_thread");
for(;;)
{
var_00 = animscripts/utility::func_CA8("prone_idle");
self setflaggedanimlimited("idle",var_00);
self waittillmatch("end","idle");
self clearanim(var_00,0.2);
}
}
//Function Number: 4
func_10E2(param_00)
{
self updateprone(%prone_aim_feet_45up,%prone_aim_feet_45down,1,param_00,1);
self setanim(%exposed_aiming,1,0.2);
}
//Function Number: 5
func_10E3()
{
self endon("killanimscript");
thread animscripts/track::func_CA9();
thread animscripts/shoot_behavior::func_CD7("normal");
var_00 = gettime() > 2500;
for(;;)
{
animscripts/utility::func_A69();
func_10E2(0.05);
if(!var_00)
{
wait 0.05 + randomfloat(1.5);
var_00 = 1;
continue;
}
if(!isdefined(self.var_CB1))
{
if(func_10E7())
{
continue;
}
wait 0.05;
continue;
}
var_01 = lengthsquared(self.origin - self.var_CB1);
if(self.a.pose != "crouch" && self isstanceallowed("crouch") && var_01 < squared(400))
{
if(var_01 < squared(285))
{
func_10EA("crouch");
thread animscripts/combat::main();
return;
}
}
if(func_10E7())
{
continue;
}
if(func_10E5(0))
{
continue;
}
if(animscripts/combat_utility::func_10E4())
{
animscripts/combat_utility::func_F06();
self clearanim(%add_fire,0.2);
continue;
}
wait 0.05;
}
}
//Function Number: 6
func_10E5(param_00)
{
return animscripts/combat_utility::func_F54(param_00,animscripts/utility::func_D4D("reload"));
}
//Function Number: 7
func_10E6()
{
self setdefaultaimlimits(self.node);
var_00 = [];
self.a.array = var_7B;
}
//Function Number: 8
func_0F61(param_00,param_01)
{
var_02 = undefined;
if(isdefined(param_01) && param_01)
{
var_02 = animscripts/utility::func_CA8("grenade_safe");
}
else
{
var_02 = animscripts/utility::func_CA8("grenade_exposed");
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
var_03 = (32,20,64);
var_04 = animscripts/combat_utility::func_FA1(param_00,var_02);
self.keepclaimednodeifvalid = 0;
return var_04;
}
//Function Number: 9
func_10E7()
{
if(isdefined(level.throwgrenadeatplayerasap) && isalive(level.player))
{
if(func_0F61(level.player,200))
{
return 1;
}
}
if(isdefined(self.enemy))
{
return func_0F61(self.enemy,850);
}
return 0;
}
//Function Number: 10
func_10E8()
{
if(!isdefined(self.weapon) || !weaponisauto(self.weapon))
{
return 0;
}
if(isdefined(self.node) && distancesquared(self.origin,self.node.origin) < 256)
{
return 0;
}
if(isdefined(self.enemy) && self cansee(self.enemy) && !isdefined(self.var_73C) && animscripts/shared::func_10E9() < 20)
{
return animscripts/move::func_FDE();
}
return 0;
}
//Function Number: 11
func_10EA(param_00)
{
if(param_00 == self.a.pose)
{
return;
}
self clearanim(%root,0.3);
animscripts/combat_utility::func_F85();
if(func_10E8())
{
var_01 = animscripts/utility::func_D4D(self.a.pose + "_2_" + param_00 + "_firing");
}
else
{
var_01 = animscripts/utility::func_D4D(self.a.pose + "_2_" + var_01);
}
if(param_00 == "prone")
{
}
self setflaggedanimknoballrestart("trans",var_01,%body,1,0.2,1);
animscripts/shared::donotetracks("trans");
self setanimknoballrestart(animscripts/utility::func_D4D("straight_level"),%body,1,0.25);
func_10EC(0.25);
}
//Function Number: 12
func_10EB(param_00)
{
self endon("killanimscript");
animscripts/shared::donotetracks(param_00);
}
//Function Number: 13
func_10EC(param_00)
{
self setanimknoball(%prone_aim_5,%body,1,param_00);
self setanimlimited(%prone_aim_2_add,1,param_00);
self setanimlimited(%prone_aim_4_add,1,param_00);
self setanimlimited(%prone_aim_6_add,1,param_00);
self setanimlimited(%prone_aim_8_add,1,param_00);
}
//Function Number: 14
func_10B0(param_00,param_01)
{
self clearanim(%root,0.3);
var_02 = undefined;
if(func_10E8())
{
if(param_00 == "crouch")
{
var_02 = %prone_2_crouch_firing;
}
else if(param_00 == "stand")
{
var_02 = %prone_2_stand_firing;
}
}
else if(param_00 == "crouch")
{
var_02 = %prone_2_crouch;
}
else if(param_00 == "stand")
{
var_02 = %prone_2_stand_nodelta;
}
if(isdefined(self.var_10ED))
{
var_02 = self.var_10ED;
}
if(isdefined(self.var_10EE))
{
param_01 = self.var_10EE;
}
if(!isdefined(param_01))
{
param_01 = 1;
}
animscripts/utility::func_F7D(getanimlength(var_02) / 2);
self setflaggedanimknoballrestart("trans",var_02,%body,1,0.2,param_01);
animscripts/shared::donotetracks("trans");
self clearanim(var_02,0.1);
}

View File

@ -0,0 +1,47 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_right.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 4
* Decompile Time: 78 ms
* Timestamp: 10/27/2023 2:18:11 AM
*******************************************************************/
//Function Number: 1
main()
{
self.var_2443 = [];
self.var_2443["hiding"]["stand"] = ::func_3FDE;
self.var_2443["hiding"]["crouch"] = ::func_3FDF;
self endon("killanimscript");
animscripts/utility::func_D15("cover_right");
animscripts/corner::func_2442("right",-90);
}
//Function Number: 2
func_067F()
{
animscripts/corner::func_2449();
animscripts/cover_behavior::func_67F("right");
}
//Function Number: 3
func_3FDE()
{
var_00 = [];
if(isdefined(level.ramboanims))
{
}
self.var_2474 = -90;
self.a.array = var_7B;
}
//Function Number: 4
func_3FDF()
{
var_00 = [];
self.var_2474 = -90;
self.a.array = var_7B;
}

View File

@ -0,0 +1,23 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_stand.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 44 ms
* Timestamp: 10/27/2023 2:18:12 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
animscripts/utility::func_D15("cover_stand");
animscripts/cover_wall::func_F76("stand");
}
//Function Number: 2
func_067F()
{
animscripts/cover_behavior::func_67F("stand");
}

View File

@ -0,0 +1,856 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cover_wall.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 35
* Decompile Time: 592 ms
* Timestamp: 10/27/2023 2:18:14 AM
*******************************************************************/
//Function Number: 1
func_0F76(param_00)
{
self endon("killanimscript");
self.var_CAF = self.node;
self.var_F77 = param_00;
if(!isdefined(self.node.turret))
{
animscripts/cover_behavior::func_F71(0);
}
if(param_00 == "crouch")
{
func_0F81("unknown");
self.var_CAF func_0F7F();
}
else
{
func_0F82("unknown");
}
self.a.aimidlethread = undefined;
self orientmode("face angle",self.var_CAF.angles[1]);
if(isdefined(self.weapon) && animscripts/utility::func_F79() && isdefined(self.node) && isdefined(self.node.turretinfo) && canspawnturret())
{
if(param_00 == "crouch")
{
if(func_0F7E(self.weapon))
{
var_01 = "rpd_bipod_crouch";
}
else
{
var_01 = "saw_bipod_crouch";
}
}
else if(func_0F7E(self.weapon))
{
var_01 = "rpd_bipod_stand";
}
else
{
var_01 = "saw_bipod_stand";
}
if(func_0F7E(self.weapon))
{
var_02 = "weapon_rpd_MG_Setup";
}
else
{
var_02 = "weapon_saw_MG_Setup";
}
func_0FA5(var_01,var_02);
}
else if(isdefined(self.node) && isdefined(self.node.turret))
{
func_0FA7();
}
self animmode("normal");
if(param_00 == "crouch" && self.a.pose == "stand")
{
var_03 = animscripts/utility::func_D4D("stand_2_hide");
var_04 = getanimlength(var_03);
self setanimknoballrestart(var_03,%body,1,0.2,animscripts/combat_utility::func_F7B());
thread animscripts/shared::func_F7C(self.var_CAF.origin,var_04);
wait var_04;
self.a.var_CF8 = "hide";
}
else
{
func_0FB2(0.4);
if(distancesquared(self.origin,self.var_CAF.origin) > 1)
{
thread animscripts/shared::func_F7C(self.var_CAF.origin,0.4);
wait 0.2;
if(param_00 == "crouch")
{
self.a.pose = "crouch";
}
wait 0.2;
}
else
{
wait 0.1;
}
}
self animmode("zonly_physics");
if(param_00 == "crouch")
{
if(self.a.pose == "prone")
{
animscripts/utility::func_F7D(1);
}
self.a.pose = "crouch";
}
if(self.var_F77 == "stand")
{
self.a.var_D19 = "cover_stand";
}
else
{
self.a.var_D19 = "cover_crouch";
}
var_05 = spawnstruct();
if(!self.fixednode)
{
var_05.var_F37 = ::animscripts/cover_behavior::func_F37;
}
var_05.var_F54 = ::func_0F52;
var_05.var_F55 = ::func_0F83;
var_05.var_7A8 = ::func_07A8;
var_05.var_F57 = ::func_0F57;
var_05.idle = ::idle;
var_05.var_F5B = ::func_0F5B;
var_05.var_73C = ::func_0F61;
var_05.var_F63 = ::func_0F9E;
var_05.var_F64 = ::func_0F64;
animscripts/cover_behavior::main(var_05);
}
//Function Number: 2
func_0F7E(param_00)
{
return getsubstr(param_00,0,3) == "rpd" && param_00.size == 3 || param_00[3] == "_";
}
//Function Number: 3
func_0F7F()
{
if(isdefined(self.var_F80))
{
return;
}
var_00 = (0,0,42);
var_01 = anglestoforward(self.angles);
self.var_F80 = sighttracepassed(self.origin + var_00,self.origin + var_00 + var_01 * 64,0,undefined);
}
//Function Number: 4
func_0F81(param_00)
{
self setdefaultaimlimits(self.var_CAF);
func_0FA9(param_00);
}
//Function Number: 5
func_0F82(param_00)
{
self setdefaultaimlimits(self.var_CAF);
func_0FAE(param_00);
}
//Function Number: 6
func_0F52()
{
animscripts/combat_utility::func_F54(2,animscripts/utility::func_D4D("reload"));
return 1;
}
//Function Number: 7
func_0F83()
{
self.keepclaimednodeifvalid = 1;
if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance)
{
if(func_0F8B())
{
return 1;
}
}
if(!func_0F98())
{
return 0;
}
func_0F88();
animscripts/combat_utility::func_F85();
if(isdefined(self.var_CB1))
{
var_00 = lengthsquared(self.origin - self.var_CB1);
if(animscripts/utility::func_BB6() && var_00 < squared(512) || self.a.rockets < 1)
{
if(self.a.pose == "stand")
{
animscripts/shared::func_F87(%rpg_stand_throw);
}
else
{
animscripts/shared::func_F87(%rpg_crouch_throw);
}
}
}
func_0F9C();
self.var_CAC = undefined;
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 8
func_0F88()
{
self endon("return_to_cover");
maps\_gameskill::didsomethingotherthanshooting();
for(;;)
{
if(isdefined(self.var_CDC))
{
break;
}
if(!isdefined(self.var_CB1))
{
self waittill("do_slow_things");
waittillframeend;
if(isdefined(self.var_CB1))
{
continue;
}
break;
}
if(!self.bulletsinclip)
{
break;
}
if(self.var_F77 == "crouch" && func_0FB4())
{
break;
}
func_0F8A();
self clearanim(%add_fire,0.2);
}
}
//Function Number: 9
func_0F8A()
{
if(self.var_F77 == "crouch")
{
thread func_0FB3();
}
thread animscripts/combat_utility::aimidlethread();
animscripts/combat_utility::func_F06();
}
//Function Number: 10
func_0F8B()
{
if(!animscripts/utility::func_F8C())
{
return 0;
}
var_00 = "rambo";
if(randomint(10) < 2)
{
var_00 = "rambo_fail";
}
if(!animscripts/utility::func_F8D(var_00))
{
return 0;
}
if(self.var_F77 == "crouch" && !self.var_CAF.var_F80)
{
return 0;
}
var_01 = func_0FB7(self.var_CAF.origin + animscripts/utility::func_F8E(self.var_CAF));
if(var_01 > 15)
{
return 0;
}
var_02 = anglestoforward(self.angles);
var_03 = self.origin + var_02 * -16;
if(!self maymovetopoint(var_03))
{
return 0;
}
self.var_CFD = gettime();
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
self.isrambo = 1;
self.a.var_F3E = "rambo";
self.var_CDD = 1;
thread animscripts/shared::func_F90(0);
var_04 = animscripts/utility::func_CA8(var_00);
self setflaggedanimknoballrestart("rambo",var_04,%body,1,0.2,1);
animscripts/shared::donotetracks("rambo");
self notify("rambo_aim_end");
self.var_CDD = 0;
self.keepclaimednodeifvalid = 0;
self.var_F91 = gettime();
self.var_CDD = 0;
self.isrambo = undefined;
return 1;
}
//Function Number: 11
idle()
{
self endon("end_idle");
for(;;)
{
var_00 = randomint(2) == 0 && animscripts/utility::func_F8D("hide_idle_twitch");
if(var_00)
{
var_01 = animscripts/utility::func_CA8("hide_idle_twitch");
}
else
{
var_01 = animscripts/utility::func_D4D("hide_idle");
}
func_0F92(var_01,var_00);
}
}
//Function Number: 12
func_0F5B()
{
if(!animscripts/utility::func_F8D("hide_idle_flinch"))
{
return 0;
}
var_00 = anglestoforward(self.angles);
var_01 = self.origin + var_00 * -16;
if(!self maymovetopoint(var_01))
{
return 0;
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
var_02 = animscripts/utility::func_CA8("hide_idle_flinch");
func_0F92(var_02,1);
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 13
func_0F92(param_00,param_01)
{
if(param_01)
{
self setflaggedanimknoballrestart("idle",param_00,%body,1,0.25,1);
}
else
{
self setflaggedanimknoball("idle",param_00,%body,1,0.25,1);
}
self.a.var_CF8 = "hide";
animscripts/shared::donotetracks("idle");
}
//Function Number: 14
func_07A8(param_00)
{
if(!isdefined(self.a.array["hide_to_look"]))
{
return 0;
}
if(!func_0F94())
{
return 0;
}
animscripts/shared::func_F93(animscripts/utility::func_D4D("look_idle"),param_00);
var_01 = undefined;
if(animscripts/utility::func_F4C())
{
var_01 = animscripts/utility::func_D4D("look_to_hide_fast");
}
else
{
var_01 = animscripts/utility::func_D4D("look_to_hide");
}
self setflaggedanimknoballrestart("looking_end",var_01,%body,1,0.1);
animscripts/shared::donotetracks("looking_end");
return 1;
}
//Function Number: 15
func_0F94()
{
if(isdefined(self.var_CAF.var_F95))
{
return 0;
}
self setflaggedanimknoball("looking_start",animscripts/utility::func_D4D("hide_to_look"),%body,1,0.2);
animscripts/shared::donotetracks("looking_start");
return 1;
}
//Function Number: 16
func_0F57()
{
self setflaggedanimknoballrestart("look",animscripts/utility::func_CA8("look"),%body,1,0.1);
animscripts/shared::donotetracks("look");
return 1;
}
//Function Number: 17
func_0F96()
{
if(self.a.var_CF8 == "left" || self.a.var_CF8 == "right" || self.a.var_CF8 == "over")
{
return 1;
}
return animscripts/combat_utility::func_F97();
}
//Function Number: 18
func_0F98()
{
var_00 = func_0FB5();
var_01 = 0.1;
var_02 = animscripts/utility::func_D4D("hide_2_" + var_00);
if(!self maymovetopoint(animscripts/utility::func_F99(var_02)))
{
return 0;
}
if(self.script == "cover_crouch" && var_00 == "lean")
{
self.var_CAC = 1;
}
if(self.var_F77 == "crouch")
{
func_0F81(var_00);
}
else
{
func_0F82(var_00);
}
self.a.var_D19 = "none";
self.var_D4B = undefined;
if(self.var_F77 == "stand")
{
self.a.var_D19 = "cover_stand_aim";
}
else
{
self.a.var_D19 = "cover_crouch_aim";
}
self.var_CDD = 1;
self notify("done_changing_cover_pos");
self animmode("zonly_physics");
var_03 = func_0F96();
self setflaggedanimknoballrestart("pop_up",var_02,%body,1,0.1,var_03);
thread func_0F9A("pop_up");
if(animhasnotetrack(var_02,"start_aim"))
{
self waittillmatch("start_aim","pop_up");
var_01 = getanimlength(var_02) / var_03 * 1 - self getanimtime(var_02);
}
else
{
self waittillmatch("end","pop_up");
var_01 = 0.1;
}
self clearanim(var_02,var_01 + 0.05);
self.a.var_CF8 = var_00;
self.a.var_F3E = var_00;
func_0F9B(var_01);
thread animscripts/track::func_CA9();
wait var_01;
if(animscripts/combat_utility::issniper())
{
thread animscripts/shoot_behavior::func_D0C();
}
self.var_CDD = 0;
self.var_CFD = gettime();
self notify("stop_popup_donotetracks");
return 1;
}
//Function Number: 19
func_0F9A(param_00)
{
self endon("killanimscript");
self endon("stop_popup_donotetracks");
animscripts/shared::donotetracks(param_00);
}
//Function Number: 20
func_0F9B(param_00)
{
if(self.a.var_CF8 == "left" || self.a.var_CF8 == "right")
{
var_01 = "crouch";
}
else
{
var_01 = self.a.var_CF8;
}
self setanimknoball(animscripts/utility::func_D4D(var_01 + "_aim"),%body,1,param_00);
if(var_01 == "crouch")
{
self setanimlimited(%covercrouch_aim2_add,1,0);
self setanimlimited(%covercrouch_aim4_add,1,0);
self setanimlimited(%covercrouch_aim6_add,1,0);
self setanimlimited(%covercrouch_aim8_add,1,0);
return;
}
if(var_01 == "stand")
{
self setanimlimited(%exposed_aim_2,1,0);
self setanimlimited(%exposed_aim_4,1,0);
self setanimlimited(%exposed_aim_6,1,0);
self setanimlimited(%exposed_aim_8,1,0);
return;
}
if(var_01 == "lean")
{
self setanimlimited(%exposed_aim_2,1,0);
self setanimlimited(%exposed_aim_4,1,0);
self setanimlimited(%exposed_aim_6,1,0);
self setanimlimited(%exposed_aim_8,1,0);
return;
}
if(var_01 == "over")
{
self setanimlimited(%coverstandaim_aim2_add,1,0);
self setanimlimited(%coverstandaim_aim4_add,1,0);
self setanimlimited(%coverstandaim_aim6_add,1,0);
self setanimlimited(%coverstandaim_aim8_add,1,0);
return;
}
}
//Function Number: 21
func_0F9C()
{
self notify("return_to_cover");
self.var_CDD = 1;
self notify("done_changing_cover_pos");
animscripts/combat_utility::func_F9D();
var_00 = func_0F96();
self setflaggedanimknoball("go_to_hide",animscripts/utility::func_D4D(self.a.var_CF8 + "_2_hide"),%body,1,0.2,var_00);
self clearanim(%exposed_modern,0.2);
animscripts/shared::donotetracks("go_to_hide");
self.a.var_CF8 = "hide";
if(self.var_F77 == "stand")
{
self.a.var_D19 = "cover_stand";
}
else
{
self.a.var_D19 = "cover_crouch";
}
self.var_CDD = 0;
}
//Function Number: 22
func_0F9E(param_00)
{
return func_0F61(param_00,1);
}
//Function Number: 23
func_0F61(param_00,param_01)
{
if(isdefined(self.dontevershoot) || isdefined(param_00.var_FA0))
{
return 0;
}
var_02 = undefined;
if(isdefined(self.rambochance) && randomfloat(1) < self.rambochance)
{
var_02 = animscripts/utility::func_CA8("grenade_rambo");
}
else if(isdefined(param_01) && param_01)
{
var_02 = animscripts/utility::func_CA8("grenade_safe");
}
else
{
var_02 = animscripts/utility::func_CA8("grenade_exposed");
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
var_03 = animscripts/combat_utility::func_FA1(param_00,var_02);
self.keepclaimednodeifvalid = 0;
return var_03;
}
//Function Number: 24
func_0F64()
{
if(!animscripts/utility::func_F8D("blind_fire"))
{
return 0;
}
self animmode("zonly_physics");
self.keepclaimednodeifvalid = 1;
self setflaggedanimknoballrestart("blindfire",animscripts/utility::func_CA8("blind_fire"),%body,1,0.2,1);
animscripts/shared::donotetracks("blindfire");
self.keepclaimednodeifvalid = 0;
return 1;
}
//Function Number: 25
func_0FA2(param_00,param_01,param_02)
{
var_03 = spawnturret("misc_turret",param_00.origin,param_01);
var_03.angles = param_00.angles;
var_03.var_FA3 = self;
var_03 setmodel(param_02);
var_03 makeusable();
var_03 setdefaultdroppitch(0);
if(isdefined(param_00.leftarc))
{
var_03.leftarc = param_00.leftarc;
}
if(isdefined(param_00.rightarc))
{
var_03.rightarc = param_00.rightarc;
}
if(isdefined(param_00.toparc))
{
var_03.toparc = param_00.toparc;
}
if(isdefined(param_00.bottomarc))
{
var_03.bottomarc = param_00.bottomarc;
}
return var_03;
}
//Function Number: 26
func_0FA4(param_00)
{
self endon("death");
self endon("being_used");
wait 0.1;
if(isdefined(param_00))
{
param_00 notify("turret_use_failed");
}
self delete();
}
//Function Number: 27
func_0FA5(param_00,param_01)
{
var_02 = func_0FA2(self.node.turretinfo,param_00,param_01);
if(self useturret(var_02))
{
var_02 thread func_0FA4(self);
if(isdefined(self.var_FA6))
{
thread [[ self.var_FA6 ]](var_02);
}
self waittill("turret_use_failed");
return;
}
var_02 delete();
}
//Function Number: 28
func_0FA7()
{
var_00 = self.node.turret;
if(!var_00.issetup)
{
return;
}
thread maps\_mg_penetration::gunner_think(var_00);
self waittill("continue_cover_script");
}
//Function Number: 29
func_0FA9(param_00)
{
var_01 = [];
if(animscripts/utility::func_C97())
{
if(var_01 == "lean" || var_01 == "stand")
{
}
else
{
}
}
else
{
}
if(isdefined(level.ramboanims))
{
}
self.a.array = var_7B;
}
//Function Number: 30
func_0FAE(param_00)
{
var_01 = [];
if(var_01 == "over")
{
}
else if(animscripts/utility::func_C97())
{
}
else
{
}
if(isdefined(level.ramboanims))
{
}
self.a.array = var_7B;
}
//Function Number: 31
func_0FB2(param_00)
{
if(!isdefined(param_00))
{
param_00 = 0.1;
}
self setanimknoballrestart(animscripts/utility::func_D4D("hide_idle"),%body,1,param_00);
self.a.var_CF8 = "hide";
}
//Function Number: 32
func_0FB3()
{
self endon("killanimscript");
self notify("newAngleRangeCheck");
self endon("newAngleRangeCheck");
self endon("return_to_cover");
for(;;)
{
if(func_0FB4())
{
break;
}
wait 0.1;
}
self notify("stopShooting");
}
//Function Number: 33
func_0FB4()
{
if(self.var_F77 != "crouch")
{
return 0;
}
var_00 = func_0FB7(self geteye());
if(self.a.var_CF8 == "lean")
{
return var_00 < 10;
}
return var_00 > 45;
}
//Function Number: 34
func_0FB5()
{
var_00 = [];
if(self.var_F77 == "stand")
{
var_00 = self.var_CAF getvalidcoverpeekouts();
}
else
{
var_01 = func_0FB7(self.var_CAF.origin + animscripts/utility::func_F8E(self.var_CAF));
if(var_01 > 30)
{
return "lean";
}
if(var_01 > 15 || !self.var_CAF.var_F80)
{
return "stand";
}
var_7B = self.var_CAF getvalidcoverpeekouts();
var_7B[var_7B.size] = "crouch";
}
return animscripts/combat_utility::func_FB6(var_7B);
}
//Function Number: 35
func_0FB7(param_00)
{
var_01 = animscripts/utility::func_FB8();
return angleclamp180(vectortoangles(var_01 - param_00)[0]);
}

View File

@ -0,0 +1,193 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\cqb.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 5
* Decompile Time: 94 ms
* Timestamp: 10/27/2023 2:18:14 AM
*******************************************************************/
//Function Number: 1
func_1075()
{
animscripts/run::func_FFD();
if(self.a.pose != "stand")
{
self clearanim(%root,0.2);
if(self.a.pose == "prone")
{
animscripts/utility::func_F7D(1);
}
self.a.pose = "stand";
}
self.a.movement = self.movemode;
thread func_1079();
var_00 = func_1076();
var_01 = self.moveplaybackrate;
if(self.movemode == "walk")
{
var_01 = var_01 * 0.6;
}
if(self.var_786 == "none")
{
var_02 = 0.3;
}
else
{
var_02 = 0.1;
}
self setflaggedanimknoball("runanim",var_00,%walk_and_run_loops,1,var_02,var_01,1);
animscripts/run::func_FF7(%walk_backward,%walk_left,%walk_right);
thread animscripts/run::func_FF8("cqb");
animscripts/notetracks::func_D4F(0.2,"runanim");
thread animscripts/run::func_FE5();
}
//Function Number: 2
func_1076()
{
if(isdefined(self.custommoveanimset) && isdefined(self.custommoveanimset["cqb"]))
{
return animscripts/run::func_FC2();
}
if(self.var_786 == "up")
{
return %traverse_stair_run;
}
if(self.var_786 == "down")
{
return %traverse_stair_run_down_01;
}
if(self.movemode == "walk")
{
return %walk_cqb_f;
}
var_00 = animscripts/utility::func_1078(self.a.var_1077,2);
if(var_00 == 0)
{
return %run_cqb_f_search_v1;
}
return %run_cqb_f_search_v2;
}
//Function Number: 3
func_1079()
{
if(animscripts/move::func_FDE())
{
animscripts/run::func_FE3();
}
animscripts/run::func_FE1();
}
//Function Number: 4
func_107A()
{
level.var_107B = [];
var_00 = getentarray("cqb_point_of_interest","targetname");
for(var_01 = 0;var_01 < var_00.size;var_01++)
{
level.var_107B[var_01] = var_00[var_01].origin;
var_00[var_01] delete();
}
}
//Function Number: 5
func_107C()
{
if(isdefined(level.var_107D))
{
return;
}
anim.var_107D = 1;
if(!level.var_107B.size)
{
return;
}
for(;;)
{
var_00 = getaiarray();
var_01 = 0;
foreach(var_03 in var_00)
{
if(isalive(var_03) && var_03 animscripts/utility::func_C98() && !isdefined(var_03.var_107E))
{
var_04 = var_03.a.movement != "stop";
var_05 = (var_03.origin[0],var_03.origin[1],var_03 getshootatpos()[2]);
var_06 = var_05;
var_07 = anglestoforward(var_03.angles);
if(var_04)
{
var_08 = bullettrace(var_06,var_06 + var_07 * 128,0,undefined);
var_06 = var_08["position"];
}
var_09 = -1;
var_0A = 1048576;
for(var_0B = 0;var_0B < level.var_107B.size;var_0B++)
{
var_0C = level.var_107B[var_0B];
var_0D = distancesquared(var_0C,var_06);
if(var_0D < var_0A)
{
if(var_04)
{
if(distancesquared(var_0C,var_05) < 4096)
{
continue;
}
var_0E = vectordot(vectornormalize(var_0C - var_05),var_07);
if(var_0E < 0.643 || var_0E > 0.966)
{
continue;
}
}
else if(var_0D < 2500)
{
continue;
}
if(!sighttracepassed(var_06,var_0C,0,undefined))
{
continue;
}
var_0A = var_0D;
var_09 = var_0B;
}
}
if(var_09 < 0)
{
var_03.cqb_point_of_interest = undefined;
}
else
{
var_03.cqb_point_of_interest = level.var_107B[var_09];
}
wait 0.05;
var_01 = 1;
}
}
if(!var_01)
{
wait 0.25;
}
}
}

View File

@ -0,0 +1,933 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\death.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 31
* Decompile Time: 575 ms
* Timestamp: 10/27/2023 2:18:16 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
self stopsoundchannel("voice");
var_00 = 0.3;
self clearanim(%scripted_talking,var_00);
if(self.a.var_D55 == 1)
{
return;
}
if(isdefined(self.deathfunction))
{
var_01 = self [[ self.deathfunction ]]();
if(!isdefined(var_01))
{
var_01 = 1;
}
if(var_01)
{
return;
}
}
animscripts/utility::func_D15("death");
func_0ED1(self.origin);
level.var_D43--;
level.var_D6B--;
if(isdefined(self.var_EC0) || self.var_746)
{
func_0EC2();
}
if(isdefined(self.deathanim))
{
func_0D56(self.deathanim);
if(isdefined(self.deathanimscript))
{
self [[ self.deathanimscript ]]();
}
return;
}
var_02 = animscripts/pain::func_D1F();
if(self.damagelocation == "helmet" || self.damagelocation == "head")
{
func_0D17();
}
else if(var_02 && randomint(3) == 0)
{
func_0D17();
}
self clearanim(%root,0.3);
if(!animscripts/utility::func_D2F("head","helmet"))
{
if(self.diequietly)
{
}
else
{
playdeathsound();
}
}
if(var_02 && func_0EE7())
{
return;
}
if(isdefined(self.var_D4B))
{
if([[ self.var_D4B ]]())
{
return;
}
}
if(specialdeath())
{
return;
}
var_03 = func_0ED8();
func_0D56(var_03);
}
//Function Number: 2
func_0EC2()
{
animscripts/shared::func_D73();
self.skipdeathanim = 1;
var_00 = 10;
var_01 = common_scripts\_destructible::getdamagetype(self.var_726);
if(isdefined(self.attacker) && self.attacker == level.player && var_01 == "melee")
{
var_00 = 5;
}
var_02 = self.damagetaken;
if(var_01 == "bullet")
{
var_02 = max(var_02,300);
}
var_03 = var_00 * var_02;
var_04 = max(0.3,self.var_722[2]);
var_05 = (self.var_722[0],self.var_722[1],var_04);
if(isdefined(self.var_EC4))
{
var_05 = var_05 * self.var_EC4;
}
else
{
var_05 = var_05 * var_03;
}
if(self.var_746)
{
var_05 = var_05 + self.var_777 * 20 * 10;
}
if(isdefined(self.var_EC5))
{
var_05 = var_05 + self.var_EC5 * 10;
}
self startragdollfromimpact(self.damagelocation,var_05);
wait 0.05;
}
//Function Number: 3
func_0D56(param_00)
{
if(!animhasnotetrack(param_00,"dropgun") && !animhasnotetrack(param_00,"fire_spray"))
{
animscripts/shared::func_D73();
}
self setflaggedanimknoballrestart("deathanim",param_00,%body,1,0.1);
if(isdefined(self.skipdeathanim))
{
if(!isdefined(self.noragdoll))
{
self startragdoll();
}
wait 0.05;
self animmode("gravity");
}
else if(isdefined(self.var_EC7))
{
thread func_0EC8(self.var_EC7);
}
else if(!animhasnotetrack(param_00,"start_ragdoll"))
{
thread func_0EC8(getanimlength(param_00) * 0.35);
}
if(!isdefined(self.skipdeathanim))
{
thread func_0EC9();
}
animscripts/shared::donotetracks("deathanim");
animscripts/shared::func_D73();
}
//Function Number: 4
func_0EC8(param_00)
{
wait param_00;
if(isdefined(self))
{
animscripts/shared::func_D73();
}
if(isdefined(self) && !isdefined(self.noragdoll))
{
self startragdoll();
}
}
//Function Number: 5
func_0EC9()
{
self endon("killanimscript");
if(self.var_786 != "none")
{
return;
}
wait 2;
func_0ECA();
}
//Function Number: 6
func_0ECA(param_00,param_01)
{
if(!isdefined(self))
{
return;
}
if(isdefined(self.skipbloodpool))
{
return;
}
var_02 = self gettagorigin("j_SpineUpper");
var_03 = self gettagangles("j_SpineUpper");
var_04 = anglestoforward(var_03);
var_05 = anglestoup(var_03);
var_06 = anglestoright(var_03);
var_02 = var_02 + var_04 * -8.5 + var_05 * 5 + var_06 * 0;
var_07 = bullettrace(var_02 + (0,0,30),var_02 - (0,0,100),0,undefined);
if(var_07["normal"][2] > 0.9)
{
playfx(level._effect["deathfx_bloodpool_generic"],var_02);
}
}
//Function Number: 7
specialdeath()
{
if(self.a.var_D19 == "none")
{
return 0;
}
switch(self.a.var_D19)
{
case "cover_right":
if(self.a.pose == "stand")
{
var_00 = [];
func_0ECD(var_7B);
}
else
{
var_00 = [];
if(animscripts/utility::func_D2F("head","neck"))
{
}
else
{
}
func_0ECD(var_7B);
}
return 1;
var_7B[1]
%cornercrr_alert_death_back
var_7B[0]
%cornercrr_alert_death_slideout
var_7B[0]
%cornercrr_alert_death_slideout
var_7B[1]
%corner_standr_deathb
var_7B[0]
%corner_standr_deatha
break;
case "cover_left":
if(self.a.pose == "stand")
{
var_00 = [];
func_0ECD(var_7B);
}
else
{
var_00 = [];
func_0ECD(var_7B);
}
return 1;
var_7B[1]
%cornercrl_death_back
var_7B[0]
%cornercrl_death_side
var_7B[1]
%corner_standl_deathb
var_7B[0]
%corner_standl_deatha
break;
case "cover_stand":
var_00 = [];
func_0ECD(var_7B);
return 1;
var_7B[1]
%coverstand_death_right
var_7B[0]
%coverstand_death_left
break;
case "cover_crouch":
var_00 = [];
if(animscripts/utility::func_D2F("head","neck") && self.var_723 > 135 || self.var_723 <= -45)
{
}
if(self.var_723 > -45 && self.var_723 <= 45)
{
}
func_0ECD(var_7B);
return 1;
var_7B[var_7B.size]
%covercrouch_death_2
var_7B[var_7B.size]
%covercrouch_death_3
var_7B[var_7B.size]
%covercrouch_death_1
break;
case "saw":
if(self.a.pose == "stand")
{
func_0ECD(animscripts/utility::array(%saw_gunner_death));
}
else if(self.a.pose == "crouch")
{
func_0ECD(animscripts/utility::array(%saw_gunner_lowwall_death));
}
else
{
func_0ECD(animscripts/utility::array(%saw_gunner_prone_death));
}
return 1;
case "dying_crawl":
if(isdefined(self.a.var_D29) && self.a.pose == "crouch")
{
var_00 = animscripts/utility::array(%dying_back_death_v2,%dying_back_death_v3,%dying_back_death_v4);
func_0ECD(var_7B);
}
else
{
var_00 = animscripts/utility::array(%dying_crawl_death_v1,%dying_crawl_death_v2);
func_0ECD(var_7B);
}
return 1;
}
return 0;
}
//Function Number: 8
func_0ECD(param_00)
{
var_01 = param_00[randomint(param_00.size)];
func_0D56(var_01);
if(isdefined(self.deathanimscript))
{
self [[ self.deathanimscript ]]();
}
}
//Function Number: 9
playdeathsound()
{
animscripts/face::func_C41("death");
}
//Function Number: 10
func_0ECE(param_00,param_01,param_02)
{
var_03 = param_02 * 20;
for(var_04 = 0;var_04 < var_03;var_04++)
{
wait 0.05;
}
}
//Function Number: 11
func_0D17()
{
if(!isdefined(self))
{
return;
}
if(!isdefined(self.hatmodel))
{
return;
}
var_00 = getpartname(self.hatmodel,0);
var_01 = spawn("script_model",self.origin + (0,0,64));
var_01 setmodel(self.hatmodel);
var_01.origin = self gettagorigin(var_00);
var_01.angles = self gettagangles(var_00);
var_01 thread func_0ED0(self.var_722);
var_02 = self.hatmodel;
self.hatmodel = undefined;
wait 0.05;
if(!isdefined(self))
{
return;
}
self detach(var_02,"");
}
//Function Number: 12
func_0ED0(param_00)
{
var_01 = param_00;
var_01 = var_01 * randomfloatrange(2000,4000);
var_02 = var_01[0];
var_03 = var_01[1];
var_04 = randomfloatrange(1500,3000);
var_05 = self.origin + (randomfloatrange(-1,1),randomfloatrange(-1,1),randomfloatrange(-1,1)) * 5;
self physicslaunchclient(var_05,(var_02,var_03,var_04));
wait 60;
for(;;)
{
if(!isdefined(self))
{
return;
}
if(distancesquared(self.origin,level.player.origin) > 262144)
{
break;
}
wait 30;
}
self delete();
}
//Function Number: 13
func_0ED1(param_00)
{
for(var_01 = 0;var_01 < level.var_A63.size;var_01++)
{
level.var_A63[var_01] func_0ED2(param_00);
}
}
//Function Number: 14
func_0ED2(param_00)
{
if(!isdefined(self.var_ED3))
{
return;
}
if(distance(param_00,self.var_ED3) < 80)
{
self.var_ED3 = undefined;
self.var_A67 = gettime();
}
}
//Function Number: 15
func_0ED4()
{
if(self.a.movement != "run")
{
return 0;
}
if(self getmotionangle() > 60 || self getmotionangle() < -60)
{
return 0;
}
return 1;
}
//Function Number: 16
func_0ED5(param_00,param_01,param_02,param_03)
{
if(isdefined(self.a.doinglongdeath))
{
return 0;
}
if(self.a.pose == "prone" || isdefined(self.a.var_D29))
{
return 0;
}
if(param_00 == "none")
{
return 0;
}
if(param_02 > 500)
{
return 1;
}
if(param_01 == "MOD_MELEE")
{
return 0;
}
if(self.a.movement == "run" && !func_0ED7(param_03,275))
{
if(randomint(100) < 65)
{
return 0;
}
}
if(animscripts/utility::func_BEB(param_00) && self.maxhealth < param_02)
{
return 1;
}
if(animscripts/utility::func_CEA(param_00) && func_0ED7(param_03,512))
{
return 1;
}
if(func_0ED6(param_00) && func_0ED7(param_03,425))
{
return 1;
}
return 0;
}
//Function Number: 17
func_0ED6(param_00)
{
if(param_00 == "deserteagle")
{
return 1;
}
return 0;
}
//Function Number: 18
func_0ED7(param_00,param_01)
{
if(!isdefined(param_00))
{
return 0;
}
if(distance(self.origin,param_00.origin) > param_01)
{
return 0;
}
return 1;
}
//Function Number: 19
func_0ED8()
{
if(func_0ED5(self.damageweapon,self.var_726,self.damagetaken,self.attacker))
{
var_00 = func_0ED9();
if(isdefined(var_00))
{
return var_00;
}
}
if(isdefined(self.a.var_D29))
{
if(self.a.pose == "crouch")
{
return func_0EE1();
}
else
{
animscripts/notetracks::func_D2A();
}
}
if(self.a.pose == "stand")
{
if(func_0ED4())
{
return func_0EDA();
}
return func_0EDD();
}
if(self.a.pose == "crouch")
{
return func_0EDE();
}
if(self.a.pose == "prone")
{
return func_0EDF();
}
}
//Function Number: 20
func_0ED9()
{
var_00 = abs(self.var_723);
if(var_00 < 45)
{
return;
}
if(var_00 > 150)
{
if(animscripts/utility::func_D2F("left_leg_upper","left_leg_lower","right_leg_upper","right_leg_lower","left_foot","right_foot"))
{
var_01 = animscripts/utility::array(%death_shotgun_legs,%death_stand_sniper_leg);
}
else
{
var_01 = [];
if(self.damagelocation == "torso_lower")
{
}
}
}
else if(self.var_723 < 0)
{
var_01 = animscripts/utility::array(%death_shotgun_spinl,%death_stand_sniper_spin1,%death_stand_sniper_chest1,%death_stand_sniper_chest2);
}
else
{
var_01 = animscripts/utility::array(%death_shotgun_spinr,%death_stand_sniper_spin2,%death_stand_sniper_chest1,%death_stand_sniper_chest2);
}
return var_7B[randomint(var_7B.size)];
}
//Function Number: 21
func_0EDA()
{
var_00 = [];
var_7B = animscripts/pain::func_D32(var_7B);
if(!var_7B.size)
{
return func_0EDD();
}
return var_7B[randomint(var_7B.size)];
}
//Function Number: 22
func_0EDB(param_00)
{
var_01 = [];
for(var_02 = 0;var_02 < param_00.size;var_02++)
{
if(!isdefined(param_00[var_02]))
{
continue;
}
var_01[var_01.size] = param_00[var_02];
}
return var_01;
}
//Function Number: 23
func_0EDC()
{
var_00 = [];
if(abs(self.var_723) < 50)
{
}
else
{
if(abs(self.var_723) < 110)
{
}
if(animscripts/utility::func_D2F("torso_lower","torso_upper","left_leg_upper","left_leg_lower","right_leg_upper","right_leg_lower"))
{
if(!animscripts/utility::func_D2F("torso_upper"))
{
}
}
if(!animscripts/utility::func_D2F("head","neck","helmet","left_foot","right_foot","left_hand","right_hand","gun") && randomint(2) == 0)
{
}
if(var_7B.size == 0 || animscripts/utility::func_D2F("torso_lower","torso_upper","neck","head","helmet","right_arm_upper","left_arm_upper"))
{
}
}
return var_7B;
}
//Function Number: 24
func_0EDD()
{
var_00 = [];
var_01 = [];
if(animscripts/utility::func_C95())
{
var_00 = func_0EDC();
}
else
{
if(animscripts/utility::func_D2F("torso_lower","left_leg_upper","left_leg_lower","right_leg_lower","right_leg_lower"))
{
var_00[var_00.size] = func_0EE5(%exposed_death_groin);
var_00[var_00.size] = func_0EE5(%stand_death_leg);
}
if(animscripts/utility::func_D2F("head","helmet"))
{
var_01[var_01.size] = func_0EE5(%exposed_death_headshot);
var_01[var_01.size] = func_0EE5(%exposed_death_flop);
}
if(animscripts/utility::func_D2F("neck"))
{
var_01[var_01.size] = func_0EE5(%exposed_death_neckgrab);
}
if(animscripts/utility::func_D2F("torso_upper","left_arm_upper"))
{
var_01[var_01.size] = func_0EE5(%exposed_death_twist);
var_01[var_01.size] = func_0EE5(%stand_death_shoulder_spin);
var_01[var_01.size] = func_0EE5(%stand_death_shoulderback);
}
if(animscripts/utility::func_D2F("torso_upper"))
{
var_01[var_01.size] = func_0EE5(%stand_death_tumbleforward);
var_01[var_01.size] = func_0EE5(%stand_death_stumbleforward);
}
if(self.var_723 > 135 || self.var_723 <= -135)
{
if(animscripts/utility::func_D2F("neck","head","helmet"))
{
var_01[var_01.size] = func_0EE5(%stand_death_face);
var_01[var_01.size] = func_0EE5(%stand_death_headshot_slowfall);
}
if(animscripts/utility::func_D2F("torso_upper"))
{
var_01[var_01.size] = func_0EE5(%stand_death_tumbleback);
}
}
else if(self.var_723 > -45 && self.var_723 <= 45)
{
var_01[var_01.size] = func_0EE5(%exposed_death_falltoknees);
var_01[var_01.size] = func_0EE5(%exposed_death_falltoknees_02);
}
var_02 = var_01.size > 0;
if(!var_02 || randomint(100) < 15)
{
var_01[var_01.size] = func_0EE5(%exposed_death_02);
var_01[var_01.size] = func_0EE5(%exposed_death_nerve);
}
if(randomint(100) < 10 && func_0EE2())
{
var_01[var_01.size] = func_0EE6(%exposed_death_firing_02);
var_01[var_01.size] = func_0EE6(%exposed_death_firing);
var_01 = func_0EDB(var_01);
}
}
if(var_01.size == 0)
{
var_01[var_01.size] = %exposed_death;
}
if(!self.a.disablelongdeath && self.var_786 == "none" && !isdefined(self.a.var_D13))
{
var_03 = randomint(var_01.size + var_7B.size);
if(var_03 < var_01.size)
{
return var_01[var_03];
}
else
{
return var_7B[var_03 - var_01.size];
}
}
return var_01[randomint(var_01.size)];
}
//Function Number: 25
func_0EDE()
{
var_00 = [];
if(animscripts/utility::func_D2F("head","neck"))
{
}
if(animscripts/utility::func_D2F("torso_upper","torso_lower","left_arm_upper","right_arm_upper","neck"))
{
}
if(var_7B.size < 2)
{
}
if(var_7B.size < 2)
{
}
return var_7B[randomint(var_7B.size)];
}
//Function Number: 26
func_0EDF()
{
if(isdefined(self.a.var_EE0))
{
return %prone_death_quickdeath;
}
return %dying_crawl_death_v1;
}
//Function Number: 27
func_0EE1()
{
var_00 = animscripts/utility::array(%dying_back_death_v1,%dying_back_death_v2,%dying_back_death_v3,%dying_back_death_v4);
return var_00[randomint(var_00.size)];
}
//Function Number: 28
func_0EE2()
{
if(!isdefined(self.weapon) || !animscripts/utility::func_EE3() || !weaponisauto(self.weapon) || self.diequietly)
{
return 0;
}
if(self.a.weaponpos["right"] == "none")
{
return 0;
}
return 1;
}
//Function Number: 29
func_0EE5(param_00)
{
return param_00;
}
//Function Number: 30
func_0EE6(param_00)
{
return param_00;
}
//Function Number: 31
func_0EE7()
{
if(isdefined(self.juggernaut))
{
return 0;
}
if(self.damagelocation != "none")
{
return 0;
}
var_00 = [];
if(self.a.movement != "run")
{
if(self.var_723 > 135 || self.var_723 <= -135)
{
}
else if(self.var_723 > 45 && self.var_723 <= 135)
{
}
else if(self.var_723 > -45 && self.var_723 <= 45)
{
}
else
{
}
}
else if(self.var_723 > 135 || self.var_723 <= -135)
{
}
else if(self.var_723 > 45 && self.var_723 <= 135)
{
}
else if(self.var_723 > -45 && self.var_723 <= 45)
{
}
else
{
}
var_01 = var_7B[randomint(var_7B.size)];
if(getdvar("scr_expDeathMayMoveCheck","on") == "on")
{
var_02 = getmovedelta(var_01,0,1);
var_03 = self localtoworldcoords(var_02);
if(!self maymovetopoint(var_03,0))
{
return 0;
}
}
self animmode("nogravity");
func_0D56(var_01);
return 1;
}

View File

@ -0,0 +1 @@
Failed to decompile this file, open a ticket if you need this fixed.

View File

@ -0,0 +1,47 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_death.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 39 ms
* Timestamp: 10/27/2023 2:17:13 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
if(isdefined(self.a.var_D55))
{
wait 1.1;
var_00 = self getdroptofloorposition();
if(isdefined(var_00))
{
var_01 = common_scripts\utility::spawn_tag_origin();
var_01.origin = self.origin;
var_01.angles = self.angles;
self linkto(var_01);
var_01 moveto(var_00,0.5);
wait 0.5;
self unlink();
var_01 delete();
}
else
{
wait 0.5;
}
return;
}
self unlink();
if(isdefined(self.enemy) && isdefined(self.enemy.var_78A) && self.enemy.var_78A == self)
{
self.enemy.var_78A = undefined;
}
self clearanim(%root,0.2);
self setflaggedanimrestart("dog_anim",%german_shepherd_death_front,1,0.2,1);
animscripts/shared::donotetracks("dog_anim");
}

View File

@ -0,0 +1,40 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_flashed.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 31 ms
* Timestamp: 10/27/2023 2:17:13 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
self endon("stop_flashbang_effect");
wait randomfloatrange(0,0.4);
self clearanim(%root,0.1);
var_00 = maps\_utility::flashbanggettimeleftsec();
if(var_00 > 2 && randomint(100) > 60)
{
self setflaggedanimrestart("flashed_anim",%german_shepherd_run_pain,1,0.2,self.var_10F7 * 0.75);
}
else
{
self setflaggedanimrestart("flashed_anim",%german_shepherd_run_flashbang_b,1,0.2,self.var_10F7);
}
var_01 = getanimlength(%german_shepherd_run_flashbang_b) * self.var_10F7;
if(var_00 < var_01)
{
animscripts/notetracks::func_D4F(var_00,"flashed_anim");
}
else
{
animscripts/shared::donotetracks("flashed_anim");
}
self.var_2097 = 0;
self notify("stop_flashbang_effect");
}

View File

@ -0,0 +1 @@
Failed to decompile this file, open a ticket if you need this fixed.

View File

@ -0,0 +1,432 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_move.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 15
* Decompile Time: 270 ms
* Timestamp: 10/27/2023 2:17:15 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
self clearanim(%root,0.2);
self clearanim(%german_shepherd_run_stop,0);
if(!isdefined(self.var_3B58) && !isdefined(self.var_3B0C) && self.a.movement == "run" && !isdefined(self.disableexits) || self.disableexits == 0)
{
func_3B61();
}
thread func_3B64();
self.var_3B58 = undefined;
self.var_3B0C = undefined;
if(self.a.movement == "run")
{
var_00 = undefined;
var_00 = func_3B65();
self setanimrestart(%german_shepherd_run,var_00["center"],0.2,1);
self setanimrestart(%german_shepherd_run_lean_l,var_00["left"],0.1,1);
self setanimrestart(%german_shepherd_run_lean_r,var_00["right"],0.1,1);
self setflaggedanimknob("dog_run",%german_shepherd_run_knob,1,0.2,self.moveplaybackrate);
animscripts/notetracks::func_D4F(0.1,"dog_run");
}
else
{
self setflaggedanimrestart("dog_walk",%german_shepherd_walk,1,0.2,self.moveplaybackrate);
}
thread animscripts/dog/dog_stop::func_3B01("normal");
for(;;)
{
func_3B59();
if(self.a.movement == "run")
{
if(self.disablearrivals == 0)
{
thread func_3B62();
}
self waittill("run");
self clearanim(%german_shepherd_run_stop,0.1);
}
}
}
//Function Number: 2
func_3B59()
{
self endon("killanimscript");
self endon("stop_soon");
self.var_10B7 = undefined;
for(;;)
{
if(self.disablearrivals)
{
self.stopanimdistsq = 0;
}
else
{
self.stopanimdistsq = level.var_3AEE;
}
if(isdefined(self.var_10B7))
{
self [[ self.var_10B7 ]]();
self.var_10B7 = undefined;
}
if(isdefined(self.var_10AB))
{
self [[ self.var_10AB ]]();
continue;
}
func_3B5A();
}
}
//Function Number: 3
func_3B5A()
{
self endon("move_loop_restart");
if(self.a.movement == "run")
{
var_00 = func_3B65();
self clearanim(%german_shepherd_walk,0.3);
self setanim(%german_shepherd_run,var_00["center"],0.2,1);
self setanim(%german_shepherd_run_lean_l,var_00["left"],0.1,1);
self setanim(%german_shepherd_run_lean_r,var_00["right"],0.1,1);
self setflaggedanimknob("dog_run",%german_shepherd_run_knob,1,0.2,self.moveplaybackrate);
animscripts/notetracks::func_D4F(0.2,"dog_run");
return;
}
self clearanim(%german_shepherd_run_knob,0.3);
self setflaggedanim("dog_walk",%german_shepherd_walk,1,0.2,self.moveplaybackrate);
animscripts/notetracks::func_D4F(0.2,"dog_walk");
}
//Function Number: 4
func_1090()
{
self endon("killanimscript");
self.var_10A8 = undefined;
for(;;)
{
self waittill("path_changed",var_00,var_01);
if(isdefined(self.var_10A8) || isdefined(self.noturnanims))
{
continue;
}
if(self.a.movement != "run")
{
continue;
}
var_02 = angleclamp180(self.angles[1] - vectortoyaw(var_01));
var_03 = func_3B5C(var_02);
if(isdefined(var_03))
{
self.var_10C0 = var_03;
self.var_10C1 = gettime();
self.var_10AB = ::func_3B5D;
self notify("move_loop_restart");
}
}
}
//Function Number: 5
func_3B5B()
{
self endon("killanimscript");
self.var_10A8 = undefined;
for(;;)
{
if(self.var_774 > 40 && !isdefined(self.var_10AB) && !isdefined(self.var_10A8) && !isdefined(self.noturnanims) && self.a.movement == "run")
{
var_00 = vectortoyaw(self.var_773);
var_01 = angleclamp180(self.angles[1] - var_00);
var_02 = func_3B5C(var_01);
if(isdefined(var_02))
{
self.var_10C0 = var_02;
self.var_10C1 = gettime();
self.var_10AB = ::func_3B5D;
self notify("move_loop_restart");
}
}
wait 0.05;
}
}
//Function Number: 6
func_3B5C(param_00)
{
var_01 = undefined;
if(param_00 < -135)
{
var_01 = %german_shepherd_run_start_180_l;
}
else if(param_00 > 135)
{
var_01 = %german_shepherd_run_start_180_r;
}
else if(param_00 < -60)
{
var_01 = %german_shepherd_run_start_l;
}
else if(param_00 > 60)
{
var_01 = %german_shepherd_run_start_r;
}
return var_01;
}
//Function Number: 7
func_3B5D()
{
self endon("killanimscript");
self.var_10AB = undefined;
var_00 = self.var_10C0;
if(gettime() > self.var_10C1 + 50)
{
return;
}
self animmode("zonly_physics",0);
self clearanim(%root,0.2);
self.var_10B7 = ::func_3B5E;
self.var_10A8 = 1;
self setflaggedanimrestart("turnAnim",var_00,1,0.2,self.moveplaybackrate);
self orientmode("face current");
var_01 = getanimlength(var_00) * self.moveplaybackrate;
animscripts/notetracks::func_D4F(var_01 * 0.2,"turnAnim");
self orientmode("face motion");
self animmode("none",0);
var_02 = self.turnrate;
self.turnrate = 0.4;
animscripts/notetracks::func_D4F(var_01 * 0.65,"turnAnim");
self.turnrate = var_02;
self.var_10A8 = undefined;
}
//Function Number: 8
func_3B5E()
{
self.var_10A8 = undefined;
self orientmode("face default");
self clearanim(%root,0.2);
self animmode("none",0);
}
//Function Number: 9
func_3B5F()
{
self endon("killanimscript");
for(var_00 = 0;var_00 < 2;var_00++)
{
var_01 = vectortoangles(self.var_773);
self orientmode("face angle",var_01);
}
}
//Function Number: 10
func_3B60()
{
self endon("move_loop_restart");
if(self.var_774 == 0)
{
thread func_3B5B();
return;
}
var_00 = self.origin;
var_01 = level.var_3AF5 * 0.6;
var_00 = var_00 + self.var_773 * var_01;
var_02 = distancesquared(self.origin,self.pathgoalpos) < var_01 * var_01;
var_03 = vectortoangles(self.var_773);
if(!var_02 && self maymovetopoint(var_00))
{
var_04 = angleclamp180(var_03[1] - self.angles[1]);
if(var_04 >= 0)
{
if(var_04 < 45)
{
var_05 = 8;
}
else if(var_05 < 135)
{
var_05 = 6;
}
else
{
var_05 = 3;
}
}
else if(var_05 > -45)
{
var_05 = 8;
}
else if(var_05 > -135)
{
var_05 = 4;
}
else
{
var_05 = 1;
}
self setanimrestart(level.var_3AF8[var_05],1,0.2,1);
var_06 = self.angles[1] + level.var_3AF7[var_05];
var_07 = angleclamp180(var_03[1] - var_06);
self orientmode("face angle",self.angles[1] + var_07);
self animmode("zonly_physics",0);
var_08 = getanimlength(level.var_3AF8[var_05]) * self.moveplaybackrate;
animscripts/notetracks::func_D4F(var_08 * 0.6,"turnAnim");
self orientmode("face motion");
self animmode("none",0);
thread func_3B5B();
animscripts/notetracks::func_D4F(var_08 * 0.25,"turnAnim");
return;
}
self orientmode("face angle",var_03[1]);
self animmode("none");
self.var_3AFC = self.turnrate;
self.turnrate = 0.5;
var_09 = angleclamp180(var_03[1] - self.angles[1]);
if(abs(var_09) > 20)
{
if(var_09 > 0)
{
var_0A = %german_shepherd_rotate_ccw;
}
else
{
var_0A = %german_shepherd_rotate_cw;
}
self setflaggedanimrestart("dog_turn",var_0A,1,0.2,1);
animscripts/shared::donotetracks("dog_turn");
self clearanim(%german_shepherd_rotate_cw,0.2);
self clearanim(%german_shepherd_rotate_ccw,0.2);
}
thread func_3B5B();
self.turnrate = self.var_3AFC;
self.var_3AFC = undefined;
self orientmode("face motion");
}
//Function Number: 11
func_3B61()
{
if(isdefined(self.pathgoalpos))
{
if(isdefined(self.pathgoalpos))
{
func_3B60();
self clearanim(%root,0.2);
return;
}
}
self orientmode("face default");
self setflaggedanimknobrestart("dog_prerun",%german_shepherd_run_start,1,0.2,self.moveplaybackrate);
animscripts/shared::donotetracks("dog_prerun");
self animmode("none",0);
self clearanim(%root,0.2);
}
//Function Number: 12
func_3B62()
{
self endon("killanimscript");
self endon("run");
self clearanim(%german_shepherd_run_knob,0.1);
self setflaggedanimrestart("stop_anim",%german_shepherd_run_stop,1,0.2,1);
animscripts/shared::donotetracks("stop_anim");
}
//Function Number: 13
func_3B63(param_00,param_01)
{
maps\_utility::play_sound_on_tag_endon_death(param_00,"tag_eye");
if(isalive(self))
{
self notify(param_01);
}
}
//Function Number: 14
func_3B64()
{
self endon("killanimscript");
wait 0.2;
for(;;)
{
var_00 = undefined;
if(isdefined(self.var_23DB))
{
var_00 = "anml_dog_growl";
}
else if(!isdefined(self.script_nobark))
{
var_00 = "anml_dog_bark";
}
if(!isdefined(var_00))
{
break;
}
thread func_3B63(var_00,"randomRunSound");
self waittill("randomRunSound");
wait randomfloatrange(0.1,0.3);
}
}
//Function Number: 15
func_3B65()
{
var_00 = [];
if(self.var_76C > 0)
{
if(self.var_76C < 0.95)
{
self.var_76C = 0.95;
}
if(var_7B["right"] > 1)
{
}
else if(var_7B["right"] < 0)
{
}
}
else if(self.var_76C < 0)
{
if(self.var_76C > -0.95)
{
self.var_76C = -0.95;
}
if(var_7B["left"] > 1)
{
}
if(var_7B["left"] < 0)
{
}
}
else
{
}
return var_7B;
}

View File

@ -0,0 +1,24 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_pain.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 32 ms
* Timestamp: 10/27/2023 2:17:15 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
if(isdefined(self.enemy) && isdefined(self.enemy.var_78A) && self.enemy.var_78A == self)
{
self unlink();
self.enemy.var_78A = undefined;
}
self clearanim(%root,0.2);
self setflaggedanimrestart("dog_pain_anim",%german_shepherd_run_pain,1,0.2,1);
animscripts/shared::donotetracks("dog_pain_anim");
}

View File

@ -0,0 +1,14 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_reactions.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 30 ms
* Timestamp: 10/27/2023 2:17:16 AM
*******************************************************************/
//Function Number: 1
main()
{
}

View File

@ -0,0 +1,51 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_scripted.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 44 ms
* Timestamp: 10/27/2023 2:17:16 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self notify("killanimscript");
self.var_3B66["root"] = %root;
self endon("end_sequence");
self startscriptedanim(self.var_3B66["notifyName"],self.var_3B66["origin"],self.var_3B66["angles"],self.var_3B66["anim"],self.var_3B66["animMode"],self.var_3B66["root"]);
self.var_3B66 = undefined;
if(isdefined(self.var_3B67))
{
self.var_3B68 = self.var_3B67;
}
self waittill("killanimscript");
}
//Function Number: 2
init(param_00,param_01,param_02,param_03,param_04,param_05)
{
self.var_3B66["notifyName"] = param_00;
self.var_3B66["origin"] = param_01;
self.var_3B66["angles"] = param_02;
self.var_3B66["anim"] = param_03;
if(isdefined(param_04))
{
self.var_3B66["animMode"] = param_04;
}
else
{
self.var_3B66["animMode"] = "normal";
}
if(isdefined(param_05))
{
self.var_3B66["root"] = param_05;
return;
}
self.var_3B66["root"] = %root;
}

View File

@ -0,0 +1,174 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\dog\dog_stop.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 6
* Decompile Time: 109 ms
* Timestamp: 10/27/2023 2:17:17 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
self clearanim(%root,0.1);
self clearanim(%german_shepherd_idle,0.2);
self clearanim(%german_shepherd_attackidle_knob,0.2);
thread func_3B01("attackIdle");
for(;;)
{
if(func_3AFF())
{
self clearanim(%german_shepherd_idle,0.2);
func_3AFE();
}
else
{
self orientmode("face current");
self clearanim(%german_shepherd_attackidle_knob,0.2);
self setflaggedanimrestart("dog_idle",%german_shepherd_idle,1,0.2,self.var_10F7);
}
animscripts/shared::donotetracks("dog_idle");
if(isdefined(self.var_3AFC))
{
self.turnrate = self.var_3AFC;
self.var_3AFC = undefined;
}
}
}
//Function Number: 2
func_3AFD(param_00)
{
var_01 = self.enemy.origin - self.origin;
var_02 = length(var_01);
if(var_02 < 1)
{
return 1;
}
var_03 = anglestoforward(self.angles);
return var_03[0] * var_01[0] + var_03[1] * var_01[1] / var_02 > param_00;
}
//Function Number: 3
func_3AFE()
{
self clearanim(%german_shepherd_attackidle_knob,0.1);
if(func_3AFD(0.866))
{
self orientmode("face angle",self.angles[1]);
}
else
{
if(isdefined(self.enemy))
{
var_00 = vectortoyaw(self.enemy.origin - self.origin);
var_01 = angleclamp180(var_00 - self.angles[1]);
if(abs(var_01) > 10)
{
self orientmode("face enemy");
self.var_3AFC = self.turnrate;
self.turnrate = 0.3;
if(var_01 > 0)
{
var_02 = %german_shepherd_rotate_ccw;
}
else
{
var_02 = %german_shepherd_rotate_cw;
}
self setflaggedanimrestart("dog_turn",var_02,1,0.2,1);
animscripts/shared::donotetracks("dog_turn");
self.turnrate = self.var_3AFC;
self.var_3AFC = undefined;
self clearanim(%german_shepherd_rotate_cw,0.2);
self clearanim(%german_shepherd_rotate_ccw,0.2);
}
}
self orientmode("face angle",self.angles[1]);
}
if(func_3B00())
{
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_growl,1,0.2,1);
return;
}
var_03 = 33;
var_04 = 66;
if(isdefined(self.mode))
{
if(self.mode == "growl")
{
var_03 = 15;
var_04 = 30;
}
else if(self.mode == "bark")
{
var_03 = 15;
var_04 = 85;
}
}
var_05 = randomint(100);
if(var_05 < var_03)
{
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_b,1,0.2,self.var_10F7);
return;
}
if(var_05 < var_04)
{
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_bark,1,0.2,self.var_10F7);
return;
}
self setflaggedanimrestart("dog_idle",%german_shepherd_attackidle_growl,1,0.2,self.var_10F7);
}
//Function Number: 4
func_3AFF()
{
return isdefined(self.enemy) && isalive(self.enemy) && distancesquared(self.origin,self.enemy.origin) < 1000000;
}
//Function Number: 5
func_3B00()
{
if(isdefined(self.var_23DB))
{
return 1;
}
if(!isalive(self.enemy))
{
return 1;
}
return !self cansee(self.enemy);
}
//Function Number: 6
func_3B01(param_00)
{
self endon("killanimscript");
self endon("stop tracking");
self clearanim(%german_shepherd_look_2,0);
self clearanim(%german_shepherd_look_4,0);
self clearanim(%german_shepherd_look_6,0);
self clearanim(%german_shepherd_look_8,0);
self setdefaultaimlimits();
self.var_716 = 90;
self.var_717 = -90;
self setanimlimited(level.var_3AF9[param_00][2],1,0);
self setanimlimited(level.var_3AF9[param_00][4],1,0);
self setanimlimited(level.var_3AF9[param_00][6],1,0);
self setanimlimited(level.var_3AF9[param_00][8],1,0);
animscripts/track::func_CC4(1,0.2);
animscripts/track::func_CAA(%german_shepherd_look_2,%german_shepherd_look_4,%german_shepherd_look_6,%german_shepherd_look_8);
}

View File

@ -0,0 +1,309 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\door.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 11
* Decompile Time: 206 ms
* Timestamp: 10/27/2023 2:18:17 AM
*******************************************************************/
//Function Number: 1
func_1088()
{
self endon("killanimscript");
if(isdefined(self.var_1089))
{
return;
}
for(;;)
{
var_00 = self getdoorpathnode();
if(isdefined(var_00))
{
break;
}
wait 0.2;
}
var_01 = var_00.type == "Door Interior" || self comparenodedirtopathdir(var_00);
if(var_01)
{
func_10A1(var_00);
}
else
{
func_10A4(var_00);
}
for(;;)
{
var_02 = self getdoorpathnode();
if(!isdefined(var_02) || var_02 != var_00)
{
break;
}
wait 0.2;
}
thread func_1088();
}
//Function Number: 2
func_108A()
{
self endon("killanimscript");
self.teamflashbangimmunity = 1;
wait 5;
self.teamflashbangimmunity = undefined;
}
//Function Number: 3
func_108C(param_00)
{
thread func_108A();
if(self.grenadeweapon == "flash_grenade")
{
self notify("flashbang_thrown");
}
self orientmode("face current");
param_00.var_108D = gettime() + 5000;
self.var_108E = gettime() + 100000;
self notify("move_interrupt");
self.var_FC9 = undefined;
self clearanim(%combatrun,0.2);
self.a.movement = "stop";
self waittill("done_grenade_throw");
self orientmode("face default");
self.var_108E = gettime() + 5000;
self.grenadeweapon = self.var_108F;
self.var_108F = undefined;
animscripts/run::func_FE2();
thread animscripts/move::func_1090();
thread animscripts/move::func_1091(1);
}
//Function Number: 4
func_1092(param_00,param_01,param_02,param_03,param_04)
{
var_05 = 0;
var_06 = 3;
var_07 = undefined;
var_07 = %cqb_stand_grenade_throw;
var_08 = anglestoforward(param_00.angles);
if(param_00.type == "Door Interior" && !self comparenodedirtopathdir(param_00))
{
var_08 = -1 * var_08;
}
var_09 = (param_00.origin[0],param_00.origin[1],param_00.origin[2] + 64);
var_0A = var_09;
if(param_02)
{
var_0B = anglestoright(param_00.angles);
var_0C = param_00.origin - self.origin;
var_0D = vectordot(var_0B,var_0C);
if(var_0D > 20)
{
var_0D = 20;
}
else if(var_0D < -20)
{
var_0D = -20;
}
var_0A = var_09 + var_0D * var_0B;
}
while(var_06 > 0)
{
if(isdefined(self.var_73C) || !isdefined(self.enemy))
{
return;
}
if(func_10A0(param_00,var_08))
{
return;
}
if(!self seerecently(self.enemy,0.2) && self.a.pose == "stand" && func_109F(self.enemy.origin - param_00.origin,360000,16384))
{
if(isdefined(param_00.var_108D) && param_00.var_108D > gettime())
{
return;
}
if(self canshootenemy())
{
return;
}
var_0C = param_00.origin - self.origin;
if(lengthsquared(var_0C) < param_03)
{
return;
}
if(vectordot(var_0C,var_08) < 0)
{
return;
}
self.var_108F = self.grenadeweapon;
self.grenadeweapon = param_01;
animscripts/combat_utility::func_1093(self.enemy);
if(!var_05)
{
var_0E = var_09 + var_08 * 100;
if(!self isgrenadepossafe(self.enemy,var_0E,128))
{
return;
}
}
var_05 = 1;
if(animscripts/combat_utility::func_1095(self.enemy,var_0A,var_07,animscripts/combat_utility::func_1094(var_07),1,0,1))
{
func_108C(param_00);
return;
}
}
var_06--;
wait param_04;
var_0F = self getdoorpathnode();
if(!isdefined(var_0F) || var_0F != param_00)
{
return;
}
}
}
//Function Number: 5
func_1096()
{
self endon("killanimscript");
if(isdefined(self.var_1089))
{
return;
}
self.var_1097 = 0;
for(;;)
{
if(self isindoor() && !self.var_748)
{
func_1098();
}
else if(!isdefined(self.var_108E) || self.var_108E < gettime())
{
self.var_108E = undefined;
func_109C();
}
wait 0.2;
}
}
//Function Number: 6
func_1098()
{
if(!isdefined(self.neverenablecqb) && !self.var_748)
{
self.var_1097 = 1;
if(!isdefined(self.cqbwalking) || !self.cqbwalking)
{
maps\_utility::enable_cqbwalk(1);
}
}
}
//Function Number: 7
func_109C()
{
if(!isdefined(self.cqbenabled))
{
self.var_1097 = 0;
if(isdefined(self.cqbwalking) && self.cqbwalking)
{
maps\_utility::disable_cqbwalk();
}
}
}
//Function Number: 8
func_109F(param_00,param_01,param_02)
{
return param_00[0] * param_00[0] + param_00[1] * param_00[1] < param_01 && param_00[2] * param_00[2] < param_02;
}
//Function Number: 9
func_10A0(param_00,param_01)
{
var_02 = param_00.origin - self.origin;
var_03 = param_00.origin - self.enemy.origin;
return vectordot(var_02,param_01) * vectordot(var_03,param_01) > 0;
}
//Function Number: 10
func_10A1(param_00)
{
for(;;)
{
if(isdefined(self.var_10A2) && self.var_10A2 == 0 || self.var_10A2 < randomfloat(1))
{
break;
}
if(func_109F(self.origin - param_00.origin,562500,25600))
{
func_1092(param_00,"fraggrenade",0,302500,0.3);
param_00 = self getdoorpathnode();
if(!isdefined(param_00))
{
return;
}
break;
}
wait 0.1;
}
for(;;)
{
if(func_109F(self.origin - param_00.origin,-28672,6400))
{
func_1098();
self.var_108E = gettime() + 6000;
if(isdefined(self.doorflashchance) && self.doorflashchance == 0 || self.doorflashchance < randomfloat(1))
{
return;
}
func_1092(param_00,"flash_grenade",1,4096,0.2);
return;
}
wait 0.1;
}
}
//Function Number: 11
func_10A4(param_00)
{
for(;;)
{
if(!self.var_1097 || distancesquared(self.origin,param_00.origin) < 1024)
{
return;
}
wait 0.1;
}
}

View File

@ -0,0 +1,349 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\face.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 13
* Decompile Time: 231 ms
* Timestamp: 10/27/2023 2:18:18 AM
*******************************************************************/
//Function Number: 1
func_0C3A()
{
if(!level.usefacialanims)
{
return;
}
if(!isdefined(self.a.var_C3C))
{
self.a.var_C3C = 0;
self.a.var_C3E = level.var_C3D;
self.var_C3F = [];
self.var_C40 = 0;
}
}
//Function Number: 2
func_0C41(param_00)
{
var_01 = undefined;
switch(self.voice)
{
case "seal":
case "taskforce":
case "french":
case "pmc":
case "czech":
case "delta":
case "american":
var_02 = "friendly";
var_03 = level.var_C42;
break;
default:
var_02 = "enemy";
var_03 = level.var_C43;
break;
}
var_01 = 1 + self getentitynumber() % var_03;
var_02 = var_02 + "_" + var_01;
var_04 = undefined;
switch(param_00)
{
case "meleeattack":
case "meleecharge":
var_05 = 0.5;
break;
case "flashbang":
var_05 = 0.7;
break;
case "pain":
var_05 = 0.9;
break;
case "death":
var_05 = 1;
break;
default:
var_05 = 0.3;
break;
}
var_06 = "generic_" + param_00 + "_" + var_02;
thread func_0C49(var_04,var_06,var_05);
}
//Function Number: 3
func_0C44(param_00)
{
animscripts/battlechatter::func_ABF();
self.a.var_C3E = param_00;
}
//Function Number: 4
func_0C45(param_00)
{
if(!level.usefacialanims)
{
return;
}
animscripts/battlechatter::func_ABF();
self.a.var_C3E = param_00;
func_0C48();
}
//Function Number: 5
func_0C46(param_00,param_01,param_02,param_03,param_04,param_05)
{
thread func_0C49(param_00,param_01,param_02,param_03,param_04,param_05);
}
//Function Number: 6
func_0C47(param_00)
{
}
//Function Number: 7
func_0C48()
{
}
//Function Number: 8
func_0C49(param_00,param_01,param_02,param_03,param_04,param_05)
{
self.a.var_C4A = 1;
self.a.var_C4B = 1;
if(isdefined(param_03))
{
if(isdefined(param_01))
{
self playsoundatviewheight(param_01,"animscript facesound" + param_03,1);
thread func_0C52(param_03);
}
}
else
{
self playsoundatviewheight(param_01);
}
if(!level.usefacialanims)
{
return;
}
func_0C3A();
if(!isdefined(param_00) && !isdefined(param_01))
{
if(isdefined(param_03))
{
wait 0;
self.var_C4C = "failed";
self notify(param_03);
}
return;
}
self endon("death");
if(isstring(param_02))
{
switch(param_02)
{
case "any":
param_02 = 0.1;
break;
case "pain":
param_02 = 0.9;
break;
case "death":
param_02 = 1;
break;
}
}
if(param_02 <= self.a.var_C3C && isdefined(param_04) && param_04 == "wait")
{
var_06 = self.var_C3F.size;
var_07 = self.var_C40 + 1;
self.var_C3F[var_06]["facialanim"] = param_00;
self.var_C3F[var_06]["soundAlias"] = param_01;
self.var_C3F[var_06]["importance"] = param_02;
self.var_C3F[var_06]["notifyString"] = param_03;
self.var_C3F[var_06]["waitOrNot"] = param_04;
self.var_C3F[var_06]["timeToWait"] = param_05;
self.var_C3F[var_06]["notifyNum"] = var_07;
thread func_0C53("animscript face stop waiting " + self.var_C3F[var_06]["notifyNum"],"Face done waiting","Face done waiting");
if(isdefined(param_05))
{
thread func_0C54(param_05,"Face done waiting","Face done waiting");
}
self waittill("Face done waiting");
var_06 = undefined;
for(var_08 = 0;var_08 < self.var_C3F.size;var_08++)
{
if(self.var_C3F[var_08]["notifyNum"] == var_07)
{
var_06 = var_08;
break;
}
}
if(self.a.var_C4D == "notify")
{
func_0C49(self.var_C3F[var_06]["facialanim"],self.var_C3F[var_06]["soundAlias"],self.var_C3F[var_06]["importance"],self.var_C3F[var_06]["notifyString"]);
}
else if(isdefined(param_03))
{
self.var_C4C = "failed";
self notify(param_03);
}
for(var_08 = var_06 + 1;var_08 < self.var_C3F.size;var_08++)
{
self.var_C3F[var_08 - 1]["facialanim"] = self.var_C3F[var_08]["facialanim"];
self.var_C3F[var_08 - 1]["soundAlias"] = self.var_C3F[var_08]["soundAlias"];
self.var_C3F[var_08 - 1]["importance"] = self.var_C3F[var_08]["importance"];
self.var_C3F[var_08 - 1]["notifyString"] = self.var_C3F[var_08]["notifyString"];
self.var_C3F[var_08 - 1]["waitOrNot"] = self.var_C3F[var_08]["waitOrNot"];
self.var_C3F[var_08 - 1]["timeToWait"] = self.var_C3F[var_08]["timeToWait"];
self.var_C3F[var_08 - 1]["notifyNum"] = self.var_C3F[var_08]["notifyNum"];
}
self.var_C3F[self.var_C3F.size - 1] = undefined;
return;
}
if(param_02 >= self.a.var_C3C)
{
self notify("end current face");
self endon("end current face");
if(isdefined(param_03))
{
if(isdefined(self.a.var_C4E))
{
self.var_C4C = "interrupted";
self notify(self.a.var_C4E);
}
}
self.a.var_C3C = param_02;
self.a.var_C4F = param_01;
self.a.var_C4E = param_03;
self.a.var_C4A = 1;
self.a.var_C4B = 1;
if(isdefined(param_00))
{
self setflaggedanimknobrestart("animscript faceanim",param_00,1,0.1,1);
self.a.var_C4A = 0;
thread func_0C50();
}
if(isdefined(param_01))
{
self playsoundatviewheight(param_01,"animscript facesound",1);
self.a.var_C4B = 0;
thread func_0C52();
}
while(!self.a.var_C4A || !self.a.var_C4B)
{
self waittill("animscript facedone");
}
self.a.var_C3C = 0;
self.a.var_C4F = undefined;
self.a.var_C4E = undefined;
if(isdefined(param_03))
{
self.var_C4C = "finished";
self notify(param_03);
}
if(isdefined(self.var_C3F) && self.var_C3F.size > 0)
{
var_09 = 0;
var_0A = 1;
for(var_08 = 0;var_08 < self.var_C3F.size;var_08++)
{
if(self.var_C3F[var_08]["importance"] > var_09)
{
var_09 = self.var_C3F[var_08]["importance"];
var_0A = var_08;
}
}
self notify("animscript face stop waiting " + self.var_C3F[var_0A]["notifyNum"]);
return;
}
if(isai(self))
{
func_0C48();
return;
}
return;
}
if(isdefined(param_03))
{
self.var_C4C = "failed";
self notify(param_03);
return;
}
}
//Function Number: 9
func_0C50()
{
self endon("death");
self endon("end current face");
animscripts/shared::donotetracks("animscript faceanim");
self.a.var_C4A = 1;
self notify("animscript facedone");
}
//Function Number: 10
func_0C52(param_00)
{
self endon("death");
self waittill("animscript facesound" + param_00);
self notify(param_00);
}
//Function Number: 11
func_0C53(param_00,param_01,param_02)
{
self endon("death");
self endon(param_02);
self waittill(param_00);
self.a.var_C4D = "notify";
self notify(param_01);
}
//Function Number: 12
func_0C54(param_00,param_01,param_02)
{
self endon("death");
self endon(param_02);
wait param_00;
self.a.var_C4D = "time";
self notify(param_01);
}
//Function Number: 13
func_0C55()
{
anim.var_C42 = 8;
anim.var_C43 = 8;
}

View File

@ -0,0 +1,23 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\first_frame.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 2:18:19 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self endon("stop_first_frame");
self notify("killanimscript");
self.pushable = 0;
self clearanim(self.var_C56,0.3);
self orientmode("face angle",self.angles[1]);
self setanim(level.scr_anim[self._animname][self._first_frame_anim],1,0,0);
self._first_frame_anim = undefined;
self waittill("killanimscript");
}

View File

@ -0,0 +1,95 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\flashed.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 6
* Decompile Time: 110 ms
* Timestamp: 10/27/2023 2:18:19 AM
*******************************************************************/
//Function Number: 1
func_208E()
{
level.var_208F[0] = %exposed_flashbang_v1;
level.var_208F[1] = %exposed_flashbang_v2;
level.var_208F[2] = %exposed_flashbang_v3;
level.var_208F[3] = %exposed_flashbang_v4;
level.var_208F[4] = %exposed_flashbang_v5;
func_2091();
anim.var_2090 = 0;
}
//Function Number: 2
func_2091()
{
for(var_00 = 0;var_00 < level.var_208F.size;var_00++)
{
var_01 = randomint(level.var_208F.size);
var_02 = level.var_208F[var_00];
level.var_208F[var_00] = level.var_208F[var_01];
level.var_208F[var_01] = var_02;
}
}
//Function Number: 3
func_2092()
{
level.var_2090++;
if(level.var_2090 >= level.var_208F.size)
{
anim.var_2090 = 0;
func_2091();
}
return level.var_208F[level.var_2090];
}
//Function Number: 4
func_2093(param_00)
{
self endon("killanimscript");
self setflaggedanimknoball("flashed_anim",param_00,%body,0.2,randomfloatrange(0.9,1.1));
animscripts/shared::donotetracks("flashed_anim");
}
//Function Number: 5
main()
{
self endon("death");
self endon("killanimscript");
animscripts/utility::func_D15("flashed");
var_00 = maps\_utility::flashbanggettimeleftsec();
if(var_00 <= 0)
{
return;
}
animscripts/face::func_C41("flashbang");
if(isdefined(self.var_2095))
{
self [[ self.var_2095 ]]();
return;
}
var_01 = func_2092();
func_2096(var_01,var_00);
}
//Function Number: 6
func_2096(param_00,param_01)
{
self endon("death");
self endon("killanimscript");
if(self.a.pose == "prone")
{
animscripts/utility::func_F7D(1);
}
self.a.pose = "stand";
self.allowdeath = 1;
thread func_2093(param_00);
wait param_01;
self notify("stop_flashbang_effect");
self.var_2097 = 0;
}

View File

@ -0,0 +1,99 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\grenade_cower.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 3
* Decompile Time: 71 ms
* Timestamp: 10/27/2023 2:18:20 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
animscripts/utility::func_D15("grenadecower");
if(isdefined(self.var_3ACA))
{
self [[ self.var_3ACA ]]();
return;
}
if(self.a.pose == "prone")
{
animscripts/stop::main();
return;
}
self animmode("zonly_physics");
self orientmode("face angle",self.angles[1]);
var_00 = 0;
if(isdefined(self.var_73C))
{
var_00 = angleclamp180(vectortoangles(self.var_73C.origin - self.origin)[1] - self.angles[1]);
}
else
{
var_00 = self.angles[1];
}
if(self.a.pose == "stand")
{
if(isdefined(self.var_73C) && func_3FE0(var_00))
{
return;
}
self setflaggedanimknoballrestart("cowerstart",%exposed_squat_down_grenade_f,%body,1,0.2);
animscripts/shared::donotetracks("cowerstart");
}
self.a.pose = "crouch";
self.a.movement = "stop";
self setflaggedanimknoballrestart("cower",%exposed_squat_idle_grenade_f,%body,1,0.2);
animscripts/shared::donotetracks("cower");
self waittill("never");
}
//Function Number: 2
func_067F()
{
self.var_765 = 1;
}
//Function Number: 3
func_3FE0(param_00)
{
if(randomint(2) == 0)
{
return 0;
}
if(self.var_786 != "none")
{
return 0;
}
var_01 = undefined;
if(abs(param_00) > 90)
{
var_01 = %exposed_dive_grenade_b;
}
else
{
var_01 = %exposed_dive_grenade_f;
}
var_02 = getmovedelta(var_01,0,0.5);
var_03 = self localtoworldcoords(var_02);
if(!self maymovetopoint(var_03))
{
return 0;
}
self.var_765 = 0;
self setflaggedanimknoballrestart("cowerstart",var_01,%body,1,0.2);
animscripts/shared::donotetracks("cowerstart");
self.var_765 = 1;
return 1;
}

View File

@ -0,0 +1,98 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\grenade_return_throw.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 4
* Decompile Time: 83 ms
* Timestamp: 10/27/2023 2:18:21 AM
*******************************************************************/
//Function Number: 1
main()
{
self orientmode("face default");
self endon("killanimscript");
animscripts/utility::func_D15("grenade_return_throw");
self animmode("zonly_physics");
var_00 = undefined;
var_01 = 1000;
if(isdefined(self.enemy))
{
var_01 = distance(self.origin,self.enemy.origin);
}
var_02 = [];
if(var_01 < 600 && func_3FE1())
{
if(var_01 < 300)
{
}
else
{
}
}
if(var_7B.size == 0)
{
}
var_01 = var_7B[randomint(var_7B.size)];
self setflaggedanimknoballrestart("throwanim",var_01,%body,1,0.3);
var_04 = animhasnotetrack(var_01,"grenade_left") || animhasnotetrack(var_01,"grenade_right");
if(var_04)
{
animscripts/shared::func_C9B(self.weapon,"left");
thread func_3FE2();
thread func_3FE3("throwanim","grenade_left");
thread func_3FE3("throwanim","grenade_right");
self waittill(%grenade_return_running_throw_forward,var_7B[0],%grenade_return_standing_throw_forward_1,var_7B[1],%grenade_return_running_throw_forward,var_7B[0],%grenade_return_standing_throw_overhand_forward,var_7B[1],%grenade_return_standing_throw_overhand_forward,var_7B[0],"grenade_pickup");
self pickupgrenade();
animscripts/battlechatter_ai::func_B3A("grenade");
self waittillmatch("grenade_throw","throwanim");
}
else
{
self waittillmatch("grenade_throw","throwanim");
self pickupgrenade();
animscripts/battlechatter_ai::func_B3A("grenade");
}
if(isdefined(self.var_73C))
{
self throwgrenade();
}
wait 1;
if(var_04)
{
self notify("put_weapon_back_in_right_hand");
animscripts/shared::func_C9B(self.weapon,"right");
}
}
//Function Number: 2
func_3FE1()
{
var_00 = (self.origin[0],self.origin[1],self.origin[2] + 20);
var_01 = var_00 + anglestoforward(self.angles) * 50;
return sighttracepassed(var_00,var_01,0,undefined);
}
//Function Number: 3
func_3FE2()
{
self endon("death");
self endon("put_weapon_back_in_right_hand");
self waittill("killanimscript");
animscripts/shared::func_C9B(self.weapon,"right");
}
//Function Number: 4
func_3FE3(param_00,param_01)
{
self endon("killanimscript");
self endon("grenade_pickup");
self waittillmatch(param_01,param_00);
self notify("grenade_pickup");
}

View File

@ -0,0 +1,629 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\init.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 25
* Decompile Time: 432 ms
* Timestamp: 10/27/2023 2:18:22 AM
*******************************************************************/
//Function Number: 1
func_2098(param_00)
{
self.weaponinfo[param_00] = spawnstruct();
self.weaponinfo[param_00].position = "none";
self.weaponinfo[param_00].var_209A = 1;
if(getweaponclipmodel(param_00) != "")
{
self.weaponinfo[param_00].var_209B = 1;
return;
}
self.weaponinfo[param_00].var_209B = 0;
}
//Function Number: 2
func_209C(param_00)
{
return isdefined(self.weaponinfo[param_00]);
}
//Function Number: 3
func_209D()
{
anim.var_CAD = 55;
anim.var_209E = 10;
anim.var_209F = 4096;
anim.var_20A0 = 45;
anim.var_20A1 = 20;
anim.var_D62 = 25;
anim.var_D63 = level.var_209F;
anim.var_D64 = level.var_20A0;
anim.var_D65 = 30;
anim.var_CC0 = 65;
anim.var_CC1 = 65;
}
//Function Number: 4
func_20A2()
{
if(animscripts/utility::func_CEA(self.secondaryweapon))
{
return 1;
}
if(weaponclass(self.primaryweapon) == "rocketlauncher")
{
return 1;
}
return 0;
}
//Function Number: 5
main()
{
self.a = spawnstruct();
self.a.var_CDF = 0;
self.primaryweapon = self.weapon;
func_20C5();
if(self.primaryweapon == "")
{
self.primaryweapon = "none";
}
if(self.secondaryweapon == "")
{
self.secondaryweapon = "none";
}
if(self.sidearm == "")
{
self.sidearm = "none";
}
func_2098(self.primaryweapon);
func_2098(self.secondaryweapon);
func_2098(self.sidearm);
self setdefaultaimlimits();
self.a.weaponpos["left"] = "none";
self.a.weaponpos["right"] = "none";
self.a.weaponpos["chest"] = "none";
self.a.weaponpos["back"] = "none";
self.a.var_20A4["left"] = "none";
self.a.var_20A4["right"] = "none";
self.a.var_20A4["chest"] = "none";
self.a.var_20A4["back"] = "none";
self.lastweapon = self.weapon;
self.var_C56 = %root;
thread begingrenadetracking();
var_00 = animscripts/utility::func_BB6();
self.a.var_20A5 = var_00;
if(var_00)
{
thread animscripts/shared::func_20A6();
}
self.a.rockets = 3;
self.a.var_CD2 = 1;
self.a.pose = "stand";
self.a.var_113C = "stand";
self.a.movement = "stop";
self.a.var_A98 = "stop";
self.a.var_D19 = "none";
self.a.var_20A7 = "none";
self.a.var_20A8 = -1;
self.dropweapon = 1;
self.minexposedgrenadedist = 750;
animscripts/shared::func_C9B(self.primaryweapon,"right");
if(animscripts/utility::func_CEA(self.secondaryweapon))
{
animscripts/shared::func_C9B(self.secondaryweapon,"back");
}
self.a.var_114D = 0;
self.a.var_20A9 = gettime();
self.a.var_20AA = gettime();
self.a.var_20AB = 0;
self.a.disablelongdeath = !self isbadguy();
self.a.var_20AC = 0;
self.a.var_B29 = 0;
self.a.lastshoottime = 0;
self.a.var_113A = 0;
self.a.var_FDD = 0.8;
if(self.team != "allies")
{
self.has_no_ir = 1;
}
self.a.var_20AD = undefined;
self.a.stance = "stand";
self.var_FBA = ::animscripts/utility::func_10AF;
self._animactive = 0;
self._lastanimtime = 0;
thread func_20C1();
self.baseaccuracy = 1;
self.a.misstime = 0;
self.a.var_D55 = 0;
self.a.misstime = 0;
self.a.misstimedebounce = 0;
self.a.disablepain = 0;
self.var_20B1 = 1;
self.chatinitialized = 0;
self.var_20B2 = 0;
self.var_20B3 = 1;
self.var_20B4 = 1;
self.var_110F = 55;
self.a.var_D14 = 0;
if(!isdefined(self.script_forcegrenade))
{
self.script_forcegrenade = 0;
}
func_20BD();
animscripts/weaponlist::func_CD0();
self.var_A7F = 0;
self.var_A80 = 0;
self.var_A9D = 0;
self.var_A9E = 0;
if(self.team == "allies")
{
self.var_CFB = 0.5;
}
else
{
self.var_CFB = 0;
}
if(self.team == "allies")
{
self.var_20B6 = 0;
}
else
{
self.var_20B6 = 256;
}
self.var_20B7 = 8000;
self.var_10BA = 0;
animscripts/animset::func_CA0();
self.var_8BE = [];
self.var_8BE["corner"] = 1;
self.var_8BE["cover_crouch"] = 1;
self.var_8BE["stop"] = 1;
self.var_8BE["stop_immediate"] = 1;
self.var_8BE["move"] = 1;
self.var_8BE["exposed"] = 1;
self.var_8BE["corner_normal"] = 1;
var_01 = getarraykeys(self.var_8BE);
for(var_02 = 0;var_02 < var_01.size;var_02++)
{
common_scripts\utility::clear_exception(var_01[var_02]);
}
self.var_1160 = 0;
thread func_20BB();
self.var_20B8 = 0;
thread animscripts/combat_utility::monitorflash();
thread ondeath();
}
//Function Number: 6
func_20BA(param_00)
{
var_01[0] = "m4_grenadier";
if(!isdefined(var_01))
{
return 0;
}
for(var_02 = 0;var_02 < var_7B.size;var_02++ = var_7B[3])
{
if(issubstr(var_01,var_7B[var_02]))
{
return 1;
}
}
return 0;
}
//Function Number: 7
func_20BB()
{
self endon("death");
if(!isdefined(level.loadoutcomplete))
{
level waittill("loadout complete");
}
maps\_names::get_name();
thread animscripts/squadmanager::func_A7E();
}
//Function Number: 8
func_20BC()
{
for(;;)
{
if(self isstanceallowed("stand"))
{
var_00[0] = "stand allowed";
var_01[0] = (0,1,0);
}
else
{
var_00[0] = "stand not allowed";
var_01[0] = (1,0,0);
}
if(self isstanceallowed("crouch"))
{
var_00[1] = "crouch allowed";
var_01[1] = (0,1,0);
}
else
{
var_00[1] = "crouch not allowed";
var_01[1] = (1,0,0);
}
if(self isstanceallowed("prone"))
{
var_00[2] = "prone allowed";
var_01[2] = (0,1,0);
}
else
{
var_00[2] = "prone not allowed";
var_01[2] = (1,0,0);
}
var_02 = self getshootatpos() + (0,0,30);
var_03 = (0,0,-10);
for(var_04 = 0;var_04 < var_00.size;var_04++)
{
var_05 = (var_02[0] + var_03[0] * var_04,var_02[1] + var_03[1] * var_04,var_02[2] + var_03[2] * var_04);
}
wait 0.05;
}
}
//Function Number: 9
func_20BD()
{
if(!isdefined(self.var_10F7) || !isdefined(self.moveplaybackrate))
{
func_20BE();
}
}
//Function Number: 10
func_20BE()
{
self.var_10F7 = 0.9 + randomfloat(0.2);
self.var_1165 = 0.9 + randomfloat(0.2);
self.moveplaybackrate = 1;
self.var_FE0 = 1.35;
}
//Function Number: 11
func_20BF(param_00,param_01,param_02,param_03)
{
anim waittill("new exceptions");
}
//Function Number: 12
empty(param_00,param_01,param_02,param_03)
{
}
//Function Number: 13
func_20C1()
{
self endon("death");
if(1)
{
return;
}
for(;;)
{
self waittill("enemy");
if(!isalive(self.enemy))
{
continue;
}
while(isplayer(self.enemy))
{
if(animscripts/utility::func_F8C())
{
level.lastplayersighted = gettime();
}
wait 2;
}
}
}
//Function Number: 14
func_20C3()
{
level.var_20C4[0] = -36.8552;
level.var_20C4[1] = -27.0095;
level.var_20C4[2] = -15.5981;
level.var_20C4[3] = -4.37769;
level.var_20C4[4] = 17.7776;
level.var_20C4[5] = 59.8499;
level.var_20C4[6] = 104.808;
level.var_20C4[7] = 152.325;
level.var_20C4[8] = 201.052;
level.var_20C4[9] = 250.244;
level.var_20C4[10] = 298.971;
level.var_20C4[11] = 330.681;
}
//Function Number: 15
func_20C5()
{
if(isdefined(level.var_20C6))
{
return;
}
anim.var_20C6 = 1;
animscripts/animset::func_C64();
anim.usefacialanims = 0;
maps\_load::init_level_players();
level.player.var_20C7 = 0;
level.nextgrenadedrop = randomint(3);
level.lastplayersighted = 100;
anim.var_8BD = ::empty;
func_20DF();
setdvar("scr_expDeathMayMoveCheck","on");
maps\_names::setup_names();
anim.var_20C9 = 0;
animscripts/init_move_transitions::func_2087();
animscripts/reactions::func_F1C();
anim.var_20CA = 10000;
anim.var_20CB = 6000;
func_20E2();
func_20E8();
animscripts/utility::func_20CC("none");
if(!isdefined(level.var_20CD))
{
anim.var_20CF = ::animscripts/notetracks::func_20CE;
anim.var_20CD = ::animscripts/notetracks::func_20D0;
}
if(!isdefined(level.var_20D1))
{
anim.var_20D1 = [];
}
if(!isdefined(level.var_20D2))
{
anim.var_20D2 = [];
}
anim.var_20D4 = ::animscripts/utility::func_20D3;
level.fire_notetrack_functions["scripted"] = ::animscripts/notetracks::func_20D5;
level.fire_notetrack_functions["cover_right"] = ::animscripts/notetracks::func_20D7;
level.fire_notetrack_functions["cover_left"] = ::animscripts/notetracks::func_20D7;
level.fire_notetrack_functions["cover_crouch"] = ::animscripts/notetracks::func_20D7;
level.fire_notetrack_functions["cover_stand"] = ::animscripts/notetracks::func_20D7;
level.fire_notetrack_functions["move"] = ::animscripts/notetracks::func_20D7;
animscripts/notetracks::func_1E73();
if(!isdefined(level.flag))
{
common_scripts\utility::init_flags();
}
maps\_gameskill::setskill();
level.painai = undefined;
animscripts/setposemovement::func_20D9();
animscripts/face::func_C55();
anim.var_20DA = animscripts/utility::array(1,2,2,2,3,3,3,3,4,4,5);
anim.var_20DB = animscripts/utility::array(2,3,3,3,4,4,4,5,5);
anim.var_20DC = animscripts/utility::array(1,2,2,3,3,4,4,4,4,5,5,5);
anim.badplaces = [];
anim.var_20DD = 0;
anim.player = getentarray("player","classname")[0];
func_20E0();
func_20C3();
animscripts/flashed::func_208E();
animscripts/cqb::func_107A();
func_20E1();
func_209D();
anim.var_D20 = -100000;
func_20F5();
level.player thread animscripts/combat_utility::func_20DE();
thread func_20F0();
}
//Function Number: 16
func_20DF()
{
}
//Function Number: 17
func_20E0()
{
animscripts/squadmanager::func_A5E();
level.player thread animscripts/squadmanager::func_A78();
animscripts/battlechatter::func_B6B();
level.player thread animscripts/battlechatter_ai::func_AA9();
anim thread animscripts/battlechatter::func_B9C();
}
//Function Number: 18
func_20E1()
{
anim.var_D43 = randomintrange(0,15);
anim.var_D6B = randomintrange(0,10);
anim.var_D44 = gettime() + randomintrange(0,20000);
anim.var_D42 = gettime() + randomintrange(0,10000);
anim.var_D6C = gettime() + randomintrange(0,15000);
}
//Function Number: 19
func_20E2()
{
for(var_00 = 0;var_00 < level.players.size;var_00++)
{
var_01 = level.players[var_00];
var_01.var_20E3["fraggrenade"] = randomintrange(1000,20000);
var_01.var_20E3["flash_grenade"] = randomintrange(1000,20000);
var_01.var_20E3["double_grenade"] = randomintrange(1000,-5536);
var_01.var_20E4 = 0;
var_01.var_20E5 = -1000000;
var_01.var_20E6 = -1000000;
var_01 thread func_20F1();
}
level.var_20E3["AI_fraggrenade"] = randomintrange(0,20000);
level.var_20E3["AI_flash_grenade"] = randomintrange(0,20000);
level.var_20E3["AI_smoke_grenade_american"] = randomintrange(0,20000);
animscripts/combat_utility::func_20E7();
}
//Function Number: 20
func_20E8()
{
level.lastadvancetoenemytime = [];
level.lastadvancetoenemytime["axis"] = 0;
level.lastadvancetoenemytime["allies"] = 0;
level.lastadvancetoenemytime["team3"] = 0;
level.lastadvancetoenemytime["neutral"] = 0;
level.var_20EA = [];
level.var_20EA["axis"] = (0,0,0);
level.var_20EA["allies"] = (0,0,0);
level.var_20EA["team3"] = (0,0,0);
level.var_20EA["neutral"] = (0,0,0);
level.var_20EB = [];
level.var_20EB["axis"] = (0,0,0);
level.var_20EB["allies"] = (0,0,0);
level.var_20EB["team3"] = (0,0,0);
level.var_20EB["neutral"] = (0,0,0);
level.var_20EC = [];
level.var_20ED = [];
level.var_20ED["axis"] = 0;
level.var_20ED["allies"] = 0;
level.var_20ED["team3"] = 0;
level.var_20ED["neutral"] = 0;
level.advancetoenemyinterval = 30000;
level.advancetoenemygroupmax = 3;
}
//Function Number: 21
func_20F0()
{
var_00 = 0;
var_01 = 3;
for(;;)
{
var_02 = getaiarray();
if(var_02.size == 0)
{
wait 0.05;
var_00 = 0;
continue;
}
for(var_03 = 0;var_03 < var_02.size;var_03++)
{
if(!isdefined(var_02[var_03]))
{
continue;
}
var_02[var_03] notify("do_slow_things");
var_00++;
if(var_00 == var_01)
{
wait 0.05;
var_00 = 0;
}
}
}
}
//Function Number: 22
func_20F1()
{
waittillframeend;
if(isdefined(self.gs.playergrenaderangetime))
{
var_00 = int(self.gs.playergrenaderangetime * 0.7);
if(var_00 < 1)
{
var_00 = 1;
}
self.var_20E3["fraggrenade"] = randomintrange(0,var_00);
self.var_20E3["flash_grenade"] = randomintrange(0,var_00);
}
if(isdefined(self.gs.playerdoublegrenadetime))
{
var_00 = int(self.gs.playerdoublegrenadetime);
var_01 = int(var_00 / 2);
if(var_00 <= var_01)
{
var_00 = var_01 + 1;
}
self.var_20E3["double_grenade"] = randomintrange(var_01,var_00);
}
}
//Function Number: 23
begingrenadetracking()
{
self endon("death");
for(;;)
{
self waittill("grenade_fire",var_00,var_01);
var_00 thread maps\_utility::grenade_earthquake();
}
}
//Function Number: 24
func_20F5()
{
anim.var_20F6 = 60;
anim.var_20F7 = [];
for(var_00 = 0;var_00 < level.var_20F6;var_00++)
{
level.var_20F7[var_00] = var_00;
}
for(var_00 = 0;var_00 < level.var_20F6;var_00++)
{
var_01 = randomint(level.var_20F6);
var_02 = level.var_20F7[var_00];
level.var_20F7[var_00] = level.var_20F7[var_01];
level.var_20F7[var_01] = var_02;
}
}
//Function Number: 25
ondeath()
{
if(isdefined(level.var_20F9))
{
return;
}
self waittill("death");
if(!isdefined(self))
{
if(isdefined(self.a.var_20FA))
{
self.a.var_20FA delete();
}
}
}

View File

@ -0,0 +1,613 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\init_move_transitions.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 5
* Decompile Time: 108 ms
* Timestamp: 10/27/2023 2:18:23 AM
*******************************************************************/
//Function Number: 1
func_2082()
{
if(isdefined(level.var_2083))
{
return;
}
anim.var_2083 = 1;
if(!isdefined(level.var_1164))
{
anim.var_1164 = [];
}
if(!isdefined(level.var_1173))
{
anim.var_1173 = [];
}
anim.var_1176 = [];
anim.var_1177 = [];
anim.var_2084 = [];
if(!isdefined(level.var_1185))
{
anim.var_1185 = [];
}
if(!isdefined(level.var_1186))
{
anim.var_1186 = [];
}
if(!isdefined(level.var_11AC))
{
anim.var_11AC = [];
}
anim.var_11AD = [];
anim.var_11B0 = [];
if(!isdefined(level.var_1187))
{
anim.var_1187 = [];
}
if(!isdefined(level.var_11A9))
{
anim.var_11A9 = [];
}
anim.var_2085 = [];
anim.var_2086 = [];
anim.var_1166 = [];
}
//Function Number: 2
func_2087()
{
func_2082();
level.var_1184 = 1;
var_00 = [];
var_01 = 6;
anim.var_116F = [];
level.var_116F["Cover Left"] = [];
level.var_116F["Cover Left"]["stand"] = "left";
level.var_116F["Cover Left"]["crouch"] = "left_crouch";
level.var_1176["Cover Left"] = 9;
level.var_1177["Cover Left"] = 9;
level.var_116F["Cover Right"] = [];
level.var_116F["Cover Right"]["stand"] = "right";
level.var_116F["Cover Right"]["crouch"] = "right_crouch";
level.var_1176["Cover Right"] = 9;
level.var_1177["Cover Right"] = 7;
level.var_116F["Cover Crouch"] = [];
level.var_116F["Cover Crouch"]["stand"] = "crouch";
level.var_116F["Cover Crouch"]["crouch"] = "crouch";
level.var_116F["Conceal Crouch"] = level.var_116F["Cover Crouch"];
level.var_116F["Cover Crouch Window"] = level.var_116F["Cover Crouch"];
level.var_1176["Cover Crouch"] = 6;
level.var_1177["Cover Crouch"] = -1;
level.var_1176["Conceal Crouch"] = 6;
level.var_1177["Conceal Crouch"] = -1;
level.var_116F["Cover Stand"] = [];
level.var_116F["Cover Stand"]["stand"] = "stand";
level.var_116F["Cover Stand"]["crouch"] = "stand";
level.var_116F["Conceal Stand"] = level.var_116F["Cover Stand"];
level.var_1176["Cover Stand"] = 6;
level.var_1177["Cover Stand"] = -1;
level.var_1176["Conceal Stand"] = 6;
level.var_1177["Conceal Stand"] = -1;
level.var_116F["Cover Prone"] = [];
level.var_116F["Cover Prone"]["stand"] = "exposed";
level.var_116F["Cover Prone"]["crouch"] = "exposed";
level.var_116F["Conceal Prone"] = level.var_116F["Cover Prone"];
level.var_1177["Conceal Prone"] = -1;
level.var_116F["Path"] = [];
level.var_116F["Path"]["stand"] = "exposed";
level.var_116F["Path"]["crouch"] = "exposed_crouch";
level.var_116F["Guard"] = level.var_116F["Path"];
level.var_116F["Ambush"] = level.var_116F["Path"];
level.var_116F["Scripted"] = level.var_116F["Path"];
level.var_116F["Exposed"] = level.var_116F["Path"];
level.var_112F["Guard"] = 1;
level.var_112F["Ambush"] = 1;
level.var_112F["Exposed"] = 1;
level.var_CBD["Guard"] = 1;
level.var_CBD["Exposed"] = 1;
level.var_1164["right"][1] = %corner_standr_trans_in_1;
level.var_1164["right"][2] = %corner_standr_trans_in_2;
level.var_1164["right"][3] = %corner_standr_trans_in_3;
level.var_1164["right"][4] = %corner_standr_trans_in_4;
level.var_1164["right"][6] = %corner_standr_trans_in_6;
level.var_1164["right"][8] = %corner_standr_trans_in_8;
level.var_1164["right"][9] = %corner_standr_trans_in_9;
level.var_1164["right_crouch"][1] = %cornercrr_trans_in_ml;
level.var_1164["right_crouch"][2] = %cornercrr_trans_in_m;
level.var_1164["right_crouch"][3] = %cornercrr_trans_in_mr;
level.var_1164["right_crouch"][4] = %cornercrr_trans_in_l;
level.var_1164["right_crouch"][6] = %cornercrr_trans_in_r;
level.var_1164["right_crouch"][8] = %cornercrr_trans_in_f;
level.var_1164["right_crouch"][9] = %cornercrr_trans_in_mf;
level.var_1164["right_cqb"][1] = %corner_standr_trans_cqb_in_1;
level.var_1164["right_cqb"][2] = %corner_standr_trans_cqb_in_2;
level.var_1164["right_cqb"][3] = %corner_standr_trans_cqb_in_3;
level.var_1164["right_cqb"][4] = %corner_standr_trans_cqb_in_4;
level.var_1164["right_cqb"][6] = %corner_standr_trans_cqb_in_6;
level.var_1164["right_cqb"][8] = %corner_standr_trans_cqb_in_8;
level.var_1164["right_cqb"][9] = %corner_standr_trans_cqb_in_9;
level.var_1164["right_crouch_cqb"][1] = %cornercrr_cqb_trans_in_1;
level.var_1164["right_crouch_cqb"][2] = %cornercrr_cqb_trans_in_2;
level.var_1164["right_crouch_cqb"][3] = %cornercrr_cqb_trans_in_3;
level.var_1164["right_crouch_cqb"][4] = %cornercrr_cqb_trans_in_4;
level.var_1164["right_crouch_cqb"][6] = %cornercrr_cqb_trans_in_6;
level.var_1164["right_crouch_cqb"][8] = %cornercrr_cqb_trans_in_8;
level.var_1164["right_crouch_cqb"][9] = %cornercrr_cqb_trans_in_9;
level.var_1164["left"][1] = %corner_standl_trans_in_1;
level.var_1164["left"][2] = %corner_standl_trans_in_2;
level.var_1164["left"][3] = %corner_standl_trans_in_3;
level.var_1164["left"][4] = %corner_standl_trans_in_4;
level.var_1164["left"][6] = %corner_standl_trans_in_6;
level.var_1164["left"][7] = %corner_standl_trans_in_7;
level.var_1164["left"][8] = %corner_standl_trans_in_8;
level.var_1164["left_crouch"][1] = %cornercrl_trans_in_ml;
level.var_1164["left_crouch"][2] = %cornercrl_trans_in_m;
level.var_1164["left_crouch"][3] = %cornercrl_trans_in_mr;
level.var_1164["left_crouch"][4] = %cornercrl_trans_in_l;
level.var_1164["left_crouch"][6] = %cornercrl_trans_in_r;
level.var_1164["left_crouch"][7] = %cornercrl_trans_in_mf;
level.var_1164["left_crouch"][8] = %cornercrl_trans_in_f;
level.var_1164["left_cqb"][1] = %corner_standl_trans_cqb_in_1;
level.var_1164["left_cqb"][2] = %corner_standl_trans_cqb_in_2;
level.var_1164["left_cqb"][3] = %corner_standl_trans_cqb_in_3;
level.var_1164["left_cqb"][4] = %corner_standl_trans_cqb_in_4;
level.var_1164["left_cqb"][6] = %corner_standl_trans_cqb_in_6;
level.var_1164["left_cqb"][7] = %corner_standl_trans_cqb_in_7;
level.var_1164["left_cqb"][8] = %corner_standl_trans_cqb_in_8;
level.var_1164["left_crouch_cqb"][1] = %cornercrl_cqb_trans_in_1;
level.var_1164["left_crouch_cqb"][2] = %cornercrl_cqb_trans_in_2;
level.var_1164["left_crouch_cqb"][3] = %cornercrl_cqb_trans_in_3;
level.var_1164["left_crouch_cqb"][4] = %cornercrl_cqb_trans_in_4;
level.var_1164["left_crouch_cqb"][6] = %cornercrl_cqb_trans_in_6;
level.var_1164["left_crouch_cqb"][7] = %cornercrl_cqb_trans_in_7;
level.var_1164["left_crouch_cqb"][8] = %cornercrl_cqb_trans_in_8;
level.var_1164["crouch"][1] = %covercrouch_run_in_ml;
level.var_1164["crouch"][2] = %covercrouch_run_in_m;
level.var_1164["crouch"][3] = %covercrouch_run_in_mr;
level.var_1164["crouch"][4] = %covercrouch_run_in_l;
level.var_1164["crouch"][6] = %covercrouch_run_in_r;
level.var_1164["stand"][1] = %coverstand_trans_in_ml;
level.var_1164["stand"][2] = %coverstand_trans_in_m;
level.var_1164["stand"][3] = %coverstand_trans_in_mr;
level.var_1164["stand"][4] = %coverstand_trans_in_l;
level.var_1164["stand"][6] = %coverstand_trans_in_r;
level.var_1164["stand_saw"][1] = %saw_gunner_runin_ml;
level.var_1164["stand_saw"][2] = %saw_gunner_runin_m;
level.var_1164["stand_saw"][3] = %saw_gunner_runin_mr;
level.var_1164["stand_saw"][4] = %saw_gunner_runin_l;
level.var_1164["stand_saw"][6] = %saw_gunner_runin_r;
level.var_1164["crouch_saw"][1] = %saw_gunner_lowwall_runin_ml;
level.var_1164["crouch_saw"][2] = %saw_gunner_lowwall_runin_m;
level.var_1164["crouch_saw"][3] = %saw_gunner_lowwall_runin_mr;
level.var_1164["crouch_saw"][4] = %saw_gunner_lowwall_runin_l;
level.var_1164["crouch_saw"][6] = %saw_gunner_lowwall_runin_r;
level.var_1164["prone_saw"][1] = %saw_gunner_prone_runin_ml;
level.var_1164["prone_saw"][2] = %saw_gunner_prone_runin_m;
level.var_1164["prone_saw"][3] = %saw_gunner_prone_runin_mr;
level.var_1164["exposed"] = [];
level.var_1164["exposed"][1] = %cqb_stop_1;
level.var_1164["exposed"][2] = %run_2_stand_f_6;
level.var_1164["exposed"][3] = %cqb_stop_3;
level.var_1164["exposed"][4] = %run_2_stand_90l;
level.var_1164["exposed"][6] = %run_2_stand_90r;
level.var_1164["exposed"][7] = %cqb_stop_7;
level.var_1164["exposed"][8] = %run_2_stand_180l;
level.var_1164["exposed"][9] = %cqb_stop_9;
level.var_1164["exposed_crouch"] = [];
level.var_1164["exposed_crouch"][1] = %cqb_crouch_stop_1;
level.var_1164["exposed_crouch"][2] = %run_2_crouch_f;
level.var_1164["exposed_crouch"][3] = %cqb_crouch_stop_3;
level.var_1164["exposed_crouch"][4] = %run_2_crouch_90l;
level.var_1164["exposed_crouch"][6] = %run_2_crouch_90r;
level.var_1164["exposed_crouch"][7] = %cqb_crouch_stop_7;
level.var_1164["exposed_crouch"][8] = %run_2_crouch_180l;
level.var_1164["exposed_crouch"][9] = %cqb_crouch_stop_9;
level.var_1164["exposed_cqb"] = [];
level.var_1164["exposed_cqb"][1] = %cqb_stop_1;
level.var_1164["exposed_cqb"][2] = %cqb_stop_2;
level.var_1164["exposed_cqb"][3] = %cqb_stop_3;
level.var_1164["exposed_cqb"][4] = %cqb_stop_4;
level.var_1164["exposed_cqb"][6] = %cqb_stop_6;
level.var_1164["exposed_cqb"][7] = %cqb_stop_7;
level.var_1164["exposed_cqb"][8] = %cqb_stop_8;
level.var_1164["exposed_cqb"][9] = %cqb_stop_9;
level.var_1164["exposed_crouch_cqb"] = [];
level.var_1164["exposed_crouch_cqb"][1] = %cqb_crouch_stop_1;
level.var_1164["exposed_crouch_cqb"][2] = %cqb_crouch_stop_2;
level.var_1164["exposed_crouch_cqb"][3] = %cqb_crouch_stop_3;
level.var_1164["exposed_crouch_cqb"][4] = %cqb_crouch_stop_4;
level.var_1164["exposed_crouch_cqb"][6] = %cqb_crouch_stop_6;
level.var_1164["exposed_crouch_cqb"][7] = %cqb_crouch_stop_7;
level.var_1164["exposed_crouch_cqb"][8] = %cqb_crouch_stop_8;
level.var_1164["exposed_crouch_cqb"][9] = %cqb_crouch_stop_9;
level.var_1164["heat"] = [];
level.var_1164["heat"][1] = %heat_approach_1;
level.var_1164["heat"][2] = %heat_approach_2;
level.var_1164["heat"][3] = %heat_approach_3;
level.var_1164["heat"][4] = %heat_approach_4;
level.var_1164["heat"][6] = %heat_approach_6;
level.var_1164["heat"][8] = %heat_approach_8;
level.var_1164["heat_left"] = [];
level.var_1164["heat_right"] = [];
anim.var_2088 = [];
level.var_2088["right"] = %corner_standr_trans_b_2_alert;
level.var_2088["right_crouch"] = %cornercrr_trans_b_2_alert;
level.var_2088["left"] = %corner_standl_trans_b_2_alert_v2;
level.var_2088["left_crouch"] = %cornercrl_trans_b_2_alert;
level.var_2088["crouch"] = %covercrouch_aim_2_hide;
level.var_2088["stand"] = %coverstand_aim_2_hide;
anim.var_2089 = [];
anim.var_208A = [];
for(var_02 = 0;var_02 < var_01;var_02++ = var_7B[22])
{
var_03 = var_7B[var_02];
level.var_2089[var_03] = getmovedelta(level.var_2088[var_03],0,1);
level.var_208A[var_03] = getangledelta(level.var_2088[var_03],0,1);
}
level.var_208A["right"] = level.var_208A["right"] + 90;
level.var_208A["right_crouch"] = level.var_208A["right_crouch"] + 90;
level.var_208A["left"] = level.var_208A["left"] - 90;
level.var_208A["left_crouch"] = level.var_208A["left_crouch"] - 90;
level.var_1164["wall_over_96"][1] = %traverse90_in_ml;
level.var_1164["wall_over_96"][2] = %traverse90_in_m;
level.var_1164["wall_over_96"][3] = %traverse90_in_mr;
level.var_2084["wall_over_96"]["height"] = 96;
level.var_1164["wall_over_40"][1] = %traverse_window_m_2_run;
level.var_1164["wall_over_40"][2] = %traverse_window_m_2_run;
level.var_1164["wall_over_40"][3] = %traverse_window_m_2_run;
level.var_1173["right"][1] = %corner_standr_trans_out_1;
level.var_1173["right"][2] = %corner_standr_trans_out_2;
level.var_1173["right"][3] = %corner_standr_trans_out_3;
level.var_1173["right"][4] = %corner_standr_trans_out_4;
level.var_1173["right"][6] = %corner_standr_trans_out_6;
level.var_1173["right"][8] = %corner_standr_trans_out_8;
level.var_1173["right"][9] = %corner_standr_trans_out_9;
level.var_1173["right_crouch"][1] = %cornercrr_trans_out_ml;
level.var_1173["right_crouch"][2] = %cornercrr_trans_out_m;
level.var_1173["right_crouch"][3] = %cornercrr_trans_out_mr;
level.var_1173["right_crouch"][4] = %cornercrr_trans_out_l;
level.var_1173["right_crouch"][6] = %cornercrr_trans_out_r;
level.var_1173["right_crouch"][8] = %cornercrr_trans_out_f;
level.var_1173["right_crouch"][9] = %cornercrr_trans_out_mf;
level.var_1173["right_cqb"][1] = %corner_standr_trans_cqb_out_1;
level.var_1173["right_cqb"][2] = %corner_standr_trans_cqb_out_2;
level.var_1173["right_cqb"][3] = %corner_standr_trans_cqb_out_3;
level.var_1173["right_cqb"][4] = %corner_standr_trans_cqb_out_4;
level.var_1173["right_cqb"][6] = %corner_standr_trans_cqb_out_6;
level.var_1173["right_cqb"][8] = %corner_standr_trans_cqb_out_8;
level.var_1173["right_cqb"][9] = %corner_standr_trans_cqb_out_9;
level.var_1173["right_crouch_cqb"][1] = %cornercrr_cqb_trans_out_1;
level.var_1173["right_crouch_cqb"][2] = %cornercrr_cqb_trans_out_2;
level.var_1173["right_crouch_cqb"][3] = %cornercrr_cqb_trans_out_3;
level.var_1173["right_crouch_cqb"][4] = %cornercrr_cqb_trans_out_4;
level.var_1173["right_crouch_cqb"][6] = %cornercrr_cqb_trans_out_6;
level.var_1173["right_crouch_cqb"][8] = %cornercrr_cqb_trans_out_8;
level.var_1173["right_crouch_cqb"][9] = %cornercrr_cqb_trans_out_9;
level.var_1173["left"][1] = %corner_standl_trans_out_1;
level.var_1173["left"][2] = %corner_standl_trans_out_2;
level.var_1173["left"][3] = %corner_standl_trans_out_3;
level.var_1173["left"][4] = %corner_standl_trans_out_4;
level.var_1173["left"][6] = %corner_standl_trans_out_6;
level.var_1173["left"][7] = %corner_standl_trans_out_7;
level.var_1173["left"][8] = %corner_standl_trans_out_8;
level.var_1173["left_crouch"][1] = %cornercrl_trans_out_ml;
level.var_1173["left_crouch"][2] = %cornercrl_trans_out_m;
level.var_1173["left_crouch"][3] = %cornercrl_trans_out_mr;
level.var_1173["left_crouch"][4] = %cornercrl_trans_out_l;
level.var_1173["left_crouch"][6] = %cornercrl_trans_out_r;
level.var_1173["left_crouch"][7] = %cornercrl_trans_out_mf;
level.var_1173["left_crouch"][8] = %cornercrl_trans_out_f;
level.var_1173["left_cqb"][1] = %corner_standl_trans_cqb_out_1;
level.var_1173["left_cqb"][2] = %corner_standl_trans_cqb_out_2;
level.var_1173["left_cqb"][3] = %corner_standl_trans_cqb_out_3;
level.var_1173["left_cqb"][4] = %corner_standl_trans_cqb_out_4;
level.var_1173["left_cqb"][6] = %corner_standl_trans_cqb_out_6;
level.var_1173["left_cqb"][7] = %corner_standl_trans_cqb_out_7;
level.var_1173["left_cqb"][8] = %corner_standl_trans_cqb_out_8;
level.var_1173["left_crouch_cqb"][1] = %cornercrl_cqb_trans_out_1;
level.var_1173["left_crouch_cqb"][2] = %cornercrl_cqb_trans_out_2;
level.var_1173["left_crouch_cqb"][3] = %cornercrl_cqb_trans_out_3;
level.var_1173["left_crouch_cqb"][4] = %cornercrl_cqb_trans_out_4;
level.var_1173["left_crouch_cqb"][6] = %cornercrl_cqb_trans_out_6;
level.var_1173["left_crouch_cqb"][7] = %cornercrl_cqb_trans_out_7;
level.var_1173["left_crouch_cqb"][8] = %cornercrl_cqb_trans_out_8;
level.var_1173["crouch"][1] = %covercrouch_run_out_ml;
level.var_1173["crouch"][2] = %covercrouch_run_out_m;
level.var_1173["crouch"][3] = %covercrouch_run_out_mr;
level.var_1173["crouch"][4] = %covercrouch_run_out_l;
level.var_1173["crouch"][6] = %covercrouch_run_out_r;
level.var_1173["stand"][1] = %coverstand_trans_out_ml;
level.var_1173["stand"][2] = %coverstand_trans_out_m;
level.var_1173["stand"][3] = %coverstand_trans_out_mr;
level.var_1173["stand"][4] = %coverstand_trans_out_l;
level.var_1173["stand"][6] = %coverstand_trans_out_r;
level.var_1173["stand_saw"][1] = %saw_gunner_runout_ml;
level.var_1173["stand_saw"][2] = %saw_gunner_runout_m;
level.var_1173["stand_saw"][3] = %saw_gunner_runout_mr;
level.var_1173["stand_saw"][4] = %saw_gunner_runout_l;
level.var_1173["stand_saw"][6] = %saw_gunner_runout_r;
level.var_1173["prone_saw"][2] = %saw_gunner_prone_runout_m;
level.var_1173["prone_saw"][4] = %saw_gunner_prone_runout_l;
level.var_1173["prone_saw"][6] = %saw_gunner_prone_runout_r;
level.var_1173["prone_saw"][8] = %saw_gunner_prone_runout_f;
level.var_1173["crouch_saw"][1] = %saw_gunner_lowwall_runout_ml;
level.var_1173["crouch_saw"][2] = %saw_gunner_lowwall_runout_m;
level.var_1173["crouch_saw"][3] = %saw_gunner_lowwall_runout_mr;
level.var_1173["crouch_saw"][4] = %saw_gunner_lowwall_runout_l;
level.var_1173["crouch_saw"][6] = %saw_gunner_lowwall_runout_r;
level.var_1173["exposed"] = [];
level.var_1173["exposed"][1] = %cqb_start_1;
level.var_1173["exposed"][2] = %stand_2_run_180l;
level.var_1173["exposed"][3] = %cqb_start_3;
level.var_1173["exposed"][4] = %stand_2_run_l;
level.var_1173["exposed"][6] = %stand_2_run_r;
level.var_1173["exposed"][7] = %cqb_start_7;
level.var_1173["exposed"][8] = %surprise_start_v1;
level.var_1173["exposed"][9] = %cqb_start_9;
level.var_1173["exposed_crouch"] = [];
level.var_1173["exposed_crouch"][1] = %cqb_crouch_start_1;
level.var_1173["exposed_crouch"][2] = %crouch_2run_180;
level.var_1173["exposed_crouch"][3] = %cqb_crouch_start_3;
level.var_1173["exposed_crouch"][4] = %crouch_2run_l;
level.var_1173["exposed_crouch"][6] = %crouch_2run_r;
level.var_1173["exposed_crouch"][7] = %cqb_crouch_start_7;
level.var_1173["exposed_crouch"][8] = %crouch_2run_f;
level.var_1173["exposed_crouch"][9] = %cqb_crouch_start_9;
level.var_1173["exposed_cqb"] = [];
level.var_1173["exposed_cqb"][1] = %cqb_start_1;
level.var_1173["exposed_cqb"][2] = %cqb_start_2;
level.var_1173["exposed_cqb"][3] = %cqb_start_3;
level.var_1173["exposed_cqb"][4] = %cqb_start_4;
level.var_1173["exposed_cqb"][6] = %cqb_start_6;
level.var_1173["exposed_cqb"][7] = %cqb_start_7;
level.var_1173["exposed_cqb"][8] = %cqb_start_8;
level.var_1173["exposed_cqb"][9] = %cqb_start_9;
level.var_1173["exposed_crouch_cqb"] = [];
level.var_1173["exposed_crouch_cqb"][1] = %cqb_crouch_start_1;
level.var_1173["exposed_crouch_cqb"][2] = %cqb_crouch_start_2;
level.var_1173["exposed_crouch_cqb"][3] = %cqb_crouch_start_3;
level.var_1173["exposed_crouch_cqb"][4] = %cqb_crouch_start_4;
level.var_1173["exposed_crouch_cqb"][6] = %cqb_crouch_start_6;
level.var_1173["exposed_crouch_cqb"][7] = %cqb_crouch_start_7;
level.var_1173["exposed_crouch_cqb"][8] = %cqb_crouch_start_8;
level.var_1173["exposed_crouch_cqb"][9] = %cqb_crouch_start_9;
level.var_1173["heat"] = [];
level.var_1173["heat"][1] = %heat_exit_1;
level.var_1173["heat"][2] = %heat_exit_2;
level.var_1173["heat"][3] = %heat_exit_3;
level.var_1173["heat"][4] = %heat_exit_4;
level.var_1173["heat"][6] = %heat_exit_6;
level.var_1173["heat"][7] = %heat_exit_7;
level.var_1173["heat"][8] = %heat_exit_8;
level.var_1173["heat"][9] = %heat_exit_9;
level.var_1173["heat_left"] = [];
level.var_1173["heat_left"][1] = %heat_exit_1;
level.var_1173["heat_left"][2] = %heat_exit_2;
level.var_1173["heat_left"][3] = %heat_exit_3;
level.var_1173["heat_left"][4] = %heat_exit_4;
level.var_1173["heat_left"][6] = %heat_exit_6;
level.var_1173["heat_left"][7] = %heat_exit_8l;
level.var_1173["heat_left"][8] = %heat_exit_8l;
level.var_1173["heat_left"][9] = %heat_exit_8r;
level.var_1173["heat_right"] = [];
level.var_1173["heat_right"][1] = %heat_exit_1;
level.var_1173["heat_right"][2] = %heat_exit_2;
level.var_1173["heat_right"][3] = %heat_exit_3;
level.var_1173["heat_right"][4] = %heat_exit_4;
level.var_1173["heat_right"][6] = %heat_exit_6;
level.var_1173["heat_right"][7] = %heat_exit_8l;
level.var_1173["heat_right"][8] = %heat_exit_8r;
level.var_1173["heat_right"][9] = %heat_exit_8r;
for(var_02 = 1;var_02 <= 6;var_02++ = var_7B[21])
{
if(var_02 == 5)
{
continue;
}
for(var_04 = 0;var_04 < var_7B.size;var_04++ = "exposed_ready_cqb")
{
var_03 = var_7B[var_04];
if(isdefined(level.var_1164[var_03]) && isdefined(level.var_1164[var_03][var_02]))
{
level.var_1186[var_03][var_02] = getmovedelta(level.var_1164[var_03][var_02],0,1);
level.var_1187[var_03][var_02] = getangledelta(level.var_1164[var_03][var_02],0,1);
}
if(isdefined(level.var_1173[var_03]) && isdefined(level.var_1173[var_03][var_02]))
{
if(animhasnotetrack(level.var_1173[var_03][var_02],"code_move"))
{
var_05 = getnotetracktimes(level.var_1173[var_03][var_02],"code_move")[0];
}
else
{
var_05 = 1;
}
level.var_11AC[var_03][var_02] = getmovedelta(level.var_1173[var_03][var_02],0,var_05);
level.var_11A9[var_03][var_02] = getangledelta(level.var_1173[var_03][var_02],0,1);
}
}
}
for(var_04 = 0;var_04 < var_7B.size;var_04++ = var_7B[20])
{
var_03 = var_7B[var_04];
level.var_1185[var_03] = 0;
for(var_02 = 1;var_02 <= 6;var_02++ = "exposed_ready")
{
if(var_02 == 5 || !isdefined(level.var_1164[var_03]) || !isdefined(level.var_1164[var_03][var_02]))
{
continue;
}
var_06 = lengthsquared(level.var_1186[var_03][var_02]);
if(level.var_1185[var_03] < var_06)
{
level.var_1185[var_03] = var_06;
}
}
level.var_1185[var_03] = sqrt(level.var_1185[var_03]);
}
level.var_1179["exposed"] = 1;
level.var_1179["exposed_crouch"] = 1;
level.var_1179["exposed_cqb"] = 1;
level.var_1179["exposed_crouch_cqb"] = 1;
level.var_1179["exposed_ready_cqb"] = 1;
level.var_1179["exposed_ready"] = 1;
level.var_1179["heat"] = 1;
if(!isdefined(level.var_1190))
{
anim.var_1190 = 0;
}
foreach(var_03, var_08 in level.var_1179)
{
for(var_02 = 7;var_02 <= 9;var_02++ = "heat_right")
{
if(isdefined(level.var_1164[var_03]) && isdefined(level.var_1164[var_03][var_02]))
{
level.var_1186[var_03][var_02] = getmovedelta(level.var_1164[var_03][var_02],0,1);
level.var_1187[var_03][var_02] = getangledelta(level.var_1164[var_03][var_02],0,1);
}
if(isdefined(level.var_1173[var_03]) && isdefined(level.var_1173[var_03][var_02]))
{
var_05 = getnotetracktimes(level.var_1173[var_03][var_02],"code_move")[0];
level.var_11AC[var_03][var_02] = getmovedelta(level.var_1173[var_03][var_02],0,var_05);
level.var_11A9[var_03][var_02] = getangledelta(level.var_1173[var_03][var_02],0,1);
}
}
for(var_02 = 1;var_02 <= 9;var_02++ = var_7B[19])
{
if(!isdefined(level.var_1164[var_03]) || !isdefined(level.var_1164[var_03][var_02]))
{
continue;
}
var_09 = length(level.var_1186[var_03][var_02]);
if(var_09 > level.var_1190)
{
anim.var_1190 = var_09;
}
}
}
level.var_2086["left"][7] = 0.369369;
level.var_2086["left_crouch"][7] = 0.319319;
level.var_2086["left_cqb"][7] = 0.451451;
level.var_2086["left_crouch_cqb"][7] = 0.246246;
level.var_2085["left"][7] = 0.547548;
level.var_2085["left_crouch"][7] = 0.593594;
level.var_2085["left_cqb"][7] = 0.702703;
level.var_2085["left_crouch_cqb"][7] = 0.718719;
level.var_2085["heat_left"][7] = 0.42;
level.var_2086["left"][8] = 0.525526;
level.var_2086["left_crouch"][8] = 0.428428;
level.var_2086["left_cqb"][8] = 0.431431;
level.var_2086["left_crouch_cqb"][8] = 0.33033;
level.var_2085["left"][8] = 0.614615;
level.var_2085["left_crouch"][8] = 0.451451;
level.var_2085["left_cqb"][8] = 0.451451;
level.var_2085["left_crouch_cqb"][8] = 0.603604;
level.var_2085["heat_left"][8] = 0.42;
level.var_2086["right"][8] = 0.458458;
level.var_2086["right_crouch"][8] = 0.248248;
level.var_2086["right_cqb"][8] = 0.458458;
level.var_2086["right_crouch_cqb"][8] = 0.311311;
level.var_2085["right"][8] = 0.457457;
level.var_2085["right_crouch"][8] = 0.545546;
level.var_2085["right_cqb"][8] = 0.540541;
level.var_2085["right_crouch_cqb"][8] = 0.399399;
level.var_2085["heat_right"][8] = 0.4;
level.var_2086["right"][9] = 0.546547;
level.var_2086["right_crouch"][9] = 0.2002;
level.var_2086["right_cqb"][9] = 0.546547;
level.var_2086["right_crouch_cqb"][9] = 0.232232;
level.var_2085["right"][9] = 0.483483;
level.var_2085["right_crouch"][9] = 0.493493;
level.var_2085["right_cqb"][9] = 0.565566;
level.var_2085["right_crouch_cqb"][9] = 0.518519;
level.var_2085["heat_right"][9] = 0.4;
var_0A = [];
var_0B = [];
func_208B(7,8,0,var_0A,var_0B);
var_0A = [];
var_0A["right"] = 1;
var_0A["right_crouch"] = 1;
var_0A["right_cqb"] = 1;
var_0A["right_crouch_cqb"] = 1;
var_0B = [];
func_208B(8,9,1,var_0A,var_0B);
level.var_1166["left"] = "stand";
level.var_1166["left_cqb"] = "stand";
level.var_1166["right"] = "stand";
level.var_1166["right_cqb"] = "stand";
level.var_1166["stand"] = "stand";
level.var_1166["stand_saw"] = "stand";
level.var_1166["exposed"] = "stand";
level.var_1166["exposed_cqb"] = "stand";
level.var_1166["heat"] = "stand";
level.var_1166["left_crouch"] = "crouch";
level.var_1166["left_crouch_cqb"] = "crouch";
level.var_1166["right_crouch"] = "crouch";
level.var_1166["right_crouch_cqb"] = "crouch";
level.var_1166["crouch_saw"] = "crouch";
level.var_1166["crouch"] = "crouch";
level.var_1166["exposed_crouch"] = "crouch";
level.var_1166["exposed_crouch_cqb"] = "crouch";
level.var_1166["prone_saw"] = "prone";
level.var_1166["exposed_ready"] = "stand";
level.var_1166["exposed_ready_cqb"] = "stand";
level.var_1172["Cover Stand"] = "stand";
level.var_1172["Conceal Stand"] = "stand";
level.var_1172["Cover Crouch"] = "crouch";
level.var_1172["Conceal Crouch"] = "crouch";
}
//Function Number: 3
func_208B(param_00,param_01,param_02,param_03,param_04)
{
for(var_05 = param_00;var_05 <= param_01;var_05++)
{
foreach(var_08, var_07 in param_03)
{
level.var_11B0[var_08][var_05] = getmovedelta(level.var_1164[var_08][var_05],0,func_208D(var_08,var_05));
level.var_1186[var_08][var_05] = getmovedelta(level.var_1164[var_08][var_05],0,1) - level.var_11B0[var_08][var_05];
level.var_1187[var_08][var_05] = getangledelta(level.var_1164[var_08][var_05],0,1);
}
foreach(var_08, var_07 in param_04)
{
level.var_11AC[var_08][var_05] = getmovedelta(level.var_1173[var_08][var_05],0,func_208C(var_08,var_05));
level.var_11AD[var_08][var_05] = getmovedelta(level.var_1173[var_08][var_05],0,1) - level.var_11AC[var_08][var_05];
level.var_11A9[var_08][var_05] = getangledelta(level.var_1173[var_08][var_05],0,1);
}
}
}
//Function Number: 4
func_208C(param_00,param_01)
{
return level.var_2085[param_00][param_01];
}
//Function Number: 5
func_208D(param_00,param_01)
{
return level.var_2086[param_00][param_01];
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,986 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\notetracks.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 58
* Decompile Time: 943 ms
* Timestamp: 10/27/2023 2:18:32 AM
*******************************************************************/
//Function Number: 1
func_23D8(param_00)
{
if(param_00 == "sound_dogstep_run_default")
{
self playsound("dogstep_run_default");
return 1;
}
var_01 = getsubstr(param_00,0,5);
if(var_01 != "sound")
{
return 0;
}
var_02 = "anml" + getsubstr(param_00,5);
if(isalive(self))
{
thread maps\_utility::play_sound_on_tag_endon_death(var_02,"tag_eye");
}
else
{
thread common_scripts\utility::play_sound_in_space(var_02,self geteye());
}
return 1;
}
//Function Number: 2
func_23DA()
{
return isdefined(self.var_23DB);
}
//Function Number: 3
func_1E73()
{
level.notetracks["anim_pose = \"stand\"] = ::func_23E9;
level.notetracks["anim_pose = \"crouch\"] = ::func_23EA;
level.notetracks["anim_pose = \"prone\"] = ::func_23EB;
level.notetracks["anim_pose = \"crawl\"] = ::func_23EC;
level.notetracks["anim_pose = \"back\"] = ::func_0D74;
level.notetracks["anim_movement = \"stop\"] = ::func_23E2;
level.notetracks["anim_movement = \"walk\"] = ::func_23E3;
level.notetracks["anim_movement = \"run\"] = ::func_23E4;
level.notetracks["anim_aiming = 1"] = ::func_23E5;
level.notetracks["anim_aiming = 0"] = ::func_23E7;
level.notetracks["anim_alertness = causal"] = ::func_23E6;
level.notetracks["anim_alertness = alert"] = ::func_23E7;
level.notetracks["anim_alertness = aiming"] = ::func_23E5;
level.notetracks["gunhand = (gunhand)_left"] = ::func_23ED;
level.notetracks["anim_gunhand = \"left\"] = ::func_23ED;
level.notetracks["gunhand = (gunhand)_right"] = ::func_23ED;
level.notetracks["anim_gunhand = \"right\"] = ::func_23ED;
level.notetracks["anim_gunhand = \"none\"] = ::func_23ED;
level.notetracks["gun drop"] = ::func_23EE;
level.notetracks["dropgun"] = ::func_23EE;
level.notetracks["gun_2_chest"] = ::func_23EF;
level.notetracks["gun_2_back"] = ::func_23F0;
level.notetracks["pistol_pickup"] = ::func_23F2;
level.notetracks["pistol_putaway"] = ::func_23F3;
level.notetracks["drop clip"] = ::func_23F4;
level.notetracks["refill clip"] = ::func_23F5;
level.notetracks["reload done"] = ::func_23F5;
level.notetracks["load_shell"] = ::func_23F6;
level.notetracks["pistol_rechamber"] = ::func_23F7;
level.notetracks["gravity on"] = ::func_23F8;
level.notetracks["gravity off"] = ::func_23F8;
level.notetracks["footstep_right_large"] = ::func_23F9;
level.notetracks["footstep_right_small"] = ::func_23F9;
level.notetracks["footstep_left_large"] = ::func_23F9;
level.notetracks["footstep_left_small"] = ::func_23F9;
level.notetracks["footscrape"] = ::func_23FE;
level.notetracks["land"] = ::func_23FF;
level.notetracks["bodyfall large"] = ::func_2402;
level.notetracks["bodyfall small"] = ::func_2402;
level.notetracks["code_move"] = ::func_2400;
level.notetracks["face_enemy"] = ::func_2401;
level.notetracks["laser_on"] = ::func_23DD;
level.notetracks["laser_off"] = ::func_23DD;
level.notetracks["start_ragdoll"] = ::func_23E0;
level.notetracks["fire"] = ::func_23DC;
level.notetracks["fire_spray"] = ::func_240C;
level.notetracks["bloodpool"] = ::animscripts/death::func_ECA;
if(isdefined(level._notetrackfx))
{
var_00 = getarraykeys(level._notetrackfx);
foreach(var_02 in var_00)
{
level.notetracks[var_02] = ::func_23FB;
}
}
}
//Function Number: 4
func_23DC(param_00,param_01)
{
if(isdefined(level.fire_notetrack_functions[self.script]))
{
thread [[ level.fire_notetrack_functions[self.script] ]]();
return;
}
thread [[ ::func_20D7 ]]();
}
//Function Number: 5
func_23DD(param_00,param_01)
{
if(issubstr(param_00,"on"))
{
self.a.var_CDF = 1;
}
else
{
self.a.var_CDF = 0;
}
animscripts/shared::func_CE0();
}
//Function Number: 6
func_23DE(param_00,param_01)
{
}
//Function Number: 7
func_23DF()
{
wait 0.1;
if(isdefined(self))
{
self unlink();
}
}
//Function Number: 8
func_23E0(param_00,param_01)
{
if(isdefined(self.noragdoll))
{
return;
}
if(isdefined(self.var_EC7))
{
return;
}
if(!isdefined(self.var_23E1))
{
thread func_23DF();
}
self startragdoll();
}
//Function Number: 9
func_23E2(param_00,param_01)
{
self.a.movement = "stop";
}
//Function Number: 10
func_23E3(param_00,param_01)
{
self.a.movement = "walk";
}
//Function Number: 11
func_23E4(param_00,param_01)
{
self.a.movement = "run";
}
//Function Number: 12
func_23E5(param_00,param_01)
{
}
//Function Number: 13
func_23E6(param_00,param_01)
{
}
//Function Number: 14
func_23E7(param_00,param_01)
{
}
//Function Number: 15
func_0D2A()
{
animscripts/utility::func_F7D(1);
self.a.var_D29 = undefined;
}
//Function Number: 16
func_23E8(param_00)
{
self.a.pose = param_00;
if(isdefined(self.a.var_D29))
{
func_0D2A();
}
self notify("entered_pose" + param_00);
}
//Function Number: 17
func_23E9(param_00,param_01)
{
if(self.a.pose == "prone")
{
self orientmode("face default");
animscripts/utility::func_F7D(1);
}
func_23E8("stand");
}
//Function Number: 18
func_23EA(param_00,param_01)
{
if(self.a.pose == "prone")
{
self orientmode("face default");
animscripts/utility::func_F7D(1);
}
func_23E8("crouch");
}
//Function Number: 19
func_23EB(param_00,param_01)
{
if(!issentient(self))
{
return;
}
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_aiming,%prone_legs_up);
animscripts/utility::func_10E1(1);
func_23E8("prone");
if(isdefined(self.a.var_10E0))
{
self.a.var_EE0 = 1;
return;
}
self.a.var_EE0 = undefined;
}
//Function Number: 20
func_23EC(param_00,param_01)
{
if(!issentient(self))
{
return;
}
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_aiming,%prone_legs_up);
animscripts/utility::func_10E1(1);
func_23E8("prone");
self.a.var_EE0 = undefined;
}
//Function Number: 21
func_0D74(param_00,param_01)
{
if(!issentient(self))
{
return;
}
func_23E8("crouch");
self.a.var_D29 = 1;
self.a.movement = "stop";
self setproneanimnodes(-90,90,%prone_legs_down,%exposed_aiming,%prone_legs_up);
animscripts/utility::func_10E1(1);
}
//Function Number: 22
func_23ED(param_00,param_01)
{
if(issubstr(param_00,"left"))
{
animscripts/shared::func_C9B(self.weapon,"left");
self notify("weapon_switch_done");
return;
}
if(issubstr(param_00,"right"))
{
animscripts/shared::func_C9B(self.weapon,"right");
self notify("weapon_switch_done");
return;
}
if(issubstr(param_00,"none"))
{
animscripts/shared::func_C9B(self.weapon,"none");
return;
}
}
//Function Number: 23
func_23EE(param_00,param_01)
{
animscripts/shared::func_23C8();
self.lastweapon = self.weapon;
}
//Function Number: 24
func_23EF(param_00,param_01)
{
animscripts/shared::func_C9B(self.weapon,"chest");
}
//Function Number: 25
func_23F0(param_00,param_01)
{
animscripts/shared::func_C9B(self.weapon,"back");
self.weapon = animscripts/utility::func_23F1();
self.bulletsinclip = weaponclipsize(self.weapon);
}
//Function Number: 26
func_23F2(param_00,param_01)
{
animscripts/shared::func_C9B(self.sidearm,"right");
self.bulletsinclip = weaponclipsize(self.weapon);
self notify("weapon_switch_done");
}
//Function Number: 27
func_23F3(param_00,param_01)
{
animscripts/shared::func_C9B(self.weapon,"none");
self.weapon = animscripts/utility::func_23F1();
self.bulletsinclip = weaponclipsize(self.weapon);
}
//Function Number: 28
func_23F4(param_00,param_01)
{
thread animscripts/shared::func_23D1(param_01);
}
//Function Number: 29
func_23F5(param_00,param_01)
{
if(weaponclass(self.weapon) == "rocketlauncher")
{
animscripts/combat_utility::func_2385();
}
animscripts/weaponlist::func_CD0();
self.a.var_114D = 0;
}
//Function Number: 30
func_23F6(param_00,param_01)
{
self playsound("weap_reload_shotgun_loop_npc");
}
//Function Number: 31
func_23F7(param_00,param_01)
{
self playsound("weap_reload_pistol_chamber_npc");
}
//Function Number: 32
func_23F8(param_00,param_01)
{
if(issubstr(param_00,"on"))
{
self animmode("gravity");
return;
}
if(issubstr(param_00,"off"))
{
self animmode("nogravity");
}
}
//Function Number: 33
func_23F9(param_00,param_01)
{
var_02 = issubstr(param_00,"left");
var_03 = issubstr(param_00,"large");
func_2409(var_02,var_03);
var_04 = func_23FA();
self playsound("gear_rattle_" + var_04);
}
//Function Number: 34
func_23FA()
{
var_00 = "run";
if(isdefined(self.sprint))
{
var_00 = "sprint";
}
if(isdefined(self.a))
{
if(isdefined(self.a.movement))
{
if(self.a.movement == "walk")
{
var_00 = "walk";
}
}
if(isdefined(self.a.pose))
{
if(self.a.pose == "prone")
{
var_00 = "prone";
}
}
}
return var_00;
}
//Function Number: 35
func_23FB(param_00,param_01)
{
if(isdefined(self.var_752))
{
var_02 = self.var_752;
}
else
{
var_02 = "dirt";
}
var_03 = undefined;
if(isdefined(level._notetrackfx[param_00][var_02]))
{
var_03 = level._notetrackfx[param_00][var_02];
}
else if(isdefined(level._notetrackfx[param_00]["all"]))
{
var_03 = level._notetrackfx[param_00]["all"];
}
if(!isdefined(var_03))
{
return;
}
if(isai(self))
{
playfxontag(var_03.fx,self,var_03.tag);
}
if(!isdefined(var_03.var_23FC) && !isdefined(var_03.var_23FD))
{
return;
}
var_04 = "" + var_03.var_23FC + var_02 + var_03.var_23FD;
self playsound(var_04);
}
//Function Number: 36
func_23FE(param_00,param_01)
{
if(isdefined(self.var_752))
{
var_02 = self.var_752;
}
else
{
var_02 = "dirt";
}
self playsound("step_scrape_" + var_02);
}
//Function Number: 37
func_23FF(param_00,param_01)
{
if(isdefined(self.var_752))
{
var_02 = self.var_752;
}
else
{
var_02 = "dirt";
}
self playsound("land_" + var_02);
}
//Function Number: 38
func_2400(param_00,param_01)
{
return "code_move";
}
//Function Number: 39
func_2401(param_00,param_01)
{
if(self.script != "reactions")
{
self orientmode("face enemy");
return;
}
if(isdefined(self.enemy) && distancesquared(self.enemy.origin,self.var_731) < 4096)
{
self orientmode("face enemy");
return;
}
self orientmode("face point",self.var_731);
}
//Function Number: 40
func_2402(param_00,param_01)
{
var_02 = "_small";
if(issubstr(param_00,"large"))
{
var_02 = "_large";
}
if(isdefined(self.var_752))
{
var_03 = self.var_752;
}
else
{
var_03 = "dirt";
}
self playsound("bodyfall_" + var_03 + var_02);
}
//Function Number: 41
func_23CA(param_00,param_01,param_02)
{
if(isai(self) && self.type == "dog")
{
if(func_23D8(param_00))
{
return;
}
}
var_03 = level.notetracks[param_00];
if(isdefined(var_03))
{
return [[ var_03 ]](param_00,param_01);
}
switch(param_00)
{
case "undefined":
case "finish":
case "end":
return param_00;
case "finish early":
if(isdefined(self.enemy))
{
return param_00;
}
break;
case "swish small":
thread common_scripts\utility::play_sound_in_space("melee_swing_small",self gettagorigin("TAG_WEAPON_RIGHT"));
break;
case "swish large":
thread common_scripts\utility::play_sound_in_space("melee_swing_large",self gettagorigin("TAG_WEAPON_RIGHT"));
break;
case "rechamber":
if(animscripts/utility::func_C97())
{
self playsound("weap_reload_shotgun_pump_npc");
}
self.a.var_114D = 0;
break;
case "no death":
self.a.var_D55 = 1;
break;
case "no pain":
self.allowpain = 0;
break;
case "allow pain":
self.allowpain = 1;
break;
case "anim_melee = \"right\":
case "anim_melee = right":
self.a.var_110C = "right";
break;
case "anim_melee = \"left\":
case "anim_melee = left":
self.a.var_110C = "left";
break;
case "swap taghelmet to tagleft":
if(isdefined(self.hatmodel))
{
if(isdefined(self.var_2403))
{
self detach(self.var_2403,"TAG_HELMETSIDE");
self.var_2403 = undefined;
}
self detach(self.hatmodel,"");
self attach(self.hatmodel,"TAG_WEAPON_LEFT");
self.hatmodel = undefined;
}
break;
case "stop anim":
maps\_utility::anim_stopanimscripted();
return param_00;
case "break glass":
level notify("glass_break",self);
break;
case "break_glass":
level notify("glass_break",self);
break;
default:
if(isdefined(param_02))
{
return [[ param_02 ]](param_00);
}
break;
}
}
//Function Number: 42
func_0D4C(param_00,param_01,param_02)
{
for(;;)
{
self waittill(param_00,var_03);
if(!isdefined(var_03))
{
var_03 = "undefined";
}
var_04 = [[ param_01 ]](var_03);
if(isdefined(var_04) && var_04)
{
continue;
}
var_05 = func_23CA(var_03,param_00);
if(isdefined(var_05))
{
return var_05;
}
}
}
//Function Number: 43
func_1156(param_00,param_01)
{
for(;;)
{
self waittill(param_00,var_02);
if(!isdefined(var_02))
{
var_02 = "undefined";
}
var_03 = func_23CA(var_02,param_00);
[[ param_01 ]](var_02);
if(isdefined(var_03))
{
return var_03;
}
}
}
//Function Number: 44
func_2404(param_00,param_01,param_02,param_03)
{
animscripts/shared::donotetracks(param_00,param_02,param_03);
}
//Function Number: 45
func_239E(param_00,param_01,param_02,param_03)
{
func_2406(::animscripts/shared::donotetracks,param_00,param_01,param_02,param_03);
}
//Function Number: 46
func_2405(param_00,param_01,param_02,param_03)
{
func_2406(::func_0D4C,param_00,param_01,param_02,param_03);
}
//Function Number: 47
func_2406(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(param_02))
{
self endon(param_02);
}
self endon("killanimscript");
if(!isdefined(param_04))
{
param_04 = "undefined";
}
for(;;)
{
var_05 = gettime();
var_06 = [[ param_00 ]](param_01,param_03,param_04);
var_07 = gettime() - var_05;
if(var_07 < 0.05)
{
var_05 = gettime();
var_06 = [[ param_00 ]](param_01,param_03,param_04);
var_07 = gettime() - var_05;
if(var_07 < 0.05)
{
wait 0.05 - var_07;
}
}
}
}
//Function Number: 48
func_106C(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04 thread func_2408(param_01);
func_2407(::func_2404,param_00,param_02,param_03,var_04);
}
//Function Number: 49
func_0D4F(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04 thread func_2408(param_00);
func_2407(::func_239E,param_01,param_02,param_03,var_04);
}
//Function Number: 50
func_1001(param_00,param_01,param_02,param_03)
{
var_04 = spawnstruct();
var_04 thread func_2408(param_00);
func_2407(::func_2405,param_01,param_02,param_03,var_04);
}
//Function Number: 51
func_2407(param_00,param_01,param_02,param_03,param_04)
{
param_04 endon("stop_notetracks");
[[ param_00 ]](param_01,undefined,param_02,param_03);
}
//Function Number: 52
func_2408(param_00)
{
wait param_00;
self notify("stop_notetracks");
}
//Function Number: 53
func_2409(param_00,param_01)
{
if(!isai(self))
{
self playsound("step_run_dirt");
return;
}
var_02 = undefined;
if(!isdefined(self.var_752))
{
if(!isdefined(self.var_240A))
{
self playsound("step_run_dirt");
return;
}
var_02 = self.var_240A;
}
else
{
var_02 = self.var_752;
self.var_240A = self.var_752;
}
var_03 = "J_Ball_RI";
if(param_00)
{
var_03 = "J_Ball_LE";
}
var_04 = func_23FA();
self playsound("step_" + var_04 + "_" + var_02);
if(param_01)
{
if(![[ level.var_20CD ]](var_03,var_02))
{
func_20CE(var_03,var_02);
return;
}
return;
}
if(![[ level.var_20CF ]](var_03,var_02))
{
func_20D0(var_03,var_02);
}
}
//Function Number: 54
func_20D0(param_00,param_01)
{
var_02 = 0;
while(var_02 < level.var_20D1.size)
{
if(param_01 != level.var_20D1[var_02])
{
continue;
}
var_03 = self gettagorigin(param_00);
var_04 = self.angles;
var_05 = anglestoforward(var_04);
var_06 = var_05 * -1;
var_07 = anglestoup(var_04);
playfx(level._effect["step_" + level.var_20D1[var_02]],var_03,var_07,var_06);
return 1;
var_07++;
}
return 0;
}
//Function Number: 55
func_20CE(param_00,param_01)
{
var_02 = 0;
while(var_02 < level.var_20D2.size)
{
if(param_01 != level.var_20D2[var_02])
{
continue;
}
var_03 = self gettagorigin(param_00);
var_04 = self.angles;
var_05 = anglestoforward(var_04);
var_06 = var_05 * -1;
var_07 = anglestoup(var_04);
playfx(level._effect["step_small_" + level.var_20D2[var_02]],var_03,var_07,var_06);
return 1;
var_07++;
}
return 0;
}
//Function Number: 56
func_20D7()
{
waittillframeend;
if(isdefined(self) && gettime() > self.a.lastshoottime)
{
animscripts/utility::func_D5F();
animscripts/combat_utility::func_2386();
if(weaponclass(self.weapon) == "rocketlauncher")
{
self.a.rockets--;
}
}
}
//Function Number: 57
func_20D5()
{
if(self.a.weaponpos["right"] == "none")
{
return;
}
if(isdefined(self.var_240B))
{
func_20D7();
return;
}
var_00 = self gettagorigin("tag_weapon");
var_01 = anglestoforward(self getmuzzleangle());
var_02 = var_00 + var_01 * 1000;
self shoot(1,var_02);
animscripts/combat_utility::func_2386();
}
//Function Number: 58
func_240C(param_00,param_01)
{
if(!isalive(self) && self isbadguy())
{
if(isdefined(self.var_240D))
{
return;
}
self.var_240D = 1;
var_02["axis"] = "team3";
self.team = var_7B[self.team];
}
if(!issentient(self))
{
self notify("fire",var_7B["team3"],"axis");
return;
}
if(self.a.weaponpos["right"] == "none")
{
return;
}
var_03 = self getmuzzlepos();
var_04 = anglestoforward(self getmuzzleangle());
var_05 = 10;
if(isdefined(self.isrambo))
{
var_05 = 20;
}
var_06 = 0;
if(isalive(self.enemy) && issentient(self.enemy) && self canshootenemy())
{
var_07 = vectornormalize(self.enemy geteye() - var_03);
if(vectordot(var_04,var_07) > cos(var_05))
{
var_06 = 1;
}
}
if(var_06)
{
animscripts/utility::func_D5F();
}
else
{
var_04 = var_04 + (randomfloat(2) - 1 * 0.1,randomfloat(2) - 1 * 0.1,randomfloat(2) - 1 * 0.1);
var_08 = var_03 + var_04 * 1000;
animscripts/utility::func_2384(var_08);
}
animscripts/combat_utility::func_2386();
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,284 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\reactions.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 11
* Decompile Time: 182 ms
* Timestamp: 10/27/2023 2:18:36 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
animscripts/utility::func_D15("reactions");
func_0F2C();
}
//Function Number: 2
func_0F1C()
{
anim.var_F1D = [];
level.var_F1D[level.var_F1D.size] = %run_react_duck;
level.var_F1D[level.var_F1D.size] = %run_react_flinch;
level.var_F1D[level.var_F1D.size] = %run_react_stumble;
anim.var_F1E = 0;
anim.var_F1F = [];
level.var_F1F["cover_stand"] = animscripts/utility::array(%stand_cover_reaction_a,%stand_cover_reaction_b);
level.var_F1F["cover_crouch"] = animscripts/utility::array(%crouch_cover_reaction_a,%crouch_cover_reaction_b);
level.var_F1F["cover_left"] = animscripts/utility::array(%cornerstndl_react_a);
level.var_F1F["cover_right"] = animscripts/utility::array(%cornerstndr_react_a);
}
//Function Number: 3
func_0F20()
{
thread func_0F27();
}
//Function Number: 4
func_0F21()
{
return !isdefined(self.var_F22) || gettime() - self.var_F22 > 2000;
}
//Function Number: 5
func_0F23()
{
self endon("killanimscript");
self.var_F22 = gettime();
self.a.movement = "stop";
var_00 = isdefined(self.var_F24) && distancesquared(self.origin,self.var_F24.origin) < 160000;
self animmode("gravity");
self orientmode("face current");
if(var_00 || common_scripts\utility::cointoss())
{
self clearanim(%root,0.1);
var_01 = [];
var_02 = var_7B[randomint(var_7B.size)];
if(var_01)
{
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::func_D4F(var_03,"reactanim");
self clearanim(%root,0.1);
if(!var_01 && self.var_786 == "none" && !isdefined(self.var_F25))
{
var_04 = 1 + randomfloat(0.2);
var_05 = animscripts/utility::func_F26(%exposed_dive_grenade_b,%exposed_dive_grenade_f);
self setflaggedanimknobrestart("dive",var_05,1,0.1,var_04);
animscripts/shared::donotetracks("dive");
}
}
else
{
wait randomfloat(0.2);
var_04 = 1.2 + randomfloat(0.3);
if(self.a.pose == "stand")
{
self clearanim(%root,0.1);
self setflaggedanimknobrestart("crouch",%exposed_stand_2_crouch,1,0.1,var_04);
animscripts/shared::donotetracks("crouch");
}
var_06 = anglestoforward(self.angles);
if(isdefined(self.var_F24))
{
var_07 = vectornormalize(self.var_F24.origin - self.origin);
}
else
{
var_07 = var_07;
}
if(vectordot(var_07,var_06) > 0)
{
var_08 = animscripts/utility::func_F26(%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::donotetracks("twitch");
}
else
{
var_09 = animscripts/utility::func_F26(%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::donotetracks("turn");
}
}
self clearanim(%root,0.1);
self.var_F24 = undefined;
self animmode("normal");
self orientmode("face default");
}
//Function Number: 6
func_0F27()
{
self endon("killanimscript");
if(isdefined(self.disablebulletwhizbyreaction))
{
return;
}
for(;;)
{
self waittill("bulletwhizby",var_00);
if(!isdefined(var_00.team) || self.team == var_00.team)
{
continue;
}
if(isdefined(self.var_CAF) || isdefined(self.var_CF1))
{
continue;
}
if(self.a.pose != "stand")
{
continue;
}
if(!func_0F21())
{
continue;
}
self.var_F24 = var_00;
self animcustom(::func_0F23);
}
}
//Function Number: 7
func_0F28()
{
self endon("killanimscript");
wait 0.3;
self setlookatentity();
}
//Function Number: 8
func_0F29()
{
var_00 = undefined;
if(self nearclaimnodeandangle() && isdefined(level.var_F1F[self.var_788]))
{
var_01 = anglestoforward(self.node.angles);
var_02 = vectornormalize(self.var_731 - self.origin);
if(vectordot(var_01,var_02) < -0.5)
{
self orientmode("face current");
var_03 = randomint(level.var_F1F[self.var_788].size);
var_00 = level.var_F1F[self.var_788][var_03];
}
}
if(!isdefined(var_00))
{
var_04 = [];
if(isdefined(self.enemy) && distancesquared(self.enemy.origin,self.var_731) < 65536)
{
self orientmode("face enemy");
}
else
{
self orientmode("face point",self.var_731);
}
if(self.a.pose == "crouch")
{
var_02 = vectornormalize(self.var_731 - self.origin);
var_05 = anglestoforward(self.angles);
if(vectordot(var_05,var_02) < -0.5)
{
self orientmode("face current");
var_7B[0] = %crouch_cover_reaction_a;
var_7B[1] = %crouch_cover_reaction_b;
}
}
var_04 = var_7B[randomint(var_7B.size)];
}
return var_04;
}
//Function Number: 9
func_0F2A()
{
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::func_D4F(var_00 * 0.8,"reactanim");
self orientmode("face current");
return;
}
self orientmode("face enemy");
self setflaggedanimknobrestart("reactanim",%exposed_backpedal,1,0.2,1);
var_00 = getanimlength(%exposed_backpedal);
animscripts/notetracks::func_D4F(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::donotetracks("reactanim");
}
//Function Number: 10
func_0F2B()
{
self endon("death");
self endon("endNewEnemyReactionAnim");
self.var_F22 = gettime();
self.a.movement = "stop";
if(isdefined(self._stealth) && self.var_74A != "combat")
{
func_0F2A();
}
else
{
var_00 = func_0F29();
self clearanim(%root,0.2);
self setflaggedanimknobrestart("reactanim",var_00,1,0.2,1);
animscripts/shared::donotetracks("reactanim");
}
self notify("newEnemyReactionDone");
}
//Function Number: 11
func_0F2C()
{
self endon("death");
if(isdefined(self.var_F2D))
{
return;
}
if(!func_0F21())
{
return;
}
if(self.a.pose == "prone" || isdefined(self.a.var_D29))
{
return;
}
self animmode("gravity");
if(isdefined(self.enemy))
{
func_0F2B();
}
}

View File

@ -0,0 +1,738 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\riotshield\riotshield.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 28
* Decompile Time: 478 ms
* Timestamp: 10/27/2023 2:17:19 AM
*******************************************************************/
//Function Number: 1
func_3AB4()
{
level.notetracks["detach shield"] = ::func_3AB5;
animscripts/init_move_transitions::func_2082();
level.var_1164["riotshield"] = [];
level.var_1164["riotshield"][1] = %riotshield_run_approach_1;
level.var_1164["riotshield"][2] = %riotshield_run_approach_2;
level.var_1164["riotshield"][3] = %riotshield_run_approach_3;
level.var_1164["riotshield"][4] = %riotshield_run_approach_4;
level.var_1164["riotshield"][6] = %riotshield_run_approach_6;
level.var_1164["riotshield"][7] = undefined;
level.var_1164["riotshield"][8] = %riotshield_walk2crouch_8;
level.var_1164["riotshield"][9] = undefined;
level.var_1164["riotshield_crouch"] = [];
level.var_1164["riotshield_crouch"][1] = %riotshield_walk_approach_1;
level.var_1164["riotshield_crouch"][2] = %riotshield_walk_approach_2;
level.var_1164["riotshield_crouch"][3] = %riotshield_walk_approach_3;
level.var_1164["riotshield_crouch"][4] = %riotshield_walk_approach_4;
level.var_1164["riotshield_crouch"][6] = %riotshield_walk_approach_6;
level.var_1164["riotshield_crouch"][7] = undefined;
level.var_1164["riotshield_crouch"][8] = %riotshield_walk2crouch_8;
level.var_1164["riotshield_crouch"][9] = undefined;
var_00 = [];
for(var_01 = 0;var_01 < var_7B.size;var_01++ = "riotshield_crouch")
{
var_02 = var_7B[var_01];
for(var_03 = 1;var_03 <= 9;var_03++ = var_7B[1])
{
if(var_03 == 5)
{
continue;
}
if(isdefined(level.var_1164[var_02][var_03]))
{
level.var_1186[var_02][var_03] = getmovedelta(level.var_1164[var_02][var_03],0,1);
}
}
}
level.var_1187["riotshield_crouch"][1] = 45;
level.var_1187["riotshield_crouch"][2] = 0;
level.var_1187["riotshield_crouch"][3] = -45;
level.var_1187["riotshield_crouch"][4] = 90;
level.var_1187["riotshield_crouch"][6] = -90;
level.var_1187["riotshield_crouch"][8] = 180;
level.var_1187["riotshield"][1] = 45;
level.var_1187["riotshield"][2] = 0;
level.var_1187["riotshield"][3] = -45;
level.var_1187["riotshield"][4] = 90;
level.var_1187["riotshield"][6] = -90;
level.var_1187["riotshield"][8] = 180;
level.var_1166["riotshield"] = "crouch";
level.var_1166["riotshield_crouch"] = "crouch";
animscripts/combat_utility::func_238B(%riotshield_crouch_grenade_toss,(-3.20014,1.7098,55.6886));
}
//Function Number: 2
func_3AB5(param_00,param_01)
{
animscripts/shared::func_23C8(self.secondaryweapon);
self.secondaryweapon = "none";
if(isalive(self))
{
func_3AD4();
}
}
//Function Number: 3
func_3AB6()
{
if(self.a.pose == "crouch")
{
return "riotshield_crouch";
}
return "riotshield";
}
//Function Number: 4
func_3AB7(param_00)
{
return 1;
}
//Function Number: 5
func_3AB8()
{
animscripts/shared::func_C9B(self.secondaryweapon,"left",0);
self initriotshieldhealth(self.secondaryweapon);
self.var_23C2 = 0;
thread func_3AD5();
self.subclass = "riotshield";
self.var_1193 = ::func_3AB6;
self.var_118E = ::func_3AB7;
self.var_1195 = 1;
self.var_1194 = 1;
self.pathrandompercent = 0;
self.interval = 0;
self.var_1089 = 1;
self.no_pistol_switch = 1;
self.dontshootwhilemoving = 1;
self.disablebulletwhizbyreaction = 1;
self.var_1106 = 1;
self.neversprintforvariation = 1;
self.combatmode = "no_cover";
self.fixednode = 0;
self.maxfaceenemydist = 1500;
self.var_1143 = 1;
self.var_1017 = squared(256);
self.var_10D3 = 1;
self.var_23CD = 1;
if(level.gameskill < 1)
{
self.shieldbulletblocklimit = randomintrange(4,8);
}
else
{
self.shieldbulletblocklimit = randomintrange(8,12);
}
self.var_3ABA = 0;
self.var_3ABB = 0;
self.walkdist = 500;
self.walkdistfacingmotion = 500;
self.grenadeawareness = 1;
self.var_772 = 0.5;
self.var_770 = 1;
self.a.var_113C = "crouch";
self.minexposedgrenadedist = 400;
self.ignoresuppression = 1;
self.var_1010 = ::func_3ABD;
self.var_1026 = ::func_3ABE;
maps\_utility::disable_turnanims();
maps\_utility::disable_surprise();
maps\_utility::disable_cqbwalk();
func_3AC9();
if(level.gameskill < 1)
{
self.bullet_resistance = 30;
}
else
{
self.bullet_resistance = 40;
}
maps\_utility::add_damage_function(::maps\_spawner::bullet_resistance);
maps\_utility::add_damage_function(::animscripts/pain::func_D82);
}
//Function Number: 6
func_3ABC()
{
if(!animscripts/melee::func_102B())
{
return 0;
}
var_00 = getmovedelta(%riotshield_basha_attack,0,1);
var_01 = lengthsquared(var_00);
if(distancesquared(self.origin,self.melee.target.origin) < var_01)
{
return 1;
}
animscripts/melee::func_102E();
var_02 = 0.1;
var_03 = 1;
for(;;)
{
if(!animscripts/melee::func_102B())
{
return 0;
}
if(var_03)
{
self.a.pose = "stand";
self setflaggedanimknoball("chargeanim",%riotshield_sprint,%body,1,0.2,1);
var_03 = 0;
}
self orientmode("face point",self.melee.target.origin);
animscripts/notetracks::func_D4F(var_02,"chargeanim");
var_04 = distancesquared(self.origin,self.melee.target.origin);
if(var_04 < var_01)
{
break;
}
if(gettime() >= self.melee.var_1028)
{
return 0;
}
}
return 1;
}
//Function Number: 7
func_3ABD()
{
self animmode("zonly_physics");
animscripts/melee::func_1027();
for(;;)
{
if(!func_3ABC())
{
self.var_101B = gettime() + 1500;
self.var_101C = self.melee.target;
break;
}
animscripts/battlechatter_ai::func_B37();
self orientmode("face point",self.melee.target.origin);
self setflaggedanimknoballrestart("meleeanim",%riotshield_bash_vs_player,%body,1,0.2,1);
self.melee.var_100E = 1;
if(!animscripts/melee::func_102A())
{
animscripts/melee::func_1021(self.melee.target);
break;
}
self animmode("none");
}
self animmode("none");
}
//Function Number: 8
func_3ABE()
{
var_00 = self.melee.target;
if(self.subclass == "riotshield" && var_00.subclass == "riotshield")
{
return 0;
}
animscripts/melee::func_103C();
var_01 = vectortoangles(var_00.origin - self.origin);
var_02 = angleclamp180(var_00.angles[1] - var_01[1]);
if(abs(var_02) > 100)
{
if(self.melee.winner)
{
if(self.subclass == "riotshield")
{
self.melee.animname = %riotshield_basha_attack;
var_00.melee.animname = %riotshield_basha_defend;
var_00.melee.var_1033 = %riotshield_basha_defend_survive;
}
else
{
self.melee.animname = %riotshield_bashb_defend;
var_00.melee.animname = %riotshield_bashb_attack;
}
}
else if(self.subclass == "riotshield")
{
self.melee.animname = %riotshield_bashb_attack;
var_00.melee.animname = %riotshield_bashb_defend;
}
else
{
self.melee.animname = %riotshield_basha_defend;
var_00.melee.animname = %riotshield_basha_attack;
}
}
else
{
return 0;
}
self.melee.startpos = getstartorigin(var_00.origin,var_00.angles,self.melee.animname);
self.melee.var_103B = (var_00.angles[0],angleclamp180(var_00.angles[1] + 180),var_00.angles[2]);
self.lockorientation = 0;
var_00.lockorientation = 0;
return animscripts/melee::func_1013();
}
//Function Number: 9
func_3ABF()
{
if(isdefined(self.disableexits))
{
return;
}
self orientmode("face angle",self.angles[1]);
self animmode("zonly_physics",0);
if(self.a.pose == "crouch")
{
if(isdefined(self.sprint) || isdefined(self.var_3AC0))
{
var_00 = %riotshield_crouch2stand;
}
else
{
var_00 = %riotshield_crouch2walk;
}
var_01 = randomfloatrange(0.9,1.1);
self setflaggedanimknoballrestart("startmove",var_00,%body,1,0.1,var_01);
animscripts/shared::donotetracks("startmove");
self clearanim(%riotshield_crouch2walk,0.5);
}
if(isdefined(self.sprint) || isdefined(self.var_3AC0))
{
self allowedstances("stand","crouch");
self.a.pose = "stand";
}
self orientmode("face default");
self animmode("normal",0);
thread func_3AC3();
}
//Function Number: 10
func_3AC1()
{
if(self.var_788 == "move" && self.a.pose == "crouch")
{
self clearanim(%root,0.2);
var_00 = randomfloatrange(0.9,1.1);
self animmode("zonly_physics");
self setflaggedanimknoballrestart("endmove",%riotshield_walk2crouch_8,%body,1,0.2,var_00);
animscripts/shared::donotetracks("endmove");
self animmode("normal");
}
self allowedstances("crouch");
}
//Function Number: 11
func_3AC2()
{
func_3AC1();
self.pushable = 0;
thread func_3AC3();
}
//Function Number: 12
func_3AC3()
{
self endon("killanimscript");
for(;;)
{
self waittill("bullet_hitshield");
var_00 = gettime();
if(var_00 - self.var_3ABB > 500)
{
self.var_3ABA = 0;
}
else
{
self.var_3ABA++;
}
self.var_3ABB = var_00;
if(self.var_3ABA > self.shieldbulletblocklimit)
{
self dodamage(1,(0,0,0));
}
if(common_scripts\utility::cointoss())
{
var_01 = %riotshield_reacta;
}
else
{
var_01 = %riotshield_reactb;
}
self notify("new_hit_react");
self setflaggedanimrestart("hitreact",var_01,1,0.1,1);
thread func_3AC4();
}
}
//Function Number: 13
func_3AC4()
{
self endon("killanimscript");
self endon("new_hit_react");
self waittillmatch("end","hitreact");
self clearanim(%riotshield_react,0.1);
}
//Function Number: 14
func_3AC5()
{
if(self.a.pose == "stand")
{
self clearanim(%root,0.2);
self setflaggedanimknoballrestart("trans",%riotshield_walk2crouch_8,%body,1,0.2,1.2);
animscripts/shared::donotetracks("trans");
}
if(isdefined(self.var_73C))
{
var_00 = 1;
var_01 = self.var_73C.origin - self.origin;
if(isdefined(self.enemy))
{
var_02 = self.enemy.origin - self.origin;
if(vectordot(var_01,var_02) < 0)
{
var_00 = 0;
}
}
if(var_00)
{
var_03 = angleclamp180(self.angles[1] - vectortoyaw(var_01));
if(!isdefined(self.var_F72))
{
self.var_F72 = 55;
}
while(abs(var_03) > self.var_F72)
{
if(!isdefined(self.a.array))
{
animscripts/combat::func_1108();
}
if(!animscripts/combat::func_F73(var_03))
{
break;
}
var_03 = angleclamp180(self.angles[1] - vectortoyaw(var_01));
}
}
}
self setanimknoball(%riotshield_crouch_aim_5,%body,1,0.2,1);
self setflaggedanimknoballrestart("grenadecower",%riotshield_crouch_idle_add,%add_idle,1,0.2,self.var_10F7);
animscripts/shared::donotetracks("grenadecower");
}
//Function Number: 15
func_3AC6()
{
self notify("flashed");
if(!isdefined(self.a.var_D29))
{
var_00 = randomfloatrange(0.9,1.1);
self.var_772 = 1;
var_01 = [];
var_02 = var_7B[randomint(var_7B.size)];
self setflaggedanimknoballrestart("flashanim",var_02,%body,1,0.1,var_01);
self.minpaindamage = 1000;
animscripts/shared::donotetracks("flashanim");
}
else
{
wait 0.1;
}
self.minpaindamage = 0;
if(isdefined(self.subclass) && self.subclass == "riotshield")
{
self.var_772 = 0.5;
}
}
//Function Number: 16
func_3AC7()
{
self.a.pose = "crouch";
if(animscripts/utility::func_C95())
{
maps\_utility::forceuseweapon(self.primaryweapon,"primary");
}
if(!isdefined(self.a.var_D29))
{
var_00 = randomfloatrange(0.8,1.15);
self.var_772 = 1;
if((self.var_723 < -120 || self.var_723 > 120) && isexplosivedamagemod(self.var_726))
{
var_01 = [];
var_02 = var_7B[randomint(var_7B.size)];
self setflaggedanimknoballrestart("painanim",var_02,%body,1,0.2,var_01);
self.minpaindamage = 1000;
}
else
{
self setflaggedanimknoballrestart("painanim",%riotshield_crouch_pain,%body,1,0.2,var_01);
}
animscripts/shared::donotetracks("painanim");
}
else
{
wait 0.1;
}
self.minpaindamage = 0;
if(isdefined(self.subclass) && self.subclass == "riotshield")
{
self.var_772 = 0.5;
}
}
//Function Number: 17
func_3AC8()
{
if(isdefined(self.a.var_D29) && self.a.pose == "crouch")
{
var_00 = [];
var_01 = var_7B[randomint(var_7B.size)];
animscripts/death::func_D56(var_01);
return 1;
}
if(self.var_788 == "pain" || self.var_788 == "flashed")
{
var_02 = randomint(2) == 0;
}
else
{
var_02 = 1;
}
if(var_02)
{
if(common_scripts\utility::cointoss())
{
var_01 = %riotshield_crouch_death;
}
else
{
var_01 = %riotshield_crouch_death_fallback;
}
animscripts/death::func_D56(var_02);
return 1;
}
self.a.pose = "crouch";
return 0;
}
//Function Number: 18
func_3AC9()
{
var_00 = [];
self.custommoveanimset["run"] = var_7B;
self.custommoveanimset["walk"] = var_7B;
self.custommoveanimset["cqb"] = var_7B;
self.var_C89 = [];
self.var_C89["crouch"] = %riotshield_crouch_aim_5;
self.var_C89["crouch_add"] = %riotshield_crouch_idle_add;
self.var_C89["stand"] = %riotshield_crouch_aim_5;
self.var_C89["stand_add"] = %riotshield_crouch_idle_add;
self.a.pose = "crouch";
self allowedstances("crouch");
var_7B = level.animsets.var_C78;
animscripts/animset::func_C81(var_7B);
animscripts/animset::func_C84(var_7B);
self.var_FBA = ::func_3ACB;
self.var_D18 = ::func_3AC7;
self.var_D4B = ::func_3AC8;
self.var_2095 = ::func_3AC6;
self.var_3ACA = ::func_3AC5;
self.custommovetransition = ::func_3ABF;
self.var_11A1 = 1;
common_scripts\utility::set_exception("exposed",::func_3AC2);
}
//Function Number: 19
func_3ACB(param_00)
{
if(isdefined(self.var_73C))
{
return "stand";
}
return animscripts/utility::func_10AF(param_00);
}
//Function Number: 20
riotshield_sprint_on()
{
self.maxfaceenemydist = 128;
self.sprint = 1;
self orientmode("face default");
self.lockorientation = 0;
self.walkdist = 32;
self.walkdistfacingmotion = 32;
}
//Function Number: 21
riotshield_fastwalk_on()
{
self.maxfaceenemydist = 128;
self.var_3AC0 = 1;
self.walkdist = 32;
self.walkdistfacingmotion = 32;
}
//Function Number: 22
riotshield_sprint_off()
{
self.maxfaceenemydist = 1500;
self.walkdist = 500;
self.walkdistfacingmotion = 500;
self.sprint = undefined;
self allowedstances("crouch");
}
//Function Number: 23
riotshield_fastwalk_off()
{
self.maxfaceenemydist = 1500;
self.walkdist = 500;
self.walkdistfacingmotion = 500;
self.var_3AC0 = undefined;
self allowedstances("crouch");
}
//Function Number: 24
func_3AD0()
{
}
//Function Number: 25
func_3AD1()
{
if(self.script == "move")
{
self animcustom(::func_3AD0);
}
self.custommovetransition = ::func_3AD2;
}
//Function Number: 26
func_3AD2()
{
self.custommovetransition = ::func_3ABF;
self animmode("zonly_physics",0);
self orientmode("face current");
if(!isdefined(self.var_3AD3) && isdefined(self.enemy) && vectordot(self.var_773,anglestoforward(self.angles)) < 0)
{
var_00 = %riotshield_crouch2walk_2flee;
}
else
{
var_00 = %riotshield_crouch2stand_shield_drop;
}
var_01 = randomfloatrange(0.85,1.1);
self setflaggedanimknoball("fleeanim",var_00,%root,1,0.1,var_01);
animscripts/shared::donotetracks("fleeanim");
self.maxfaceenemydist = 32;
self.lockorientation = 0;
self orientmode("face default");
self animmode("normal",0);
animscripts/shared::donotetracks("fleeanim");
self clearanim(var_00,0.2);
self.maxfaceenemydist = 128;
}
//Function Number: 27
func_3AD4()
{
self.subclass = "regular";
self.combatmode = "cover";
self.var_1193 = undefined;
self.var_118E = undefined;
self.var_1195 = undefined;
self.var_1194 = undefined;
self.pathrandompercent = 0;
self.interval = 80;
self.var_1089 = undefined;
self.no_pistol_switch = undefined;
self.dontshootwhilemoving = undefined;
self.disablebulletwhizbyreaction = undefined;
self.var_1106 = undefined;
self.neversprintforvariation = undefined;
self.maxfaceenemydist = 128;
self.var_1143 = undefined;
self.var_1017 = undefined;
self.var_10D3 = undefined;
self.var_23CD = undefined;
self.pathenemyfightdist = 128;
self.pathenemylookahead = 128;
self.walkdist = 256;
self.walkdistfacingmotion = 64;
self.lockorientation = 0;
self.var_772 = 1;
self.var_770 = 0;
self.ignoresuppression = 0;
self.sprint = undefined;
self allowedstances("stand","crouch","prone");
self.var_1010 = undefined;
self.var_1026 = undefined;
maps\_utility::enable_turnanims();
self.bullet_resistance = undefined;
maps\_utility::remove_damage_function(::maps\_spawner::bullet_resistance);
maps\_utility::remove_damage_function(::animscripts/pain::func_D82);
animscripts/animset::func_C87();
self.var_FBA = ::animscripts/utility::func_10AF;
self.var_D18 = undefined;
self.var_D4B = undefined;
self.var_2095 = undefined;
self.var_3ACA = undefined;
self.custommovetransition = undefined;
self.var_11A1 = undefined;
common_scripts\utility::clear_exception("exposed");
common_scripts\utility::clear_exception("stop_immediate");
}
//Function Number: 28
func_3AD5()
{
self endon("death");
self waittill("riotshield_damaged");
self.var_23C3 = 1;
animscripts/shared::func_23C1();
self.var_23C2 = 1;
animscripts/shared::func_23C4();
}

View File

@ -0,0 +1,967 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\run.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 43
* Decompile Time: 744 ms
* Timestamp: 10/27/2023 2:18:38 AM
*******************************************************************/
//Function Number: 1
func_0FB9()
{
var_00 = [[ self.var_FBA ]]("stand");
switch(var_00)
{
case "stand":
if(animscripts/setposemovement::func_FBB())
{
return;
}
if(isdefined(self.run_overrideanim))
{
animscripts/move::func_FBE(self.run_overrideanim,self.run_override_weights);
return;
}
if(func_0FFD())
{
return;
}
if(func_0FF0())
{
return;
}
if(animscripts/utility::func_A69())
{
func_0FDC();
}
else
{
func_0FED();
}
break;
case "crouch":
if(animscripts/setposemovement::func_FBF())
{
return;
}
if(isdefined(self.crouchrun_combatanim))
{
func_0FEE();
}
else
{
func_0FEF();
}
break;
default:
if(animscripts/setposemovement::func_FC1())
{
return;
}
func_0FC5();
break;
}
}
//Function Number: 2
func_0FC2()
{
if(!isdefined(self.a.var_CA6))
{
return %run_lowready_f;
}
if(!self.var_781)
{
if(self.var_786 == "none" || abs(self getmotionangle()) > 45)
{
return animscripts/utility::func_FC3("move_f");
}
}
if(self.var_786 == "up")
{
return animscripts/utility::func_FC3("stairs_up");
}
else if(self.var_786 == "down")
{
return animscripts/utility::func_FC3("stairs_down");
}
return animscripts/utility::func_FC3("straight");
}
//Function Number: 3
func_0FC4()
{
if(!isdefined(self.a.var_CA6))
{
return %crouch_fastwalk_f;
}
return animscripts/utility::func_FC3("crouch");
}
//Function Number: 4
func_0FC5()
{
self.a.movement = "run";
self setflaggedanimknob("runanim",animscripts/utility::func_FC3("prone"),1,0.3,self.moveplaybackrate);
animscripts/notetracks::func_D4F(0.25,"runanim");
}
//Function Number: 5
func_0FC7()
{
if(!isdefined(self.var_FC8))
{
self notify("stop_move_anim_update");
self.var_FC9 = undefined;
self clearanim(%combatrun_backward,0.2);
self clearanim(%combatrun_right,0.2);
self clearanim(%combatrun_left,0.2);
self clearanim(%w_aim_2,0.2);
self clearanim(%w_aim_4,0.2);
self clearanim(%w_aim_6,0.2);
self clearanim(%w_aim_8,0.2);
self.var_FC8 = 1;
}
}
//Function Number: 6
func_0FCA()
{
if(isdefined(self.var_FC8))
{
self clearanim(%run_n_gun,0.2);
self.var_FC8 = undefined;
}
return 0;
}
//Function Number: 7
func_0FC8(param_00)
{
if(param_00)
{
var_01 = func_0FEC(0.2);
var_02 = var_01 < 0;
}
else
{
var_01 = 0;
var_02 = self.var_FCB < 0;
}
var_03 = 1 - var_02;
var_04 = self.var_CA1;
var_05 = self.var_CA2;
var_06 = self.var_CA3;
if(!param_00 || squared(var_01) > var_04 * var_04)
{
self clearanim(%add_fire,0);
if(squared(self.var_FCB) < var_06 * var_06)
{
self.var_FCB = 0;
self.var_FC8 = undefined;
return 0;
}
else if(self.var_FCB > 0)
{
self.var_FCB = self.var_FCB - var_06;
}
else
{
self.var_FCB = self.var_FCB + var_06;
}
}
else
{
var_07 = var_01 / var_04;
var_08 = var_07 - self.var_FCB;
if(abs(var_08) < var_05 * 0.7)
{
self.var_FCB = var_07;
}
else if(var_08 > 0)
{
self.var_FCB = self.var_FCB + var_06;
}
else
{
self.var_FCB = self.var_FCB - var_06;
}
}
func_0FC7();
var_09 = abs(self.var_FCB);
if(var_09 > var_05)
{
var_0A = var_09 - var_05 / var_05;
var_0A = clamp(var_0A,0,1);
self clearanim(self.var_CA4["F"],0.2);
self setanimlimited(self.var_CA4["L"],1 - var_0A * var_02,0.2);
self setanimlimited(self.var_CA4["R"],1 - var_0A * var_03,0.2);
self setanimlimited(self.var_CA4["LB"],var_0A * var_02,0.2);
self setanimlimited(self.var_CA4["RB"],var_0A * var_03,0.2);
}
else
{
var_0A = clamp(var_0A / var_06,0,1);
self setanimlimited(self.var_CA4["F"],1 - var_0A,0.2);
self setanimlimited(self.var_CA4["L"],var_0A * var_02,0.2);
self setanimlimited(self.var_CA4["R"],var_0A * var_03,0.2);
if(var_05 < 1)
{
self clearanim(self.var_CA4["LB"],0.2);
self clearanim(self.var_CA4["RB"],0.2);
}
}
self setflaggedanimknob("runanim",%run_n_gun,1,0.3,0.8);
self.a.var_FCC = gettime() + 500;
if(param_00 && isplayer(self.enemy))
{
self updateplayersightaccuracy();
}
return 1;
}
//Function Number: 8
func_0FCD()
{
func_0FC7();
self setflaggedanimknob("runanim",%combatwalk_b,1,0.3,0.8);
if(isplayer(self.enemy))
{
self updateplayersightaccuracy();
}
animscripts/notetracks::func_D4F(0.2,"runanim");
thread func_0FE5();
self clearanim(%combatwalk_b,0.2);
}
//Function Number: 9
func_0FCE()
{
self endon("killanimscript");
for(;;)
{
wait 0.2;
if(!isdefined(self.var_FCF))
{
break;
}
if(!isdefined(self.pathgoalpos) || distancesquared(self.pathgoalpos,self.origin) < squared(80))
{
func_0FD0();
self notify("interrupt_react_to_bullet");
break;
}
}
}
//Function Number: 10
func_0FD0()
{
self orientmode("face default");
self.var_FCF = undefined;
self.var_FD1 = undefined;
}
//Function Number: 11
func_0F1D()
{
self.var_FD2 = undefined;
self notify("end_face_enemy_tracking");
self endon("interrupt_react_to_bullet");
self.var_FCF = 1;
self orientmode("face motion");
var_00 = randomint(level.var_F1D.size);
if(var_00 == level.var_F1E)
{
var_00 = var_00 + 1 % level.var_F1D.size;
}
anim.var_F1E = var_00;
var_01 = level.var_F1D[var_00];
self setflaggedanimknobrestart("reactanim",var_01,1,0.5);
thread func_0FCE();
animscripts/shared::donotetracks("reactanim");
func_0FD0();
}
//Function Number: 12
func_0FD3()
{
self.var_FD2 = undefined;
self notify("end_face_enemy_tracking");
self.var_FCF = 1;
self orientmode("face motion");
var_00 = randomint(self.var_FD4.size);
var_01 = self.var_FD4[var_00];
self setflaggedanimknobrestart("reactanim",var_01,1,0.5);
thread func_0FCE();
animscripts/shared::donotetracks("reactanim");
func_0FD0();
}
//Function Number: 13
func_0FD5()
{
var_00 = undefined;
if(isdefined(self.var_73C))
{
var_00 = animscripts/utility::func_FC3("sprint_short");
}
if(!isdefined(var_00))
{
var_00 = animscripts/utility::func_FC3("sprint");
}
return var_00;
}
//Function Number: 14
func_0FD6()
{
if(isdefined(self.sprint))
{
return 1;
}
if(isdefined(self.var_73C) && isdefined(self.enemy) && self.var_772 == 1)
{
return distancesquared(self.origin,self.enemy.origin) > 90000;
}
return 0;
}
//Function Number: 15
func_0FD8()
{
if(isdefined(self.neversprintforvariation))
{
return 0;
}
if(!self.var_781 || self.var_786 != "none")
{
return 0;
}
var_00 = gettime();
if(isdefined(self.var_FDA))
{
if(var_00 < self.var_FDA)
{
return 1;
}
if(var_00 - self.var_FDA < 6000)
{
return 0;
}
}
if(!isdefined(self.enemy) || !issentient(self.enemy))
{
return 0;
}
if(randomint(100) < 25 && self lastknowntime(self.enemy) + 2000 > var_00)
{
self.var_FDA = var_00 + 2000 + randomint(1000);
return 1;
}
return 0;
}
//Function Number: 16
func_0FDB()
{
var_00 = self.moveplaybackrate;
if(self.var_775 && self.var_786 == "none" && self.var_774 < 300)
{
var_00 = var_00 * 0.75;
}
return var_00;
}
//Function Number: 17
func_0FDC()
{
var_00 = func_0FDB();
self setanimknob(%combatrun,1,0.5,var_00);
var_01 = 0;
if(isdefined(self.var_FD1) && gettime() - self.var_FD1 < 100 && randomfloat(1) < self.a.var_FDD)
{
func_0FCA();
func_0F1D();
return;
}
if(func_0FD6())
{
self setflaggedanimknob("runanim",func_0FD5(),1,0.5);
var_01 = 1;
}
else if(isdefined(self.enemy) && animscripts/move::func_FDE())
{
func_0FE3();
if(!self.var_781)
{
thread func_0FE1();
}
else if(self.var_CDA != "none" && !isdefined(self.norunngun))
{
self notify("end_face_enemy_tracking");
self.var_FD2 = undefined;
if(func_0FE9())
{
var_01 = func_0FC8(1);
}
else if(func_0FEA())
{
func_0FCD();
return;
}
}
else if(isdefined(self.var_FCB) && self.var_FCB != 0)
{
var_01 = func_0FC8(0);
}
}
else if(isdefined(self.var_FCB) && self.var_FCB != 0)
{
var_01 = func_0FC8(0);
}
if(!var_01)
{
func_0FCA();
if(isdefined(self.var_FD1) && gettime() - self.var_FD1 < 100 && self.a.var_FDD != 0)
{
func_0F1D();
return;
}
if(func_0FD8())
{
var_02 = animscripts/utility::func_FC3("sprint_short");
}
else
{
var_02 = func_0FC2();
}
self setflaggedanimknoblimited("runanim",var_02,1,0.1,1,1);
func_0FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"),self.var_FE0);
thread func_0FF8("run");
}
animscripts/notetracks::func_D4F(0.2,"runanim");
thread func_0FE5();
}
//Function Number: 18
func_0FE1()
{
self notify("want_aim_while_moving");
if(isdefined(self.var_FD2))
{
return;
}
self.var_FD2 = 1;
self endon("killanimscript");
self endon("end_face_enemy_tracking");
self setdefaultaimlimits();
if(!isdefined(self.var_C82) || !isdefined(self.var_C82["walk_aims"]))
{
self setanimlimited(%walk_aim_2);
self setanimlimited(%walk_aim_4);
self setanimlimited(%walk_aim_6);
self setanimlimited(%walk_aim_8);
}
else
{
self setanimlimited(self.var_C82["walk_aims"]["walk_aim_2"]);
self setanimlimited(self.var_C82["walk_aims"]["walk_aim_4"]);
self setanimlimited(self.var_C82["walk_aims"]["walk_aim_6"]);
self setanimlimited(self.var_C82["walk_aims"]["walk_aim_8"]);
}
animscripts/track::func_CAA(%w_aim_2,%w_aim_4,%w_aim_6,%w_aim_8);
}
//Function Number: 19
func_0FE2()
{
self.var_FD2 = undefined;
self notify("end_face_enemy_tracking");
}
//Function Number: 20
func_0FE3()
{
self notify("want_shoot_while_moving");
if(isdefined(self.var_FE4))
{
return;
}
self.var_FE4 = 1;
thread func_0FE6();
thread func_0FE7();
}
//Function Number: 21
func_0FE5()
{
self endon("killanimscript");
self endon("want_shoot_while_moving");
self endon("want_aim_while_moving");
wait 0.05;
self notify("end_shoot_while_moving");
self notify("end_face_enemy_tracking");
self.var_FE4 = undefined;
self.var_FD2 = undefined;
self.var_FC8 = undefined;
}
//Function Number: 22
func_0FE6()
{
self endon("killanimscript");
self endon("end_shoot_while_moving");
animscripts/shoot_behavior::func_CD7("normal");
}
//Function Number: 23
func_0FE7()
{
self endon("killanimscript");
self endon("end_shoot_while_moving");
animscripts/move::func_FE8();
}
//Function Number: 24
func_0D60()
{
var_00 = self getmuzzleangle();
var_01 = vectortoangles(self.enemy getshootatpos() - self getmuzzlepos());
if(animscripts/utility::func_D61(var_00[1] - var_01[1]) > 15)
{
return 0;
}
return animscripts/utility::func_D61(var_00[0] - var_01[0]) <= 20;
}
//Function Number: 25
func_0FE9()
{
if((!isdefined(self.var_FCB) || self.var_FCB == 0) && abs(self getmotionangle()) > self.var_CA1)
{
return 0;
}
return 1;
}
//Function Number: 26
func_0FEA()
{
if(180 - abs(self getmotionangle()) >= 45)
{
return 0;
}
var_00 = func_0FEC(0.2);
if(abs(var_00) > 30)
{
return 0;
}
return 1;
}
//Function Number: 27
func_0FEB()
{
return animscripts/move::func_FDE() && isdefined(self.enemy) && func_0FE9() || func_0FEA();
}
//Function Number: 28
func_0FEC(param_00)
{
var_01 = self.origin;
var_02 = self.angles[1] + self getmotionangle();
var_01 = var_01 + (cos(var_02),sin(var_02),0) * length(self.velocity) * param_00;
var_03 = self.angles[1] - vectortoyaw(self.enemy.origin - var_01);
var_03 = angleclamp180(var_03);
return var_03;
}
//Function Number: 29
func_0FED()
{
self endon("movemode");
self clearanim(%combatrun,0.6);
var_00 = func_0FDB();
self setanimknoball(%combatrun,%body,1,0.2,var_00);
if(func_0FD6())
{
var_01 = func_0FD5();
}
else
{
var_01 = func_0FC2();
}
if(self.var_786 == "none")
{
var_02 = 0.3;
}
else
{
var_02 = 0.1;
}
self setflaggedanimknob("runanim",var_01,1,var_02,1,1);
func_0FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"));
thread func_0FF8("run");
animscripts/notetracks::func_D4F(0.2,"runanim");
}
//Function Number: 30
func_0FEE()
{
self endon("movemode");
self setflaggedanimknoball("runanim",self.crouchrun_combatanim,%body,1,0.4,self.moveplaybackrate);
animscripts/shared::donotetracks("runanim");
}
//Function Number: 31
func_0FEF()
{
self endon("movemode");
var_00 = func_0FC4();
self setanimknob(var_00,1,0.4);
thread func_0FF9("crouchrun",var_00,%crouch_fastwalk_b,%crouch_fastwalk_l,%crouch_fastwalk_r);
self setflaggedanimknoball("runanim",%crouchrun,%body,1,0.2,self.moveplaybackrate);
animscripts/notetracks::func_D4F(0.2,"runanim");
}
//Function Number: 32
func_0FF0()
{
var_00 = isdefined(self.a.var_FCC) && self.a.var_FCC > gettime();
var_00 = var_00 || isdefined(self.enemy) && distancesquared(self.origin,self.enemy.origin) < 65536;
if(var_00)
{
if(!animscripts/combat_utility::func_F08(0))
{
return 0;
}
}
else if(!animscripts/combat_utility::func_F08(0.5))
{
return 0;
}
if(isdefined(self.var_73C))
{
return 0;
}
if(!self.var_781 || self.var_786 != "none")
{
return 0;
}
if(isdefined(self.dontshootwhilemoving) || isdefined(self.var_FF2))
{
return 0;
}
if(func_0FEB() && !animscripts/combat_utility::func_F08(0))
{
return 0;
}
if(!isdefined(self.pathgoalpos) || distancesquared(self.origin,self.pathgoalpos) < 65536)
{
return 0;
}
var_01 = angleclamp180(self getmotionangle());
if(abs(var_01) > 25)
{
return 0;
}
if(!animscripts/utility::func_EE3())
{
return 0;
}
if(!func_0FF6())
{
return 0;
}
func_0FF3();
self notify("abort_reload");
self orientmode("face default");
return 1;
}
//Function Number: 33
func_0FF3()
{
self endon("movemode");
self orientmode("face motion");
var_00 = "reload_" + animscripts/combat_utility::func_FF4();
self setflaggedanimknoballrestart(var_00,%run_lowready_reload,%body,1,0.25);
self.var_FF5 = 1;
func_0FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"));
thread func_0FF8("run");
animscripts/shared::donotetracks(var_00);
self.var_FF5 = undefined;
}
//Function Number: 34
func_0FF6()
{
var_00 = self getanimtime(%walk_and_run_loops);
var_01 = getanimlength(%run_lowready_f) / 3;
var_00 = var_00 * 3;
if(var_00 > 3)
{
var_00 = var_00 - 2;
}
else if(var_00 > 2)
{
var_00 = var_00 - 1;
}
if(var_00 < 0.15 / var_01)
{
return 1;
}
if(var_00 > 1 - 0.3 / var_01)
{
return 1;
}
return 0;
}
//Function Number: 35
func_0FF7(param_00,param_01,param_02,param_03)
{
if(!isdefined(param_03))
{
param_03 = 1;
}
self setanimknoblimited(param_00,1,0.1,param_03,1);
self setanimknoblimited(param_01,1,0.1,param_03,1);
self setanimknoblimited(param_02,1,0.1,param_03,1);
}
//Function Number: 36
func_0FF8(param_00)
{
func_0FF9(param_00,%combatrun_forward,%combatrun_backward,%combatrun_left,%combatrun_right);
}
//Function Number: 37
func_0FF9(param_00,param_01,param_02,param_03,param_04)
{
if(isdefined(self.var_FC9) && self.var_FC9 == param_00)
{
return;
}
self notify("stop_move_anim_update");
self.var_FC9 = param_00;
self.var_FFA = undefined;
self endon("killanimscript");
self endon("move_interrupt");
self endon("stop_move_anim_update");
for(;;)
{
func_0FFB(param_01,param_02,param_03,param_04);
wait 0.05;
waittillframeend;
}
}
//Function Number: 38
func_0FFB(param_00,param_01,param_02,param_03)
{
if(self.var_781 && !animscripts/utility::func_CB2() && !isdefined(self.var_FF5))
{
if(!isdefined(self.var_FFA))
{
self.var_FFA = 1;
self setanim(param_00,1,0.2,1,1);
self setanim(param_01,0,0.2,1,1);
self setanim(param_02,0,0.2,1,1);
self setanim(param_03,0,0.2,1,1);
return;
}
return;
}
self.var_FFA = undefined;
var_04 = animscripts/utility::func_FFC(self getmotionangle());
if(isdefined(self.var_FF5))
{
if(var_7B["front"] < 0.2)
{
}
}
self setanim(param_01,var_7B["front"],0.2,1,1);
self setanim(param_02,var_7B["back"],0.2,1,1);
self setanim(param_03,var_7B["left"],0.2,1,1);
self setanim(var_04,var_7B["right"],0.2,1,1);
}
//Function Number: 39
func_0FFD()
{
var_00 = isdefined(self.wantshotgun) && self.wantshotgun;
var_01 = animscripts/utility::func_CEA(self.weapon);
if(var_00 == var_01)
{
return 0;
}
if(!isdefined(self.pathgoalpos) || distancesquared(self.origin,self.pathgoalpos) < 65536)
{
return 0;
}
if(animscripts/utility::func_C95())
{
return 0;
}
if(self.weapon == self.primaryweapon)
{
if(!var_00)
{
return 0;
}
if(animscripts/utility::func_CEA(self.secondaryweapon))
{
return 0;
}
}
else
{
if(var_00)
{
return 0;
}
if(animscripts/utility::func_CEA(self.primaryweapon))
{
return 0;
}
}
var_02 = angleclamp180(self getmotionangle());
if(abs(var_02) > 25)
{
return 0;
}
if(!func_0FF6())
{
return 0;
}
if(var_00)
{
func_1000("shotgunPullout",%shotgun_cqbrun_pullout,"gun_2_chest","none",self.secondaryweapon,"shotgun_pickup");
}
else
{
func_1000("shotgunPutaway",%shotgun_cqbrun_putaway,"gun_2_back","back",self.primaryweapon,"shotgun_pickup");
}
self notify("switchEnded");
return 1;
}
//Function Number: 40
func_1000(param_00,param_01,param_02,param_03,param_04,param_05)
{
self endon("movemode");
self setflaggedanimknoballrestart(param_00,param_01,%body,1,0.25);
self.var_FF5 = 1;
func_0FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"));
thread func_0FF8("run");
thread func_1003(param_00,param_02,param_03,param_04,param_05);
animscripts/notetracks::func_1001(getanimlength(param_01) - 0.25,param_00,::func_1002);
self.var_FF5 = undefined;
}
//Function Number: 41
func_1002(param_00)
{
if(param_00 == "gun_2_chest" || param_00 == "gun_2_back")
{
return 1;
}
}
//Function Number: 42
func_1003(param_00,param_01,param_02,param_03,param_04)
{
self endon("killanimscript");
self endon("movemode");
self endon("switchEnded");
self waittillmatch(param_01,param_00);
animscripts/shared::func_C9B(self.weapon,param_02);
thread func_1004(param_03);
self waittillmatch(param_04,param_00);
self notify("complete_weapon_switch");
}
//Function Number: 43
func_1004(param_00)
{
self endon("death");
common_scripts\utility::waittill_any("killanimscript","movemode","switchEnded","complete_weapon_switch");
self.lastweapon = self.weapon;
animscripts/shared::func_C9B(param_00,"right");
self.bulletsinclip = weaponclipsize(self.weapon);
}

View File

@ -0,0 +1,60 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\scripted.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 45 ms
* Timestamp: 10/27/2023 2:18:39 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("death");
self notify("killanimscript");
self notify("clearSuppressionAttack");
self.a.var_20AB = 0;
self.var_3B66["root"] = %body;
self endon("end_sequence");
self startscriptedanim(self.var_3B66["notifyName"],self.var_3B66["origin"],self.var_3B66["angles"],self.var_3B66["anim"],self.var_3B66["animMode"],self.var_3B66["root"]);
self.var_3B66 = undefined;
if(isdefined(self.var_3FE4) || isdefined(self.var_3FE5))
{
animscripts/face::func_C46(self.var_3FE5,self.var_3FE4,0.9,"scripted_anim_facedone");
self.var_3FE5 = undefined;
self.var_3FE4 = undefined;
}
if(isdefined(self.var_3B67))
{
self.var_3B68 = self.var_3B67;
}
self waittill("killanimscript");
}
//Function Number: 2
init(param_00,param_01,param_02,param_03,param_04,param_05)
{
self.var_3B66["notifyName"] = param_00;
self.var_3B66["origin"] = param_01;
self.var_3B66["angles"] = param_02;
self.var_3B66["anim"] = param_03;
if(isdefined(param_04))
{
self.var_3B66["animMode"] = param_04;
}
else
{
self.var_3B66["animMode"] = "normal";
}
if(isdefined(param_05))
{
self.var_3B66["root"] = param_05;
return;
}
self.var_3B66["root"] = %body;
}

View File

@ -0,0 +1,967 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\setposemovement.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 55
* Decompile Time: 837 ms
* Timestamp: 10/27/2023 2:18:41 AM
*******************************************************************/
//Function Number: 1
func_10F1(param_00,param_01)
{
if(param_00 == "")
{
if(self.a.pose == "prone" && param_01 == "walk" || param_01 == "run")
{
param_00 = "crouch";
}
else
{
param_00 = self.a.pose;
}
}
if(!isdefined(param_01) || param_01 == "")
{
param_01 = self.a.movement;
}
[[ level.var_240E[param_00][param_01] ]]();
}
//Function Number: 2
func_20D9()
{
level.var_240E["stand"]["stop"] = ::func_240F;
level.var_240E["stand"]["walk"] = ::func_1080;
level.var_240E["stand"]["run"] = ::func_0FBB;
level.var_240E["crouch"]["stop"] = ::func_2410;
level.var_240E["crouch"]["walk"] = ::func_1083;
level.var_240E["crouch"]["run"] = ::func_0FBF;
level.var_240E["prone"]["stop"] = ::func_2411;
level.var_240E["prone"]["walk"] = ::func_1084;
level.var_240E["prone"]["run"] = ::func_0FC1;
}
//Function Number: 3
func_240F()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
return 0;
case "walk":
func_2414();
break;
default:
func_2416();
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
func_241C();
break;
case "walk":
func_2421();
break;
default:
func_2423();
break;
}
break;
default:
switch(self.a.movement)
{
case "stop":
func_242E();
break;
default:
func_242E();
break;
}
break;
}
return 1;
}
//Function Number: 4
func_1080()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
func_241A();
break;
case "walk":
return 0;
default:
func_241A();
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
func_241F();
break;
case "walk":
func_241A();
break;
default:
func_241A();
break;
}
break;
default:
func_242F();
break;
}
return 1;
}
//Function Number: 5
func_0FBB()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "walk":
case "stop":
return func_2419();
default:
return 0;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
return func_2425();
default:
return func_2419();
}
break;
default:
func_2428();
break;
}
return 1;
}
//Function Number: 6
func_2410()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
func_242B();
break;
case "walk":
func_2415();
break;
case "run":
func_2417();
break;
default:
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
break;
case "walk":
func_2420();
break;
case "run":
func_2422();
break;
default:
break;
}
break;
case "prone":
func_242D();
break;
default:
break;
}
}
//Function Number: 7
func_1083()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
func_242A();
break;
case "walk":
func_242A();
break;
default:
func_242A();
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
func_241E();
break;
case "walk":
return 0;
default:
func_242A();
break;
}
break;
default:
func_2429();
break;
}
return 1;
}
//Function Number: 8
func_0FBF()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
func_2426();
break;
default:
func_2426();
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
func_2424();
break;
case "walk":
func_2426();
break;
default:
return 0;
}
break;
default:
func_2427();
break;
}
return 1;
}
//Function Number: 9
func_2411()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
func_2436();
break;
case "walk":
func_2436();
break;
case "run":
func_2439();
break;
default:
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
func_2433();
break;
case "walk":
func_2433();
break;
case "run":
func_2439();
break;
default:
break;
}
break;
case "prone":
switch(self.a.movement)
{
case "stop":
break;
case "walk":
case "run":
func_2432();
break;
default:
break;
}
break;
default:
break;
}
}
//Function Number: 10
func_1084()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
func_2437();
break;
default:
func_243B();
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
func_2434();
break;
default:
func_243B();
break;
}
break;
default:
switch(self.a.movement)
{
case "stop":
func_2431();
break;
default:
self.a.movement = "walk";
return 0;
}
break;
}
return 1;
}
//Function Number: 11
func_0FC1()
{
switch(self.a.pose)
{
case "stand":
switch(self.a.movement)
{
case "stop":
func_2438();
break;
default:
func_243C();
break;
}
break;
case "crouch":
switch(self.a.movement)
{
case "stop":
func_2435();
break;
default:
func_243C();
break;
}
break;
default:
switch(self.a.movement)
{
case "stop":
func_2431();
break;
default:
self.a.movement = "run";
return 0;
}
break;
}
return 1;
}
//Function Number: 12
func_2412(param_00,param_01,param_02,param_03)
{
var_04 = gettime() + param_01 * 1000;
if(isarray(param_00))
{
param_00 = param_00[randomint(param_00.size)];
}
self setflaggedanimknoball("blendTransition",param_00,%body,1,param_01,1);
animscripts/notetracks::func_D4F(param_01 / 2,"blendTransition");
self.a.pose = param_02;
self.a.movement = param_03;
var_05 = var_04 - gettime() / 1000;
if(var_05 < 0.05)
{
var_05 = 0.05;
}
animscripts/notetracks::func_D4F(var_05,"blendTransition");
}
//Function Number: 13
func_2413(param_00,param_01)
{
func_243E(param_00,"stand","walk",param_01);
}
//Function Number: 14
func_2414()
{
self.a.movement = "stop";
}
//Function Number: 15
func_2415()
{
func_2414();
func_242B();
}
//Function Number: 16
func_2416()
{
self.a.movement = "stop";
}
//Function Number: 17
func_2417()
{
self.a.movement = "stop";
self.a.pose = "crouch";
}
//Function Number: 18
func_2418(param_00)
{
var_01 = 0.3;
if(self.a.movement != "stop")
{
self endon("movemode");
var_01 = 1;
}
func_2412(param_00,var_01,"stand","run");
}
//Function Number: 19
func_2419()
{
if(!self.var_781)
{
self.a.movement = "run";
self.a.pose = "stand";
return 0;
}
if(isdefined(self.run_overrideanim))
{
func_2418(self.run_overrideanim);
return 1;
}
var_00 = 0.1;
if(self.a.movement != "stop" && self.var_786 == "none")
{
var_00 = 0.5;
}
if(isdefined(self.sprint))
{
self setanimknoblimited(animscripts/utility::func_FC3("sprint"),1,var_00,1);
}
else
{
self setanimknoblimited(animscripts/run::func_FC2(),1,var_00,1);
}
animscripts/run::func_FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"),self.var_FE0);
thread animscripts/run::func_FF8("run");
wait 0.05;
func_2418(%combatrun);
return 1;
}
//Function Number: 20
func_241A()
{
if(self.a.movement != "stop")
{
self endon("movemode");
}
if(!isdefined(self.alwaysrunforward) && self.a.pose != "prone")
{
animscripts/run::func_FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"));
}
self.a.pose = "stand";
self.a.movement = "walk";
}
//Function Number: 21
func_241C()
{
var_00 = 1;
if(isdefined(self.var_241D))
{
var_00 = 1.8;
self.var_241D = undefined;
}
if(animscripts/utility::func_C95())
{
func_243E(%pistol_crouchaimstraight2stand,"stand","stop",undefined,var_00);
return;
}
animscripts/utility::func_10F0();
func_243E(%crouch2stand,"stand","stop",undefined,var_00);
}
//Function Number: 22
func_241E()
{
func_242A();
}
//Function Number: 23
func_241F()
{
func_241E();
func_241A();
}
//Function Number: 24
func_2420()
{
self.a.movement = "stop";
}
//Function Number: 25
func_2421()
{
func_2420();
func_241C();
}
//Function Number: 26
func_2422()
{
self.a.movement = "stop";
}
//Function Number: 27
func_2423()
{
func_2422();
func_241C();
}
//Function Number: 28
func_2424()
{
func_2426();
}
//Function Number: 29
func_2425()
{
return func_2419();
}
//Function Number: 30
func_2426()
{
if(isdefined(self.crouchrun_combatanim))
{
func_2412(self.crouchrun_combatanim,0.6,"crouch","run");
return;
}
self setanimknob(%crouchrun,1,0.4,self.moveplaybackrate);
thread animscripts/run::func_FF9("crouchrun",animscripts/utility::func_FC3("crouch"),animscripts/utility::func_FC3("crouch_b"),animscripts/utility::func_FC3("crouch_l"),animscripts/utility::func_FC3("crouch_r"));
wait 0.05;
func_2412(%crouchrun,0.4,"crouch","run");
}
//Function Number: 31
func_2427()
{
self orientmode("face current");
animscripts/utility::func_F7D(1);
func_2441(0.2);
animscripts/cover_prone::func_10E2(0.1);
func_243E(%prone_2_crouch,"crouch","run",animscripts/run::func_FC4());
}
//Function Number: 32
func_2428()
{
func_2427();
func_2419();
}
//Function Number: 33
func_2429()
{
func_2427();
func_242A();
}
//Function Number: 34
func_242A()
{
if(isdefined(self.crouchrun_combatanim))
{
self setanimknoball(self.crouchrun_combatanim,%body,1,0.4);
func_2412(self.crouchrun_combatanim,0.6,"crouch","walk");
self notify("BlendIntoCrouchWalk");
return;
}
self setanimknob(%crouchrun,1,0.4,self.moveplaybackrate);
thread animscripts/run::func_FF9("crouchrun",animscripts/utility::func_FC3("crouch"),animscripts/utility::func_FC3("crouch_b"),animscripts/utility::func_FC3("crouch_l"),animscripts/utility::func_FC3("crouch_r"));
wait 0.05;
func_2412(%crouchrun,0.4,"crouch","run");
}
//Function Number: 35
func_242B()
{
animscripts/utility::func_10F0();
var_00 = 1;
if(isdefined(self.var_242C))
{
var_00 = 1.8;
self.var_242C = undefined;
}
func_243E(%exposed_stand_2_crouch,"crouch","stop",undefined,var_00);
}
//Function Number: 36
func_242D()
{
animscripts/utility::func_10F0();
self orientmode("face current");
animscripts/utility::func_F7D(1);
func_2441(0.1);
animscripts/cover_prone::func_10E2(0.1);
func_243E(%prone_2_crouch,"crouch","stop");
}
//Function Number: 37
func_242E()
{
self orientmode("face current");
animscripts/utility::func_F7D(1);
func_2441(0.1);
animscripts/cover_prone::func_10E2(0.1);
func_243E(%prone_2_stand,"stand","stop");
}
//Function Number: 38
func_242F()
{
func_242D();
func_241E();
func_241A();
}
//Function Number: 39
func_2430(param_00)
{
func_2441(0.1);
func_243E(%prone_2_prone_crawl,"prone",param_00,%prone_crawl);
animscripts/cover_prone::func_10E2(0.1);
}
//Function Number: 40
func_2431()
{
func_2430("run");
}
//Function Number: 41
func_2432()
{
func_2441(0.1);
animscripts/cover_prone::func_10E2(0.1);
func_243E(%prone_crawl_2_prone,"prone","stop");
}
//Function Number: 42
func_2433()
{
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_aiming,%prone_legs_up);
animscripts/utility::func_10E1(1);
func_2441(0.3);
animscripts/cover_prone::func_10E2(0.1);
func_243E(%crouch_2_prone,"prone","stop");
}
//Function Number: 43
func_2434()
{
func_2433();
func_2431();
}
//Function Number: 44
func_2435()
{
func_2433();
func_2431();
}
//Function Number: 45
func_2436()
{
self endon("entered_poseprone");
var_00 = 0.5;
thread func_243D(%stand_2_prone,"prone","stop",undefined,var_00);
self waittillmatch("anim_pose = \"crouch\","transAnimDone2");
waittillframeend;
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_aiming,%prone_legs_up);
animscripts/utility::func_10E1(var_00);
self.a.movement = "stop";
func_2441(0.2);
animscripts/cover_prone::func_10E2(0.1);
self waittillmatch("end","transAnimDone2");
}
//Function Number: 46
func_2437()
{
func_2436();
func_2431();
}
//Function Number: 47
func_2438()
{
func_2436();
func_2431();
}
//Function Number: 48
func_2439()
{
var_00 = 0.5;
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_aiming,%prone_legs_up);
animscripts/utility::func_10E1(var_00);
func_2441(0.2);
animscripts/cover_prone::func_10E2(0.1);
var_01 = animscripts/utility::func_243A(self getmotionangle());
var_02 = %crouch_2_prone;
var_03 = getmovedelta(var_02,0,1);
var_04 = self localtoworldcoords(var_03);
if(self maymovetopoint(var_04))
{
func_243E(var_02,"prone","stop",undefined,var_00);
return;
}
func_243E(%crouch_2_prone_firing,"prone","stop",undefined,var_00);
}
//Function Number: 49
func_243B()
{
func_2439();
func_2431();
}
//Function Number: 50
func_243C()
{
func_2439();
func_2431();
}
//Function Number: 51
func_243D(param_00,param_01,param_02,param_03,param_04)
{
self endon("killanimscript");
self endon("entered_pose" + param_01);
func_243F(param_00,param_01,param_02,param_03,param_04,0);
}
//Function Number: 52
func_243E(param_00,param_01,param_02,param_03,param_04)
{
func_243F(param_00,param_01,param_02,param_03,param_04,1);
}
//Function Number: 53
func_243F(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(!isdefined(param_04))
{
param_04 = 1;
}
if(param_05)
{
thread func_2440(getanimlength(param_00) / 2,"killtimerscript",param_01);
}
self setflaggedanimknoballrestart("transAnimDone2",param_00,%body,1,0.2,param_04);
if(!isdefined(self.a.pose))
{
self.pose = "undefined";
}
if(!isdefined(self.a.movement))
{
self.movement = "undefined";
}
var_06 = "";
animscripts/shared::donotetracks("transAnimDone2",undefined,var_06);
self notify("killtimerscript");
self.a.pose = param_01;
self notify("entered_pose" + param_01);
self.a.movement = param_02;
if(isdefined(param_03))
{
self setanimknoball(param_03,%body,1,0.3,param_04);
}
}
//Function Number: 54
func_2440(param_00,param_01,param_02)
{
self endon("killanimscript");
self endon("death");
self endon(param_01);
var_03 = self.a.pose;
wait param_00;
if(var_03 != "prone" && param_02 == "prone")
{
animscripts/cover_prone::func_10E2(0.1);
animscripts/utility::func_10E1(1);
return;
}
if(var_03 == "prone" && param_02 != "prone")
{
animscripts/utility::func_F7D(1);
self orientmode("face default");
}
}
//Function Number: 55
func_2441(param_00)
{
self setanimknoball(%prone_legsstraight,%body,1,param_00,1);
}

View File

@ -0,0 +1,823 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\shared.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 34
* Decompile Time: 590 ms
* Timestamp: 10/27/2023 2:18:43 AM
*******************************************************************/
//Function Number: 1
func_0C9B(param_00,param_01,param_02)
{
self notify("weapon_position_change");
var_03 = self.weaponinfo[param_00].position;
if(param_01 != "none" && self.a.weaponpos[param_01] == param_00)
{
return;
}
func_23C1();
if(var_03 != "none")
{
func_23BE(param_00);
}
if(param_01 == "none")
{
func_23C4();
return;
}
if(self.a.weaponpos[param_01] != "none")
{
func_23BE(self.a.weaponpos[param_01]);
}
if(!isdefined(param_02))
{
param_02 = 1;
}
if(param_02 && param_01 == "left" || param_01 == "right")
{
func_23BF(param_00,param_01);
self.weapon = param_00;
}
else
{
func_23BF(param_00,param_01);
}
func_23C4();
}
//Function Number: 2
func_23BE(param_00)
{
self.a.weaponpos[self.weaponinfo[param_00].position] = "none";
self.weaponinfo[param_00].position = "none";
}
//Function Number: 3
func_23BF(param_00,param_01)
{
self.weaponinfo[param_00].position = param_01;
self.a.weaponpos[param_01] = param_00;
if(self.a.var_20A4[param_01] != "none")
{
self notify("end_weapon_drop_" + param_01);
self.a.var_20A4[param_01] = "none";
}
}
//Function Number: 4
func_23C0(param_00)
{
var_01 = self.a.weaponpos[param_00];
if(var_01 == "none")
{
return self.a.var_20A4[param_00];
}
return var_01;
}
//Function Number: 5
func_23C1()
{
var_00 = [];
self laseroff();
foreach(var_02 in var_7B)
{
var_03 = func_23C0(var_02);
if(var_03 == "none")
{
continue;
}
if(weapontype(var_03) == "riotshield" && isdefined(self.var_23C2))
{
if(isdefined(self.var_23C3) && self.var_23C3)
{
playfxontag(common_scripts\utility::getfx("riot_shield_dmg"),self,"TAG_BRASS");
self.var_23C3 = undefined;
}
self detach(getweaponmodel(var_03,self.var_23C2),func_23C7(var_02));
continue;
}
self detach(getweaponmodel(var_03),func_23C7(var_02));
}
}
//Function Number: 6
func_23C4()
{
var_00 = [];
foreach(var_02 in var_7B)
{
var_03 = func_23C0(var_02);
if(var_03 == "none")
{
continue;
}
var_04 = 0;
if(weapontype(var_03) == "riotshield" && isdefined(self.var_23C2))
{
var_04 = self.var_23C2;
}
var_05 = getweaponmodel(var_03,var_04);
if(weapontype(var_03) == "riotshield")
{
self attach(var_05,func_23C7(var_02));
}
else
{
self attach(var_05,func_23C7(var_02),1);
}
var_06 = getweaponhidetags(var_03);
var_07 = 0;
while(var_07 < var_06.size)
{
self hidepart(var_06[var_07],var_05);
var_07++ = var_7B[var_7B.size];
}
if(self.weaponinfo[var_03].var_209B && !self.weaponinfo[var_03].var_209A)
{
self hidepart("tag_clip");
}
}
func_0CE0();
}
//Function Number: 7
func_0CE0()
{
if(isdefined(self.var_23C5))
{
[[ self.var_23C5 ]]();
return;
}
if(self.a.weaponpos["right"] == "none")
{
return;
}
if(func_23C6())
{
self laseron();
return;
}
self laseroff();
}
//Function Number: 8
func_23C6()
{
if(!self.a.var_CDF)
{
return 0;
}
if(animscripts/utility::func_CEA(self.weapon))
{
return 0;
}
return isalive(self);
}
//Function Number: 9
func_23C7(param_00)
{
switch(param_00)
{
case "chest":
return "tag_weapon_chest";
case "back":
return "tag_stowed_back";
case "left":
return "tag_weapon_left";
case "right":
return "tag_weapon_right";
case "hand":
return "tag_inhand";
default:
break;
}
}
//Function Number: 10
func_23C8(param_00)
{
if(!isdefined(param_00))
{
param_00 = self.weapon;
}
if(param_00 == "none")
{
return;
}
if(isdefined(self.nodrop))
{
return;
}
func_23C1();
var_01 = self.weaponinfo[param_00].position;
if(self.dropweapon && var_01 != "none")
{
thread func_23C9(param_00,var_01);
}
func_23BE(param_00);
if(param_00 == self.weapon)
{
self.weapon = "none";
}
func_23C4();
}
//Function Number: 11
func_0D73()
{
if(isdefined(self.nodrop))
{
return "none";
}
var_00 = [];
func_23C1();
foreach(var_02 in var_7B)
{
var_03 = self.a.weaponpos[var_02];
if(var_03 == "none")
{
continue;
}
self.weaponinfo[var_03].position = "none";
self.a.weaponpos[var_02] = "none";
if(self.dropweapon)
{
thread func_23C9(var_03,var_02);
}
}
self.weapon = "none";
func_23C4();
}
//Function Number: 12
func_23C9(param_00,param_01)
{
if(self isragdoll())
{
return "none";
}
self.a.var_20A4[param_01] = param_00;
var_02 = param_00;
if(issubstr(tolower(var_02),"rpg"))
{
var_02 = "rpg_player";
}
self dropweapon(var_02,param_01,0);
self endon("end_weapon_drop_" + param_01);
wait 0.1;
if(!isdefined(self))
{
return;
}
func_23C1();
self.a.var_20A4[param_01] = "none";
func_23C4();
}
//Function Number: 13
donotetracks(param_00,param_01,param_02)
{
for(;;)
{
self waittill(param_00,var_03);
if(!isdefined(var_03))
{
var_03 = "undefined";
}
var_04 = animscripts/notetracks::func_23CA(var_03,param_00,param_01);
if(isdefined(var_04))
{
return var_04;
}
}
}
//Function Number: 14
func_111C(param_00)
{
if(!isdefined(self.var_CAB))
{
if(!isdefined(self.var_CB1))
{
return 0;
}
return func_23CE(self.var_CB1);
}
var_01 = self.var_CAB.origin + self.var_D81 * param_00;
return func_23CE(var_01);
}
//Function Number: 15
func_10E9()
{
if(!isdefined(self.var_CAB))
{
if(!isdefined(self.var_CB1))
{
return 0;
}
return func_23CE(self.var_CB1);
}
return func_23CE(self.var_CAB getshootatpos());
}
//Function Number: 16
func_23CB()
{
var_00 = func_23CC();
if(self.script == "cover_crouch" && isdefined(self.a.var_CF8) && self.a.var_CF8 == "lean")
{
var_00 = var_00 - level.var_CAD;
}
return var_00;
}
//Function Number: 17
func_23CC()
{
if(!isdefined(self.var_CAB))
{
if(!isdefined(self.var_CB1))
{
return 0;
}
return animscripts/combat_utility::func_23B3(self.var_CB1);
}
return animscripts/combat_utility::func_23B3(self.var_CAB getshootatpos());
}
//Function Number: 18
func_0CB0()
{
if(isdefined(self.var_23CD))
{
var_00 = self getmuzzlesideoffsetpos();
return (var_00[0],var_00[1],self geteye()[2]);
}
return (self.origin[0],self.origin[1],self geteye()[2]);
}
//Function Number: 19
func_23CE(param_00)
{
var_01 = animscripts/utility::func_113E(param_00);
var_02 = distance(self.origin,param_00);
if(var_02 > 3)
{
var_03 = asin(-3 / var_02);
var_01 = var_01 + var_03;
}
var_01 = angleclamp180(var_01);
return var_01;
}
//Function Number: 20
func_0F90(param_00)
{
self endon("killanimscript");
func_23CF(param_00);
self clearanim(%generic_aim_left,0.5);
self clearanim(%generic_aim_right,0.5);
}
//Function Number: 21
func_23CF(param_00)
{
self endon("rambo_aim_end");
waittillframeend;
self clearanim(%generic_aim_left,0.2);
self clearanim(%generic_aim_right,0.2);
self setanimlimited(%generic_aim_45l,1,0.2);
self setanimlimited(%generic_aim_45r,1,0.2);
var_01 = 0.2;
var_02 = 0;
for(;;)
{
if(isdefined(self.var_CB1))
{
var_03 = animscripts/utility::func_101A(self.var_CB1) - self.var_CAF.angles[1];
var_03 = angleclamp180(var_03 - param_00);
if(abs(var_03 - var_02) > 10)
{
if(var_03 > var_02)
{
var_03 = var_02 + 10;
}
else
{
var_03 = var_02 - 10;
}
}
var_02 = var_03;
}
if(var_02 < 0)
{
var_04 = var_02 / -45;
if(var_04 > 1)
{
var_04 = 1;
}
self setanimlimited(%generic_aim_right,var_04,var_01);
self setanimlimited(%generic_aim_left,0,var_01);
}
else
{
var_04 = var_02 / 45;
if(var_04 > 1)
{
var_04 = 1;
}
self setanimlimited(%generic_aim_left,var_04,var_01);
self setanimlimited(%generic_aim_right,0,var_01);
}
wait var_01;
}
}
//Function Number: 22
func_237A()
{
var_00 = 0;
var_01 = weaponburstcount(self.weapon);
if(var_01)
{
var_00 = var_01;
}
else if(animscripts/weaponlist::func_CCB())
{
var_00 = level.var_20DC[randomint(level.var_20DC.size)];
}
else if(self.var_CDB)
{
var_00 = level.var_20DB[randomint(level.var_20DB.size)];
}
else
{
var_00 = level.var_20DA[randomint(level.var_20DA.size)];
}
if(var_00 <= self.bulletsinclip)
{
return var_00;
}
if(self.bulletsinclip <= 0)
{
return 1;
}
return self.bulletsinclip;
}
//Function Number: 23
func_2379()
{
var_00 = self.bulletsinclip;
if(weaponclass(self.weapon) == "mg")
{
var_01 = randomfloat(10);
if(var_01 < 3)
{
var_00 = randomintrange(2,6);
}
else if(var_01 < 8)
{
var_00 = randomintrange(6,12);
}
else
{
var_00 = randomintrange(12,20);
}
}
return var_00;
}
//Function Number: 24
func_23D0(param_00,param_01)
{
}
//Function Number: 25
func_23D1(param_00)
{
self endon("killanimscript");
self endon("abort_reload");
var_01 = undefined;
if(self.weaponinfo[self.weapon].var_209B)
{
var_01 = getweaponclipmodel(self.weapon);
}
if(self.weaponinfo[self.weapon].var_209A)
{
if(animscripts/utility::func_C95())
{
self playsound("weap_reload_pistol_clipout_npc");
}
else
{
self playsound("weap_reload_smg_clipout_npc");
}
if(isdefined(var_01))
{
self hidepart("tag_clip");
thread func_23D3(var_01,"tag_clip");
self.weaponinfo[self.weapon].var_209A = 0;
thread func_23D2(var_01);
}
}
for(;;)
{
self waittill(param_00,var_02);
switch(var_02)
{
case "attach clip right":
case "attach clip left":
if(isdefined(var_01))
{
self attach(var_01,"tag_inhand");
thread func_23D2(var_01,"tag_inhand");
}
animscripts/weaponlist::func_CD0();
break;
case "detach clip nohand":
if(isdefined(var_01))
{
self detach(var_01,"tag_inhand");
}
break;
case "detach clip right":
case "detach clip left":
if(isdefined(var_01))
{
self detach(var_01,"tag_inhand");
self showpart("tag_clip");
self notify("clip_detached");
self.weaponinfo[self.weapon].var_209A = 1;
}
if(animscripts/utility::func_C95())
{
self playsound("weap_reload_pistol_clipin_npc");
}
else
{
self playsound("weap_reload_smg_clipin_npc");
}
self.a.var_114D = 0;
break;
}
}
}
//Function Number: 26
func_23D2(param_00,param_01)
{
self notify("clip_detached");
self endon("clip_detached");
common_scripts\utility::waittill_any("killanimscript","abort_reload");
if(!isdefined(self))
{
return;
}
if(isdefined(param_01))
{
self detach(param_00,param_01);
}
if(isalive(self))
{
if(self.weapon != "none" && self.weaponinfo[self.weapon].position != "none")
{
self showpart("tag_clip");
}
self.weaponinfo[self.weapon].var_209A = 1;
return;
}
if(isdefined(param_01))
{
func_23D3(param_00,param_01);
}
}
//Function Number: 27
func_23D3(param_00,param_01)
{
var_02 = spawn("script_model",self gettagorigin(param_01));
var_02 setmodel(param_00);
var_02.angles = self gettagangles(param_01);
var_02 physicslaunchclient(var_02.origin,(0,0,0));
wait 10;
if(isdefined(var_02))
{
var_02 delete();
}
}
//Function Number: 28
func_0F7C(param_00,param_01)
{
self endon("killanimscript");
var_02 = distancesquared(self.origin,param_00);
if(var_02 < 1)
{
self safeteleport(param_00);
return;
}
if(var_02 > 256 && !self maymovetopoint(param_00))
{
return;
}
self.keepclaimednodeifvalid = 1;
var_03 = self.origin - param_00;
var_04 = int(param_01 * 20);
var_05 = var_03 * 1 / var_04;
for(var_06 = 0;var_06 < var_04;var_06++)
{
var_03 = var_03 - var_05;
self safeteleport(param_00 + var_03);
wait 0.05;
}
self.keepclaimednodeifvalid = 0;
}
//Function Number: 29
func_23D4()
{
return 1;
}
//Function Number: 30
func_0F93(param_00,param_01,param_02)
{
if(!isdefined(param_02))
{
param_02 = ::func_23D4;
}
for(var_03 = 0;var_03 < param_01 * 10;var_03++)
{
if(isalive(self.enemy))
{
if(animscripts/utility::func_CE3() && [[ param_02 ]]())
{
return;
}
}
if(animscripts/utility::func_F4C() && [[ param_02 ]]())
{
return;
}
self setanimknoball(param_00,%body,1,0.1);
wait 0.1;
}
}
//Function Number: 31
func_0F87(param_00)
{
self endon("killanimscript");
func_0C9B(self.secondaryweapon,"right");
maps\_gameskill::didsomethingotherthanshooting();
}
//Function Number: 32
func_20A6()
{
var_00 = func_23D6();
if(var_00 == 0)
{
return;
}
self endon("death");
for(;;)
{
level waittill("an_enemy_shot",var_01);
if(var_01 != self)
{
continue;
}
if(!isdefined(var_01.enemy))
{
continue;
}
if(var_01.enemy != level.player)
{
continue;
}
if(isdefined(level.var_23D5) && level.var_23D5 == 0)
{
continue;
}
thread func_23D7();
var_00--;
if(var_00 <= 0)
{
return;
}
}
}
//Function Number: 33
func_23D6()
{
var_00 = maps\_utility::getdifficulty();
switch(var_00)
{
case "gimp":
case "easy":
return 2;
case "difficult":
case "hard":
case "medium":
return 1;
case "fu":
return 0;
}
return 2;
}
//Function Number: 34
func_23D7()
{
var_00 = missile_createrepulsorent(level.player,5000,800);
wait 4;
missile_deleteattractor(var_00);
}

View File

@ -0,0 +1,724 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\shoot_behavior.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 27
* Decompile Time: 437 ms
* Timestamp: 10/27/2023 2:18:45 AM
*******************************************************************/
//Function Number: 1
func_0CD7(param_00)
{
self endon("killanimscript");
self notify("stop_deciding_how_to_shoot");
self endon("stop_deciding_how_to_shoot");
self endon("death");
maps\_gameskill::resetmisstime();
self.var_CD9 = param_00;
self.var_CAB = undefined;
self.var_CB1 = undefined;
self.var_CDA = "none";
self.var_CDB = 0;
self.var_CDC = undefined;
if(!isdefined(self.var_CDD))
{
self.var_CDD = 0;
}
var_01 = isdefined(self.var_CAF) && self.var_CAF.type != "Cover Prone" && self.var_CAF.type != "Conceal Prone";
if(var_01)
{
wait 0.05;
}
var_02 = self.var_CAB;
var_03 = self.var_CB1;
var_04 = self.var_CDA;
if(!isdefined(self.has_no_ir))
{
self.a.var_CDF = 1;
animscripts/shared::func_CE0();
}
if(animscripts/combat_utility::issniper())
{
func_0D09();
}
if(var_01 && !self.a.var_CE2 || !animscripts/utility::func_CE3())
{
thread func_0CFA();
}
thread func_0CFE();
self.var_CE4 = undefined;
for(;;)
{
if(isdefined(self.var_CE5))
{
if(!isdefined(self.enemy))
{
self.var_CB1 = self.var_CE5;
self.var_CE5 = undefined;
func_0CE7();
}
else
{
self.var_CE5 = undefined;
}
}
var_05 = undefined;
if(self.weapon == "none")
{
func_0CE8();
}
else if(animscripts/utility::func_BB6())
{
var_05 = func_0CF5();
}
else if(animscripts/utility::func_C95())
{
var_05 = func_0CF6();
}
else
{
var_05 = func_0CF2();
}
if(isdefined(self.a.var_CE6))
{
[[ self.a.var_CE6 ]]();
}
if(func_0CFF(var_02,self.var_CAB) || !isdefined(self.var_CAB) && func_0CFF(var_03,self.var_CB1) || func_0CFF(var_04,self.var_CDA))
{
self notify("shoot_behavior_change");
}
var_02 = self.var_CAB;
var_03 = self.var_CB1;
var_04 = self.var_CDA;
if(!isdefined(var_05))
{
func_0CE7();
}
}
}
//Function Number: 2
func_0CE7()
{
self endon("enemy");
self endon("done_changing_cover_pos");
self endon("weapon_position_change");
self endon("enemy_visible");
if(isdefined(self.var_CAB))
{
self.var_CAB endon("death");
self endon("do_slow_things");
wait 0.05;
while(isdefined(self.var_CAB))
{
self.var_CB1 = self.var_CAB getshootatpos();
wait 0.05;
}
return;
}
self waittill("do_slow_things");
}
//Function Number: 3
func_0CE8()
{
self.var_CAB = undefined;
self.var_CB1 = undefined;
self.var_CDA = "none";
self.var_CD9 = "normal";
}
//Function Number: 4
func_0CE9()
{
return !animscripts/combat_utility::issniper() && !animscripts/utility::func_CEA(self.weapon);
}
//Function Number: 5
func_0CEB()
{
if(!animscripts/utility::func_CE3())
{
return 0;
}
if(!isdefined(self.var_CAF) && !self canshootenemy())
{
return 0;
}
return 1;
}
//Function Number: 6
func_0CEC()
{
if(!func_0CEB())
{
if(animscripts/combat_utility::issniper())
{
func_0D09();
}
if(self.var_748)
{
self.var_CD9 = "ambush";
return "retry";
}
if(!isdefined(self.enemy))
{
func_0D01();
return;
}
func_0CF7();
if((self.providecoveringfire || randomint(5) > 0) && func_0CE9())
{
self.var_CD9 = "suppress";
}
else
{
self.var_CD9 = "ambush";
}
return "retry";
}
func_0D00();
func_0D03();
}
//Function Number: 7
func_0CED(param_00)
{
if(!param_00)
{
func_0D01();
return;
}
self.var_CAB = undefined;
self.var_CB1 = animscripts/utility::func_CEE();
func_0D05();
}
//Function Number: 8
func_0CEF(param_00)
{
self.var_CDA = "none";
self.var_CAB = undefined;
if(!param_00)
{
func_0CF0();
if(func_0CF4())
{
self.var_CE4 = undefined;
self notify("return_to_cover");
self.var_CDC = 1;
return;
}
return;
}
self.var_CB1 = animscripts/utility::func_CEE();
if(func_0CF4())
{
self.var_CE4 = undefined;
if(func_0CE9())
{
self.var_CD9 = "suppress";
}
if(randomint(3) == 0)
{
self notify("return_to_cover");
self.var_CDC = 1;
}
return "retry";
}
}
//Function Number: 9
func_0CF0()
{
if(isdefined(self.enemy) && self cansee(self.enemy))
{
func_0D00();
return;
}
var_00 = self getanglestolikelyenemypath();
if(!isdefined(var_00))
{
if(isdefined(self.var_CAF))
{
var_00 = self.var_CAF.angles;
}
else if(isdefined(self.var_CF1))
{
var_00 = self.var_CF1.angles;
}
else if(isdefined(self.enemy))
{
var_00 = vectortoangles(self lastknownpos(self.enemy) - self.origin);
}
else
{
var_00 = self.angles;
}
}
var_01 = 1024;
if(isdefined(self.enemy))
{
var_01 = distance(self.origin,self.enemy.origin);
}
var_02 = self geteye() + anglestoforward(var_00) * var_01;
if(!isdefined(self.var_CB1) || distancesquared(var_02,self.var_CB1) > 25)
{
self.var_CB1 = var_02;
}
}
//Function Number: 10
func_0CF2()
{
if(self.var_CD9 == "normal")
{
func_0CEC();
return;
}
if(func_0CEB())
{
self.var_CD9 = "normal";
self.var_CE4 = undefined;
return "retry";
}
func_0CF7();
if(animscripts/combat_utility::issniper())
{
func_0D09();
}
var_00 = animscripts/utility::func_CF3();
if(self.var_CD9 == "suppress" || self.team == "allies" && !isdefined(self.enemy) && !var_00)
{
func_0CED(var_00);
return;
}
func_0CEF(var_00);
}
//Function Number: 11
func_0CF4()
{
if(!isdefined(self.var_CE4))
{
if(self isbadguy())
{
self.var_CE4 = gettime() + randomintrange(10000,-5536);
}
else
{
self.var_CE4 = gettime() + randomintrange(4000,10000);
}
}
return self.var_CE4 < gettime();
}
//Function Number: 12
func_0CF5()
{
if(!func_0CEB())
{
func_0CF7();
func_0D01();
return;
}
func_0D00();
self.var_CDA = "single";
var_00 = lengthsquared(self.origin - self.var_CB1);
if(var_00 < squared(512))
{
self notify("return_to_cover");
self.var_CDC = 1;
}
}
//Function Number: 13
func_0CF6()
{
if(self.var_CD9 == "normal")
{
if(!func_0CEB())
{
if(!isdefined(self.enemy))
{
func_0D01();
return;
}
func_0CF7();
self.var_CD9 = "ambush";
return "retry";
}
func_0D00();
self.var_CDA = "single";
return;
}
if(func_0CEB())
{
self.var_CD9 = "normal";
self.var_CE4 = undefined;
return "retry";
}
func_0CF7();
self.var_CAB = undefined;
self.var_CDA = "none";
self.var_CB1 = animscripts/utility::func_CEE();
if(!isdefined(self.var_CE4))
{
self.var_CE4 = gettime() + randomintrange(4000,8000);
}
if(self.var_CE4 < gettime())
{
self.var_CD9 = "normal";
self.var_CE4 = undefined;
return "retry";
}
}
//Function Number: 14
func_0CF7()
{
if(isdefined(self.enemy) && !self.var_CDD && self.script != "combat")
{
if(isai(self.enemy) && isdefined(self.enemy.script) && self.enemy.script == "cover_stand" || self.enemy.script == "cover_crouch")
{
if(isdefined(self.enemy.a.var_CF8) && self.enemy.a.var_CF8 == "hide")
{
return;
}
}
self.var_CF9 = self.enemy.origin;
}
}
//Function Number: 15
func_0CFA()
{
self endon("killanimscript");
self endon("stop_deciding_how_to_shoot");
for(;;)
{
self waittill("suppression");
if(self.var_738 > self.var_CFB)
{
if(func_0CFC())
{
self notify("return_to_cover");
self.var_CDC = 1;
}
}
}
}
//Function Number: 16
func_0CFC()
{
if(self.var_CDD)
{
return 0;
}
if(!isdefined(self.enemy) || !self cansee(self.enemy))
{
return 1;
}
if(gettime() < self.var_CFD + 800)
{
return 0;
}
if(isplayer(self.enemy) && self.enemy.health < self.enemy.maxhealth * 0.5)
{
if(gettime() < self.var_CFD + 3000)
{
return 0;
}
}
return 1;
}
//Function Number: 17
func_0CFE()
{
self endon("death");
common_scripts\utility::waittill_any("killanimscript","stop_deciding_how_to_shoot");
self.a.var_CDF = 0;
animscripts/shared::func_CE0();
}
//Function Number: 18
func_0CFF(param_00,param_01)
{
if(isdefined(param_00) != isdefined(param_01))
{
return 1;
}
if(!isdefined(param_01))
{
return 0;
}
return param_00 != param_01;
}
//Function Number: 19
func_0D00()
{
self.var_CAB = self.enemy;
self.var_CB1 = self.var_CAB getshootatpos();
}
//Function Number: 20
func_0D01()
{
self.var_CAB = undefined;
self.var_CB1 = undefined;
self.var_CDA = "none";
if(self.var_748)
{
self.var_CD9 = "ambush";
}
if(!self.var_CDD)
{
self notify("return_to_cover");
self.var_CDC = 1;
}
}
//Function Number: 21
func_0D02()
{
return level.gameskill == 3 && isplayer(self.enemy);
}
//Function Number: 22
func_0D03()
{
if(isdefined(self.var_CAB.enemy) && isdefined(self.var_CAB.enemy.var_78A))
{
return func_0D06("single",0);
}
if(animscripts/combat_utility::issniper())
{
return func_0D06("single",0);
}
if(animscripts/utility::func_CEA(self.weapon))
{
if(animscripts/utility::func_C97())
{
return func_0D06("single",0);
}
else
{
return func_0D06("semi",0);
}
}
if(weaponburstcount(self.weapon) > 0)
{
return func_0D06("burst",0);
}
if(isdefined(self.juggernaut) && self.juggernaut)
{
return func_0D06("full",1);
}
var_00 = distancesquared(self getshootatpos(),self.var_CB1);
var_01 = weaponclass(self.weapon) == "mg";
if(self.providecoveringfire && var_01)
{
return func_0D06("full",0);
}
if(var_00 < -3036)
{
if(isdefined(self.var_CAB) && isdefined(self.var_CAB.magic_bullet_shield))
{
return func_0D06("single",0);
}
else
{
return func_0D06("full",0);
}
}
else if(var_00 < 810000 || func_0D02())
{
if(weaponissemiauto(self.weapon) || func_0D07())
{
return func_0D06("semi",1);
}
else
{
return func_0D06("burst",1);
}
}
else if(self.providecoveringfire || var_01 || var_00 < 2560000)
{
if(func_0D07())
{
return func_0D06("semi",0);
}
else
{
return func_0D06("burst",0);
}
}
return func_0D06("single",0);
}
//Function Number: 23
func_0D05()
{
var_00 = distancesquared(self getshootatpos(),self.var_CB1);
if(weaponissemiauto(self.weapon))
{
if(var_00 < 2560000)
{
return func_0D06("semi",0);
}
return func_0D06("single",0);
}
if(weaponclass(self.weapon) == "mg")
{
return func_0D06("full",0);
}
if(self.providecoveringfire || var_00 < 2560000)
{
if(func_0D07())
{
return func_0D06("semi",0);
}
else
{
return func_0D06("burst",0);
}
}
return func_0D06("single",0);
}
//Function Number: 24
func_0D06(param_00,param_01)
{
self.var_CDA = param_00;
self.var_CDB = param_01;
}
//Function Number: 25
func_0D07()
{
if(weaponclass(self.weapon) != "rifle")
{
return 0;
}
if(self.team != "allies")
{
return 0;
}
var_00 = animscripts/utility::func_D08(int(self.origin[1]),10000) + 2000;
var_01 = int(self.origin[0]) + gettime();
return var_01 % 2 * var_00 > var_00;
}
//Function Number: 26
func_0D09()
{
self.snipershotcount = 0;
self.sniperhitcount = 0;
thread func_0D0C();
}
//Function Number: 27
func_0D0C()
{
self endon("killanimscript");
self endon("enemy");
self endon("return_to_cover");
self notify("new_glint_thread");
self endon("new_glint_thread");
if(isdefined(self.var_D0D) && self.var_D0D)
{
return;
}
if(!isdefined(level._effect["sniper_glint"]))
{
return;
}
if(!isalive(self.enemy))
{
return;
}
var_00 = common_scripts\utility::getfx("sniper_glint");
wait 0.2;
for(;;)
{
if(self.weapon == self.primaryweapon && animscripts/combat_utility::func_D0E())
{
if(distancesquared(self.origin,self.enemy.origin) > 65536)
{
playfxontag(var_00,self,"tag_flash");
}
var_01 = randomfloatrange(3,5);
wait var_01;
}
wait 0.2;
}
}

View File

@ -0,0 +1,898 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\snowmobile.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 32
* Decompile Time: 526 ms
* Timestamp: 10/27/2023 2:18:47 AM
*******************************************************************/
//Function Number: 1
main()
{
self.var_EE8 = "none";
self.var_EE9 = undefined;
func_0EEB();
if(isdefined(self.drivingvehicle))
{
func_0EF0();
return;
}
func_0EF3();
}
//Function Number: 2
func_0EEB()
{
self.grenadeawareness = 0;
self.a.pose = "crouch";
maps\_utility::disable_surprise();
self.allowpain = 0;
self.getoffvehiclefunc = ::func_0EEF;
self.var_D4B = ::func_0F16;
self.disablebulletwhizbyreaction = 1;
}
//Function Number: 3
func_0EEF()
{
self.allowpain = 1;
self.getoffvehiclefunc = undefined;
self.var_D4B = undefined;
self.a.var_CE6 = undefined;
self.disablebulletwhizbyreaction = undefined;
}
//Function Number: 4
func_0EF0()
{
var_00 = self.ridingvehicle.var_EF2 || self.ridingvehicle.riders.size == 1;
func_0F1A(var_00);
if(var_00)
{
animscripts/shared::func_C9B(self.primaryweapon,"left");
self.var_716 = 90;
self.var_717 = -90;
animscripts/track::func_CC4(1,0.2);
thread func_0F0F();
thread func_0EFA();
}
else
{
animscripts/shared::func_C9B(self.primaryweapon,"none");
thread func_0EF6();
}
func_0EFD("driver");
}
//Function Number: 5
func_0EF3()
{
func_0F1B(self.ridingvehicle.var_EF4);
if(self.ridingvehicle.var_EF4)
{
self.var_716 = 180;
self.var_717 = -180;
self.var_EF5 = 1;
animscripts/track::func_CC4(1,0.2);
thread func_0F10();
thread func_0EFB();
}
else
{
thread func_0EF9();
}
func_0EFD("passenger");
}
//Function Number: 6
func_0EF6()
{
self endon("death");
self endon("killanimscript");
var_00 = "left2right";
var_01 = [];
self setanimknoball(%sm_turn,%body,1,0);
self setanim(animscripts/utility::func_D4D("drive"),1,0);
self setanimknob(animscripts/utility::func_D4D(var_01),1,0);
self setanimtime(animscripts/utility::func_D4D(var_01),0.5);
for(;;)
{
if(self.ridingvehicle.steering_enable)
{
var_02 = 0.5 * 1 + maps\_vehicle::update_steering(self.ridingvehicle);
var_03 = self getanimtime(animscripts/utility::func_D4D(var_01));
if(var_01 == "right2left")
{
var_03 = 1 - var_03;
}
var_04 = 20 * abs(var_03 - var_02);
if(var_03 < var_02)
{
var_01 = "left2right";
var_04 = var_04 * var_7B["left2right"];
}
else
{
var_01 = "right2left";
var_04 = var_04 * var_7B["right2left"];
var_03 = 1 - var_03;
}
}
else
{
var_01 = "left2right";
var_04 = 0;
var_03 = 0.5;
}
self setanimknoblimited(animscripts/utility::func_D4D(var_01),1,0.1,var_04);
self setanimtime(animscripts/utility::func_D4D(var_01),var_03);
wait 0.05;
}
}
//Function Number: 7
func_0EF9()
{
self endon("death");
self endon("killanimscript");
self setanimknoball(animscripts/utility::func_D4D("hide"),%body,1,0);
self setanimknob(animscripts/utility::func_D4D("drive"),1,0);
for(;;)
{
var_00 = maps\_vehicle::update_steering(self.ridingvehicle);
self setanimlimited(%sm_lean,abs(var_00),0.05);
if(var_00 >= 0)
{
self setanimknoblimited(animscripts/utility::func_D4D("lean_right"),1,0.05);
}
else
{
self setanimknoblimited(animscripts/utility::func_D4D("lean_left"),1,0.05);
}
wait 0.05;
}
}
//Function Number: 8
func_0EFA()
{
self endon("death");
self endon("killanimscript");
var_00 = 0.05;
var_01 = 0;
self setanimknoball(%sm_aiming,%body,1,0);
self setanimknob(animscripts/utility::func_D4D("idle"),1,0);
for(;;)
{
if(self.var_EE8 != "none")
{
self waittill("snowmobile_event_finished");
continue;
}
var_02 = maps\_vehicle::update_steering(self.ridingvehicle);
var_03 = 1 - abs(var_02);
var_04 = max(0,0 - var_02);
var_05 = max(0,var_02);
self setanimlimited(animscripts/utility::func_D4D("straight_level_center"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("straight_level_left"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("straight_level_right"),var_05,var_00);
if(self.bulletsinclip <= 0)
{
animscripts/weaponlist::func_CD0();
var_01 = gettime() + 3000;
}
if(var_01 <= gettime())
{
func_0EFF();
}
self setanimknoblimited(animscripts/utility::func_D4D("add_aim_left_center"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_left_left"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_left_right"),var_05,var_00);
self setanimknoblimited(animscripts/utility::func_D4D("add_aim_right_center"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_right_left"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_right_right"),var_05,var_00);
thread func_0F00();
wait 0.05;
}
}
//Function Number: 9
func_0EFB()
{
self endon("death");
self endon("killanimscript");
var_00 = 0.05;
self setanimknoball(%sm_aiming,%body,1,0);
self setanimknob(animscripts/utility::func_D4D("idle"),1,0);
for(;;)
{
if(self.var_EE8 != "none")
{
self waittill("snowmobile_event_finished");
continue;
}
if(func_0F07())
{
continue;
}
var_01 = maps\_vehicle::update_steering(self.ridingvehicle);
var_02 = 1 - abs(var_01);
var_03 = max(0,0 - var_01);
var_04 = max(0,var_01);
self setanimlimited(animscripts/utility::func_D4D("straight_level_center"),var_02,var_00);
self setanimlimited(animscripts/utility::func_D4D("straight_level_left"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("straight_level_right"),var_04,var_00);
func_0EFF();
self setanimlimited(animscripts/utility::func_D4D("aim_left_center"),var_02,var_00);
self setanimlimited(animscripts/utility::func_D4D("aim_left_left"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("aim_left_right"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("aim_right_center"),var_02,var_00);
self setanimlimited(animscripts/utility::func_D4D("aim_right_left"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("aim_right_right"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_backleft_center"),var_02,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_backleft_left"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_backleft_right"),var_04,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_backright_center"),var_02,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_backright_left"),var_03,var_00);
self setanimlimited(animscripts/utility::func_D4D("add_aim_backright_right"),var_04,var_00);
if(isplayer(self.enemy))
{
self updateplayersightaccuracy();
}
wait 0.05;
thread func_0F00();
}
}
//Function Number: 10
func_0EFC(param_00)
{
self endon("death");
self.ridingvehicle.steering_enable = 0;
self setflaggedanimknoblimitedrestart("snowmobile_event",param_00,1,0.17);
animscripts/shared::donotetracks("snowmobile_event",::func_0F0E);
self setanimknoblimited(animscripts/utility::func_D4D("event_restore"),1,0.1);
self.ridingvehicle.steering_enable = 1;
self.var_EE8 = "none";
self notify("snowmobile_event_finished");
}
//Function Number: 11
func_0EFD(param_00)
{
self endon("death");
self endon("killanimscript");
var_01 = self.ridingvehicle;
for(;;)
{
if(var_01.event["jump"][param_00])
{
var_01.event["jump"][param_00] = 0;
self notify("snowmobile_event_occurred");
self.var_EE8 = "jump";
var_01.steering_enable = 0;
self setflaggedanimknoblimitedrestart("jump",animscripts/utility::func_D4D("event_jump"),1,0.17);
}
if(var_01.event["bump"][param_00])
{
var_01.event["bump"][param_00] = 0;
self notify("snowmobile_event_occurred");
if(self.var_EE8 != "bump_big")
{
thread func_0EFC(animscripts/utility::func_D4D("event_bump"));
}
}
if(var_01.event["bump_big"][param_00])
{
var_01.event["bump_big"][param_00] = 0;
self notify("snowmobile_event_occurred");
self.var_EE8 = "bump_big";
thread func_0EFC(animscripts/utility::func_D4D("event_bump_big"));
}
if(var_01.event["sway_left"][param_00])
{
var_01.event["sway_left"][param_00] = 0;
self notify("snowmobile_event_occurred");
if(self.var_EE8 != "bump_big")
{
thread func_0EFC(animscripts/utility::func_D4D("event_sway")["left"]);
}
}
if(var_01.event["sway_right"][param_00])
{
var_01.event["sway_right"][param_00] = 0;
self notify("snowmobile_event_occurred");
if(self.var_EE8 != "bump_big")
{
thread func_0EFC(animscripts/utility::func_D4D("event_sway")["right"]);
}
}
wait 0.05;
}
}
//Function Number: 12
func_0EFF()
{
self notify("want_shoot_while_driving");
self setanim(%sm_add_fire,1,0.2);
if(isdefined(self.var_EE9))
{
return;
}
self.var_EE9 = 1;
thread func_0F01();
thread func_0F05();
}
//Function Number: 13
func_0F00()
{
self endon("killanimscript");
self endon("want_shoot_while_driving");
wait 0.05;
self notify("end_shoot_while_driving");
self.var_EE9 = undefined;
self clearanim(%sm_add_fire,0.2);
}
//Function Number: 14
func_0F01()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self.a.var_CE6 = ::func_0F03;
func_0F02();
self.var_EE9 = undefined;
}
//Function Number: 15
func_0F02()
{
self endon("snowmobile_event_occurred");
animscripts/shoot_behavior::func_CD7("normal");
}
//Function Number: 16
func_0F03()
{
if(!isdefined(self.enemy))
{
self.var_CAB = undefined;
self.var_CB1 = undefined;
self.var_CDA = "none";
return;
}
self.var_CAB = self.enemy;
self.var_CB1 = self.enemy getshootatpos();
var_00 = distancesquared(self.origin,self.enemy.origin);
if(var_00 < 1000000)
{
self.var_CDA = "full";
}
else if(var_00 < 4000000)
{
self.var_CDA = "burst";
}
else
{
self.var_CDA = "single";
}
if(isdefined(self.enemy.vehicle))
{
var_01 = 0.5;
var_02 = self.var_CAB.vehicle;
var_03 = self.ridingvehicle;
var_04 = var_03.origin - var_02.origin;
var_05 = anglestoforward(var_02.angles);
var_06 = anglestoright(var_02.angles);
var_07 = vectordot(var_04,var_05);
if(var_07 < 0)
{
var_08 = var_02 vehicle_getspeed() * var_01;
var_08 = var_08 * 17.6;
if(var_08 > 50)
{
var_09 = vectordot(var_04,var_06);
var_09 = var_09 / 3;
if(var_09 > 128)
{
var_09 = 128;
}
else if(var_09 < -128)
{
var_09 = -128;
}
if(var_09 > 0)
{
var_09 = 128 - var_09;
}
else
{
var_09 = -128 - var_09;
}
self.var_CAB = undefined;
self.var_CB1 = var_02.origin + var_08 * var_05 + var_09 * var_06;
return;
}
}
}
}
//Function Number: 17
func_0F05()
{
self endon("killanimscript");
self endon("end_shoot_while_driving");
self notify("doing_shootWhileDriving");
self endon("doing_shootWhileDriving");
for(;;)
{
if(!self.bulletsinclip)
{
wait 0.5;
continue;
}
animscripts/combat_utility::func_F06();
}
}
//Function Number: 18
func_0F07()
{
if(!self.ridingvehicle.steering_enable)
{
return 0;
}
if(!animscripts/combat_utility::func_F08(0))
{
return 0;
}
if(!animscripts/utility::func_EE3())
{
return 0;
}
func_0F09();
self notify("abort_reload");
return 1;
}
//Function Number: 19
func_0F09()
{
self endon("snowmobile_event_occurred");
self.var_F0A = 1;
self waittill("start_blending_reload");
self setanim(%sm_aiming,0,0.25);
self setflaggedanimrestart("gun_down",animscripts/utility::func_D4D("gun_down"),1,0.25);
animscripts/shared::donotetracks("gun_down");
self clearanim(animscripts/utility::func_D4D("gun_down"),0);
self setflaggedanimknoballrestart("reload_anim",animscripts/utility::func_D4D("reload"),%body,1,0.25);
animscripts/shared::donotetracks("reload_anim");
self clearanim(%sm_reload,0.2);
self setflaggedanimrestart("gun_up",animscripts/utility::func_D4D("gun_up"),1,0.25);
self.var_F0B = 1;
animscripts/shared::donotetracks("gun_up",::func_0F0C);
self.var_F0A = undefined;
self clearanim(%sm_reload,0.1);
self setanim(%sm_aiming,1,0.1);
if(isdefined(self.var_F0B))
{
self.var_F0B = undefined;
animscripts/shared::donotetracks("gun_up",::func_0F0D);
self clearanim(animscripts/utility::func_D4D("gun_up"),0);
}
}
//Function Number: 20
func_0F0C(param_00)
{
if(param_00 == "start_aim")
{
return 1;
}
}
//Function Number: 21
func_0F0D(param_00)
{
if(param_00 == "end")
{
return 1;
}
}
//Function Number: 22
func_0F0E(param_00)
{
if(param_00 == "start_lean")
{
return 1;
}
}
//Function Number: 23
func_0F0F()
{
self endon("killanimscript");
self endon("stop tracking");
var_00 = 0.05;
var_01 = 8;
var_02 = 0;
var_03 = 0;
var_04 = 1;
for(;;)
{
animscripts/track::func_CC9();
var_05 = (self.origin[0],self.origin[1],self geteye()[2]);
var_06 = self.var_CB1;
if(isdefined(self.var_CAB))
{
var_06 = self.var_CAB getshootatpos();
}
if(!isdefined(var_06))
{
var_03 = 0;
var_07 = self getanglestolikelyenemypath();
if(isdefined(var_07))
{
var_03 = angleclamp180(self.angles[1] - var_07[1]);
}
}
else
{
var_08 = var_06 - var_05;
var_09 = vectortoangles(var_08);
var_03 = self.angles[1] - var_09[1];
var_03 = angleclamp180(var_03);
}
if(var_03 > self.var_716 || var_03 < self.var_717)
{
var_03 = 0;
}
if(var_04)
{
var_04 = 0;
}
else
{
var_0A = var_03 - var_02;
if(abs(var_0A) > var_01)
{
var_03 = var_02 + var_01 * common_scripts\utility::sign(var_0A);
}
}
var_02 = var_03;
var_0B = min(max(0 - var_03,0),90) / 90 * self.a.var_CC3;
var_0C = min(max(var_03,0),90) / 90 * self.a.var_CC3;
self setanimlimited(%sm_aim_4,var_0B,var_00);
self setanimlimited(%sm_aim_6,var_0C,var_00);
wait 0.05;
}
}
//Function Number: 24
func_0F10()
{
self endon("killanimscript");
self endon("stop tracking");
var_00 = 0.05;
var_01 = 5;
var_02 = 20;
var_03 = 15;
var_04 = 40;
var_05 = 30;
var_06 = 0;
var_07 = 0;
var_08 = 1;
for(;;)
{
animscripts/track::func_CC9();
var_09 = (self.origin[0],self.origin[1],self geteye()[2]);
var_0A = self.var_CB1;
if(isdefined(self.var_CAB))
{
var_0A = self.var_CAB getshootatpos();
}
if(!isdefined(var_0A))
{
var_07 = 0;
var_0B = self getanglestolikelyenemypath();
if(isdefined(var_0B))
{
var_07 = angleclamp180(self.angles[1] - var_0B[1]);
}
}
else
{
var_0C = var_0A - var_09;
var_0D = vectortoangles(var_0C);
var_07 = self.angles[1] - var_0D[1];
var_07 = angleclamp180(var_07);
}
if(isdefined(self.var_F0A) || var_07 > 0 && var_07 - self.var_716 * self.var_EF5 > 0 || var_07 < 0 && var_07 - self.var_717 * self.var_EF5 < 0)
{
var_07 = 0;
}
if(var_08)
{
var_08 = 0;
}
else
{
if(var_06 < -180 + var_04 && var_07 > 180 - var_05)
{
var_07 = -179;
}
if(var_06 > 180 - var_04 && var_07 < -180 + var_05)
{
var_07 = 179;
}
var_0E = var_07 - var_06;
var_0F = var_02 - var_01 * abs(var_0E) / 180 + var_01;
if(isdefined(self.var_F0A))
{
var_0F = var_03;
if(abs(var_06) < 45)
{
self notify("start_blending_reload");
}
}
if(abs(var_0E) > var_0F)
{
var_07 = var_06 + var_0F * common_scripts\utility::sign(var_0E);
}
}
var_06 = var_07;
var_10 = max(-90 - var_07,0) / 90 * self.a.var_CC3;
var_11 = min(max(0 - var_07,0),90) / 90 * self.a.var_CC3;
var_12 = max(90 - abs(var_07),0) / 90 * self.a.var_CC3;
var_13 = min(max(var_07,0),90) / 90 * self.a.var_CC3;
var_14 = max(-90 + var_07,0) / 90 * self.a.var_CC3;
self setanimlimited(%sm_aim_1,var_10,var_00);
self setanimlimited(%sm_aim_4_delta,var_11,var_00);
self setanimlimited(%sm_aim_5_delta,var_12,var_00);
self setanimlimited(%sm_aim_6_delta,var_13,var_00);
self setanimlimited(%sm_aim_3,var_14,var_00);
wait 0.05;
}
}
//Function Number: 25
func_0F11(param_00,param_01,param_02)
{
var_03 = undefined;
var_04 = undefined;
var_05 = 0;
for(var_06 = 0;var_06 < param_00.size;var_06++)
{
var_07 = animscripts/utility::func_D61(param_02 - param_01[var_06]);
if(!isdefined(var_03) || var_07 < var_05)
{
var_04 = var_03;
var_03 = param_00[var_06];
var_05 = var_07;
continue;
}
if(!isdefined(var_04))
{
var_04 = param_00[var_06];
}
}
var_08 = var_03;
if(isdefined(level.var_F12) && var_08 == level.var_F12 && gettime() - level.var_F13 < 500)
{
var_08 = var_04;
}
anim.var_F12 = var_08;
anim.var_F13 = gettime();
return var_08;
}
//Function Number: 26
func_0F14()
{
var_00 = self.ridingvehicle;
var_01 = var_00.var_F15;
var_01 = (var_01[0],var_01[1],randomfloatrange(200,400)) * 0.75;
if(lengthsquared(var_01) > 1000000)
{
var_01 = vectornormalize(var_01) * 1000;
}
var_02 = spawn("script_origin",self.origin);
var_02 moveslide((0,0,40),15,var_01);
self linkto(var_02);
var_02 thread func_0F18();
}
//Function Number: 27
func_0F16()
{
var_00 = [];
var_01 = [];
var_02 = func_0F11(var_7B,var_01,self.var_723);
animscripts/death::func_D56(var_02);
return 1;
}
//Function Number: 28
func_0F17()
{
var_00 = self.ridingvehicle;
if(!isdefined(var_00))
{
return func_0F16();
}
var_01 = var_00.var_F15;
func_0F14();
var_02 = vectortoangles(var_01);
var_03 = angleclamp180(var_02[1] - self.angles[1]);
var_04 = [];
var_05 = [];
var_06 = func_0F11(var_7B,var_05,var_04);
animscripts/death::func_D56(var_06);
return 1;
}
//Function Number: 29
func_0F18()
{
var_00 = self.origin;
for(var_01 = 0;var_01 < 60;var_01++)
{
wait 0.05;
var_00 = self.origin;
}
wait 3;
if(isdefined(self))
{
self delete();
}
}
//Function Number: 30
func_0F19(param_00)
{
self.a.array["idle"] = level.scr_anim["snowmobile"][param_00]["idle"];
self.a.array["drive"] = level.scr_anim["snowmobile"][param_00]["drive"];
self.a.array["fire"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["single"] = animscripts/utility::array(level.scr_anim["snowmobile"][param_00]["single"]);
self.a.array["burst2"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["burst3"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["burst4"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["burst5"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["burst6"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["semi2"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["semi3"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["semi4"] = level.scr_anim["snowmobile"][param_00]["fire"];
self.a.array["semi5"] = level.scr_anim["snowmobile"][param_00]["fire"];
}
//Function Number: 31
func_0F1A(param_00)
{
self.a.array = [];
func_0F19("driver");
self.a.array["left2right"] = level.scr_anim["snowmobile"]["driver"]["left2right"];
self.a.array["right2left"] = level.scr_anim["snowmobile"]["driver"]["right2left"];
self.a.array["straight_level_left"] = level.scr_anim["snowmobile"]["driver"]["straight_level"]["left"];
self.a.array["straight_level_center"] = level.scr_anim["snowmobile"]["driver"]["straight_level"]["center"];
self.a.array["straight_level_right"] = level.scr_anim["snowmobile"]["driver"]["straight_level"]["right"];
self.a.array["add_aim_left_left"] = level.scr_anim["snowmobile"]["driver"]["add_aim_left"]["left"];
self.a.array["add_aim_left_center"] = level.scr_anim["snowmobile"]["driver"]["add_aim_left"]["center"];
self.a.array["add_aim_left_right"] = level.scr_anim["snowmobile"]["driver"]["add_aim_left"]["right"];
self.a.array["add_aim_right_left"] = level.scr_anim["snowmobile"]["driver"]["add_aim_right"]["left"];
self.a.array["add_aim_right_center"] = level.scr_anim["snowmobile"]["driver"]["add_aim_right"]["center"];
self.a.array["add_aim_right_right"] = level.scr_anim["snowmobile"]["driver"]["add_aim_right"]["right"];
if(param_00)
{
self.a.array["event_jump"] = level.scr_anim["snowmobile"]["driver"]["shoot_jump"];
self.a.array["event_bump"] = level.scr_anim["snowmobile"]["driver"]["shoot_bump"];
self.a.array["event_bump_big"] = level.scr_anim["snowmobile"]["driver"]["shoot_bump_big"];
self.a.array["event_sway"] = [];
self.a.array["event_sway"]["left"] = level.scr_anim["snowmobile"]["driver"]["shoot_sway_left"];
self.a.array["event_sway"]["right"] = level.scr_anim["snowmobile"]["driver"]["shoot_sway_right"];
self.a.array["event_restore"] = %sm_aiming;
return;
}
self.a.array["event_jump"] = level.scr_anim["snowmobile"]["driver"]["drive_jump"];
self.a.array["event_bump"] = level.scr_anim["snowmobile"]["driver"]["drive_bump"];
self.a.array["event_bump_big"] = level.scr_anim["snowmobile"]["driver"]["drive_bump_big"];
self.a.array["event_sway"] = [];
self.a.array["event_sway"]["left"] = level.scr_anim["snowmobile"]["driver"]["drive_sway_left"];
self.a.array["event_sway"]["right"] = level.scr_anim["snowmobile"]["driver"]["drive_sway_right"];
self.a.array["event_restore"] = %sm_turn;
}
//Function Number: 32
func_0F1B(param_00)
{
self.a.array = [];
func_0F19("passenger");
self.a.array["hide"] = level.scr_anim["snowmobile"]["passenger"]["hide"];
self.a.array["lean_left"] = level.scr_anim["snowmobile"]["passenger"]["add_lean"]["left"];
self.a.array["lean_right"] = level.scr_anim["snowmobile"]["passenger"]["add_lean"]["right"];
self.a.array["reload"] = level.scr_anim["snowmobile"]["passenger"]["reload"];
self.a.array["gun_up"] = level.scr_anim["snowmobile"]["passenger"]["gun_up"];
self.a.array["gun_down"] = level.scr_anim["snowmobile"]["passenger"]["gun_down"];
self.a.array["aim_left_left"] = level.scr_anim["snowmobile"]["passenger"]["aim_left"]["left"];
self.a.array["aim_left_center"] = level.scr_anim["snowmobile"]["passenger"]["aim_left"]["center"];
self.a.array["aim_left_right"] = level.scr_anim["snowmobile"]["passenger"]["aim_left"]["right"];
self.a.array["aim_right_left"] = level.scr_anim["snowmobile"]["passenger"]["aim_right"]["left"];
self.a.array["aim_right_center"] = level.scr_anim["snowmobile"]["passenger"]["aim_right"]["center"];
self.a.array["aim_right_right"] = level.scr_anim["snowmobile"]["passenger"]["aim_right"]["right"];
self.a.array["add_aim_backleft_left"] = level.scr_anim["snowmobile"]["passenger"]["add_aim_backleft"]["left"];
self.a.array["add_aim_backleft_center"] = level.scr_anim["snowmobile"]["passenger"]["add_aim_backleft"]["center"];
self.a.array["add_aim_backleft_right"] = level.scr_anim["snowmobile"]["passenger"]["add_aim_backleft"]["right"];
self.a.array["add_aim_backright_left"] = level.scr_anim["snowmobile"]["passenger"]["add_aim_backright"]["left"];
self.a.array["add_aim_backright_center"] = level.scr_anim["snowmobile"]["passenger"]["add_aim_backright"]["center"];
self.a.array["add_aim_backright_right"] = level.scr_anim["snowmobile"]["passenger"]["add_aim_backright"]["right"];
self.a.array["straight_level_left"] = level.scr_anim["snowmobile"]["passenger"]["straight_level"]["left"];
self.a.array["straight_level_center"] = level.scr_anim["snowmobile"]["passenger"]["straight_level"]["center"];
self.a.array["straight_level_right"] = level.scr_anim["snowmobile"]["passenger"]["straight_level"]["right"];
if(param_00)
{
self.a.array["event_jump"] = level.scr_anim["snowmobile"]["passenger"]["drive_jump"];
self.a.array["event_bump"] = level.scr_anim["snowmobile"]["passenger"]["drive_bump"];
self.a.array["event_bump_big"] = level.scr_anim["snowmobile"]["passenger"]["drive_bump_big"];
self.a.array["event_sway"] = [];
self.a.array["event_sway"]["left"] = level.scr_anim["snowmobile"]["passenger"]["drive_sway_left"];
self.a.array["event_sway"]["right"] = level.scr_anim["snowmobile"]["passenger"]["drive_sway_right"];
self.a.array["event_restore"] = %sm_aiming;
return;
}
self.a.array["event_jump"] = level.scr_anim["snowmobile"]["passenger"]["hide_jump"];
self.a.array["event_bump"] = level.scr_anim["snowmobile"]["passenger"]["hide_bump"];
self.a.array["event_bump_big"] = level.scr_anim["snowmobile"]["passenger"]["hide_bump_big"];
self.a.array["event_sway"] = [];
self.a.array["event_sway"]["left"] = level.scr_anim["snowmobile"]["passenger"]["hide_sway_left"];
self.a.array["event_sway"]["right"] = level.scr_anim["snowmobile"]["passenger"]["hide_sway_right"];
self.a.array["event_restore"] = %sm_turn;
}

View File

@ -0,0 +1,823 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\squadmanager.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 32
* Decompile Time: 556 ms
* Timestamp: 10/27/2023 2:18:49 AM
*******************************************************************/
//Function Number: 1
func_0A5E()
{
if(isdefined(level.var_A5F) && level.var_A5F)
{
return;
}
anim.var_A60 = [];
anim.var_A61 = [];
anim.var_A62 = [];
anim.var_A63 = [];
anim.var_A64 = 0;
anim.var_A5F = 1;
}
//Function Number: 2
func_0A65(param_00,param_01)
{
level.var_A62[param_00] = spawnstruct();
var_02 = level.var_A62[param_00];
var_02.var_A66 = param_00;
var_02.team = func_0A7D(param_01);
var_02.var_A67 = 0;
var_02.origin = undefined;
var_02.forward = undefined;
var_02.enemy = undefined;
var_02.var_A69 = 0;
var_02.var_A6A = 0;
var_02.members = [];
var_02.var_A6C = [];
var_02.var_A6D = 0;
var_02.var_A6E = [];
var_02.var_A6F = [];
var_02.var_A70 = [];
var_02.var_A71 = [];
var_02.var_A72 = [];
var_02.var_A73 = [];
var_02.var_A74 = [];
var_02.var_A75 = level.var_A63.size;
var_02 func_0A9F("combat",0.75);
var_02 func_0A9F("cover",0.75);
var_02 func_0A9F("move",0.75);
var_02 func_0A9F("stop",0.75);
var_02 func_0A9F("death",0.75);
var_02 func_0A9F("suppressed",0.75);
var_02 func_0A9F("attacking",0.5);
level.var_A63[level.var_A63.size] = var_02;
var_02 func_0A94();
level notify("squad created " + param_00);
anim notify("squad created " + param_00);
for(var_03 = 0;var_03 < level.var_A60.size;var_03++)
{
var_04 = level.var_A60[var_03];
var_02 thread [[ var_04 ]]();
}
for(var_03 = 0;var_03 < level.var_A63.size;var_03++)
{
level.var_A63[var_03] func_0A94();
}
var_02 thread func_0A89();
var_02 thread func_0A8A();
var_02 thread func_0A88();
var_02 thread func_0A9A();
return var_02;
}
//Function Number: 3
func_0A76(param_00)
{
if(param_00 == "axis" || param_00 == "team3" || param_00 == "allies")
{
return;
}
var_01 = level.var_A62[param_00].var_A75;
var_02 = level.var_A62[param_00];
var_02 notify("squad_deleting");
while(var_02.members.size)
{
var_02.members[0] func_0A7E(var_02.members[0].team);
}
level.var_A63[var_01] = level.var_A63[level.var_A63.size - 1];
level.var_A63[var_01].var_A75 = var_01;
level.var_A63[level.var_A63.size - 1] = undefined;
level.var_A62[param_00] = undefined;
level notify("squad deleted " + param_00);
anim notify("squad deleted " + param_00);
for(var_03 = 0;var_03 < level.var_A63.size;var_03++)
{
level.var_A63[var_03] func_0A94();
}
}
//Function Number: 4
func_0A77()
{
var_00 = "auto" + level.var_A64;
level.var_A64++;
return var_00;
}
//Function Number: 5
func_0A78(param_00)
{
if(!isdefined(param_00))
{
if(isdefined(self.var_A79))
{
param_00 = self.var_A79;
}
else
{
param_00 = self.team;
}
}
if(!isdefined(level.var_A62[param_00]))
{
anim func_0A65(param_00,self);
}
var_01 = level.var_A62[param_00];
self.var_A7A = var_01;
}
//Function Number: 6
func_0A7B()
{
self endon("death");
wait 10;
if(!isdefined(self.var_A79))
{
var_00 = self.team + self.script_flanker;
}
else
{
var_00 = self.var_A79 + self.script_flanker;
}
func_0A7E(var_00);
}
//Function Number: 7
func_0A7D(param_00)
{
var_01 = "allies";
if(param_00.team == "axis" || param_00.team == "neutral" || param_00.team == "team3")
{
var_01 = param_00.team;
}
return var_01;
}
//Function Number: 8
func_0A7E(param_00)
{
if(!isdefined(param_00))
{
if(isdefined(self.script_flanker))
{
thread func_0A7B();
}
if(isdefined(self.var_A79))
{
param_00 = self.var_A79;
}
else
{
param_00 = self.team;
}
}
if(!isdefined(level.var_A62[param_00]))
{
anim func_0A65(param_00,self);
}
var_01 = level.var_A62[param_00];
if(isdefined(self.var_A7A))
{
if(self.var_A7A == var_01)
{
return;
}
else
{
func_0A84();
}
}
self.var_A7F = 0;
self.var_A80 = 0;
self.var_A7A = var_01;
self.var_A81 = var_01.members.size;
var_01.members[self.var_A81] = self;
var_01.var_A6A = var_01.members.size;
if(isdefined(level.loadoutcomplete))
{
if(self.team == "allies" && animscripts/battlechatter::func_A83())
{
func_0A86();
}
}
for(var_02 = 0;var_02 < self.var_A7A.var_A6F.size;var_02++)
{
var_03 = self.var_A7A.var_A6F[var_02];
self thread [[ var_03 ]](self.var_A7A.var_A66);
}
thread func_0A8D();
thread func_0A8B();
}
//Function Number: 9
func_0A84()
{
var_00 = self.var_A7A;
var_01 = -1;
if(isdefined(self))
{
var_01 = self.var_A81;
}
else
{
for(var_02 = 0;var_02 < var_00.members.size;var_02++)
{
if(var_00.members[var_02] == self)
{
var_01 = var_02;
}
}
}
if(var_01 != var_00.members.size - 1)
{
var_03 = var_00.members[var_00.members.size - 1];
var_00.members[var_01] = var_03;
if(isdefined(var_03))
{
var_03.var_A81 = var_01;
}
}
var_00.members[var_00.members.size - 1] = undefined;
var_00.var_A6A = var_00.members.size;
if(isdefined(self.var_A85))
{
func_0A87();
}
for(var_02 = 0;var_02 < self.var_A7A.var_A71.size;var_02++)
{
var_04 = self.var_A7A.var_A71[var_02];
self thread [[ var_04 ]](var_00.var_A66);
}
if(var_00.var_A6A == 0)
{
func_0A76(var_00.var_A66);
}
if(isdefined(self))
{
self.var_A7A = undefined;
self.var_A81 = undefined;
}
self notify("removed from squad");
}
//Function Number: 10
func_0A86()
{
var_00 = self.var_A7A;
if(isdefined(self.var_A85))
{
return;
}
self.var_A85 = var_00.var_A6C.size;
var_00.var_A6C[self.var_A85] = self;
var_00.var_A6D = var_00.var_A6C.size;
}
//Function Number: 11
func_0A87()
{
var_00 = self.var_A7A;
var_01 = -1;
if(isdefined(self))
{
var_01 = self.var_A85;
}
else
{
for(var_02 = 0;var_02 < var_00.var_A6C.size;var_02++)
{
if(var_00.var_A6C[var_02] == self)
{
var_01 = var_02;
}
}
}
if(var_01 != var_00.var_A6C.size - 1)
{
var_03 = var_00.var_A6C[var_00.var_A6C.size - 1];
var_00.var_A6C[var_01] = var_03;
if(isdefined(var_03))
{
var_03.var_A85 = var_01;
}
}
var_00.var_A6C[var_00.var_A6C.size - 1] = undefined;
var_00.var_A6D = var_00.var_A6C.size;
if(isdefined(self))
{
self.var_A85 = undefined;
}
}
//Function Number: 12
func_0A88()
{
if(!isdefined(level.loadoutcomplete))
{
anim waittill("loadout complete");
}
for(var_00 = 0;var_00 < self.members.size;var_00++)
{
if(self.members[var_00] animscripts/battlechatter::func_A83())
{
self.members[var_00] func_0A86();
}
}
}
//Function Number: 13
func_0A89()
{
for(;;)
{
anim waittill("squadupdate",var_00);
switch(var_00)
{
case "squadlist":
func_0A94();
break;
case "combat":
func_0A90();
break;
case "origin":
updateorigin();
break;
case "forward":
func_0A8E();
break;
}
}
}
//Function Number: 14
func_0A8A()
{
anim endon("squad deleted " + self.var_A66);
for(;;)
{
func_0A93();
wait 0.1;
}
}
//Function Number: 15
func_0A8B()
{
self endon("removed from squad");
self waittill("death",var_00);
if(isdefined(self))
{
self.attacker = var_00;
}
func_0A84();
}
//Function Number: 16
func_0A8D()
{
self endon("removed from squad");
for(;;)
{
self waittill("enemy");
if(!isdefined(self.enemy))
{
self.var_A7A notify("squadupdate","combat");
}
else
{
self.var_A7A.var_A69 = 1;
}
wait 0.05;
}
}
//Function Number: 17
func_0A8E()
{
if(isdefined(self.enemy))
{
self.forward = vectornormalize(self.enemy.origin - self.origin);
return;
}
var_00 = (0,0,0);
var_01 = 0;
for(var_02 = 0;var_02 < self.members.size;var_02++)
{
if(!isalive(self.members[var_02]))
{
continue;
}
var_00 = var_00 + anglestoforward(self.members[var_02].angles);
var_01++;
}
if(var_01)
{
self.forward = (var_00[0] / var_01,var_00[1] / var_01,var_00[2] / var_01);
return;
}
self.forward = var_00;
}
//Function Number: 18
updateorigin()
{
var_00 = (0,0,0);
var_01 = 0;
for(var_02 = 0;var_02 < self.members.size;var_02++)
{
if(!isalive(self.members[var_02]))
{
continue;
}
var_00 = var_00 + self.members[var_02].origin;
var_01++;
}
if(var_01)
{
self.origin = (var_00[0] / var_01,var_00[1] / var_01,var_00[2] / var_01);
return;
}
self.origin = var_00;
}
//Function Number: 19
func_0A90()
{
self.var_A69 = 0;
for(var_00 = 0;var_00 < level.var_A63.size;var_00++)
{
self.var_A6E[level.var_A63[var_00].var_A66].var_A91 = 0;
}
for(var_00 = 0;var_00 < self.members.size;var_00++)
{
if(isdefined(self.members[var_00].enemy) && isdefined(self.members[var_00].enemy.var_A7A) && self.members[var_00].var_A80 > 0)
{
self.var_A6E[self.members[var_00].enemy.var_A7A.var_A66].var_A91 = 1;
}
}
}
//Function Number: 20
func_0A92()
{
var_00 = undefined;
for(var_01 = 0;var_01 < self.members.size;var_01++)
{
if(isdefined(self.members[var_01].enemy) && isdefined(self.members[var_01].enemy.var_A7A))
{
if(!isdefined(var_00))
{
var_00 = self.members[var_01].enemy.var_A7A;
continue;
}
if(self.members[var_01].enemy.var_A7A.var_A6A > var_00.var_A6A)
{
var_00 = self.members[var_01].enemy.var_A7A;
}
}
}
self.enemy = var_00;
}
//Function Number: 21
func_0A93()
{
var_00 = (0,0,0);
var_01 = 0;
var_02 = undefined;
var_03 = 0;
func_0A90();
for(var_04 = 0;var_04 < self.members.size;var_04++)
{
if(!isalive(self.members[var_04]))
{
continue;
}
var_00 = var_00 + self.members[var_04].origin;
var_01++;
if(isdefined(self.members[var_04].enemy) && isdefined(self.members[var_04].enemy.var_A7A))
{
if(!isdefined(var_02))
{
var_02 = self.members[var_04].enemy.var_A7A;
continue;
}
if(self.members[var_04].enemy.var_A7A.var_A6A > var_02.var_A6A)
{
var_02 = self.members[var_04].enemy.var_A7A;
}
}
}
if(var_01)
{
self.origin = (var_00[0] / var_01,var_00[1] / var_01,var_00[2] / var_01);
}
else
{
self.origin = var_00;
}
self.var_A69 = var_03;
self.enemy = var_02;
func_0A8E();
}
//Function Number: 22
func_0A94()
{
for(var_00 = 0;var_00 < level.var_A63.size;var_00++)
{
if(!isdefined(self.var_A6E[level.var_A63[var_00].var_A66]))
{
self.var_A6E[level.var_A63[var_00].var_A66] = spawnstruct();
self.var_A6E[level.var_A63[var_00].var_A66].var_A91 = 0;
}
for(var_01 = 0;var_01 < self.var_A73.size;var_01++)
{
var_02 = self.var_A73[var_01];
self thread [[ var_02 ]](level.var_A63[var_00].var_A66);
}
}
}
//Function Number: 23
func_0A95(param_00,param_01,param_02,param_03)
{
self endon("death");
if(!isdefined(param_02))
{
param_02 = (0,0,0);
}
if(!isdefined(param_03))
{
param_03 = (1,0,0);
}
for(var_04 = 0;var_04 < param_01 * 2;var_04++)
{
if(!isalive(self))
{
return;
}
var_05 = self getshootatpos() + (0,0,10) + param_02;
wait 0.05;
}
}
//Function Number: 24
func_0A96(param_00)
{
switch(param_00)
{
case "move":
case "combat":
case "death":
case "stop":
self.a.var_A98 = param_00;
break;
case "grenadecower":
case "pain":
break;
case "stalingrad_cover_crouch":
case "concealment_stand":
case "concealment_prone":
case "concealment_crouch":
case "cover_wide_right":
case "cover_wide_left":
case "cover_prone":
case "cover_stand":
case "cover_left":
case "cover_crouch":
case "cover_right":
self.a.var_A98 = "cover";
break;
case "l33t truckride combat":
case "aim":
self.a.var_A98 = "combat";
break;
}
}
//Function Number: 25
func_0A99()
{
func_0AA4("combat");
func_0AA4("cover");
func_0AA4("move");
func_0AA4("stop");
func_0AA4("death");
func_0AA4("suppressed");
func_0AA4("attacking");
for(var_00 = 0;var_00 < self.members.size;var_00++)
{
if(!isalive(self.members[var_00]))
{
continue;
}
func_0AA5(self.members[var_00]);
func_0AA6(self.members[var_00],"suppressed");
func_0AA6(self.members[var_00],"combat");
func_0AA6(self.members[var_00],"attacking");
func_0AA6(self.members[var_00],"cover");
}
}
//Function Number: 26
func_0A9A()
{
anim endon("squad deleted " + self.var_A66);
var_00 = 0.05;
for(;;)
{
for(var_01 = 0;var_01 < self.members.size;var_01++)
{
if(!isalive(self.members[var_01]))
{
continue;
}
self.members[var_01] func_0A9B(var_00);
self.members[var_01] func_0A9C(var_00);
}
wait var_00;
}
}
//Function Number: 27
func_0A9B(param_00)
{
if(isdefined(self.lastenemysightpos))
{
if(self.var_A80 < 0)
{
self.var_A80 = param_00;
}
else
{
self.var_A80 = self.var_A80 + param_00;
}
self.var_A7F = gettime();
return;
}
else if(self issuppressed())
{
self.var_A80 = self.var_A80 + param_00;
return;
}
if(self.var_A80 > 0)
{
self.var_A80 = 0 - param_00;
return;
}
self.var_A80 = self.var_A80 - param_00;
}
//Function Number: 28
func_0A9C(param_00)
{
if(self.var_A9D)
{
if(self.var_A9E < 0)
{
self.var_A9E = param_00;
}
else
{
self.var_A9E = self.var_A9E + param_00;
}
return;
}
if(self.var_A9E > 0)
{
self.var_A9E = 0 - param_00;
return;
}
self.var_A9E = self.var_A9E - param_00;
}
//Function Number: 29
func_0A9F(param_00,param_01)
{
self.var_AA0[param_00] = spawnstruct();
self.var_AA0[param_00].var_AA1 = param_01;
self.var_AA0[param_00].var_AA2 = 0;
self.var_AA0[param_00].var_AA3 = 0;
}
//Function Number: 30
func_0AA4(param_00)
{
self.var_AA0[param_00].var_AA2 = 0;
self.var_AA0[param_00].var_AA3 = 0;
}
//Function Number: 31
func_0AA5(param_00)
{
self.var_AA0[param_00.a.var_A98].var_AA3++;
if(self.var_AA0[param_00.a.var_A98].var_AA3 > self.var_AA0[param_00.a.var_A98].var_AA1 * self.members.size)
{
self.var_AA0[param_00.a.var_A98].var_AA2 = 1;
}
}
//Function Number: 32
func_0AA6(param_00,param_01)
{
switch(param_01)
{
case "suppressed":
if(param_00.var_A9E > 1)
{
self.var_AA0[param_01].var_AA3++;
}
break;
case "combat":
if(param_00.var_A80 > 0)
{
self.var_AA0[param_01].var_AA3++;
}
break;
case "attacking":
if(gettime() < param_00.a.lastshoottime + 2000)
{
self.var_AA0[param_01].var_AA3++;
}
break;
case "cover":
if(!param_00 animscripts/battlechatter::func_AA8())
{
self.var_AA0[param_01].var_AA3++;
}
break;
}
if(self.var_AA0[param_01].var_AA3 > self.var_AA0[param_01].var_AA1 * self.members.size)
{
self.var_AA0[param_01].var_AA2 = 1;
}
}

View File

@ -0,0 +1,258 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\stop.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 9
* Decompile Time: 165 ms
* Timestamp: 10/27/2023 2:18:50 AM
*******************************************************************/
//Function Number: 1
main()
{
if(isdefined(self.var_10EF))
{
return;
}
if(isdefined(self.onsnowmobile))
{
animscripts/snowmobile::main();
return;
}
if(isdefined(self.custom_animscript_table))
{
if(isdefined(self.custom_animscript_table["stop"]))
{
[[ self.custom_animscript_table["stop"] ]]();
return;
}
}
self notify("stopScript");
self endon("killanimscript");
[[ self.var_8BE["stop_immediate"] ]]();
thread func_1104();
animscripts/utility::func_D15("stop");
func_10F5();
animscripts/utility::func_10F0();
thread func_10F3();
thread animscripts/reactions::func_F20();
var_00 = isdefined(self.var_C89);
if(!var_00)
{
if(self.a.weaponpos["right"] == "none" && self.a.weaponpos["left"] == "none")
{
var_00 = 1;
}
else if(angleclamp180(self getmuzzleangle()[0]) > 20)
{
var_00 = 1;
}
}
for(;;)
{
var_01 = func_10F8();
if(var_01 == "prone")
{
var_00 = 1;
func_1102();
continue;
}
if(self.a.pose != var_01)
{
self clearanim(%root,0.3);
var_00 = 0;
}
animscripts/setposemovement::func_10F1(var_01,"stop");
if(!var_00)
{
func_10F9(var_01,self.a.var_10F2);
var_00 = 1;
continue;
}
func_10FB(var_01,self.a.var_10F2);
}
}
//Function Number: 2
func_10F3()
{
self endon("death");
self waittill("killanimscript");
self.var_10F4 = gettime();
}
//Function Number: 3
func_10F5()
{
self endon("stop_specialidle");
if(isdefined(self.specialidleanim))
{
var_00 = self.specialidleanim;
self.specialidleanim = undefined;
self notify("clearing_specialIdleAnim");
self animmode("gravity");
self orientmode("face current");
self clearanim(%root,0.2);
for(;;)
{
self setflaggedanimrestart("special_idle",var_00[randomint(var_00.size)],1,0.2,self.var_10F7);
self waittillmatch("end","special_idle");
}
}
}
//Function Number: 4
func_10F8()
{
var_00 = animscripts/utility::func_BEE();
if(isdefined(var_00))
{
var_01 = var_00.angles[1];
var_02 = var_00.type;
}
else
{
var_01 = self.var_72B;
var_02 = "node was undefined";
}
animscripts/face::func_C45(level.var_C3D);
var_03 = animscripts/utility::func_10AF();
if(var_02 == "Cover Stand" || var_02 == "Conceal Stand")
{
var_03 = animscripts/utility::func_10AF("stand");
}
else if(var_02 == "Cover Crouch" || var_02 == "Conceal Crouch")
{
var_03 = animscripts/utility::func_10AF("crouch");
}
else if(var_02 == "Cover Prone" || var_02 == "Conceal Prone")
{
var_03 = animscripts/utility::func_10AF("prone");
}
return var_03;
}
//Function Number: 5
func_10F9(param_00,param_01)
{
if(animscripts/utility::func_C98() && self.a.pose == "stand")
{
param_00 = "stand_cqb";
}
if(isdefined(level.var_10FA[param_00]))
{
var_02 = level.var_10FA[param_00]["in"];
self setflaggedanimknoballrestart("idle_transition",var_02,%body,1,0.2,self.var_10F7);
animscripts/shared::donotetracks("idle_transition");
}
}
//Function Number: 6
func_10FB(param_00,param_01)
{
if(animscripts/utility::func_C98() && self.a.pose == "stand")
{
param_00 = "stand_cqb";
}
var_02 = undefined;
if(isdefined(self.var_C89) && isdefined(self.var_C89[param_00]))
{
var_03 = self.var_C89[param_00];
var_04 = param_00 + "_add";
if(isdefined(self.var_C89[var_04]))
{
var_02 = self.var_C89[var_04];
}
}
else if(isdefined(level.var_10FC) && param_01 == "stand" || param_01 == "stand_cqb" && isdefined(self.busereadyidle) && self.busereadyidle == 1)
{
var_03 = animscripts/utility::func_10FF(level.var_10FC["stand"][0],level.var_10FE["stand"][0]);
}
else
{
var_02 = var_02 % level.var_1100[param_01].size;
var_03 = animscripts/utility::func_10FF(level.var_1100[param_01][var_02],level.var_1101[param_01][var_02]);
}
var_05 = 0.2;
if(gettime() == self.a.var_1019)
{
var_05 = 0.5;
}
if(isdefined(var_02))
{
self setanimknoball(var_03,%body,1,var_05,1);
self setanim(%add_idle);
self setflaggedanimknoballrestart("idle",var_02,%add_idle,1,var_05,self.var_10F7);
}
else
{
self setflaggedanimknoballrestart("idle",var_03,%body,1,var_05,self.var_10F7);
}
animscripts/shared::donotetracks("idle");
}
//Function Number: 7
func_1102()
{
if(self.a.pose != "prone")
{
var_00["stand_2_prone"] = %stand_2_prone;
var_01 = var_7B[self.a.pose + "_2_prone"];
self setflaggedanimknoballrestart("trans",var_01,%body,1,0.2,1);
animscripts/shared::donotetracks("trans");
self.a.movement = "stop";
self setproneanimnodes(-45,45,%prone_legs_down,%exposed_modern,%prone_legs_up);
return;
}
thread func_1103();
if(randomint(10) < 3)
{
var_02 = [];
var_03 = var_02[randomint(var_02.size)];
self setflaggedanimknoball("prone_idle",var_03,%exposed_modern,1,0.2);
}
else
{
self setanimknoball(%prone_aim_5,%exposed_modern,1,0.2);
self setflaggedanimknob("prone_idle",%prone_idle,1,0.2);
}
self waittillmatch(%crouch_2_prone,var_7B["crouch_2_prone"],%prone_twitch_ammocheck,var_7B[0],%prone_twitch_look,var_7B[1],%prone_twitch_scan,var_7B[2],%prone_twitch_lookfast,var_7B[3],%prone_twitch_lookup,var_7B[4],"end","prone_idle");
self notify("kill UpdateProneThread");
}
//Function Number: 8
func_1103()
{
self endon("killanimscript");
self endon("kill UpdateProneThread");
for(;;)
{
animscripts/cover_prone::func_10E2(0.1);
wait 0.1;
}
}
//Function Number: 9
func_1104()
{
self endon("killanimscript");
wait 0.05;
[[ self.var_8BE["stop"] ]]();
}

View File

@ -0,0 +1,335 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\track.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 9
* Decompile Time: 177 ms
* Timestamp: 10/27/2023 2:18:51 AM
*******************************************************************/
//Function Number: 1
func_0CA9()
{
self endon("killanimscript");
self endon("stop tracking");
self endon("melee");
func_0CAA(%aim_2,%aim_4,%aim_6,%aim_8);
}
//Function Number: 2
func_0CAA(param_00,param_01,param_02,param_03)
{
var_04 = 0;
var_05 = 0;
var_06 = (0,0,0);
var_07 = 1;
var_08 = 0;
var_09 = 0;
var_0A = 10;
var_0B = (0,0,0);
if(self.type == "dog")
{
var_0C = 0;
self.var_CAB = self.enemy;
}
else
{
var_0C = 1;
var_0D = 0;
var_0E = 0;
if(isdefined(self.var_CAC))
{
var_0D = level.var_CAD;
}
if((self.script == "cover_left" || self.script == "cover_right") && isdefined(self.a.var_CAE) && self.a.var_CAE == "lean")
{
var_0E = self.var_CAF.angles[1] - self.angles[1];
}
var_0B = (var_0D,var_0E,0);
}
for(;;)
{
func_0CC9();
var_0F = animscripts/shared::func_CB0();
var_10 = self.var_CB1;
if(isdefined(self.var_CAB))
{
var_10 = self.var_CAB getshootatpos();
}
if(!isdefined(var_10) && animscripts/utility::func_CB2())
{
var_10 = func_0CB6(var_0F);
}
var_11 = isdefined(self.onsnowmobile) || isdefined(self.onatv);
var_12 = isdefined(var_10);
var_13 = (0,0,0);
if(var_12)
{
var_13 = var_10;
}
var_14 = 0;
var_15 = isdefined(self.var_CB5);
if(var_15)
{
var_14 = self.var_CB5;
}
var_06 = self getaimangle(var_0F,var_13,var_12,var_0B,var_14,var_15,var_11);
var_16 = var_06[0];
var_17 = var_06[1];
var_06 = undefined;
if(var_09 > 0)
{
var_09 = var_09 - 1;
var_0A = max(10,var_0A - 5);
}
else if(self.var_783 && self.var_783 != var_08)
{
var_09 = 2;
var_0A = 30;
}
else
{
var_0A = 10;
}
var_18 = squared(var_0A);
var_08 = self.var_783;
var_19 = self.movemode != "stop" || !var_07;
if(var_19)
{
var_1A = var_17 - var_04;
if(squared(var_1A) > var_18)
{
var_17 = var_04 + clamp(var_1A,-1 * var_0A,var_0A);
var_17 = clamp(var_17,self.var_717,self.var_716);
}
var_1B = var_16 - var_05;
if(squared(var_1B) > var_18)
{
var_16 = var_05 + clamp(var_1B,-1 * var_0A,var_0A);
var_16 = clamp(var_16,self.var_715,self.var_714);
}
}
var_07 = 0;
var_04 = var_17;
var_05 = var_16;
func_0CC2(param_00,param_01,param_02,param_03,var_16,var_17);
wait 0.05;
}
}
//Function Number: 3
func_0CB6(param_00)
{
var_01 = undefined;
var_02 = anglestoforward(self.angles);
if(isdefined(self.cqb_target))
{
var_01 = self.cqb_target getshootatpos();
if(isdefined(self.var_CB8))
{
if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.177)
{
var_01 = undefined;
}
}
else if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.643)
{
var_01 = undefined;
}
}
if(!isdefined(var_01) && isdefined(self.cqb_point_of_interest))
{
var_01 = self.cqb_point_of_interest;
if(isdefined(self.var_CBA))
{
if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.177)
{
var_01 = undefined;
}
}
else if(vectordot(vectornormalize(var_01 - param_00),var_02) < 0.643)
{
var_01 = undefined;
}
}
return var_01;
}
//Function Number: 4
func_0CBB(param_00,param_01)
{
if(animscripts/utility::func_CBC())
{
var_02 = self.enemy getshootatpos() - self.enemy.origin;
var_03 = self lastknownpos(self.enemy) + var_02;
return func_0CBE(var_03 - param_00,param_01);
}
var_04 = 0;
var_05 = 0;
if(isdefined(self.node) && isdefined(level.var_CBD[self.node.type]) && distancesquared(self.origin,self.node.origin) < 16)
{
var_05 = angleclamp180(self.angles[1] - self.node.angles[1]);
}
else
{
var_06 = self getanglestolikelyenemypath();
if(isdefined(var_06))
{
var_05 = angleclamp180(self.angles[1] - var_06[1]);
var_04 = angleclamp180(360 - var_06[0]);
}
}
return (var_04,var_05,0);
}
//Function Number: 5
func_0CBE(param_00,param_01)
{
var_02 = vectortoangles(param_00);
var_03 = 0;
var_04 = 0;
if(self.var_786 == "up")
{
var_03 = -40;
}
else if(self.var_786 == "down")
{
var_03 = 40;
var_04 = 12;
}
var_05 = 360 - var_02[0];
var_05 = angleclamp180(var_05 + param_01[0] + var_03);
if(isdefined(self.var_CB5))
{
var_06 = self.var_CB5 - var_02[1];
}
else
{
var_07 = angleclamp180(self.var_72B - self.angles[1]) * 0.5;
var_06 = var_07 + self.angles[1] - var_02[1];
}
var_06 = angleclamp180(var_06 + param_01[1] + var_04);
return (var_05,var_06,0);
}
//Function Number: 6
func_0CBF(param_00,param_01,param_02)
{
if(isdefined(self.onsnowmobile) || isdefined(self.onatv))
{
if(param_01 > self.var_716 || param_01 < self.var_717)
{
param_01 = 0;
}
if(param_00 > self.var_714 || param_00 < self.var_715)
{
param_00 = 0;
}
}
else if(param_02 && abs(param_01) > level.var_CC0 || abs(param_00) > level.var_CC1)
{
param_01 = 0;
param_00 = 0;
}
else
{
if(self.var_782)
{
param_01 = clamp(param_01,-10,10);
}
else
{
param_01 = clamp(param_01,self.var_717,self.var_716);
}
param_00 = clamp(param_00,self.var_715,self.var_714);
}
return (param_00,param_01,0);
}
//Function Number: 7
func_0CC2(param_00,param_01,param_02,param_03,param_04,param_05)
{
if(param_05 > 0)
{
var_06 = param_05 / self.var_716 * self.a.var_CC3;
self setanimlimited(param_01,0,0.1,1,1);
self setanimlimited(param_02,var_06,0.1,1,1);
}
else if(param_05 < 0)
{
var_06 = param_05 / self.var_717 * self.a.var_CC3;
self setanimlimited(param_02,0,0.1,1,1);
self setanimlimited(param_01,var_06,0.1,1,1);
}
if(param_04 > 0)
{
var_06 = param_04 / self.var_714 * self.a.var_CC3;
self setanimlimited(param_00,0,0.1,1,1);
self setanimlimited(param_03,var_06,0.1,1,1);
return;
}
if(param_04 < 0)
{
var_06 = param_04 / self.var_715 * self.a.var_CC3;
self setanimlimited(param_03,0,0.1,1,1);
self setanimlimited(param_00,var_06,0.1,1,1);
}
}
//Function Number: 8
func_0CC4(param_00,param_01)
{
if(!isdefined(param_01) || param_01 <= 0)
{
self.a.var_CC3 = param_00;
self.a.var_CC5 = param_00;
self.a.var_CC6 = param_00;
self.a.var_CC7 = 0;
}
else
{
if(!isdefined(self.a.var_CC3))
{
self.a.var_CC3 = 0;
}
self.a.var_CC5 = self.a.var_CC3;
self.a.var_CC6 = param_00;
self.a.var_CC7 = int(param_01 * 20);
}
self.a.var_CC8 = 0;
}
//Function Number: 9
func_0CC9()
{
if(self.a.var_CC8 < self.a.var_CC7)
{
self.a.var_CC8++;
var_00 = 1 * self.a.var_CC8 / self.a.var_CC7;
self.a.var_CC3 = self.a.var_CC5 * 1 - var_00 + self.a.var_CC6 * var_00;
}
}

View File

@ -0,0 +1,24 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\crawl.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 30 ms
* Timestamp: 10/27/2023 2:17:19 AM
*******************************************************************/
//Function Number: 1
main()
{
animscripts/setposemovement::func_FC1();
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("crawlanim",%prone_crawl,%body,1,0.1,1);
animscripts/shared::donotetracks("crawlanim");
self.a.movement = "run";
self.a.pose = "crouch";
}

View File

@ -0,0 +1,25 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\crouch_jump_down_40.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 33 ms
* Timestamp: 10/27/2023 2:17:19 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self.a.movement = "walk";
self traversemode("nogravity");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("stepanim",%jump_across_72,%body,1,0.1,1);
wait 0.15;
self traversemode("gravity");
animscripts/shared::donotetracks("stepanim");
}

View File

@ -0,0 +1,25 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\duck_under_56.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 41 ms
* Timestamp: 10/27/2023 2:17:20 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "stand";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("jumpanim",%gulag_pipe_traverse,%body,1,0.1,1);
self waittillmatch("finish","jumpanim");
self traversemode("gravity");
animscripts/shared::donotetracks("jumpanim");
}

View File

@ -0,0 +1,24 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\fence_climb.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 31 ms
* Timestamp: 10/27/2023 2:17:20 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("diveanim",%fenceclimb,%body,1,0.1,1);
animscripts/shared::donotetracks("diveanim");
self traversemode("gravity");
}

View File

@ -0,0 +1,31 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jump_across_100.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 35 ms
* Timestamp: 10/27/2023 2:17:21 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_176("window_40",20);
return;
}
self.desired_anim_pose = "stand";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
var_01 = [];
var_02 = var_7B[randomint(var_7B.size)];
self setflaggedanimknoballrestart("jumpanim",var_02,%body,1,0.1,1);
animscripts/shared::donotetracks("jumpanim");
}

View File

@ -0,0 +1,31 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jump_across_72.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 28 ms
* Timestamp: 10/27/2023 2:17:21 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_176("wallhop",20);
return;
}
self.desired_anim_pose = "stand";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("jumpanim",%jump_across_72,%body,1,0.1,1);
self waittillmatch("gravity on","jumpanim");
self traversemode("gravity");
animscripts/shared::donotetracks("jumpanim");
}

View File

@ -0,0 +1,31 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jump_over_high_wall.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 31 ms
* Timestamp: 10/27/2023 2:17:22 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self clearanim(%stand_and_crouch,0.1);
self setflaggedanimknoballrestart("diveanim",%jump_over_high_wall,%body,1,0.1,1);
self playsound("dive_wall");
self waittillmatch("gravity on","diveanim");
self traversemode("nogravity");
self waittillmatch("noclip","diveanim");
self traversemode("noclip");
self waittillmatch("gravity on","diveanim");
self traversemode("gravity");
animscripts/shared::donotetracks("diveanim");
}

View File

@ -0,0 +1,25 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jump_up_80.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 31 ms
* Timestamp: 10/27/2023 2:17:22 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
var_01 = var_00.traverse_height - var_00.origin[2];
thread animscripts/traverse/shared::func_3FE7(var_01 - 80);
self clearanim(%root,0.2);
self setflaggedanimrestart("jump_up_80",level.var_3AF6["jump_up_80"],1,0.2,1);
animscripts/shared::donotetracks("jump_up_80");
self.var_3B58 = 1;
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jumpdown_130.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 56 ms
* Timestamp: 10/27/2023 2:17:22 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF8(7,0.7);
return;
}
func_4009();
}
//Function Number: 2
func_4009()
{
var_00 = [];
animscripts/traverse/shared::func_3FEB(var_7B);
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jumpdown_40.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 45 ms
* Timestamp: 10/27/2023 2:17:23 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF8(3,1);
return;
}
func_4003();
}
//Function Number: 2
func_4003()
{
var_00 = [];
animscripts/traverse/shared::func_3FEB(var_7B);
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jumpdown_56.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 48 ms
* Timestamp: 10/27/2023 2:17:23 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF8(5,1);
return;
}
func_4003();
}
//Function Number: 2
func_4003()
{
var_00 = [];
animscripts/traverse/shared::func_3FEB(var_7B);
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\jumpdown_96.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 56 ms
* Timestamp: 10/27/2023 2:17:24 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF8(7,0.8);
return;
}
func_4003();
}
//Function Number: 2
func_4003()
{
var_00 = [];
animscripts/traverse/shared::func_3FEB(var_7B);
}

View File

@ -0,0 +1,40 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\ladder_down.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 29 ms
* Timestamp: 10/27/2023 2:17:24 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationendnode();
var_01 = var_00.origin;
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
var_03 = 1;
if(isdefined(self.moveplaybackrate))
{
var_03 = self.moveplaybackrate;
}
self setflaggedanimknoballrestart("climbanim",%ladder_climbon,%body,1,0.1,var_03);
animscripts/shared::donotetracks("climbanim");
var_04 = %ladder_climbdown;
self setflaggedanimknoballrestart("climbanim",var_04,%body,1,0.1,var_03);
var_05 = getmovedelta(var_04,0,1);
var_06 = var_05[2] * var_03 / getanimlength(var_04);
var_07 = var_01[2] - self.origin[2] / var_06;
animscripts/notetracks::func_D4F(var_07,"climbanim");
self traversemode("gravity");
self.a.movement = "stop";
self.a.pose = "stand";
}

View File

@ -0,0 +1,51 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\ladder_up.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 30 ms
* Timestamp: 10/27/2023 2:17:25 AM
*******************************************************************/
//Function Number: 1
main()
{
if(isdefined(self.type) && self.type == "dog")
{
return;
}
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("noclip");
var_00 = %ladder_climbup;
var_01 = %ladder_climboff;
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
var_03 = 1;
if(isdefined(self.moveplaybackrate))
{
var_03 = self.moveplaybackrate;
}
self setflaggedanimknoballrestart("climbanim",var_00,%body,1,0.1,var_03);
var_04 = getmovedelta(var_01,0,1);
var_05 = self getnegotiationendnode();
var_06 = var_05.origin - var_04 + (0,0,1);
var_07 = getmovedelta(var_00,0,1);
var_08 = var_07[2] * var_03 / getanimlength(var_00);
var_09 = var_06[2] - self.origin[2] / var_08;
if(var_09 > 0)
{
self.allowpain = 1;
animscripts/notetracks::func_D4F(var_09,"climbanim");
self setflaggedanimknoballrestart("climbanim",var_01,%body,1,0.1,var_03);
animscripts/shared::donotetracks("climbanim");
}
self traversemode("gravity");
self.a.movement = "run";
self.a.pose = "crouch";
}

View File

@ -0,0 +1,340 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\shared.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 14
* Decompile Time: 262 ms
* Timestamp: 10/27/2023 2:17:26 AM
*******************************************************************/
//Function Number: 1
func_3FE6(param_00,param_01)
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
var_03 = var_02.traverse_height - var_02.origin[2];
thread func_3FE7(var_03 - param_01);
var_04 = 0.15;
self clearanim(%body,var_04);
self setflaggedanimknoballrestart("traverse",param_00,%root,1,var_04,1);
var_05 = 0.2;
var_06 = 0.2;
thread animscripts/notetracks::func_239E("traverse","no clear");
if(!animhasnotetrack(param_00,"gravity on"))
{
var_07 = 1.23;
wait var_07 - var_05;
self traversemode("gravity");
wait var_05;
return;
}
self waittillmatch("gravity on","traverse");
self traversemode("gravity");
if(!animhasnotetrack(param_00,"blend"))
{
wait var_05;
return;
}
self waittillmatch("blend","traverse");
}
//Function Number: 2
func_3FE7(param_00)
{
self endon("killanimscript");
self notify("endTeleportThread");
self endon("endTeleportThread");
var_01 = 5;
var_02 = (0,0,param_00 / var_01);
for(var_03 = 0;var_03 < var_01;var_03++)
{
self forceteleport(self.origin + var_02);
wait 0.05;
}
}
//Function Number: 3
func_3FE8(param_00,param_01,param_02,param_03)
{
self endon("killanimscript");
self notify("endTeleportThread");
self endon("endTeleportThread");
if(param_00 == 0 || param_02 <= 0)
{
return;
}
if(param_01 > 0)
{
wait param_01;
}
var_04 = (0,0,param_00 / param_02);
if(isdefined(param_03) && param_03 < 1)
{
self setflaggedanimknoball("traverseAnim",self.var_3FEA,self.var_3FE9,1,0.2,param_03);
}
for(var_05 = 0;var_05 < param_02;var_05++)
{
self forceteleport(self.origin + var_04);
wait 0.05;
}
if(isdefined(param_03) && param_03 < 1)
{
self setflaggedanimknoball("traverseAnim",self.var_3FEA,self.var_3FE9,1,0.2,1);
}
}
//Function Number: 4
func_3FEB(param_00)
{
self endon("killanimscript");
self.desired_anim_pose = "stand";
animscripts/utility::func_247B();
var_01 = self getnegotiationstartnode();
var_02 = self getnegotiationendnode();
self orientmode("face angle",var_01.angles[1]);
self.var_3FEC = param_00["traverseHeight"];
self.var_3FED = var_01;
var_03 = param_00["traverseAnim"];
var_04 = param_00["traverseToCoverAnim"];
self traversemode("nogravity");
self traversemode("noclip");
self.var_3FEE = self.origin[2];
if(!animhasnotetrack(var_03,"traverse_align"))
{
func_3FF3();
}
var_05 = 0;
if(isdefined(var_04) && isdefined(self.node) && self.node.type == param_00["coverType"] && distancesquared(self.node.origin,var_02.origin) < 625)
{
if(animscripts/utility::func_D61(self.node.angles[1] - var_02.angles[1]) > 160)
{
var_05 = 1;
var_03 = var_04;
}
}
if(var_05)
{
if(isdefined(param_00["traverseToCoverSound"]))
{
thread maps\_utility::play_sound_on_entity(param_00["traverseToCoverSound"]);
}
}
else if(isdefined(param_00["traverseSound"]))
{
thread maps\_utility::play_sound_on_entity(param_00["traverseSound"]);
}
self.var_3FEA = var_03;
self.var_3FE9 = %body;
self setflaggedanimknoballrestart("traverseAnim",var_03,%body,1,0.2,1);
self.var_3FEF = 0;
self.var_3FF0 = param_00["interruptDeathAnim"];
animscripts/shared::donotetracks("traverseAnim",::func_3FF1);
self traversemode("gravity");
if(self.var_744)
{
return;
}
self.a.var_D55 = 0;
if(var_05 && isdefined(self.node) && distancesquared(self.origin,self.node.origin) < 256)
{
self.a.movement = "stop";
self teleport(self.node.origin);
}
else if(isdefined(param_00["traverseStopsAtEnd"]))
{
self.a.movement = "stop";
}
else
{
self.a.movement = "run";
self clearanim(var_03,0.2);
}
self.var_3FE9 = undefined;
self.var_3FEA = undefined;
self.deathanim = undefined;
}
//Function Number: 5
func_3FF1(param_00)
{
if(param_00 == "traverse_death")
{
return func_3FF2();
}
if(param_00 == "traverse_align")
{
return func_3FF3();
}
if(param_00 == "traverse_drop")
{
return func_3FF4();
}
}
//Function Number: 6
func_3FF2()
{
if(isdefined(self.var_3FF0))
{
var_00 = self.var_3FF0[self.var_3FEF];
self.deathanim = var_00[randomint(var_00.size)];
self.var_3FEF++;
}
}
//Function Number: 7
func_3FF3()
{
self traversemode("nogravity");
self traversemode("noclip");
if(isdefined(self.var_3FEC) && isdefined(self.var_3FED.traverse_height))
{
var_00 = self.var_3FED.traverse_height - self.var_3FEE;
thread func_3FE7(var_00 - self.var_3FEC);
}
}
//Function Number: 8
func_3FF4()
{
var_00 = self.origin + (0,0,32);
var_01 = bullettrace(var_00,self.origin + (0,0,-512),0,undefined);
var_02 = var_01["position"];
var_03 = distance(var_00,var_02);
var_04 = var_03 - 32 - 0.5;
var_05 = self getanimtime(self.var_3FEA);
var_06 = getmovedelta(self.var_3FEA,var_05,1);
var_07 = getanimlength(self.var_3FEA);
var_08 = 0 - var_06[2];
var_09 = var_08 - var_04;
if(var_08 < var_04)
{
var_0A = var_08 / var_04;
}
else
{
var_0A = 1;
}
var_0B = var_07 - var_05 / 3;
var_0C = ceil(var_0B * 20);
thread func_3FE8(var_09,0,var_0C,var_0A);
thread func_3FF5(var_02[2]);
}
//Function Number: 9
func_3FF5(param_00)
{
self endon("killanimscript");
param_00 = param_00 + 4;
for(;;)
{
if(self.origin[2] < param_00)
{
self traversemode("gravity");
break;
}
wait 0.05;
}
}
//Function Number: 10
func_3FF6()
{
self animmode("zonly_physics");
self waittill("killanimscript");
}
//Function Number: 11
func_3FF7(param_00,param_01)
{
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
var_03 = var_02.traverse_height - var_02.origin[2];
thread func_3FE7(var_03 - param_01);
self clearanim(%root,0.2);
self setflaggedanimrestart("dog_traverse",level.var_3AF6[param_00],1,0.2,1);
animscripts/shared::donotetracks("dog_traverse");
self.var_3B58 = 1;
}
//Function Number: 12
func_3FF8(param_00,param_01)
{
self endon("killanimscript");
self traversemode("noclip");
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
var_03 = self getnegotiationstartnode().origin[2] - self getnegotiationendnode().origin[2];
self.var_3FEA = level.var_3AF6["jump_down_40"];
self.var_3FE9 = %root;
thread func_3FE8(40 - var_03,0.1,param_00,param_01);
self clearanim(%root,0.2);
self setflaggedanimrestart("traverseAnim",self.var_3FEA,1,0.2,1);
animscripts/shared::donotetracks("traverseAnim");
self clearanim(self.var_3FEA,0);
self traversemode("gravity");
self.var_3B58 = 1;
self.var_3FE9 = undefined;
self.var_3FEA = undefined;
}
//Function Number: 13
func_3FF9(param_00,param_01)
{
self endon("killanimscript");
self traversemode("noclip");
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
thread func_3FE8(param_00 - 40,0.2,param_01);
self clearanim(%root,0.25);
self setflaggedanimrestart("traverseAnim",level.var_3AF6["jump_up_40"],1,0.2,1);
animscripts/shared::donotetracks("traverseAnim");
self clearanim(level.var_3AF6["jump_up_40"],0);
self traversemode("gravity");
self.var_3B58 = 1;
}
//Function Number: 14
func_0176(param_00,param_01)
{
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
if(!isdefined(var_02.traverse_height))
{
var_02.traverse_height = var_02.origin[2];
}
var_03 = var_02.traverse_height - var_02.origin[2];
thread func_3FE7(var_03 - param_01);
self clearanim(%root,0.2);
self setflaggedanimrestart("dog_traverse",level.var_3AF6[param_00],1,0.2,1);
animscripts/shared::donotetracks("dog_traverse");
self.var_3B58 = 1;
}

View File

@ -0,0 +1,47 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\slide_across_car.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 3
* Decompile Time: 63 ms
* Timestamp: 10/27/2023 2:17:26 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
func_4005();
return;
}
func_4004();
}
//Function Number: 2
func_4004()
{
var_00 = [];
var_1C["interruptDeathAnim"] = 0;
animscripts/traverse/shared::func_3FEB(var_1C);
}
//Function Number: 3
func_4005()
{
self endon("killanimscript");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self clearanim(%root,0.1);
self setflaggedanimrestart("traverse",level.var_3AF6["jump_up_40"],1,0.1,1);
animscripts/shared::donotetracks("traverse");
thread common_scripts\utility::play_sound_in_space("anml_dog_bark",self gettagorigin("tag_eye"));
self clearanim(%root,0);
self setflaggedanimrestart("traverse",level.var_3AF6["jump_down_40"],1,0,1);
animscripts/shared::donotetracks("traverse");
self traversemode("gravity");
self.var_3B58 = 1;
}

View File

@ -0,0 +1,37 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\step_down.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 49 ms
* Timestamp: 10/27/2023 2:17:27 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF8(40,3);
return;
}
func_3FFA();
}
//Function Number: 2
func_3FFA()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self.a.movement = "walk";
self traversemode("nogravity");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("stepanim",%step_down_low_wall,%body,1,0.1,1);
self waittillmatch("gravity on","stepanim");
self traversemode("gravity");
animscripts/shared::donotetracks("stepanim");
}

View File

@ -0,0 +1,38 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\step_up.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 45 ms
* Timestamp: 10/27/2023 2:17:27 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF9(40,3);
return;
}
func_3FFB();
}
//Function Number: 2
func_3FFB()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self.a.movement = "walk";
self traversemode("nogravity");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("stepanim",%step_up_low_wall,%body,1,0.1,1);
self waittillmatch("gravity on","stepanim");
self traversemode("gravity");
animscripts/shared::donotetracks("stepanim");
self setanimknoballrestart(animscripts/run::func_FC4(),%body,1,0.1,1);
}

View File

@ -0,0 +1,29 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\step_up_12.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 40 ms
* Timestamp: 10/27/2023 2:17:28 AM
*******************************************************************/
//Function Number: 1
main()
{
self endon("killanimscript");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
var_01 = var_00.traverse_height - var_00.origin[2];
var_02 = var_01;
var_03 = 6;
var_04 = (0,0,var_02 / var_03);
self traversemode("noclip");
for(var_05 = 0;var_05 < var_03;var_05++)
{
self teleport(self.origin + var_04);
wait 0.05;
}
self traversemode("gravity");
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\step_up_32.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 46 ms
* Timestamp: 10/27/2023 2:17:28 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF9(32,5);
return;
}
func_4003();
}
//Function Number: 2
func_4003()
{
var_00 = [];
animscripts/traverse/shared::func_3FEB(var_7B);
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\stepup_52.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 49 ms
* Timestamp: 10/27/2023 2:17:29 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF9(52,5);
return;
}
func_4003();
}
//Function Number: 2
func_4003()
{
var_00 = [];
animscripts/traverse/shared::func_3FEB(var_7B);
}

View File

@ -0,0 +1,15 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\trench_jump_out.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 30 ms
* Timestamp: 10/27/2023 2:17:29 AM
*******************************************************************/
//Function Number: 1
main()
{
animscripts/traverse/shared::func_3FE6(%trench_jump_out,47.8);
}

View File

@ -0,0 +1,26 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\trench_jumpout.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 38 ms
* Timestamp: 10/27/2023 2:17:29 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self.a.movement = "walk";
self traversemode("nogravity");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("stepanim",%gully_trenchjump,%body,1,0.1,1);
self waittillmatch("gravity on","stepanim");
self traversemode("gravity");
animscripts/shared::donotetracks("stepanim");
self setanimknoballrestart(animscripts/run::func_FC4(),%body,1,0.1,1);
}

View File

@ -0,0 +1,27 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\wall_dive.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 32 ms
* Timestamp: 10/27/2023 2:17:30 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("diveanim",%jump_over_low_wall,%body,1,0.1,1);
self playsound("dive_wall");
self waittillmatch("gravity on","diveanim");
self traversemode("gravity");
animscripts/shared::donotetracks("diveanim");
self.a.movement = "run";
}

View File

@ -0,0 +1,33 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\wall_hop.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 46 ms
* Timestamp: 10/27/2023 2:17:30 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF7("wallhop",40);
return;
}
func_3FFC();
}
//Function Number: 2
func_3FFC()
{
if(randomint(100) < 30)
{
animscripts/traverse/shared::func_3FE6(%traverse_wallhop_3,39.875);
return;
}
animscripts/traverse/shared::func_3FE6(%traverse_wallhop,39.875);
}

View File

@ -0,0 +1,30 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\wall_over_40.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 47 ms
* Timestamp: 10/27/2023 2:17:31 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF7("window_40",40);
return;
}
func_4003();
}
//Function Number: 2
func_4003()
{
var_00 = [];
var_1C["interruptDeathAnim"] = 0;
var_1C["interruptDeathAnim"] = 1;
animscripts/traverse/shared::func_3FEB(var_1C);
}

View File

@ -0,0 +1,78 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\wall_over_96.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 3
* Decompile Time: 74 ms
* Timestamp: 10/27/2023 2:17:31 AM
*******************************************************************/
//Function Number: 1
main()
{
self.var_4006 = 1;
func_4007(%traverse90,96);
}
//Function Number: 2
func_4007(param_00,param_01)
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
var_03 = var_02.traverse_height - var_02.origin[2];
self setflaggedanimknoballrestart("traverse",param_00,%body,1,0.15,1);
var_04 = gettime();
thread animscripts/notetracks::func_239E("traverse","no clear",::func_4008);
if(!animhasnotetrack(param_00,"gravity on"))
{
var_04 = 1.23;
var_05 = 0.2;
wait 5;
self traversemode("gravity");
wait var_05;
return;
}
self waittillmatch("gravity on","traverse");
self traversemode("gravity");
if(!animhasnotetrack(param_00,"blend"))
{
wait 0.2;
return;
}
self waittillmatch("blend","traverse");
}
//Function Number: 3
func_4008(param_00)
{
if(param_00 != "traverse_death")
{
return;
}
self endon("killanimscript");
if(self.health == 1)
{
self.a.var_D55 = 1;
if(self.var_4006 > 1)
{
self setflaggedanimknoball("deathanim",%traverse90_end_death,%body,1,0.2,1);
}
else
{
self setflaggedanimknoball("deathanim",%traverse90_start_death,%body,1,0.2,1);
}
animscripts/face::func_C41("death");
}
self.var_4006++;
}

View File

@ -0,0 +1,25 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\window.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 1
* Decompile Time: 30 ms
* Timestamp: 10/27/2023 2:17:32 AM
*******************************************************************/
//Function Number: 1
main()
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_00 = self getnegotiationstartnode();
self orientmode("face angle",var_00.angles[1]);
self setflaggedanimknoballrestart("diveanim",%windowclimb,%body,1,0.1,1);
self waittillmatch("gravity on","diveanim");
self traversemode("gravity");
animscripts/shared::donotetracks("diveanim");
}

View File

@ -0,0 +1,40 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\window_2.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 59 ms
* Timestamp: 10/27/2023 2:17:32 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF7("wallhop",40);
return;
}
func_3FFD(%windowclimb,35);
}
//Function Number: 2
func_3FFD(param_00,param_01)
{
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("nogravity");
self traversemode("noclip");
var_02 = self getnegotiationstartnode();
self orientmode("face angle",var_02.angles[1]);
var_03 = var_02.traverse_height - var_02.origin[2];
self setflaggedanimknoballrestart("traverse",param_00,%body,1,0.15,1);
wait 0.7;
thread animscripts/traverse/shared::func_3FE7(var_03 - param_01);
wait 0.9;
self traversemode("gravity");
animscripts/shared::donotetracks("traverse");
}

View File

@ -0,0 +1,28 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\window_divethrough_36.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 65 ms
* Timestamp: 10/27/2023 2:17:33 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF7("window_40",40);
return;
}
func_4003();
}
//Function Number: 2
func_4003()
{
var_00 = [];
animscripts/traverse/shared::func_3FEB(var_7B);
}

View File

@ -0,0 +1,91 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\window_down.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 4
* Decompile Time: 82 ms
* Timestamp: 10/27/2023 2:17:33 AM
*******************************************************************/
//Function Number: 1
main()
{
var_00 = %windowclimb_fall;
var_01 = %windowclimb_land;
var_02 = 35;
self.desired_anim_pose = "crouch";
animscripts/utility::func_247B();
self endon("killanimscript");
self traversemode("noclip");
var_03 = self getnegotiationstartnode();
self orientmode("face angle",var_03.angles[1]);
var_04 = var_03.traverse_height - var_03.origin[2];
self setflaggedanimknoballrestart("traverse",var_00,%body,1,0.15,1);
thread animscripts/notetracks::func_239E("traverse","stop_traverse_notetracks");
wait 1.5;
var_05 = (0,var_03.angles[1],0);
var_06 = anglestoforward(var_05);
var_06 = var_06 * 85;
var_07 = bullettrace(var_03.origin + var_06,var_03.origin + var_06 + (0,0,-500),0,undefined);
var_08 = var_07["position"][2];
var_09 = var_03.origin[2] - var_08;
var_0A = 0;
for(var_0B = 0;var_0B < level.var_20C4.size;var_0B++)
{
if(var_09 < level.var_20C4[var_0B])
{
continue;
}
var_0A = var_09 - level.var_20C4[var_0B];
}
thread animscripts/traverse/shared::func_3FE7(var_0A * -1);
var_0C = self.origin[2];
var_0D = 0;
level.var_3FFF = [];
for(;;)
{
var_0D = var_0C - self.origin[2];
if(self.origin[2] - var_0D < var_08)
{
break;
}
var_0C = self.origin[2];
wait 0.05;
}
if(isdefined(self.var_752))
{
self playsound("Land_" + self.var_752);
}
self notify("stop_traverse_notetracks");
self setflaggedanimknoballrestart("traverse",var_01,%body,1,0.15,1);
self traversemode("gravity");
animscripts/shared::donotetracks("traverse");
}
//Function Number: 2
func_4000(param_00)
{
level notify("print_this_" + param_00);
level endon("print_this_" + param_00);
wait 0.05;
}
//Function Number: 3
func_4001(param_00,param_01)
{
wait 0.05;
}
//Function Number: 4
func_4002(param_00,param_01)
{
level notify("prrint_this_" + param_01);
level endon("prrint_this_" + param_01);
wait 0.05;
}

View File

@ -0,0 +1,30 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\window_over_40.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 50 ms
* Timestamp: 10/27/2023 2:17:34 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF7("window_40",40);
return;
}
func_3FFE();
}
//Function Number: 2
func_3FFE()
{
var_00 = [];
var_1C["interruptDeathAnim"] = 0;
var_1C["interruptDeathAnim"] = 1;
animscripts/traverse/shared::func_3FEB(var_1C);
}

View File

@ -0,0 +1,30 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\traverse\window_over_quick.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 2
* Decompile Time: 48 ms
* Timestamp: 10/27/2023 2:17:34 AM
*******************************************************************/
//Function Number: 1
main()
{
if(self.type == "dog")
{
animscripts/traverse/shared::func_3FF7("window_40",40);
return;
}
func_3FFE();
}
//Function Number: 2
func_3FFE()
{
var_00 = [];
var_1C["interruptDeathAnim"] = 0;
var_1C["interruptDeathAnim"] = 1;
animscripts/traverse/shared::func_3FEB(var_1C);
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,140 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\walk.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 4
* Decompile Time: 81 ms
* Timestamp: 10/27/2023 2:18:58 AM
*******************************************************************/
//Function Number: 1
func_107F()
{
var_00 = undefined;
if(isdefined(self.pathgoalpos) && distancesquared(self.origin,self.pathgoalpos) > 4096)
{
var_00 = "stand";
}
var_01 = [[ self.var_FBA ]](var_00);
switch(var_01)
{
case "stand":
if(animscripts/setposemovement::func_1080())
{
return;
}
if(isdefined(self.walk_overrideanim))
{
animscripts/move::func_FBE(self.walk_overrideanim,self.walk_override_weights);
return;
}
func_1087(func_1086("straight"));
break;
case "crouch":
if(animscripts/setposemovement::func_1083())
{
return;
}
func_1087(func_1086("crouch"));
break;
default:
if(animscripts/setposemovement::func_1084())
{
return;
}
self.a.movement = "walk";
func_1087(func_1086("prone"));
break;
}
}
//Function Number: 2
func_1085(param_00)
{
self endon("movemode");
self clearanim(%combatrun,0.6);
self setanimknoball(%combatrun,%body,1,0.5,self.moveplaybackrate);
if(isarray(self.walk_overrideanim))
{
if(isdefined(self.walk_override_weights))
{
var_01 = common_scripts\utility::choose_from_weighted_array(self.walk_overrideanim,self.walk_override_weights);
}
else
{
var_01 = self.walk_overrideanim[randomint(self.walk_overrideanim.size)];
}
}
else
{
var_01 = self.walk_overrideanim;
}
self setflaggedanimknob("moveanim",var_01,1,0.2);
animscripts/shared::donotetracks("moveanim");
}
//Function Number: 3
func_1086(param_00)
{
if(self.var_786 == "up")
{
return animscripts/utility::func_FC3("stairs_up");
}
else if(self.var_786 == "down")
{
return animscripts/utility::func_FC3("stairs_down");
}
var_01 = animscripts/utility::func_FC3(param_00);
if(isarray(var_01))
{
var_01 = var_01[randomint(var_01.size)];
}
return var_01;
}
//Function Number: 4
func_1087(param_00)
{
self endon("movemode");
var_01 = self.moveplaybackrate;
if(self.var_786 != "none")
{
var_01 = var_01 * 0.6;
}
if(self.a.pose == "stand")
{
if(isdefined(self.enemy))
{
thread animscripts/cqb::func_1079();
self setflaggedanimknoball("walkanim",animscripts/cqb::func_1076(),%walk_and_run_loops,1,1,var_01,1);
}
else
{
self setflaggedanimknoball("walkanim",param_00,%body,1,1,var_01,1);
}
animscripts/run::func_FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"));
thread animscripts/run::func_FF8("walk");
}
else
{
self setflaggedanimknoball("walkanim",param_00,%body,1,1,var_01,1);
animscripts/run::func_FF7(animscripts/utility::func_FC3("move_b"),animscripts/utility::func_FC3("move_l"),animscripts/utility::func_FC3("move_r"));
thread animscripts/run::func_FF8("walk");
}
animscripts/notetracks::func_D4F(0.2,"walkanim");
thread animscripts/run::func_FE5();
}

View File

@ -0,0 +1,126 @@
/*******************************************************************
* Decompiled By: Bog
* Decompiled File: animscripts\weaponlist.gsc
* Game: Call of Duty: Modern Warfare 3
* Platform: PC
* Function Count: 9
* Decompile Time: 147 ms
* Timestamp: 10/27/2023 2:18:59 AM
*******************************************************************/
//Function Number: 1
func_0CCA()
{
return weaponisauto(self.weapon) || weaponburstcount(self.weapon) > 0;
}
//Function Number: 2
func_0CCB()
{
return weaponissemiauto(self.weapon);
}
//Function Number: 3
func_0CCC()
{
if(func_0CCA())
{
return 0.1 / weaponfiretime(self.weapon);
}
return 0.5;
}
//Function Number: 4
func_0CCD()
{
if(func_0CCA())
{
return 0.1 / weaponfiretime(self.weapon);
}
return 0.2;
}
//Function Number: 5
func_0CCE()
{
return 0.25;
}
//Function Number: 6
func_0CCF(param_00)
{
if(!func_0CCA() || isdefined(param_00) && param_00 == 1)
{
var_01 = 0.5 + randomfloat(1);
return weaponfiretime(self.weapon) * var_01;
}
return weaponfiretime(self.weapon);
}
//Function Number: 7
func_0CD0()
{
if(self.weapon == "none")
{
self.bulletsinclip = 0;
return 0;
}
if(weaponclass(self.weapon) == "rocketlauncher")
{
if(!self.a.var_CD2)
{
thread animscripts/combat_utility::func_CD3();
}
}
if(!isdefined(self.bulletsinclip))
{
self.bulletsinclip = weaponclipsize(self.weapon);
}
else
{
self.bulletsinclip = weaponclipsize(self.weapon);
}
if(self.bulletsinclip <= 0)
{
return 0;
}
return 1;
}
//Function Number: 8
func_0CD4(param_00,param_01,param_02,param_03,param_04)
{
if(!isdefined(param_02))
{
param_02 = 3;
}
if(!isdefined(param_03))
{
param_02 = 1;
}
if(!isdefined(param_04))
{
param_04 = "rifle";
}
param_00 = tolower(param_00);
level.var_CD5[param_00]["type"] = param_01;
level.var_CD5[param_00]["time"] = param_02;
level.var_CD5[param_00]["clipsize"] = param_03;
level.var_CD5[param_00]["anims"] = param_04;
}
//Function Number: 9
func_0CD6(param_00)
{
level.var_CD5[tolower(param_00)]["type"] = "turret";
}