Upgrading a skill at a later level

abcxyz123

Villager
Member
Joined
Sep 3, 2014
Messages
16
Reaction score
0
Primarily Uses
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+.
 

Tai_MT

Veteran
Veteran
Joined
May 1, 2013
Messages
5,472
Reaction score
4,859
First Language
English
Primarily Uses
RMMV
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.
 

abcxyz123

Villager
Member
Joined
Sep 3, 2014
Messages
16
Reaction score
0
Primarily Uses
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?
 

Tai_MT

Veteran
Veteran
Joined
May 1, 2013
Messages
5,472
Reaction score
4,859
First Language
English
Primarily Uses
RMMV
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!
 

Wavelength

MSD Strong
Global Mod
Joined
Jul 22, 2014
Messages
5,624
Reaction score
5,104
First Language
English
Primarily Uses
RMVXA
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.
 

abcxyz123

Villager
Member
Joined
Sep 3, 2014
Messages
16
Reaction score
0
Primarily Uses
Wow.  I didn't realize you could put more than one statement into the formula box.  I am definitely going to try that first.
 

abcxyz123

Villager
Member
Joined
Sep 3, 2014
Messages
16
Reaction score
0
Primarily Uses
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.

I may need a script after all!
 

Wavelength

MSD Strong
Global Mod
Joined
Jul 22, 2014
Messages
5,624
Reaction score
5,104
First Language
English
Primarily Uses
RMVXA
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!
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.

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 :)
 

Celianna

Tileset artist
Veteran
Joined
Mar 1, 2012
Messages
10,557
Reaction score
5,592
First Language
Dutch
Primarily Uses
RMMV
abcxyz123, please avoid double posting, as it is against the forum rules. You can review our forum rules here. Thank you.
 

abcxyz123

Villager
Member
Joined
Sep 3, 2014
Messages
16
Reaction score
0
Primarily Uses
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.
 
Last edited by a moderator:

tofuman

Villager
Member
Joined
Aug 21, 2014
Messages
20
Reaction score
11
First Language
English
Primarily Uses
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.
 
Last edited by a moderator:

Tai_MT

Veteran
Veteran
Joined
May 1, 2013
Messages
5,472
Reaction score
4,859
First Language
English
Primarily Uses
RMMV
Common Events don't work during battle.  You'd have to event that action for every single Troop page.
 

Andar

Veteran
Veteran
Joined
Mar 5, 2013
Messages
31,367
Reaction score
7,676
First Language
German
Primarily Uses
RMMV
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.
No, you read wrong again.
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).


-----------

Common Events don't work during battle. You'd have to event that action for every single Troop page.
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 normally
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

People3_5 and People3_8 added!

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.

Forum statistics

Threads
105,868
Messages
1,017,085
Members
137,583
Latest member
write2dgray
Top