Have you ever played Breath of Fire III? In this game, you can assign one master to each character in your party. When your character levels up, their stat growth is modified by the master.
In Super Mario RPG, Legend of the Seven Stars, when your characters level up you have the choice of a stat bonus, and you modify your characters stats based on this bonus.
In Final Fantasy VI, you can equip an Esper to each character. When you level up, your stats are modified by the bonus from that Esper.
All of these ideas sound like fun, right? Can you do it in RPG Maker? I think you can! This post isn't a step-by-step guide. It's an explanation of how the idea might work and what it would take to do it.
First, create a common event. If you're unfamiliar, the common even is a global event. Unlike a regular event on a map, a common event is programmed in the database and can be triggered from any screen in the game. So, what is the triggering condition? It's when the game detects that a character's level has increased. How do we get it to do that?
Second, you'll need lots of variables. If you don't know how variables work, you should really play with them until you figure them out! Make a variable and call it Hero A's old Level. You need one of these variables four each hero. Hero B's old Level, Hero C's old Level, etc. You'll actually need two of each! One will be Hero A's new level and one will be hero A's old level. I don't want to get too far ahead of this process, but what we'll later do is ask the game engine to remember the hero's old level as compare it to the hero's new level, and if there's a difference, then that will mean the hero has leveled up and we'll have trigger a specific event where we can process the stat changes.
Preparation note: by default, all variables in a new game in RPG Maker are going to start at 0. So, you manually have to use a regular event somewhere in your game to set these Hero X's old Level variables to 1 or to equal each hero's levels within the first map or room of your game.
Question for you about your method: do you want your game to trigger the common event or do you want the common event to be a parallel process? A parallel process is always running, and so I think making too many parallel processes will slow down the game, so you'll want some other way to have the game regularly compare the variables for Hero X's new Level and Hero X's old Level.
One way I think this can work is using the events inside of the monster groups. Every time the hero goes into a battle, you'll want to go into the monster groups page and toggle on a switch party was in a battle. That's it. Now, you'll need a common event that is triggered by this switch being ON. The common event is going to compare all the levels of all the characters. If there is a change, then we'll go into a new process. If there is no change, we'll turn OFF this party was in a battle switch.
So that is the set up!
This next part gets more complex. The question is how complex do you want it?
First, let's talk about how RPG Maker tracks character or actor stats. I speculate that if you open the database, whatever the stats show in the actors / character page, no matter what you do, those will be the stats of your character when they level up. Essentially, every time the character levels up, their stats will change to match whatever shows in the database. Therefore, the stats will effectively be reset or refreshed upon the characters' level up. Therefore, we will need to track the hero's cumulating stat changes using more variables, and then manually apply them using a common event whenever the character levels up. Sounds like a blast, right!
You'll need variables: Hero A's HP, Hero A's MP, Hero A's Attack, Hero A's Defense, Hero A's Intellect, Hero A's Speed, etc. Right? This is one set! Each character will need their own separate set of variables. Ugh!
More variables! OK, so what is the mechanism for your players getting to choose how their stats change? Maybe you have an NPC in the world who gives the character a blessing of the warrior, or mage, or thief. Skyrim stones reference anyone? Create a single variable for Hero X's Blessing. Make one for each hero! Now, you might have ten blessings in your game. Or twenty. Whatever. So, you'll need a list to track each blessing! I like to use the Notes or Comments feature in the events. If you've overlooked this feature, you can write yourself a note inside an event! It's great for this sort of thing because you don't have to track it in a separate document file (but also do that!). You'll need to use the comment feature to itemize each blessing and assign it a number. So for example, the Fighter Blessing is a 1, the Mage Blessing is a 2, and the Thief Blessing is a 3. Etc. What, did you think the RPG Maker Engine would do this for you? Nope! You need to track this because it's entirely custom!
Method: Back to our common event! If the common event identifies that a hero's level has changed, it will trigger a separate common event or a separate portion of the current common event. First, we'll have the game check which blessing the hero has. If the Hero X's Blessing = 1, then we know from our comment that this means he has the Fighter Blessing. Now, we use a Conditional Branch. I don't know what this feature is called in your version of RPG Maker, but this feature will allow us to create an if then statement (if one thing is this, then do that) for our event. If the variable for Hero X's Blessing equals 1, then we will modify other variables. Hero A's HP, Hero A's Strength, Hero A's Defense, whatever, all will be modified by +1 (or whatever other numbers you like). You're going to manually do this for each blessing that the character can have, and because we're using the if then feature, the game will only do the applicable ones and skip the non-applicable ones.
Method Continued: And then you're going to manually do this for each character! It's going to be a long, long, massive event, so take your time and be thorough. Get it right with one character and you can copy and paste it, then change everything to the second character, the third, the fourth, etc. It's going to be a really bulky boy of a common event!
Method continued: We've checked to see that our hero has leveled up and we've applied our level up changes. Done! Next, what? We have to tell the event to change the hero's stats by adding the number stored in each variable! Increase Hero A's HP by the number stored in the variable Hero A's HP. Do this for every stat! Like I said, big boy event! Finish up by updating the variable Hero X's Old Level to match his current level. Then switch OFF the party was in a battle switch to end the event.
Phew.
No comments:
Post a Comment