I just saw some oddities regarding the axatt frames in the player model wanted to let be known and suguest maybe a modeler here could make a fix?
[ Ready for a little bit of Street Fighter II here eh? ]
Basicly, you have (4) axatt sequences, that aree picked randomly during weaponframe code. My idea is to make an "alternate fire" system using
perhaps a seperate impulse or button that lets you pick which one of these attacks you want to do rather than let the code do it randomly. Turns out ID left out the last 2 frames in its QC for all 4 of these animations, so we can see how it looks putting them in. Also we can set the .attack_finished float the player uses as different values on each one since a short blow takes less time to finish than the 2 handed frames would use for example, and the 2 handed framesets should do more damage, and also have a chance of a headshot , if you choose to code that in , as well as using crossproduct to detect behind attacks which should normally be a automatic kill or a decap if you want to get that gorry.
NOTE: the ax v_wep model only has (
frames which seem to correspond only to single handed axatt frames, so this is where a modeler would be needed, to add in the 2nd hand animations for the overhand attacks.
This first one I will call your basic short attack since basically the ax is all the way out in the 2nd frame, so then we should call the code to perfom the hit there instead of in frame 122 which is where ID had it. Also I would say this attack does the least damage and there is no chance for a headshot.
This next one is also a 2 handed blow. Since frame 126 or 127 could either be posiitons of contact with something, you could possibly beef up this attack by putting in another optional fireax () as shown. This attack would most likely be more time consuming so it would need the attack_finished float adjusted with some experimentation. Decapitation or a headshot with this one seems to have a good probability.
This 3rd one is most likely the most powerful for doing overall damage since its 2 handed straight down as if he is chopping wood. Headshot or decap here probably not likely but takes alot of time to perform this move.
Finally, this last one is a 1 handed left uppercut, which I would say is a high chance of a decap / behead / headshot if it lands contact, I would say from behind this is an instant kill always....and takes the most time to do.
Basicly thats a start. The rest involves checking the fireaxe () routine for specific frames then calculating damage and headshot probabilities based on the frameset we are in or if the attack is from behind...and of course the alternate fire system to select the specific axatt mode to use, or perhaps another that just keeps the current random system as another option.
I will be experimenting with this in my Tekbot mod and will post the "backstab" code that I made for it with the help of PRimallove last year sometime.
If there is a modeler who can re-model the axe to match the player frames, that would be a neat overall improvement I think.
[ Ready for a little bit of Street Fighter II here eh? ]

Basicly, you have (4) axatt sequences, that aree picked randomly during weaponframe code. My idea is to make an "alternate fire" system using
perhaps a seperate impulse or button that lets you pick which one of these attacks you want to do rather than let the code do it randomly. Turns out ID left out the last 2 frames in its QC for all 4 of these animations, so we can see how it looks putting them in. Also we can set the .attack_finished float the player uses as different values on each one since a short blow takes less time to finish than the 2 handed frames would use for example, and the 2 handed framesets should do more damage, and also have a chance of a headshot , if you choose to code that in , as well as using crossproduct to detect behind attacks which should normally be a automatic kill or a decap if you want to get that gorry.
NOTE: the ax v_wep model only has (

This first one I will call your basic short attack since basically the ax is all the way out in the 2nd frame, so then we should call the code to perfom the hit there instead of in frame 122 which is where ID had it. Also I would say this attack does the least damage and there is no chance for a headshot.
Code:
void () player_axe1 = [ 119, player_axe2 ] // Small chop one hand from right { self.weaponframe = 2; }; void () player_axe2 = [ 120, player_axe3 ] { self.weaponframe = 3; }; void () player_axe3 = [ 121, player_axe4 ] { self.weaponframe = 3; W_FireAxe (); /// << moved this to here, was in frame down below }; void () player_axe4 = [ 122, player_axe5 ] { self.weaponframe = 4; }; void () player_axe5 = [ 123, player_axe6 ] // ID left out these last 2 { self.weaponframe = 5; }; void () player_axe6 = [ 124, player_run ] { self.weaponframe = 6; };
Code:
void () player_axeb1 = [ 125, player_axeb2 ] //Overhand 2 hands from left { self.weaponframe = 5; }; void () player_axeb2 = [ 126, player_axeb3 ] { self.weaponframe = 6; W_FireAxe (); }; void () player_axeb3 = [ 127, player_axeb4 ] { self.weaponframe = 7; if (random () < 0.5) W_FireAxe (); // Optional }; void () player_axeb4 = [ 128, player_axeb5 ] { self.weaponframe = 7; }; void () player_axeb5 = [ 129, player_axeb6 ]// These last 2 added { self.weaponframe = 7; }; void () player_axeb6 = [ 130, player_run ] { self.weaponframe = 8; };
Code:
void () player_axec1 = [ 131, player_axec2 ] // 2 hands overhand from center ~ powerful 2 handed overhead blow { self.weaponframe = 1; }; void () player_axec2 = [ 132, player_axec3 ] { self.weaponframe = 2; }; void () player_axec3 = [ 133, player_axec4 ] { self.weaponframe = 3; W_FireAxe (); }; void () player_axec4 = [ 134, player_axec5 ] { self.weaponframe = 4; }; void () player_axec5 = [ 135, player_axec6 ] // last 2 here new frames { self.weaponframe = 5; }; void () player_axec6 = [ 136, player_run ] { self.weaponframe = 6; };
Code:
void () player_axed1 = [ 137, player_axed2 ] // left handed uppercut { self.weaponframe = 5; }; void () player_axed2 = [ 138, player_axed3 ] { self.weaponframe = 6; }; void () player_axed3 = [ 139, player_axed4 ] { self.weaponframe = 7; W_FireAxe (); }; void () player_axed4 = [ 140, player_axed5 ] { self.weaponframe = 7; }; void () player_axed5 = [ 141, player_axed6 ] // 2 new frames { self.weaponframe = 8; }; void () player_axed6 = [ 142, player_run ] { self.weaponframe = 8; };
Basicly thats a start. The rest involves checking the fireaxe () routine for specific frames then calculating damage and headshot probabilities based on the frameset we are in or if the attack is from behind...and of course the alternate fire system to select the specific axatt mode to use, or perhaps another that just keeps the current random system as another option.
I will be experimenting with this in my Tekbot mod and will post the "backstab" code that I made for it with the help of PRimallove last year sometime.
If there is a modeler who can re-model the axe to match the player frames, that would be a neat overall improvement I think.

Comment