[RMMV] QUESTION ABOUT CHANGING CORE GAME STATS THAT MAY NOT BE FEASIBLE.
Posts
Pages:
1
This is my first post so hello everyone, I've enjoyed lurking so far but after consuming dozens of videos and a lot of posts/articles on plugins, I feel more lost than ever. Maybe you can help?
I have a change I want to make to the core game and I'm not sure if it's possible (or just too exhausting, perhaps). Maybe I've overlooked something, so if you can point me in the right direction I'd appreciate it. :D
In my design, characters have different prime stats. For this we'll say Body and Mind (more stats in the design but let's keep it simple). Each has an offense, defense, and a healthbar. A prime stat can only effect the same stat (unless a skill converts), so e.g. Body offense clashes with Body defense and remaining damage lowers Body health. Fighting Body enemies you need a Body character with Body attacks, fighting Mind enemies you need a Mind character with Mind attacks. (And for questioning minds, the other Prime Stats are Soul and Heart.)
However, health comes in both non-lethal and lethal alternatives, where non-lethal causes temporary damage leading to "knockout" but lethal causes permenant damage that destroys a stat. Knocked out characters can be brought back with revives mid battle or return to 1 health after battle. Destroyed stats are removed permenantly. A character isn't truly dead until all stats are broken.
Now, the problem as far as I see it starts with redesigning all of the base stats, which I've seen discussed and is the easy part. The problem I'm coming into is:
1 - how to make each stat only effect the same stat
2 - how to give each stat it's own health bar
3 - how to disable a stat once it's "broken"
I know this is a lot to ask for. But I've gotten no answers elsewhere. Who knows. Maybe I'll have luck here?
I have a change I want to make to the core game and I'm not sure if it's possible (or just too exhausting, perhaps). Maybe I've overlooked something, so if you can point me in the right direction I'd appreciate it. :D
In my design, characters have different prime stats. For this we'll say Body and Mind (more stats in the design but let's keep it simple). Each has an offense, defense, and a healthbar. A prime stat can only effect the same stat (unless a skill converts), so e.g. Body offense clashes with Body defense and remaining damage lowers Body health. Fighting Body enemies you need a Body character with Body attacks, fighting Mind enemies you need a Mind character with Mind attacks. (And for questioning minds, the other Prime Stats are Soul and Heart.)
However, health comes in both non-lethal and lethal alternatives, where non-lethal causes temporary damage leading to "knockout" but lethal causes permenant damage that destroys a stat. Knocked out characters can be brought back with revives mid battle or return to 1 health after battle. Destroyed stats are removed permenantly. A character isn't truly dead until all stats are broken.
Now, the problem as far as I see it starts with redesigning all of the base stats, which I've seen discussed and is the easy part. The problem I'm coming into is:
1 - how to make each stat only effect the same stat
2 - how to give each stat it's own health bar
3 - how to disable a stat once it's "broken"
I know this is a lot to ask for. But I've gotten no answers elsewhere. Who knows. Maybe I'll have luck here?
Hello and welcome!
Oh man, just reading this makes my head swim. I came up with this long explanation of something I thought you meant, but the more I read it, the less sense it makes. It's like the ultimate Pokemon-esque convoluted stat system I've ever seen. I'm not cutting it down by any means; in fact, it sounds awesome. But this level of depths seems as if it would need scripts so you don't clutter your database up with tons and tons of common events and whatnot. I'm certainly not a scripter, but I know that learning to script would be immensely beneficial to you so you don't clog up your database trying to make these concepts work.
So without going into detail, the only thing I can offer is a few very general explanations for each point, and what you'll need to look into doing.
For point 1. You'll need to make fruitful use of variables. You'll need to set aside variables for each playable character, and you'll need to set aside variables for your enemies. For the enemy variables, set aside maybe a couple columns in the database, depending on how many variables each enemy will need. For each battle, you'll need to edit the troop database to add a page with the condition "Turn 0, once per battle", in which you configure all of the enemy variables for that battle.
You'll need to add common events to your skills. You'll be doing a lot of under-the-hood work in common events, where you'll have to calculate damage based on your own custom formula. So if player A is attacking enemy B, you'll need to come up with a formula that generates damage. That leads me to the next point, because it kinda' ties in.
Second point. You'll need to come up with even more variables. Say the player has a variable that represents their body stat, then that will determine their damage. Now let's add an extra variable that we'll call "Body HP", and let's set it to 100 as a default. You'll have to do this with every stat. So you'll need both a variable to represent the stat itself, as well as a variable representing the HP of the stat. So...
Variable 001: Character 1 Body Stat
Variable 002: Character 1 Body HP
Variable 003: Character 1 Soul Stat
Variable 004: Character 1 Soul HP
... and so on. Like I said, a ton of database working.
So now if I want to make a stat damage an enemy's stat, for the skill the player is using, I'll go into the common events and adjust the variables. So a simple one would be to go to Control Variable and say:
"Variable 015: Enemy 1 Body HP" - (that is, minus) "Variable 001: Character 1 body Stat"
If you want to have a mitigating factor, you'll need to make yet another variable. We'll call this "Variable 021: Damage Application". I want Variable 021 to hold the value of the damage that will be applied to the enemy upon the use of a skill. So now I'll have go into Control Variable and say:
"Variable 021: Damage Application" = (equals) "Variable 001: Character 1 Body Stat"
Then the next step down would be...
Variable 021: Damage Application - (minus) Variable XXX: Enemy 1 Defense Mitigating Factor...
And then finally you'll need...
Variable 015: Enemy 1 Body HP - (minus) Variable 021: Damage Application.
Without a script I think you'll have to do this for every skill, for every character, both friendly and enemy. That's a lot of skills, a lot of common events, and so on. Which is why I think this may best be a job for a script.
Point 3. This one is a bit easier. There's two routes to go, either a parallel process common event that "watches" everyone's stats, or adding a condition branch to each and every skill. The parallel event "watcher" will be painful, because it'll likely call lag by having to constantly watch all of the stats throughout the game. The second route is also a common event. And what you'll need to do is go into all of your common events, for each of your skills, and add a condition branch at the end of the page that checks to see if a variable, such as Variable 015 Enemy Body HP, whether it equals 0 or not, and if it does, then you simply remove that character's skills. So, as complicated and painstaking as this process is, it's still more straight forward than... all of the other stuff. Which brings me to a point of my own.
How to make an easier system.
The easiest way to go about it is to keep the standard enemy HP and MP's. Maybe if someone's MP goes to zero, they are considered "knocked out," and thus you take them out of the battle. Star Ocean 3 did this, and I think it worked well, because at a certain point of the game, enemies would start taking down your MP, which was far lower than your health, and they could knock you out if your MP hit 0.
If someone's HP drops to nothing, they are killed, and both removed from battle and taken out of the character's party all together, or something like that. Maybe they each have a stat (Luck is a good stat to use for this, just change the name) that depletes each time they are killed, and once that stat reaches 0, they're dead for good. This can be done with eventing, though scripting-wise, this shouldn't be too much of a hassle.
As far as Body, Mind and Spirit, these can simply be elements that enemies are weak to. You most likely already know this, but you can simply name these your "Elements" under the system menu in the database. Then simply go through and make all of your enemies resistant (set the effectiveness of the element on them to 0%) so that attacking a Body enemy with a Mind skill does 0 damage.
You can also do this with your player characters, making them resistant to different "elements", like the previously mentioned enemy.
As far as skills go, those are all easy: simply copy and paste your regular attack skill and change the skill's element to whatever type you want that character to use (and just give them the skill, easy!). It's far easier than making variables for everything.
Of course, that's not what you wanted, and I realize I'm offering you something you didn't ask for, but it's a suggestion for something you could do in the end if nothing else works out. The thing you mentioned in your initial post is, well, very difficult to do without learning how to script. I'm certainly no expert in events in RPG Maker, so maybe someone else can correct this post with something they know that can make one of these steps far easier to deal with.
Still, I hope I at least gave you some things to allow you to grasp at this concept you have, because it sounds really cool, yet I think you have a ton of work set out for you.
Oh man, just reading this makes my head swim. I came up with this long explanation of something I thought you meant, but the more I read it, the less sense it makes. It's like the ultimate Pokemon-esque convoluted stat system I've ever seen. I'm not cutting it down by any means; in fact, it sounds awesome. But this level of depths seems as if it would need scripts so you don't clutter your database up with tons and tons of common events and whatnot. I'm certainly not a scripter, but I know that learning to script would be immensely beneficial to you so you don't clog up your database trying to make these concepts work.
So without going into detail, the only thing I can offer is a few very general explanations for each point, and what you'll need to look into doing.
For point 1. You'll need to make fruitful use of variables. You'll need to set aside variables for each playable character, and you'll need to set aside variables for your enemies. For the enemy variables, set aside maybe a couple columns in the database, depending on how many variables each enemy will need. For each battle, you'll need to edit the troop database to add a page with the condition "Turn 0, once per battle", in which you configure all of the enemy variables for that battle.
You'll need to add common events to your skills. You'll be doing a lot of under-the-hood work in common events, where you'll have to calculate damage based on your own custom formula. So if player A is attacking enemy B, you'll need to come up with a formula that generates damage. That leads me to the next point, because it kinda' ties in.
Second point. You'll need to come up with even more variables. Say the player has a variable that represents their body stat, then that will determine their damage. Now let's add an extra variable that we'll call "Body HP", and let's set it to 100 as a default. You'll have to do this with every stat. So you'll need both a variable to represent the stat itself, as well as a variable representing the HP of the stat. So...
Variable 001: Character 1 Body Stat
Variable 002: Character 1 Body HP
Variable 003: Character 1 Soul Stat
Variable 004: Character 1 Soul HP
... and so on. Like I said, a ton of database working.
So now if I want to make a stat damage an enemy's stat, for the skill the player is using, I'll go into the common events and adjust the variables. So a simple one would be to go to Control Variable and say:
"Variable 015: Enemy 1 Body HP" - (that is, minus) "Variable 001: Character 1 body Stat"
If you want to have a mitigating factor, you'll need to make yet another variable. We'll call this "Variable 021: Damage Application". I want Variable 021 to hold the value of the damage that will be applied to the enemy upon the use of a skill. So now I'll have go into Control Variable and say:
"Variable 021: Damage Application" = (equals) "Variable 001: Character 1 Body Stat"
Then the next step down would be...
Variable 021: Damage Application - (minus) Variable XXX: Enemy 1 Defense Mitigating Factor...
And then finally you'll need...
Variable 015: Enemy 1 Body HP - (minus) Variable 021: Damage Application.
Without a script I think you'll have to do this for every skill, for every character, both friendly and enemy. That's a lot of skills, a lot of common events, and so on. Which is why I think this may best be a job for a script.
Point 3. This one is a bit easier. There's two routes to go, either a parallel process common event that "watches" everyone's stats, or adding a condition branch to each and every skill. The parallel event "watcher" will be painful, because it'll likely call lag by having to constantly watch all of the stats throughout the game. The second route is also a common event. And what you'll need to do is go into all of your common events, for each of your skills, and add a condition branch at the end of the page that checks to see if a variable, such as Variable 015 Enemy Body HP, whether it equals 0 or not, and if it does, then you simply remove that character's skills. So, as complicated and painstaking as this process is, it's still more straight forward than... all of the other stuff. Which brings me to a point of my own.
How to make an easier system.
The easiest way to go about it is to keep the standard enemy HP and MP's. Maybe if someone's MP goes to zero, they are considered "knocked out," and thus you take them out of the battle. Star Ocean 3 did this, and I think it worked well, because at a certain point of the game, enemies would start taking down your MP, which was far lower than your health, and they could knock you out if your MP hit 0.
If someone's HP drops to nothing, they are killed, and both removed from battle and taken out of the character's party all together, or something like that. Maybe they each have a stat (Luck is a good stat to use for this, just change the name) that depletes each time they are killed, and once that stat reaches 0, they're dead for good. This can be done with eventing, though scripting-wise, this shouldn't be too much of a hassle.
As far as Body, Mind and Spirit, these can simply be elements that enemies are weak to. You most likely already know this, but you can simply name these your "Elements" under the system menu in the database. Then simply go through and make all of your enemies resistant (set the effectiveness of the element on them to 0%) so that attacking a Body enemy with a Mind skill does 0 damage.
You can also do this with your player characters, making them resistant to different "elements", like the previously mentioned enemy.
As far as skills go, those are all easy: simply copy and paste your regular attack skill and change the skill's element to whatever type you want that character to use (and just give them the skill, easy!). It's far easier than making variables for everything.
Of course, that's not what you wanted, and I realize I'm offering you something you didn't ask for, but it's a suggestion for something you could do in the end if nothing else works out. The thing you mentioned in your initial post is, well, very difficult to do without learning how to script. I'm certainly no expert in events in RPG Maker, so maybe someone else can correct this post with something they know that can make one of these steps far easier to deal with.
Still, I hope I at least gave you some things to allow you to grasp at this concept you have, because it sounds really cool, yet I think you have a ton of work set out for you.
I really thank you and appreciate your answer. I'm going to spend time with it applying the concepts to my project and come up with a compromise. This project will be a demo (well, a completed game, but a demonstration nonetheless) that I plan to shop around to gain interest in a bigger project coded from the ground up. As I don't have a budget for a programmer, I'm accepting the many many compromises I have to make using this software.
But that's where ingenuity shines best, is it not?
This project was originally a tabletop game I've played with groups. On paper it's simple, real simple. Your character is tied to four planes of existence, and if one is destroyed they continue the game without that plane. So we had ghosts (no body), zombies (no mind), and one character who was just a rumor everyone talked about and still effected the game by the memories of his presence (only a social stat left). It's a wild game in tabletop.
When trying to adapt it to RPG Maker I thought back to early Magic The Gathering and their approach to flying and landwalk and phasing creatures. Only a creature with this tag can attack or block a creature also with this tag. Like that for each stat. Spirit monsters can only be attacked with spirit skills, emotional monsters attack your emotions, and so on.
Anyways, I'll pour over this and let you know how it turned out. Cool.
And as a professional courtesy I'll have to check out Revenge of the Fallen and the rest of your stuff.
But that's where ingenuity shines best, is it not?
This project was originally a tabletop game I've played with groups. On paper it's simple, real simple. Your character is tied to four planes of existence, and if one is destroyed they continue the game without that plane. So we had ghosts (no body), zombies (no mind), and one character who was just a rumor everyone talked about and still effected the game by the memories of his presence (only a social stat left). It's a wild game in tabletop.
When trying to adapt it to RPG Maker I thought back to early Magic The Gathering and their approach to flying and landwalk and phasing creatures. Only a creature with this tag can attack or block a creature also with this tag. Like that for each stat. Spirit monsters can only be attacked with spirit skills, emotional monsters attack your emotions, and so on.
Anyways, I'll pour over this and let you know how it turned out. Cool.
And as a professional courtesy I'll have to check out Revenge of the Fallen and the rest of your stuff.
Pages:
1














