Gw Temp

Menu

Tutorial - 'Limit Breaks and Desparation Attacks' by AzureFenrir

An item about RPGMaker 2000 posted on

Blurb

In this tutorial, AzureFenrir shows how to make classic Final Fantasy-style Desparation Attacks and Limit Breaks.

Body

Limit Breaks and Desparation Attacks


The old AzureFenrir is back! You shall read this tutorial or I shall hold GW hostage and reduce MDN's post count by...oh wait, I made that joke already. Never mind.

THINGS THAT YOU NEED TO KNOW:

A Bit of Experience With and Knowledge of RM2K Commands
Using and Manipulating Switches
Using and Manipulating Variables and Random Numbers
Fork Statements
Battle Event Commands


Anyway, this tutorial shows how to implement two(that's right! Two! Whoo-hoo!) different power breaker attacks. They are:

Desparation Attacks - When Hero's HP drops beneath a certain percentage, there's a chance that he/she will execute a super-powerful attack.

Limit Breaks - When Hero's limit variable goes up to a certain number, a "Limit!" command will replace "Attack."



Desparation Attacks (RM2K, RM2K3)

SWITCHES AND VARIABLES:

1 Temporary Variable - "Temp"


Desparation Attacks are the easiest to implement (but still time-consuming nonetheless), since you don't need switches or variables to maintain the event - you can simply use one battle event.

First, we need a battle condition that will prevent the hero from attacking after his/her desparation attack. Therefore, go to the conditions tab, add a new "Normal" condition, and make it disable all actions ("No Action Allowed") and expire after 1 turn. Make sure to set all the probability boxes to 100%!

Next, go to a monster group, and add a new battle event. We want the hero to use the desparation attack only when he/she has very how HP, right? So set the trigger condition to "Hero's HP is between 0% and 12%." Add the trigger condition "Hero uses the Fight battle command," since the hero can only perform his desparation attack if the player chooses "Fight." (FF3U/FF6J)

So...let's give Hero a 1/12 chance of actually performing his desparation attack. Goto that battle command page, and add a Variable Operation to set the "Temp" variable to a random number between 1 and 12. Then, add a Conditional Branch to check if "Temp" is equal to, say, 8. If it is, then the player will be lucky enough to see the desparation attack! Yes! Kill those bastards! Hahaha!

Anyway, inside this Conditional Branch, add another Conditional Branch to detect if Monster #1 is targetted. If it is, then show a cool battle animation of the hero performing some cool attack, and do lot of damage to Monster #1. Repeat this for every monster...or, if you wish, you can just have the attack attack everybody.

Here's the code:

Trigger: Hero [Hero]'s HP between [0-12]; [Hero] uses the [Fight] command
<>Variable Oper: [0008:Temp] Set, Rnd [1-12]
<>Branch: Var [0008:Temp] is 8
    <>Change Cond: Hero Normal Inflict
    <>Branch 1:Slime Targetted
        <>Show Battle Animation: Super Animation, 1:Slime (Wait)
        <>Variable Oper: [0008:Temp] Set, Hero Attack
        <>Variable Oper: [0008:Temp] *, 4
        <>Comment: This code will do damage equal to 4x the hero's attack rating
        <>Change Monster HP: 1:Slime's HP V[0008] Remove
        <>
    : End
    <>Branch 2:Sylph Targetted
        <>Show Battle Animation: Super Animation, 2:Sylph (Wait)
        <>Variable Oper: [0008:Temp] Set, Hero Attack
        <>Variable Oper: [0008:Temp] *, 4
        <>Comment: This code will do damage equal to 4x the hero's attack rating
        <>Change Monster HP: 2:Sylph's HP V[0008] Remove
        <>
    : End
: End

Repeat this page for every hero in the party and for every monster group.



Limit Breaks

SWITCHES AND VARIABLES:

1 Temporary Variable - "Temp"
3 Temporary Variables per Hero - "HeroLimitBar", "OldHeroHP", "NewHeroHP"


Limit Breaks are pretty easy to implement. It just requires you to maintain a running variable to store the hero's "Limit Amount."

First, before you make this kind of limit break, you need to make a battle condition that will prevent the hero from attacking after his/her Limit Break. Therefore, go to the conditions tab, add a new "Normal" condition, and make it disable all actions ("No Action Allowed") and expire after 1 turn. Make sure to set all the probability boxes to 100%!

For simplicity, we'll increase the limit bar by 1 "point" every time an enemy damages the hero. To do this, add a new event and have it trigger every turn (Turn Elapsed [1x]). Now, use a variable operation to set "NewHeroHP" to the hero's current HP. Add a conditional branch that checks if "OldHeroHP" is greater than "NewHeroHP." We know that if "NewHeroHP" is smaller than "OldHeroHP" (the hero's HP last turn), then the hero has been damaged this turn. Therefore, inside this conditional branch, add one point to "HeroLimitBar."

After this conditional branch, set "OldHeroHP" to the Hero's current HP.

Now, if this "HeroLimitBar" exceeds a certain value, then the hero has his limit break, right? That means that we have to replace "Fight" with "Limit!" But...there isn't a "Change Battle Commands" in the battle events tab! What do we do?

We use Common Events, of course!

Add a new common event called "ChangeHeroLimit" and have it remove all of Hero's battle commands. Then, have it add all of his/her battle events in order, except instead of the "Fight" command, we'll add "Limit!" After that, add another common event called "ChangeHeroAttack" and have it change the hero's first battle command back to attack.

Now, go back to our battle event. Add another Conditional Branch and have it detect whether "HeroLimitBar" is equal to a certain value (say...10). Inside this conditional Branch, play a cool triumphant sound effect, and call the "ChangeHeroLimit" common event. Finally, add one to "HeroLimitBar" so the sound effect doesn't play any more. The hero has finally achieved his limit break!

Now, add another battle event, set its condition to "Turns Elapsed [0]," and have it initialize "OldHeroHP" to the heo's current HP.

For the actual limit break attack, we need another battle event with the trigger "[Hero] uses the [Limit!] command." Inside this event, inflict the "Normal" Condition that we made earlier on the hero so that he doesn't attack again after performing his limit break.

Then, add a Conditional Branch to detect if Monster #1 is targetted. If it is, then show a cool battle animation of the hero performing some cool attack, and do lot of damage to Monster #1. Repeat this for every monster...or, if you wish, you can just have the attack attack everybody.

Finally, call the "ChangeHeroAttack" animation to get rid of the "Limit!" command, and set the "HeroLimitBar" variable to 0. The Hero will have to earn his next limit break :).

Code Summation (Common Events Omitted):

Trigger: Turns Elapsed [1x]
<>Variable Oper: [0009:NewHeroHP] Set, Hero HP
<>Branch: Var [0009:NewHeroHP] is V[0010:OldHeroHP] Less
    <>Variable Oper: [0007:HeroLimitBar] +, 1
    <>
: End
<>Variable Oper: [0010:OldHeroHP] Set, Hero HP
<>Branch: Var [0007:HeroLimitBar] is 10
    <>Play Sound: LimitBrk
    <>Call Common Event: ChangeHeroLimit
    <>Variable Oper: [0007:HeroLimitBar] +, 1
    <>
: End
<>

Trigger: Turns Elapsed [0]
<>Variable Oper: [0010:OldHeroHP] Set, Hero HP
<>

Trigger: [Hero] uses the [Limit!] command
<>Change Cond: Hero Normal Inflict
    <>Branch 1:Slime Targetted
        <>Show Battle Animation: Super Animation, 1:Slime (Wait)
        <>Variable Oper: [0008:Temp] Set, Hero Attack
        <>Variable Oper: [0008:Temp] *, 4
        <>Comment: This code will do damage equal to 4x the hero's attack rating
        <>Change Monster HP: 1:Slime's HP V[0008] Remove
        <>
    : End
    <>Branch 2:Sylph Targetted
        <>Show Battle Animation: Super Animation, 2:Sylph (Wait)
        <>Variable Oper: [0008:Temp] Set, Hero Attack
        <>Variable Oper: [0008:Temp] *, 4
        <>Comment: This code will do damage equal to 4x the hero's attack rating
        <>Change Monster HP: 2:Sylph's HP V[0008] Remove
        <>
    : End
<>Call Common Event: ChangeHeroAttack
<>Variable Oper: [0007:HeroLimitBar] Set, 0
<>

Common Event: ChangeHeroLimit
Trigger: Call
<>Change Bettle Commands: Hero All Remove
<>Change Bettle Commands: Hero Limit! Add
<>Change Bettle Commands: Hero Jump Add
<>Change Bettle Commands: Hero Skill Add
<>Change Bettle Commands: Hero Blessing Add
<>Change Bettle Commands: Hero Item Add
<>Change Bettle Commands: Hero Escape Add
<>Comment: Change these commands to reflect those for your hero
<>

Common Event: ChangeHeroAttack
Trigger: Call
<>Change Bettle Commands: Hero All Remove
<>Change Bettle Commands: Hero Fight Add
<>Change Bettle Commands: Hero Jump Add
<>Change Bettle Commands: Hero Skill Add
<>Change Bettle Commands: Hero Blessing Add
<>Change Bettle Commands: Hero Item Add
<>Change Bettle Commands: Hero Escape Add
<>Comment: Change these commands to reflect those for your hero
<>


There, I hope that that helped. I'm too tired to insert my usual witty/stupid conclusion.

- AzureFenrir