I have a skill that I would like to upgrade (or replace with a different version) at a higher level. Can anyone suggest a good way to accomplish this?
Example:
Fire magic spell does direct damage for levels 1-10, but the same skill (as far as the player knows) does direct damage plus a damage-over-time effect for levels 11+.
Upgrading a skill at a later level
● ARCHIVED · READ-ONLY
-
-
Ah... I know this one well.
The first option is always a script. The second option is always the really long and complicated version I'm using :D
Here's how I do it:
Make several copies of the same skill in the skills tab. The first one will be what you start off with. When you get the "upgrade" of the skill, make the player forget the starting skill and have them learn the new version (which has the same name so that the player will never know the difference, unless you want them to). In this way, you can upgrade spells fairly easily. You'll just have to remember to forget previous versions and learn new versions as you go along. You could perhaps set up a common event that checks for Actor Level and does this automatically. -
This does sound like a reasonable option. I'm going to ask a dumb question though:
How do I get them to forget a skill? Or do you mean to set up the event to forget the first version? -
In the Event menus, you can make a character forget a skill. It's why it's usually best to set it up as a common event if you don't want the player to know the change has happened. You can set up a variable that tracks the character's level and then set up a conditional branch that forgets the skill and learns the new skill if the Level Variable is set to 10.
It's a reasonable option, kind of. However, your Common Event will have to be set to Parallel Process and it can take up a lot of processing power and cause lag as the game will be constantly checking the Common Event to see if it needs to activate or not.
It's one of the reasons I suggested using a script instead. But, it's up to you! -
You could do what Tai suggested but there are ways to reduce the lag factor to zero by being smarter about your use of Parallel Events. For example, you could add one line into the Script Editor to set a switch when anyone levels up, and only have that Parallel Process Common Event run when the switch is ON, then have it turn itself off once it has run.
Or, you could get around having to actually replace skills by building branching behavior into the skills themselves in the Formula boxes. To accomplish the example you asked for in your first post, you could enter something like if a.level >= 11; b.add_state(29); end; a.mat * 4 - b.mdf * 2. This does direct damage no matter what, but only applies a damage-over-time state (State 29, maybe "Burning") if the actor's level is 11 or higher.
Probably the best way, however, is to use one of the scripts that are already out there. It looks like Hime's Learn and Replace script should give you exactly what you need. -
Wow. I didn't realize you could put more than one statement into the formula box. I am definitely going to try that first.
-
Unfortunately, this may not satisfy my needs. For example, I want to make a skill that applies a stun state to a single enemy when the player is level 1-10 and applies the stun state to all enemies when the player is 11+. Perhaps these kinds of things are doable in the formula box, but I feel like it would get really messy really fast.Wow. I didn't realize you could put more than one statement into the formula box. I am definitely going to try that first.
I may need a script after all! -
Well, I would agree that a script like "Learn and Replace Skills" would probably be the best way to go about it, if it doesn't conflict with anything you want to do.Unfortunately, this may not satisfy my needs. For example, I want to make a skill that applies a stun state to a single enemy when the player is level 1-10 and applies the stun state to all enemies when the player is 11+. Perhaps these kinds of things are doable in the formula box, but I feel like it would get really messy really fast.
I may need a script after all!
But I think it's worth noting that with creative use of that formula box, you can do a lot of things you might not expect. For example, you could have the skill add the Stun state to the target enemy (using the Features area), and also have the formula do the following: if a.level >= 11; for e in $game_troop.members; e.add_state(29); end; end; (damage formula if desired) - with just a few exceptions, you can do almost anything in the formula box that would normally require the script editor, as long as you can fit it.
By the way, I really like the idea of skills upgrading themselves as the character grows. Best of luck making it exactly like you dreamed :) -
abcxyz123, please avoid double posting, as it is against the forum rules. You can review our forum rules here. Thank you.
-
I didn't realize I double posted.
I have read the rules more carefully and now realize that I am limited to one new thread per 72 hours, regardless of the number of questions that I may have.
I apologize. -
I have a suggestion, maybe set the skill to activate a common event. The common event will have a variable set to copy the actor's level. Then a conditional branch can check to see if variable "actor level" is 10 or higher.
If it is, then force action -> a skill that does no damage but stuns all enemies. If not, force action -> skill that does no damage and stuns one enemy. This requires 3 skills in the database to make one, may be inefficient, but
it works, I think.
The target would be "last target", of course. -
Common Events don't work during battle. You'd have to event that action for every single Troop page.
-
No, you read wrong again.I have read the rules more carefully and now realize that I am limited to one new thread per 72 hours, regardless of the number of questions that I may have.
For each problem you have, you can make one topic - if you have several problems, then you can make several topics for them without a problem.
What you cannot do is making several topics for the same problem, or bumping/posting in a topic again before those 72 hours are up.
Basically, you need to give people time to handle every problem and wait until they had free time to answer, that's the reason behind the 72 hours (a lot of the people here need to work for their food before they can answer the questions in their free time).
-----------
Wrong - parallel process common events don't work during battle, but any common event called by either a skill or a troop event will work normallyCommon Events don't work during battle. You'd have to event that action for every single Troop page.