Gw Temp

Menu

Tutorial - 'Jump Tutorial' by AzureFenrir

An item about RPGMaker 2000 posted on

Blurb

A RM2K3 tutorial in which AzureFenrir discusses the coding required to make a Jump command.

Body

Jump Tutorial (RM2K3)


AzureFenrir wrote this tutorial! This tutorial is mine, Mine, MINE! You cannot steal it! No! Never! Stop stealing my tut...

Sorry, I'll cut the lame joke right now.

Just in case if you've never played Final Fantasy, jump is a common FF dragoon attack where the dragoon wastes one turn to "jump", and then attacks the targetted enemy for double damage.

THINGS THAT YOU NEED TO KNOW:

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


Jump seems like a very difficult attack to implement in RM2K3 due to the one turn attack pause, however, by using a nice trick involving conditions, a jump command could easily be implemented. After properly implementing the one-turn delay, the rest is quite easy.

SWITCHES AND VARIABLES:

1 Switch - "Jumping"
2 Temporary Variables - "Monster", "Count"


First, add a new condition, and name it "Jump." Give it a priority of 70, make the condition abate aftter 1 turn, and set the action restriction to "No Action Allowed." Make sure to give it a blank battle animation. This condition will prevent the hero from attacking when he is "jumping." Don't forget to make the condition "Evade All Attacks" so the hero can't be damaged when he is jumping! Next, go to the "Battle Layout" page and click "Set" under "Default Battle Commands." Add a new Battle Command called "Jump," and give it and "Attack" archetype.

Now, go to the M. Groups page and add a new page. Make the page trigger when Zack uses the "Jump" command. This page will contain the command necessary for the hero to "Jump."

First of all, we want to know what enemy the hero is targetting. Therefore, add a "Conditional Branch," and set the condition to when Monster "1: Slime" (or whatever monster 1 is) is the current target. Inside this conditional branch, set the variable "Monster" to 1. Repeat this for every monster, and make sure to set "Monster" to the monster's ID (For example, if the monster is "3: Fafnir," set the variable to 3). This will store what monster is being attacked so that when the hero lands, he lands on the correct monster.

Now, the hero can't attack while jumping, right? Therefore, we should give the hero the "Jump" condition. Therefore, add a "Change Character Condition" after the Conditional Branches, and have it add "Jump" to Zack (and ONLY Zack. Make sure that you do not select "Entire Party" by mistake!)

So...what about when the hero crashes down on the enemy, sending fatal sparks of oblivion from his/her enchanted dragoon spear? Well, we have to change the "Jumping" switch to ON so that RM2K knows that Hero needs to come down next turn. Thus, add a Switch Opeation, and have it turn the "Jumping" switch ON. Then, set the "Count" variable to -1 - we will use this to count the # of turns that the hero spent jumping.

Finally, show a cool animation where the hero "jumps" into the upper atmosphere, ready to strike the enemy on the next turn!!!


Of course, if the hero jumps, he needs to come back down, right? To accomplish that, add another page to the battle animation. This time, set the event condition to Switch "Jumping" - ON, Turn Elapsed 1x0 (yes, both of them). This will make the event run every turn as long as "Jumping" is still ON.

First, add a Variable Operation to the damage page and have it increment the "Count" variable by 1. This will count the number of turns elapsed so that the hero comes duwn after exactly one turn. Next, add a conditional branch and set its condition to when "Count" EQUALS 1. This is where our damage and stuff will go.

Inside the conditional branch, add another conditional branch that activates if the variable "Monster" is equal to 1. Inside this conditional branch, show a battle animation of the hero jumping on the enemy, and then returning to position. Remove the "Jump" condition and damage the monste appropriately. Remember that the normal damage algorithm is:

(Hero Attack / 2) - (Enemy Defense / 4)

Therefore, a sample jump damage lgorithm would be:

<>Variable Oper:[0002:Count] Set, Hero Attack
<>Variable Oper:[0002:Count] *, 4
<>Variable Oper:[0002:Count] -, 1: Slime Defense
<>Variable Oper:[0002:Count] /, 4

This would do a bit more than double the normal attack damage to the monster. You can reuse the Count variable here if you like - we are not using it anymore. You could also add the 80%-120% variance if you'd like:

<>Variable Oper:[0002:Count] *, Rnd[80-120]
<>Variable Oper:[0002:Count] /, 100

You should repeat this for every monster that you have. Just remember to change the monster that the hero is attacking!

Finally, make sure to turn the "Jumping" switch OFF...and viola! There's your Jump command! If multiple heroes can use the command, then you'll have to repeat this for every hero. Be sure to use another set of switches and variables for every hero!

Your battle pages should look something like this:

Page #1:
Trigger: [Hero] uses the [Jump] command
<>Branch: 1:Slime Targetted
    <>Variable Oper: [0001:Monster] Set, 1
    <>
: End
<>Branch: 2:Sylph Targetted
    <>Variable Oper: [0001:Monster] Set, 2
    <>
: End
    <> Comment: Repeat for evert monster...
<>Change Cond: Hero Jump Inflict
<>Switch operation: [0001:Jumping] ON
<>Variable Oper: [0002:Count] Set, -1
<>


Page #2:
Trigger: Switch [0001:Jumping] ON; Turns Elapsed [1x]
<>Variable Oper: [0002:Count] +, 1
<>Branch: Var [0002:Count] is 1
    Branch: Var [0001:Monster] is 1
        <> Variable Oper: [0002:Count] Set, Hero Attack
        <> Variable Oper: [0002:Count] *, 4
        <> Variable Oper: [0002:Count] -, 1: Slime Defense
        <> Variable Oper: [0002:Count] /, 4
        <> Show Battle Animation: Hero Jump Land, 1:Slime (Wait)
        <> Change Monster HP: 1:Slime's HP V[0002] Remove
        <> Change Cond: Hero Jump Remove
        <>
    : End
<>Branch: Var [0002:Count] is 1
    Branch: Var [0001:Monster] is 2
        <> Variable Oper: [0002:Count] Set, Hero Attack
        <> Variable Oper: [0002:Count] *, 4
        <> Variable Oper: [0002:Count] -, 2: Sylph Defense
        <> Variable Oper: [0002:Count] /, 4
        <> Show Battle Animation: Hero Jump Land, 2:Sylph (Wait)
        <> Change Monster HP: 2:Sylph's HP V[0002] Remove
        <> Change Cond: Hero Jump Remove
        <>
    : End
    <> Comment: Repeat for evert monster...
    <>Switch Operation: [0001:Jumping] OFF
    <>
: End


And there's your Jump command :). Insert Witty Conclusion Here.