mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-21 23:47:52 -05:00
Added MW3 Scripts
This commit is contained in:
131
MW3/PC/SP/animscripts/animmode.gsc
Normal file
131
MW3/PC/SP/animscripts/animmode.gsc
Normal 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);
|
||||
}
|
669
MW3/PC/SP/animscripts/animset.gsc
Normal file
669
MW3/PC/SP/animscripts/animset.gsc
Normal 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;
|
||||
}
|
655
MW3/PC/SP/animscripts/atv.gsc
Normal file
655
MW3/PC/SP/animscripts/atv.gsc
Normal 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;
|
||||
}
|
3935
MW3/PC/SP/animscripts/battlechatter.gsc
Normal file
3935
MW3/PC/SP/animscripts/battlechatter.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1358
MW3/PC/SP/animscripts/battlechatter_ai.gsc
Normal file
1358
MW3/PC/SP/animscripts/battlechatter_ai.gsc
Normal file
File diff suppressed because it is too large
Load Diff
69
MW3/PC/SP/animscripts/civilian.gsc
Normal file
69
MW3/PC/SP/animscripts/civilian.gsc
Normal 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)];
|
||||
}
|
1533
MW3/PC/SP/animscripts/combat.gsc
Normal file
1533
MW3/PC/SP/animscripts/combat.gsc
Normal file
File diff suppressed because it is too large
Load Diff
21
MW3/PC/SP/animscripts/combat_say.gsc
Normal file
21
MW3/PC/SP/animscripts/combat_say.gsc
Normal 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();
|
||||
}
|
1898
MW3/PC/SP/animscripts/combat_utility.gsc
Normal file
1898
MW3/PC/SP/animscripts/combat_utility.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1431
MW3/PC/SP/animscripts/corner.gsc
Normal file
1431
MW3/PC/SP/animscripts/corner.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1534
MW3/PC/SP/animscripts/cover_arrival.gsc
Normal file
1534
MW3/PC/SP/animscripts/cover_arrival.gsc
Normal file
File diff suppressed because it is too large
Load Diff
982
MW3/PC/SP/animscripts/cover_behavior.gsc
Normal file
982
MW3/PC/SP/animscripts/cover_behavior.gsc
Normal 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;
|
||||
}
|
24
MW3/PC/SP/animscripts/cover_crouch.gsc
Normal file
24
MW3/PC/SP/animscripts/cover_crouch.gsc
Normal 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");
|
||||
}
|
47
MW3/PC/SP/animscripts/cover_left.gsc
Normal file
47
MW3/PC/SP/animscripts/cover_left.gsc
Normal 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;
|
||||
}
|
313
MW3/PC/SP/animscripts/cover_prone.gsc
Normal file
313
MW3/PC/SP/animscripts/cover_prone.gsc
Normal 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);
|
||||
}
|
47
MW3/PC/SP/animscripts/cover_right.gsc
Normal file
47
MW3/PC/SP/animscripts/cover_right.gsc
Normal 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;
|
||||
}
|
23
MW3/PC/SP/animscripts/cover_stand.gsc
Normal file
23
MW3/PC/SP/animscripts/cover_stand.gsc
Normal 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");
|
||||
}
|
856
MW3/PC/SP/animscripts/cover_wall.gsc
Normal file
856
MW3/PC/SP/animscripts/cover_wall.gsc
Normal 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]);
|
||||
}
|
193
MW3/PC/SP/animscripts/cqb.gsc
Normal file
193
MW3/PC/SP/animscripts/cqb.gsc
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
933
MW3/PC/SP/animscripts/death.gsc
Normal file
933
MW3/PC/SP/animscripts/death.gsc
Normal 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;
|
||||
}
|
1
MW3/PC/SP/animscripts/dog/dog_combat.gsc
Normal file
1
MW3/PC/SP/animscripts/dog/dog_combat.gsc
Normal file
@ -0,0 +1 @@
|
||||
Failed to decompile this file, open a ticket if you need this fixed.
|
47
MW3/PC/SP/animscripts/dog/dog_death.gsc
Normal file
47
MW3/PC/SP/animscripts/dog/dog_death.gsc
Normal 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");
|
||||
}
|
40
MW3/PC/SP/animscripts/dog/dog_flashed.gsc
Normal file
40
MW3/PC/SP/animscripts/dog/dog_flashed.gsc
Normal 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");
|
||||
}
|
1
MW3/PC/SP/animscripts/dog/dog_init.gsc
Normal file
1
MW3/PC/SP/animscripts/dog/dog_init.gsc
Normal file
@ -0,0 +1 @@
|
||||
Failed to decompile this file, open a ticket if you need this fixed.
|
432
MW3/PC/SP/animscripts/dog/dog_move.gsc
Normal file
432
MW3/PC/SP/animscripts/dog/dog_move.gsc
Normal 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;
|
||||
}
|
24
MW3/PC/SP/animscripts/dog/dog_pain.gsc
Normal file
24
MW3/PC/SP/animscripts/dog/dog_pain.gsc
Normal 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");
|
||||
}
|
14
MW3/PC/SP/animscripts/dog/dog_reactions.gsc
Normal file
14
MW3/PC/SP/animscripts/dog/dog_reactions.gsc
Normal 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()
|
||||
{
|
||||
}
|
51
MW3/PC/SP/animscripts/dog/dog_scripted.gsc
Normal file
51
MW3/PC/SP/animscripts/dog/dog_scripted.gsc
Normal 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;
|
||||
}
|
174
MW3/PC/SP/animscripts/dog/dog_stop.gsc
Normal file
174
MW3/PC/SP/animscripts/dog/dog_stop.gsc
Normal 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);
|
||||
}
|
309
MW3/PC/SP/animscripts/door.gsc
Normal file
309
MW3/PC/SP/animscripts/door.gsc
Normal 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;
|
||||
}
|
||||
}
|
349
MW3/PC/SP/animscripts/face.gsc
Normal file
349
MW3/PC/SP/animscripts/face.gsc
Normal 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;
|
||||
}
|
23
MW3/PC/SP/animscripts/first_frame.gsc
Normal file
23
MW3/PC/SP/animscripts/first_frame.gsc
Normal 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");
|
||||
}
|
95
MW3/PC/SP/animscripts/flashed.gsc
Normal file
95
MW3/PC/SP/animscripts/flashed.gsc
Normal 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;
|
||||
}
|
99
MW3/PC/SP/animscripts/grenade_cower.gsc
Normal file
99
MW3/PC/SP/animscripts/grenade_cower.gsc
Normal 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;
|
||||
}
|
98
MW3/PC/SP/animscripts/grenade_return_throw.gsc
Normal file
98
MW3/PC/SP/animscripts/grenade_return_throw.gsc
Normal 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");
|
||||
}
|
629
MW3/PC/SP/animscripts/init.gsc
Normal file
629
MW3/PC/SP/animscripts/init.gsc
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
613
MW3/PC/SP/animscripts/init_move_transitions.gsc
Normal file
613
MW3/PC/SP/animscripts/init_move_transitions.gsc
Normal 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];
|
||||
}
|
1564
MW3/PC/SP/animscripts/melee.gsc
Normal file
1564
MW3/PC/SP/animscripts/melee.gsc
Normal file
File diff suppressed because it is too large
Load Diff
1110
MW3/PC/SP/animscripts/move.gsc
Normal file
1110
MW3/PC/SP/animscripts/move.gsc
Normal file
File diff suppressed because it is too large
Load Diff
986
MW3/PC/SP/animscripts/notetracks.gsc
Normal file
986
MW3/PC/SP/animscripts/notetracks.gsc
Normal 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();
|
||||
}
|
1573
MW3/PC/SP/animscripts/pain.gsc
Normal file
1573
MW3/PC/SP/animscripts/pain.gsc
Normal file
File diff suppressed because it is too large
Load Diff
284
MW3/PC/SP/animscripts/reactions.gsc
Normal file
284
MW3/PC/SP/animscripts/reactions.gsc
Normal 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();
|
||||
}
|
||||
}
|
738
MW3/PC/SP/animscripts/riotshield/riotshield.gsc
Normal file
738
MW3/PC/SP/animscripts/riotshield/riotshield.gsc
Normal 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();
|
||||
}
|
967
MW3/PC/SP/animscripts/run.gsc
Normal file
967
MW3/PC/SP/animscripts/run.gsc
Normal 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);
|
||||
}
|
60
MW3/PC/SP/animscripts/scripted.gsc
Normal file
60
MW3/PC/SP/animscripts/scripted.gsc
Normal 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;
|
||||
}
|
967
MW3/PC/SP/animscripts/setposemovement.gsc
Normal file
967
MW3/PC/SP/animscripts/setposemovement.gsc
Normal 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);
|
||||
}
|
823
MW3/PC/SP/animscripts/shared.gsc
Normal file
823
MW3/PC/SP/animscripts/shared.gsc
Normal 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);
|
||||
}
|
724
MW3/PC/SP/animscripts/shoot_behavior.gsc
Normal file
724
MW3/PC/SP/animscripts/shoot_behavior.gsc
Normal 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;
|
||||
}
|
||||
}
|
898
MW3/PC/SP/animscripts/snowmobile.gsc
Normal file
898
MW3/PC/SP/animscripts/snowmobile.gsc
Normal 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;
|
||||
}
|
823
MW3/PC/SP/animscripts/squadmanager.gsc
Normal file
823
MW3/PC/SP/animscripts/squadmanager.gsc
Normal 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;
|
||||
}
|
||||
}
|
258
MW3/PC/SP/animscripts/stop.gsc
Normal file
258
MW3/PC/SP/animscripts/stop.gsc
Normal 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"] ]]();
|
||||
}
|
335
MW3/PC/SP/animscripts/track.gsc
Normal file
335
MW3/PC/SP/animscripts/track.gsc
Normal 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;
|
||||
}
|
||||
}
|
24
MW3/PC/SP/animscripts/traverse/crawl.gsc
Normal file
24
MW3/PC/SP/animscripts/traverse/crawl.gsc
Normal 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";
|
||||
}
|
25
MW3/PC/SP/animscripts/traverse/crouch_jump_down_40.gsc
Normal file
25
MW3/PC/SP/animscripts/traverse/crouch_jump_down_40.gsc
Normal 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");
|
||||
}
|
25
MW3/PC/SP/animscripts/traverse/duck_under_56.gsc
Normal file
25
MW3/PC/SP/animscripts/traverse/duck_under_56.gsc
Normal 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");
|
||||
}
|
24
MW3/PC/SP/animscripts/traverse/fence_climb.gsc
Normal file
24
MW3/PC/SP/animscripts/traverse/fence_climb.gsc
Normal 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");
|
||||
}
|
31
MW3/PC/SP/animscripts/traverse/jump_across_100.gsc
Normal file
31
MW3/PC/SP/animscripts/traverse/jump_across_100.gsc
Normal 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");
|
||||
}
|
31
MW3/PC/SP/animscripts/traverse/jump_across_72.gsc
Normal file
31
MW3/PC/SP/animscripts/traverse/jump_across_72.gsc
Normal 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");
|
||||
}
|
31
MW3/PC/SP/animscripts/traverse/jump_over_high_wall.gsc
Normal file
31
MW3/PC/SP/animscripts/traverse/jump_over_high_wall.gsc
Normal 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");
|
||||
}
|
25
MW3/PC/SP/animscripts/traverse/jump_up_80.gsc
Normal file
25
MW3/PC/SP/animscripts/traverse/jump_up_80.gsc
Normal 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;
|
||||
}
|
28
MW3/PC/SP/animscripts/traverse/jumpdown_130.gsc
Normal file
28
MW3/PC/SP/animscripts/traverse/jumpdown_130.gsc
Normal 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);
|
||||
}
|
28
MW3/PC/SP/animscripts/traverse/jumpdown_40.gsc
Normal file
28
MW3/PC/SP/animscripts/traverse/jumpdown_40.gsc
Normal 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);
|
||||
}
|
28
MW3/PC/SP/animscripts/traverse/jumpdown_56.gsc
Normal file
28
MW3/PC/SP/animscripts/traverse/jumpdown_56.gsc
Normal 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);
|
||||
}
|
28
MW3/PC/SP/animscripts/traverse/jumpdown_96.gsc
Normal file
28
MW3/PC/SP/animscripts/traverse/jumpdown_96.gsc
Normal 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);
|
||||
}
|
40
MW3/PC/SP/animscripts/traverse/ladder_down.gsc
Normal file
40
MW3/PC/SP/animscripts/traverse/ladder_down.gsc
Normal 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";
|
||||
}
|
51
MW3/PC/SP/animscripts/traverse/ladder_up.gsc
Normal file
51
MW3/PC/SP/animscripts/traverse/ladder_up.gsc
Normal 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";
|
||||
}
|
340
MW3/PC/SP/animscripts/traverse/shared.gsc
Normal file
340
MW3/PC/SP/animscripts/traverse/shared.gsc
Normal 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;
|
||||
}
|
47
MW3/PC/SP/animscripts/traverse/slide_across_car.gsc
Normal file
47
MW3/PC/SP/animscripts/traverse/slide_across_car.gsc
Normal 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;
|
||||
}
|
37
MW3/PC/SP/animscripts/traverse/step_down.gsc
Normal file
37
MW3/PC/SP/animscripts/traverse/step_down.gsc
Normal 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");
|
||||
}
|
38
MW3/PC/SP/animscripts/traverse/step_up.gsc
Normal file
38
MW3/PC/SP/animscripts/traverse/step_up.gsc
Normal 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);
|
||||
}
|
29
MW3/PC/SP/animscripts/traverse/step_up_12.gsc
Normal file
29
MW3/PC/SP/animscripts/traverse/step_up_12.gsc
Normal 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");
|
||||
}
|
28
MW3/PC/SP/animscripts/traverse/step_up_32.gsc
Normal file
28
MW3/PC/SP/animscripts/traverse/step_up_32.gsc
Normal 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);
|
||||
}
|
28
MW3/PC/SP/animscripts/traverse/stepup_52.gsc
Normal file
28
MW3/PC/SP/animscripts/traverse/stepup_52.gsc
Normal 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);
|
||||
}
|
15
MW3/PC/SP/animscripts/traverse/trench_jump_out.gsc
Normal file
15
MW3/PC/SP/animscripts/traverse/trench_jump_out.gsc
Normal 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);
|
||||
}
|
26
MW3/PC/SP/animscripts/traverse/trench_jumpout.gsc
Normal file
26
MW3/PC/SP/animscripts/traverse/trench_jumpout.gsc
Normal 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);
|
||||
}
|
27
MW3/PC/SP/animscripts/traverse/wall_dive.gsc
Normal file
27
MW3/PC/SP/animscripts/traverse/wall_dive.gsc
Normal 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";
|
||||
}
|
33
MW3/PC/SP/animscripts/traverse/wall_hop.gsc
Normal file
33
MW3/PC/SP/animscripts/traverse/wall_hop.gsc
Normal 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);
|
||||
}
|
30
MW3/PC/SP/animscripts/traverse/wall_over_40.gsc
Normal file
30
MW3/PC/SP/animscripts/traverse/wall_over_40.gsc
Normal 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);
|
||||
}
|
78
MW3/PC/SP/animscripts/traverse/wall_over_96.gsc
Normal file
78
MW3/PC/SP/animscripts/traverse/wall_over_96.gsc
Normal 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++;
|
||||
}
|
25
MW3/PC/SP/animscripts/traverse/window.gsc
Normal file
25
MW3/PC/SP/animscripts/traverse/window.gsc
Normal 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");
|
||||
}
|
40
MW3/PC/SP/animscripts/traverse/window_2.gsc
Normal file
40
MW3/PC/SP/animscripts/traverse/window_2.gsc
Normal 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");
|
||||
}
|
28
MW3/PC/SP/animscripts/traverse/window_divethrough_36.gsc
Normal file
28
MW3/PC/SP/animscripts/traverse/window_divethrough_36.gsc
Normal 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);
|
||||
}
|
91
MW3/PC/SP/animscripts/traverse/window_down.gsc
Normal file
91
MW3/PC/SP/animscripts/traverse/window_down.gsc
Normal 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;
|
||||
}
|
30
MW3/PC/SP/animscripts/traverse/window_over_40.gsc
Normal file
30
MW3/PC/SP/animscripts/traverse/window_over_40.gsc
Normal 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);
|
||||
}
|
30
MW3/PC/SP/animscripts/traverse/window_over_quick.gsc
Normal file
30
MW3/PC/SP/animscripts/traverse/window_over_quick.gsc
Normal 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);
|
||||
}
|
2240
MW3/PC/SP/animscripts/utility.gsc
Normal file
2240
MW3/PC/SP/animscripts/utility.gsc
Normal file
File diff suppressed because it is too large
Load Diff
140
MW3/PC/SP/animscripts/walk.gsc
Normal file
140
MW3/PC/SP/animscripts/walk.gsc
Normal 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();
|
||||
}
|
126
MW3/PC/SP/animscripts/weaponlist.gsc
Normal file
126
MW3/PC/SP/animscripts/weaponlist.gsc
Normal 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";
|
||||
}
|
Reference in New Issue
Block a user