Monday, March 2, 2020

RPG Maker MV Ideas

WARP SPELL
Warp will be a magic category rather than a spell. The spells will be the destinations. You will gain new destinations "spells" as you visit more places.

CHARACTER CUSTOMIZATION like BREATH OF FIRE III MASTER SYSTEM

Introduction
In Breath of Fire III, each character has their own natural stat growth. Players can customize their characters by modifying their character's stat growth by accepting a master. Each character can have one master at a time. Each master offers different modifiers to the a character's stat growth at level up. For instance, a hypothetical "Master Greg" may offer a +1 to strength and a -1 to intellect.
You will need several Switches, Variables and at least one common event; It will be a BIG common event.
NOTE: This master system can just as easily be called something else, like an alternate class system for instance.


Adding or Removing a Master
  • Required Assets
    • 1 Variable for each player character; "Chara A's current Master"
    • 1 Event for each NPC master somewhere in the game or a total of 1 Common Event with a method of calling the Common Event, such as an item or spell.
     When character accepts a master, an NPC event will check to see if the character already has a master or not. If not, the NPC event will add the master to the character. If the character already has a master, the event will offer you the option to change masters. If you agree, the event will assign the new master to the character.
     You would need a means to track the masters assigned to your characters.
    To track your masters, you can make a Variable for each character. The variables will be called Character A's master, Character B's Master, Character C's Master, etc. When adding a master, set a number to that variable: 1, 2, 3, etc. For your reference, make a table of the masters and a number for each. Master Greg will be 1, Master Tina will be 2, etc. If Character Joe agrees to have Master Greg, you will set the variable "Joe's Master" to 1.
     All NPC events should have the option to stop learning from a master. If the player chooses this, set the variable "Character A's Master" to 0.

Applying the Masters Modifiers to the Character
  • Required Assets
    • 1 Common Event
    • Numerous Variables; as many as 27 for each player character
      • 1 Variable for each PC character "Chara A's Current Level"
      • 1 Variable for each PC character "Chara A's New Level"
      • 1 Variable for each PC character "Chara A's # levels gained"
      • 1 Variable for each PC character for each stat "Chara A's current STAT" (x8)
      • 1 Variable for each PC character for each stat "Chara A's new STAT" (x8)
      • 1 Variable for each PC character for each stat "Chara A's STAT difference" (x8)
    • Numerous Switches:
      • 1 Switch for each PC Character "Chara A levels up"
    Summary: One way to accomplish this character customization system is to have a global event (rather, a common event) that constantly checks to see if your characters have leveled up. If the common event determines that a character has leveled up, it applies the modifiers.
    Method: To have the common event check to see if your characters have leveled up, make a variable for each character called "Character A's Current Level." Set that variable to match the character's current level. Your common event is a parallel process. Create a loop. Have a conditional branch check to see if a switch called "Character A Levels Up." If this switch is off, have a conditional branch compare Character A's current level to the number stored in the variable "Character A's Level." If the number is the same, tell the game to wait x frames and it will repeat these checks continuously. If the number is not the same, you can turn on a Switch "Character A Levels UP".  Have the event check how many levels different (in case the character gains multiple levels from one fight). To do this, you'll need 3 variables. The first 2 will be "Character A's Current Level" and "Character A's New level." Save the difference in the third variable called "Character A's Level Diff." The number of levels will later be applied to the number of modifiers your character is currently assigned to.
    Next, the common event will check to see what master is assigned to your character. If "Character A's Master" is = to 1, it will apply the modifiers of master 1. Use the change character attribute option to increase/decrease each stat by the number associated with the master.
    What if your master has a penalty that exceeds your character's growth? The goal is not reduce previously earned stats. The goal is to only affect the stats gained at level. Earned stats will remain the same, not decrease. For example, Character Joe gains 1 intellect at level 20, but Master Greg has a modified of -2 for intellect. You don't want to reduce Greg's intellect by 2, just 1.
    This means you will have to have the event store the characters stats to a different variable for each of their stats for their current level and then for their new level. Example: "[v0001] Joe's Current Intellect" and "[v0002] Joe's new Intellect." Then have the common event compare these variables and store the difference in another variable, "[v0003] Joe's intellect diff." If the difference in Joe's intellect is 1, and Greg's modifier is -2, you only want to have the game determine if Joe's growth is greater or less than Greg's modifier. Yes, make variables for each of greg's Modifiers. If Greg's modifier is greater than or equal to Joe's growth, subtract 2 from Joe's intellect. If Joe's growth is less than Greg's modifier, subtract Joe's growth from Joe's intellect.
    Before applying the modifiers, have the game check the "Character's level difference" variable. If the difference is 1, apply the modifiers as above. If the difference is 2 or greater, you'll want to use a loop to apply the modifiers multiple times. Each time the event gets to the end of the loop, subtract 1 from the variable "Character A's Level difference." Then have the event check to see if the variable "Character A's Level difference" is greater than 0. If yes, repeat the loop. If no, break out of loop.
    *NOTE: If the character gains multiple levels from one battle, there is no way for the event to accurately apply negative modifiers without a possible consequence of reducing previously earned stats. As a result, a character's stats can decrease rather than remain the same. To avoid this...
    If the event determines that the character's difference in level is 2 or greater, you'll want to apply negative modifiers differently. Have the event apply all the positive modifiers during all the loops. Then, apply the negative modifiers just once after breaking the loop. As a consequence, the character can retain stat points that they should have lost. Players can possibly exploit this flaw, but it's better to let them have a freebie than to take away something they've earned.
    After the common event has done all this work, tell the common event to record Joe's new level in the variable Joe's Current Level and have the variable record all of Joe's new stats in the variables for his Current Stats.