Showing posts with label Final Fantasy. Show all posts
Showing posts with label Final Fantasy. Show all posts
12 December 2009

RPG Maker XP Windowskins

Here are some RMXP windowskins. Clicking on the windowskin will redirect to the RPG Maker Times Resource Center, where you can view examples of these (and all the other) windowskins.I am not an artist, but like experimenting with different things, although I do find it easier to create RMVX windowskins than RMXP ones.

Final Fantasy IFinal Fantasy IX
Final Fantasy I RMXP WindowskinFinal Fantasy IX RMXP Windowskin
Parchment #1
Parchment 1 RMXP WindowskinI'll try and create some more RMXP windowskins as I feel inspired, or convert existing RMVX windowskins to RMXP format.
30 December 2008

Final Fantasy Mystic Quest Battlefield System Tutorial

FFMQ Battlefield Demo
Notice: As of 12 November 2009, this entry has been modified for use with RM2K3 (v1.08). It should be easy to adapt for earlier versions or RM2K. A demo is also available (as requested by Drake) from the panel on the right.

This tutorial teaches how to set up a multi battle system similar to the one used in Final Fantasy Mystic Quest, where you can clear out certain areas (represented by crossed swords in the game). It's a simple method that can easily be adapted for your game.

Knowledge Base

  • Common Events
  • Switches
  • Variables

Variables

Set up 3 Variables: Randomize, Num Battles and Battles Left. In this example, the variables are set to 1, 2 and 3 respectively.

Common Events

We will only need one Common Event for this (set up in the Database). Let's call it "Battle Check" and set its "Trigger" to "Call".

In the "Events Conditions":
  • Create a Conditional Branch (with an Else Handler) to check if the variable "Battles Left" is set to zero.
  • Under the Conditional Branch, create a message stating that the monsters have been cleared out.
  • Change the Switch "Cleared Out 1" to ON.
  • Then, under the Else Handler, create another message to display how many battles are remaining. We do this by adding the variable switch, \V[x], where x is the number of the "Battles Left" variable (in this case set to 3).
<>Branch if Var [0003:Battles Left] is 0
  <>Message:Monsters cleared out!
  <>Switch Operation:[0001:Cleared Out 1] ON
  <>
: Else Handler
  <>Message:Only \V[3] more battles left.
  <>
:End
<>

The Map

On the map (where you'd like the multi battles) to take place, we'll need to create several events. For this tutorial we'll only use one battlefield event, but you can modify it for more than one battlefield event.

Events


Inn Event
The first is called "Inn" for this tutorial. This is so that you can save or restore HP in between battles. Set the "Trigger Condition" to "Action Key" and the "Event Layer" to "Below".

  • Create a message saying, "What would you like to do?" or something similar.
  • Show Choices, with the options set as "Restore", "Save" and "Exit".
  • Under the "Rest Handler", set the screen tone to all zeroes with a wait time of 0.3s, Complete Healing, create a message that all HP and MP have been restored, and set the screen tone back to normal with a wait time of 0.3s.
  • Under the "Save Handler", open the Save Menu.
  • For the "Exit Handler", just leave blank.
<>Message:What would you like to do?
<>Show Choices: Rest/Save/Exit
: [Rest] Handler
  <>Tint Screen:[R000,G000,B000,S000],0.3 Sec (Wait)
  <>Full Heal: Entire Party
  <>Message:HP and MP Restored.
  <>Tint Screen[R100,G100,B100,S100],0.3 Sec(Wait)
  <>
:[Save] Handler
  <>Open Save Menu
  <>
:[Exit] Case
  <>
:END Case
<>

Battle Event
The next event is "Battle 1" (or something else to your liking), which is where the battles will take place until the monsters are cleared out. Set the "Trigger Condition" to "Touched By Hero" and the "Event Layer" to "Below Hero".

  • Change the variable "Randomize" to a random number between 1 and 3.
  • Next we will create 3 Condition Branch, each with a different number from 1 through 3. This is to make random monster parties. For this tutorial, we'll use the default Monster Groups: Plains 1, Forest 1 and Desert 1.
  • In the first Conditional Branch, which is based on the variable "Randomize" being set to the "same" as 1, start a combat with Plains 1 being set, with the "Defeat Handler" set to "Execute Custom Handler".
  • Under the "Victory" condition, set the variable "Battles Left" to subtract 1, then call "Battle Check".
  • Under the "Defeat" condition, set a message to display the final score, using the \V commands for the values stored in the "Battles Fought" and "Battles Left" variables. Also create a "Game Over" command here.
  • Finally, create a new page and make the &quout;Event Conditions" so that the Switch &quout;Cleared Out 1" is ON. This way, once all the monsters have been defeated there won't be any more.

Do the same thing with the other two Conditional Branches, changing the monster party and increasing the value of Randomize each time. The full code should look something like this:
<>Variable Oper: [0001:Randomize] Set, Rnd [1-3]
<>Branch if Var [0001:Randomize] is 1
  <>Enemy Encounter: Normal, Plains 1
    : Victory Handler
      <>Variable Oper:[0003:Battles Left] - , 1
      <>Call Event: Battle Check
      <>
    : Defeat Handler
      <>Message: Final Score
      :       \V[3] left out of \V[2]
      <>Game Over
      <>
    :END Case
    <>
  : ELSE Case
    <>Branch if Var [0001:Randomize] is 2
      <>Enemy Encounter: Normal, Forest 1
      : Victory Handler
        <>Variable Oper:[0003:Battles Left] - , 1
        <>Call Event: Battle Check
        <>
      : Defeat Handler
        <>Message: Final Score
        :       \V[3] left out of \V[2]
        <>Game Over
        <>
      :END Case
      <>
    : ELSE Case
      <>Branch if Var [0001:Randomize] is 3
        <>Enemy Encounter: Normal, Desert 1
        : Victory Handler
        <>Variable Ch:[xxxx:Battles Left] - , 1
        <>Call Event: Battle Check
        <>
      : DEFEAT
        <>Messg:Final Score
        :  :\V[3] left out of \V[2]
        <>Game Over
        <>
      :END Case
      <>
    :END Case
    <>
  :END Case
  <>
:END Case
<>

Set the "Event Graphics" to whatever you want for the Inn and Battlefield.


Pre-Define Event
The final event is to pre-define the starting variables.

Make a blank event in one corner with 2 pages. Set the "Trigger Condition" to "Auto-Start".

Page 1
In the "Event Commands":
  • Change the "Num Battles" variable to "Other" then the number of battles.
  • Change the "Battles Left" variable set to 5 (although you can increase or decrease this amount according to your preference).
  • Change the Switch "Battle Setup" to ON.

Page 2
Change the Switch (under "Preconditions") to "Battle Setup" and make sure the "Trigger Condition" is set to "Action Key". That way it won't keep repeating the event.


Modifications

Since this is only a one multi-battle event, you could easily add more by adding more variables (Battle 2, Battle 3, etc.) and changing the command preferences for each.

Rather than having an autostarting event that predefines the variables, you could make it a "Call Event" instead. That way, you can call it after a victory rather than having to rely on a switch to toggle it on/off.

You could also add a reward after all the monsters have been defeated, such as gold or a "special" item.
22 November 2008

Blue Mage Skill -- Random Target

This is an expansion of the Blue Magic tutorial, but instead of targeting monsters in sequence (i.e. starting with the first monster then going onto the next after that monster is slain) we can create a routine where the target is randomly chosen.

Knowledge Base

  • Switches
  • Forks
  • Skills
  • Events Commands


Setting Up

  • Create the Blue Magic system as normal.
  • Create a suitable Battle Animation (optional).
  • Set up 2 variables: Mon1 HP and Mon2 HP.
  • Set up 2 switches: Mon1 and Mon2.


Random Target Setup

For this tutorial, there will need be two monsters in the Monster Party, preferably two different ones. We'll be using one Slime and one Spider for the purposes of this tutorial. Create 3 pages in the Battle Events commands.

Page 1

Trigger: Switch Learning ON

<>Variable Ch:[V[0041]] Set, 1:Tangle Weed HP
<>Variable Ch:[V[0042]] Set, 2:Wyrd Vine HP
<>Variable Ch:[0001:Randomizer] Set, Randm[1*2]
<>FORK Optn:Varbl[0001:Randomizer]-1
<>Change Switch : [0041:Mon1]-ON Set
<>
: ELSE Case
<>Change Switch : [0042:Mon2]-ON Set
<>
:END Case
<>

This places the Slime's HP into one variable and the Spider's HP into another variable, and also sets up a random number between 1 and two. Then, if the random number is 1, set the switch for the first monster (the Slime) to ON, otherwise set the switch for the second monster (the Spider) to ON.

Page 2

Trigger: Switch Mon1 ON, Learning ON

<>FORK Optn:Varbl[0041:Mon1 HP]-0
<>
Messg:Learning failed...
<>
: ELSE Case
<>FORK Optn:1:Slime-ActionPsb
<>Select Face Graphic: Eras
<>Show Battle Anim.:Scan, 1:Slime(W)
<>Messg:Slime has no learnable skills...
<>
:END Case
<>Change Switch:[0041:Mon1]-OFF Set
<>Change Switch:[0021:Learning]-OFF Set
<>Variable Ch:[0001:Randomizer] Set, 0
:END Case

The first FORK Option checks to see whether the monster is dead, i.e. that its HP (from the variable) is zero, and give a "failure" message. Otherwise, scan for any learnable skills, using the pre-determined battle animation targeted on the Slime. After the scan, the the switches and "randomizer" variable are reset.

Page 3

Trigger: Switch Mon2 ON, Learning ON

<>FORK Optn:Varbl[0042:Mon2 HP]-0
<>
<>Messg:Learning failed...
: ELSE Case
<>FORK Optn:2:Spider-ActionPsb
<>Select Face Graphic: Eras
<>Show Battle Anim.:Scan, 2:Spider
<>Variable Ch:[xxxx:Randomizer] Set, Randm[1*3]
<>FORK Optn:Switch[0023:BodyBlow] - ON
<>Messg:\C[6]Body Blow\C[0] already learned.
<>Change Skill: Hero-Body Blow-> Forget
:ELSE Case
<>FORK Optn:Varbl[xxxx:Randomizer]-2
<>Messg:New skill learned...
<>Change Skill: Hero-Body Blow-> Memory
<>Change Switch: [0023:BodyBlow]-ON Set
<>
:END Case
<>
:END Case
<>
:END Case
<>Change Switch:[0042:Mon2]-OFF Set
<>Change Switch:[0021:Learning]-OFF Set
<>Variable Ch:[0001:Randomizer] Set, 0

The same principle applies here as on Page 2. The only difference is that the Spider has a learnable skill, in this case "Body Blow".


Final Note

This can be very time-consuming, as each monster in the monster party requires a separate page. To add more monsters, set up additional variables and switches for the additional monsters, add another FORK Option (with an ELSE Case), and follow the same procedures above.
21 November 2008

Blue Mage Skill -- Method I

The most common tutorial I'm asked for is for a "Blue Mage" skill. For those that don't know, it's a job class from the Final Fantasy series, where characters can learn enemy skills. Blue Mages were introduced in Final Fantasy V, which I absolutely love as much as I love the Blue Mage skill itself. I saw Momonja's tutorial from RPG2K Net (under redevelopment at the time of writing) on Blue Magic and decided to "tweak" it slightly and improve upon it.

So how do you emulate this job class?

Well, there are actually several methods. This is one of the methods on how to create a Blue Skill in RM2K/3.

Knowledge Base

  • Switches
  • Forks
  • Skills

Setting Up

Make a variable named "Randomize" (or something similar), which I'll refer to as 0001:Randomize.

Next, create a skill called "Blue Tech" (or something similar) in the Skills section of the Database. This will be referred to as 0001:Blue Tech (as a Switch). Also, create another skill/spell (for the monster) called, say, "Ooze" (referred to as 0002:Ooze).

In the Monsters tab, add the skill to the monster’s repertoire so that it will use it in battle.

Learning the Skills/Spells

In the "Monsters Party" tab, create a monster party with a single enemy, say a Slime.

Page 1
Change the "Blue Tech" Switch to ON, leaving the trigger alone.

<>Change Switch:[0001:Blue Tech]-ON Set

Page 2
  • Set the trigger as Blue Tech ON.

    <>Trigger:Switch[0001:Blue Tech]-ON

  • Create a FORK Option and set the Monsters to the Slime.

    <>FORK:Optn:1:Slime-ActionPsb

  • Inside this fork, erase the current face set.

    <>Select Face Graphic: Eras

  • Change the Randomize variable to a number between 1 and 2.

    <>Variable Ch:[0001:Randomizer] Set,Randm[1*2]

    This variable sets the difficulty of obtaining the skill. You can set its value to a higher or lower value, depending on the difficulty. Don't set the variable too high, unless you want to, otherwise it may take a while to acquire the skill/spell, which might kill the Blue Mage.

  • Add a message to indicate that the learning process is in progress. As an example:

    <>Messg:Learning\|...\|...\|...|\^

    The \| before the period is one of the "in-built" text command to delay for 1 second before viewing the next group of periods. The \^ is so that you don't have to press ENTER after the message is done.

  • Make another FORK, this time pointing to the spell/skill that can be learned from the monster and the switch to on. Check the ELSE box here too.

    <>FORK Optn:Switch[0002:Ooze]-ON

  • Under this FORK create a message saying that the spell/skill has already been learned.

    <>Mssg:Skill already learned!

  • Under the ELSE Case, create another FORK Option, using the "Randomize" variable and set it to 2.

    <>FORK Optn:Varbl[0001:Randomizer]-2

  • Under this FORK Option, create a message announcing that a new spell/skill has been learned.

    <>Mssg:Ooze skill has been learned.

  • Enable the Blue Mage to "Memorize" the spell by adding the new Tech Skill to the name of the monster's skill, i.e. "Ooze".

    <>Change Skill:*Hero*:Ooze->Memory

    *Hero* is the name of the character to give the spell/skill to.

  • Change the skill switch (Ooze) to on.

    <>Change Switch:[0001:Ooze]-ON Set

  • In the next ELSE Case, create a message stating that the attempt at learning the spell/skill has failed, and make the hero "forget" it.

    <>Mssg:Failed to learn the skill.
    <>Change Skill:*Hero*-Ooze->Forget


    Again, *Hero* is the name of the character who is the Blue Mage.

  • Under the second to last END Case, change the "Blue Tech" switch to off.

    <>Change Switch:[0001:Blue Tech]-OFF Set

  • Create similar, additional pages for each monster in the monster party if you add more monsters. Also, repeat the process for other monsters that you would like to have learnable skills/spells.

Finally, change the Hero skill in the Database to "Blue Tech" and set the Level at 1. This should be the only skill the hero possesses. All the "learned" spells/skills will now appear as they are learned.

Final Product

Below is the complete code:

Page 1
<>Change Switch:[0021:Blue Tech]-ON Set

Page 2

Trigger:Switch[0021:Blue Tech]-ON

<>FORK Optn:1:Slime-ActionPsb
<>Select Face Graphic: Eras
<>Variable:Ch:[0003:Randomizer] Set, Randm[1*2]
<>Messg:Learning\|.\|.\|.
<>FORK Optn:Switch[0041:Ooze]-ON
<>Messg:Blue Tech already learned!
<>
:ELSE Case
<>FORK Optn:Varbl[0003:Randomizer]-2
<>Messg:New skill learned!
<>Change Skill: Ooze->Memory
<>Change Switch:[0041:Ooze]-ON Set
<>
:ELSE Case
<>Messg:Learning failed...
<>Change Skill:Fenix-Ooze->Forget
<>
:END Case
<>
:END Case
<>Change Switch:[0021:Blue Tech]-OFF Set
<>
:END Case
<>

Modifications

As mentioned earlier, you can also increase the range of the "Randomize" variable to reflect the difficulty of obtaining the spell/skill. In the FORK Option, set the number to the highest number of the range and it will take the Hero several attempts before learning the spell/skill. As a general rule, the minimum value for the Randomize value should be 2 and the maximum should be 5. This way it doesn't appear as too difficult to acquire the skill/spell, otherwise it may become frustrating trying (and failing) to learn the skill for ages, and in the meantime the monster is whittling away the Hero's HP. The more powerful the skill/spell, the higher this number should be.

Another method is where certain monsters have multiple learnable spells/skills. To do this, add another FORK Option with a different number, spell/skill and switch, placing the spells/skills more difficult to learn with the higher numbers.

Another modification is randomly choosing a target for learning a skill or spell. By default, using this Blue Skill method will "scan" for learnable skills in sequence, starting with the first monster in the party. The way to do this is detailed in the Blue Magic Random Target.

Final Note

This might be very time-consuming, as it requires a lot of copy and pasting (one page per monster in the monster party), but it's fairly simple and it works! It could be considered more as an introduction and might easily be modified to a more effective method. You might consider using variables instead of switches, but that might be a little confusing and would need a lot of them.

One of the drawbacks with this method is that the monsters cannot attack the party while the Hero is learning the spell. In reality, the monsters are not going to wait until their spells/skills have been "stolen" from them.

Credits

Momonja - For his original Blue Magic tutorial, on which this entire tutorial is loosely based, and also for inspiring me to write my own. I can't actually take full credit for this guide, except for some of the "tweaks" I did do.
Related Posts with Thumbnails
Template Design "Perfect World" by SkinCorner