Multiple Jumpattacks

How do I perform/string/combo multiple attacks in the air?

There are 3 ways to pull this off:

The 1st Non-Script/Without Script/Scriptless way - (courtesy of NickyP)
Before we start it's important to note how "NOAIRCANCEL" works. Let's check the manual...

noaircancel {int}

~Sets whether players can cancel their jumpattack with other jumpattacks or not.
~In case you don't know, you can cancel a jumpattack by pressing command for other jumpattack. For instance, while performing JUMPATTACK2, pressing attack will cancel the move and player performs JUMPATTACK.
0 = Cancellation is possible (default)
1 = Cancellation is only possible after last jumpattack is finished
2 = Cancellation is not possible at all

Good thing we took a look at that first. You could have skipped this because cancellation is the default setting, but you'd be cheating yourself.
When used properly you can avoid clunky, jittery, jumpattack transitions almost entirely. Also of note, Some characters really aren't meant to perform multiple attacks while falling. Quality is all in the details!  ;)
Moving on:
With NOAIRCANCEL out of the way, assign your entity the already available jumpattacks and string them together manually.
Jumpattack -  Press (A) while jumping
Jumpattack2 - Press (A+DOWN) while jumping
Jumpattack3 - Press (A+UP) while jumping
This way you can simply cycle through them. A character with jumpattack and jumpattack2 can attack infinitely in the air as long as the player cycles between Attack and Down+Attack.
Note* You should add jumpframe with a reasonable value into these jumpattacks or the entity will drop like a stone. Air combo goodness denied!  :(
If that seems a little inconvenient you could also try...

The 2nd Non-Script/Without Script/Scriptless way - (courtesy of Bloodbane)
Instead of using Jumpattack2/Jumpattack3, make 2 extra "FREESPECIAL" attacks.
In order for this to work you'll need to make use of the "CANCEL" command.
Let's see what the manual says...

cancel {start frame} {end frame} {hits} {sequence of inputs} {freespecial#}

~This command allows animation change by inputting sequence of inputs to certain freespecial. In other word, cancel. Obviously it's only for players.
~This command can be declared in any attack animations, jump animations and grab animations. Also it can be declared more than once in same animation for various cancels.
~{start frame} and {end frame} defines frames where sequence of inputs is accepted. Inputs entered before {start frame} and after {end frame} will be ignored.
~{hits} defines how many hits attackboxes in this animation must hit before cancelling is allowed. It doesn't matter whether the attacks are blocked or not. If you don't want to have this limit, just set it to 0.
~{sequence of inputs} defines input sequence required to activate the freespecial. The accepted values here is exactly same with 'com' command in Entity Files: Header Date above.
~{freespecial#} defines the freespecial to be played after input sequence is valid.
 
Now that we know how that works, let's apply it.
Add CANCEL to your primary jumpattack. Make sure it points to the desired FREESPECIAL or you'll be doing strange things in mid-air. Are you're using JUMPFRAME? If yes, set it so that the cycle only continues as long as you hit the enemy. Doing otherwise will have you slowly ascending to the heavens with every push of the (A) button. Thanks Nick!  ;D
Now All you have to do is repeat the process for your new (X amount of)  FREESPECIALs. Just make sure each CANCEL points to the next FREESPECIAL.
I.E. - Jumpattack--> Freespecial(X)--> Freespecial(Y)--> Freespecial(Z)--> Etc.
If this too seems like a pain in the behind you could always try...

The final method. Let's do this with script!: (Courtesy of Beastie)
use this animation script for changing anim -

void anichange(void Ani)
{// Animation changer
    void self = getlocalvar("self");

    changeentityproperty(self, "animation", openborconstant(Ani)); //Change the animation
}

Unfortunately, this is the method I know least about. once this is clarified I'll edit this post to explain in the newb friendliest way I possibly can. see you soon.  :D
 
As far as the first two methods, there's also the special3 animation.  It's an attack using your special button that's only available in the air.  The primary concern with this command is that when using it, your airborne momentum is stopped.  This is either useful or problematic pending on how your air chain is designed.  Generally best reserved for an aerial spike or a move with its own momentum built in.

Various dropv settings are probably preferred over jumpframe when setting up air chains.
 
The 2nd Non-Script/Without Script/Scriptless way - (courtesy of Bloodbane)
Instead of using Jumpattack2/Jumpattack3, make 2 extra "FREESPECIAL" attacks.
In order for this to work you'll need to make use of the "CANCEL" command.
Let's see what the manual says...

this method is what i've used in my Knights & Dragons mod, but it has a big problem; your airborne momentum is stopped when you begin cancelling into freespecials.

so i'll wait the clarified explanation for the script mod in order to implement it in my mods. thank you!  :)
 
Ive got multiple jump attacks/air combo implemented with cancels and using jumpframe for players to stay in mid air+dropv to keep enemies quite close to get the hits
 
bWWd said:
Ive got multiple jump attacks/air combo implemented with cancels and using jumpframe for players to stay in mid air+dropv to keep enemies quite close to get the hits

That's what I prefer to use, too. If you guys want a reference, here's a code snippet of the jumpattack cycle in ClaFan...

anim jumpattack
cancel 2 3 1 a freespecial7
cancel 2 3 1 a2 freespecial9
jugglecost 1
delay 7
attack1 0
jumpframe 0 1.2 1
offset  45  54
bbox  40  33  11  20
frame data/chars/fighter/3a.png
sound data/sfx/sword.wav
attack1  34  31  33  17  10  0  0  0  10
dropv 1.2 1 0
frame data/chars/fighter/2b.png
Attack1  0
frame data/chars/fighter/2c.png
frame data/chars/fighter/2c.png

anim freespecial7
cancel 2 3 1 a freespecial8
cancel 2 3 1 a2 freespecial9
jugglecost 1
delay 7
jumpframe 0 1.2 1
attack1 0
offset  45  54
bbox  40  34  11  19
frame data/chars/fighter/2c.png
sound data/sfx/sword.wav
attack1  33  37  35  17  10  0  0  0  10
dropv 1.2 1 0
frame data/chars/fighter/3b.png
Attack1  0
frame data/chars/fighter/3c.png
frame data/chars/fighter/3c.png

anim freespecial8
cancel 2 3 1 a freespecial7
cancel 2 3 1 a2 freespecial9
jugglecost 1
delay 7
jumpframe 0 1.2 1
attack1 0
offset  45  54
bbox  40  33  11  20
frame data/chars/fighter/3a.png
sound data/sfx/sword.wav
attack1  34  31  33  17  10  0  0  0  10
dropv 1.2 1 0
frame data/chars/fighter/2b.png
Attack1  0
frame data/chars/fighter/2c.png
frame data/chars/fighter/2c.png

anim freespecial9
jugglecost 1
delay 10
jumpframe 0 1 1
attack1 0
hitfx data/sounds/beat2.wav
offset  45  54
bbox  40  34  11  19
frame data/chars/fighter/3a.png
sound data/sfx/sword.wav
attack1  27  12  51  38  10  1  0  0  10
dropv -5 0 0
frame data/chars/fighter/14a.png
Attack1  0
frame data/chars/fighter/14.png
frame data/chars/fighter/14.png

As you see, it all starts with Jumpattack, but then cycles infinitely between Freespecial7 and 8 (as long as the attack hits!). Freespecial9 is used as a sort of "aerial finisher," and that is why all three jumpattacks can chain into it via Attack2. And like bwwd referenced, I use a jumpframe and dropv with matching values to insure the player can continue the aerial combo.
 
The dropped momentum is the reason why I prefer to use keyscript to make double jumps. You can see example of this in Castlevania Collab demo. Everyone (IIRC) uses keyscript for his/her double jump.

Same thing can be applied to make multiple jumpattacks.
 
can "NOAIRCANCEL" be set to individual chars and attacks instead of all. Some certain chars attacks need the no cancel effect to be used properly
while as the same char can also benefit from the cancel function for other moves. just a thought
 
That means you should use noaircancel 2 and set the cancel manually with keyscript or cancel command.
 
Back
Top Bottom