SaintJudas
Member
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.
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.