Jump Tutorial by - SephirothOWA
So, you played games like Final Fantasy VI and IX and
now you want to make a jump command for RM2K using the
default battle system. Right about now you're probably
saying to yourself, "A jump command? That is SO EASY!"
Well
If it is so easy, then why are you reading this
tutorial?
Anyway
this is about making a replica of the jump
command with RM2K to be as close as possible to the
original.
How will it work?
If you follow all the steps in this tutorial and do it
right, the way it will work in the end is that a hero
who is designated to use the jump command will in
battle jump. A few turns later, he (or she) will land
and attack all the enemies (because of the lack of a
show choice command, it can only attack ALL enemies).
The only little bug in this is that if you use the
jump command and everyone else in your party dies
(except the person who jumped) the end result will be
a game over. This can't be fixed due to the order in
which RM2K goes through it's battle (which is Input
commands - execute battle events - execute commands -
check deaths in between). You can play around to fix
this, but I think the way I improvise is the best.
Bear in mind, this will be time consuming to do as it
needs a lot of time to get it to work almost
perfectly. Anyway, onto the tutorial.
Step 1 - Make the skill and battle animation and
decide who will use it
1. Go into the database and make the skill "Jump" set
it to turn on the switch [0001: Jump] and click on the
box so it works only in battle. If you want it to cost
MP, set that too and have it play a jumping sound
effect if you want to.
2. Give this skill to the character that you want to
be able to use it (it is highly advised that you only
let one person use this command to keep it simple).
We'll use Alex for the example.
3. Go into the hero tab and give Alex this skill (for
effect, change the slot name to "Jump" too). Also,
make a small battle animation in the Battle Animation
tab.
Step 2 - Make the jump skill actually WORK
1. Go into the database under the monster tab. Create
a new page set to work when the switch named "Jump" is
on.
2. I hope you're ready to do math because the first
step here is to set a variable equal to the total
number of experience that you would get for the battle
(this will unfortunately need to be edited for each
individual monster party so sorry
and you'll
understand why this is needed later). For example, the
first monster party is a SlimeX2. A normal slime will
give you (according to default) 3 EXP points. Since
there are 2 slimes, the total EXP for the battle will
be 6. So set a variable [0001: Total experience] = to
the total EXP for each individual monster party (yes
this will be some work).
3. Next, remove Alex (or whoever you want to use it)
from your party.
4. Then, have it increase another variable [0002: Jump
Turns] by 1.
5. Then, have it set yet another variable [0003: Jump
Max] to a random number between 3 and 5 (or whatever
you want the degree of randomness to be).
6. Next put a fork stating that if these two variables
[0002: Jump Turns] and [0003: Jump Max] are equal, it
will execute the rest of the event. All of the
following commands will be within this fork.
7. First you'll need to add Alex back to your party so
do that. Next, you'll need to check and see if each
enemy is alive and attack it accordingly.
8. Set another variable [0004: Enemy HP] to Slime 1's
HP. Next put another fork stating that if it's 1 or
above it will execute the next set of events.
9. Within this fork have it show the battle animation
on the slime.
10. Then, insert the damage algorithm here (via [0005:
Jump Damage]). Mine was: Hero Attack + Hero Agility +
Rnd 1-50 - Enemy Def - Rnd 1-25.
11. Now it's time for some REAL fun. Now we have to
determine which case will occur from the attack and
display the proper message.
12. Insert a fork stating that if the jump damage
variable ([0005: Jump Damage]) is less than 0, it will
change it to 1.
13. Now check to see if the jump damage is greater
than the enemy's HP. This will be done by checking to
see if [0005: Jump Damage] is greater than [0004:
Enemy HP]. If so put in a message like "Alex lands and
attacks. Does \v[5] damage. Slime Collapses." In the
else case, put a message like "Alex lands and attacks.
Does \v[5] damage." The purpose of this is so it looks
nice. I mean it would look pretty weird if you say you
just attack and all of a sudden the enemy dies. This
also tries to mimic the way RM2K would display the
message so it looks better.
14. Now copy everything that you put from step 8 - 13
and paste it again within the fork you made in step 6
(sound confusing?). However, edit everything that says
"Slime 1" and change it so it does it for "Slime 2".
15. After that fork, simply turn off the Jump switch
[0001: Jump] and change the jump turns variable [0002:
Jump turns] to zero.
Congratulations, you have just made the jump command.
Wait a minute? You said that you're REMOVING the
character from the party? What if the battle ends and
Alex is still jumped? What if Alex is the only person
alive in the party? I don't want the player committing
suicide because I know if they use the jump, it's an
automatic "Game Over". Help me oh great One Winged
Angel.
Ok, so the end was a LITTLE exaggerated. Anyway
Step 3 - What if I kill everyone and Alex is still
jumped?
And that's a very good question indeed. This is the
simpler of the two problems that arise with this
system.
1. Head on over to your common events tab and create a
common event that is set to parallel process when the
switch [0001: Jump] is on.
2. Within that event add Alex back to your party.
3. Then, increase his EXP by [0001: Total Experience]
(hey, don't we remember doing this?)
4. Finally set variable [0002: Jump Turns] to 0 and
turn switch [0001: Jump] off.
Step 4 - What about that dreaded, "If everyone else
dies I'm screwed" bug?
Well, I said that if the character is in the middle of
the attack and everyone else dies, the end result will
be a game over. However, we can make it so it checks
to see if Alex is the last person alive in the party
and if he is, we won't let him use the jump skill.
1. First, you'll need to head back to the common
events tab and make another parallel process common
event. In it put a fork stating that if Brian (let's
assume he's a playable character) is in the party, it
will turn on another switch [0002: Brian In] on. In
the else case, turn this switch off. Repeat this for
all the playable characters in your party.
Why the hell did I just do that?
Well, the fork conditions in the battle events cannot
check to see if a particular character is in the
party, so we need a system of switches to see if a
specific character is in the party. Trust me, you'll
probably be using this little system of switches
somewhere else for your in-battle events. Now to
finish this all up
But what about if you use a fork to check for a hero's
possible behavior?
Why yes, that WOULD work but there is one slight
problem. Possible behavior doesn't just mean they have
at least 1 HP. That also means if they are able to
attack. If a hero is in your party, is alive, but is
paralyzed, they wouldn't have a possible behavior so
it would mess up this system.
2. Now this is optional. If you want it to display
gray text if the hero can't use the jump skill, do
this step. If not, continue onward. Go to the
Conditions tab and make a copy of the Silence command.
Paste it into a new condition, but change the name to
"Normal" and set it to the same color as the "Normal"
condition usually has (the default is a light blue
color). Put something logical in for the text at the
bottom (even though you probably won't get to see it
in battle).
3. Head back over to that monster tab and create
another page in the slime battle event. Have it occur
every turn.
4. Have it set variable [0006: Party Members] to zero.
Also have it set [0007: Fallen Members] to zero.
5. Now check to see if the switch [0002: Brian In] is
on. If it is
6. Increase variable [0006: Party Members] by one and
then set variable [0008: Member HP] to Brian's HP.
7. Use another fork to see if it's above 1 and if it
isn't, increase variable [0007: Fallen Members] by
one.
8. Repeat steps 4 - 6 for each playable character in
your game.
9. Now we get to do a fork conditions to see if
variable [0006: Party Members] is equal to variable
[0007: Fallen Members]. If it is and you completed
step 2, inflict Alex with that condition and in the
else, cancel it. If you didn't complete step 2, simply
have him forget the jump skill and in the else, have
him memorize it.
10. Because HP changes can occur outside of battle
too, it is recommended that you go back to the common
events tab and make yet another common event and
duplicate this battle event to a parallel process
event. You'll have to manually do a lot of it because
RM2K won't let you copy and paste a battle event to a
regular one.
Now you have the jump system
for one monster party
that is.
Step 5 - The "Why the hell did I even bother making
this" step (AKA: Copy, paste, edit)
So now that you finally have a system, you'll have to
take these two battle events, copy and paste them to
every single monster party that you have. The event
that you made in step 4 will work just fine if it's
copied and pasted to every single monster party and it
will be easy to do. However
the event in step 2 will
have to be edited
for EVERY single monster party. This
is where the REAL pain begins and you'll consume the
most time. I'm not going to enumerate every single
step that you have to edit because I'm assuming that
if you were able to comprehend what I was doing up to
this point, you know enough about RM2K to know what
you have to edit. However, I'll help you along the
way
You can start by copying and pasting that event into
every single monster party. It's a start. The big
thing that will be edited are the forks that occur
when the jump turns = the jump max and it checks each
monster to see if it's alive and attacks it if so. In
cases where you have more than 2 monsters in a party,
you'll have to add another fork condition (luckily,
you can just copy and paste one you already made and
just edit it). The variable changes (especially the
one that checks the enemy's HP for determining which
message it should show) will have to be fixed for each
enemy and so will the target of the battle animation.
Also, as you go between different monster parties (ie:
From slimes to Bats) you'll have to change the name of
the monster in the message. Of course, you could opt
not to use the monster name in the message, but this
is to try to get it to look at close to what it would
normally say anyway. Hey, it's a lot of work, but at
this point, you're ALREADY editing the event to high
hell so what's a little more work for you? It's time
consuming to complete, but it's worth it as your
creation will resemble what it would normally say and
thus it would look more natural and overall be
presented better.
Final Notices
While this system, at a glance, may seem to be very
easy to do, it wasn't. It was a major pain in the @$$
to get it to work right. With many hours of work, I
did it. I feel that I am the first one who has
implemented such a system into their game and I have
no problems sharing it with everyone else. Some credit
would be very nice, however. I didn't spend all the
days coming up with this system, perfecting it, and a
good 2 hours typing up this tutorial for nothing you
know. In your game I would like it if you either put
my name in the credits or if you included a readme
file with your game stating that you got this system
from me. If you run into any problems and would like
some help, you can either find me on ezboard by the
name SephirothOWA or you can e-mail me at
Vileplume45@yahoo.com and I will try to help out.
And I reserve the right to keep all those bland jokes
within this tutorial for the sole reason that it is
now 1 AM in the morning and I'm not sleeping because
I'm trying to help you people out.