Skill Upgrade

Kread-EX

You're all bakas
Veteran
Joined
Mar 16, 2012
Messages
863
Reaction score
81
First Language
French
Primarily Uses
Skill Upgrade
Version: 1.07
Author: Kread-EX

Introduction
Allows to upgrade/downgrade skills with either JP, gold, or a game variable. It was requested by Rukaroa based on Yanfly's game Generation Overzeal.

Features

  • Ability to upgrade and downgrade skills.
  • 3 possible "currencies". JP (with the JP Manager), gold or a custom game variable.
  • Skills can morph into another one after a certain level.
  • Probably more but I never know what to type in this section.
Screenshots




Here, demonstrating skill morphing.​
Instructions
Before everything, you should put this script below the JP Manager if you intend to use JP for upgrade.

To call the scene use this in a call script event command:
 SceneManager.call(Scene_Upgrade)
Default configuration
The script has a configuration section, where you set up the default behavior (common for all skills). It’s commented, but there’s one particularly important one:
 

# Default upgrade formula.UPGRADE_FORMULA = "cost * level"This formula calculates the JP cost for the next level. It’ll be evaluated, so please enter valid Ruby syntax. Note that “cost” refers to the base JP cost and “level” to the next skill level.

Tagging skills
You can tag each skill to make it behave differently from the default. You can put the following tags in the skill’s notebox:
 

<upgrade_cost: x>This is the base cost of the skill.
 

<upgrade_formula: string>The formula to calculate the JP/Gold/Variable cost. Overrides the default formula and needs to be valid Ruby syntax.
 

<max_level: x>The maximum level a skill can attain.
 

<upgrade_damage: x>Every level, the skill’s damage will raise by x%.
 

<upgrade_mp: x>Every level, the skill’s MP cost will raise by x%.
 

<upgrade_tp: x>Every level, the skill’s TP cost will raise by x%.
 

<level_morph: x, y>At level X, skill will become skill Y. This is a one-way process and downgrade won’t be available after a morphing.

Compatibility notes
Integrates well in menus made by Yanfly. Shouldn't be used with Grathnode Install.

Script
Direct Download!
Blog page

Terms of use
You are free to adapt this work to suit your needs.
You can use this work for commercial purposes if you like it.
Credit is appreciated.
 
Last edited by a moderator:

Lowell

The Walking Atelier
Veteran
Joined
Apr 21, 2012
Messages
292
Reaction score
69
First Language
English
Primarily Uses
Anyway to grab the skills level? like skill.level or something?
 

Kread-EX

You're all bakas
Veteran
Joined
Mar 16, 2012
Messages
863
Reaction score
81
First Language
French
Primarily Uses
It's by actor (in case several actors have the same skills) so it would be actor.skill_level(skill).
 

Lowell

The Walking Atelier
Veteran
Joined
Apr 21, 2012
Messages
292
Reaction score
69
First Language
English
Primarily Uses
thanks for the heads up, using a few conditional tags to tag status conditions to the skills.
 

Dr.Yami

。◕‿◕。
Developer
Joined
Mar 5, 2012
Messages
1,003
Reaction score
757
First Language
Vietnamese
Primarily Uses
Other
Weeee, nice script, sir.
 

Kread-EX

You're all bakas
Veteran
Joined
Mar 16, 2012
Messages
863
Reaction score
81
First Language
French
Primarily Uses
Fixed a bug with the level window not updating when you switch actors.

And others too now.

And now added the possibility to disable downgrades entirely.
 
Last edited by a moderator:

vindaca

CEO of Tales of the Valiant
Veteran
Joined
Dec 11, 2012
Messages
534
Reaction score
75
First Language
English
Primarily Uses
What is the command for the upgrade screen
 

Kread-EX

You're all bakas
Veteran
Joined
Mar 16, 2012
Messages
863
Reaction score
81
First Language
French
Primarily Uses
Woah, I forgot to put it in the instructions. It's SceneManager.call(Scene_Upgrade).
 

vindaca

CEO of Tales of the Valiant
Veteran
Joined
Dec 11, 2012
Messages
534
Reaction score
75
First Language
English
Primarily Uses
thank you Sir Kreaddy
 

Kread-EX

You're all bakas
Veteran
Joined
Mar 16, 2012
Messages
863
Reaction score
81
First Language
French
Primarily Uses
Fixed some more bugs, namely a graphic glitch when Ace Menu Engine wasn't installed and a crash when an actor had no skills.
 

ShadowFox

Adventurer
Member
Joined
Mar 13, 2012
Messages
255
Reaction score
10
First Language
English
Primarily Uses
In my game there is one major character and 3 temporary characters that are only used for special player controlled cutscenes.

Now my question is quite specific and detailed. I will try to explain what I want.

In my game there is a tutorial level where the player would probably be able to upgrade a spell/skill

Then after the tutorial level the game would swap to Josh who is a temporary character for a player controlled cutscene.

The game would then swap back to lisa.

Now I want the skill that has been upgraded to be reset.

Then later in the game, the player would control Josh again or another temporary character for another player controlled cutscene.

This time however I want the skills that have been upgraded to remain upgraded.

Is that possibly to do without much tweaking as I am not a scripter.

I am using the add/remove actor ability in the game to swap characters around.

And lastly because I am not a scripter and am a little bit of a noob, especially since it has been over 6 moths since I had gotten back into the game engine... will I need to change the cost and level of this part of the script

# Default upgrade formula. UPGRADE_FORMULA = "cost * level"to have numbers or what?
 
Last edited by a moderator:

kerbonklin

Hiatus King
Veteran
Joined
Jan 6, 2013
Messages
1,726
Reaction score
275
First Language
English
Primarily Uses
RMMV
Would it be a possible update of this script if that when a skill is maxed, it will not show the statistics of a "next upgrade"?  It's somewhat misleading when I have a +5 max but it shows the data for a +6 version.

(I'll see if I can tweak it on my own and will post if I get a working result)

Edit: For anyone using a flat max level for everything (that means no skills with higher max levels via notetags than the default), you can make this edit.

Code:
  #--------------------------------------------------------------------------  # ● Draw the next skill level  #--------------------------------------------------------------------------  def draw_next_level    return if @actor.skill_level(item) == 5   #THIS IS WHAT YOU WANT TO ADD USING MAX DEFAULT 5                                              #AS AN EXAMPLE. CHANGE 5 TO WHATEVER YOU USE.    mid = item.upgrade_data[:morph][0]    if mid > 0 && @actor.skill_level(item) + 1 == mid      @morph_item = $data_skills[item.upgrade_data[:morph][1]]    end    change_color(normal_color)    name = item.name.dup    unless @morph_item != @last_item      name << ' (+' + (@actor.skill_level(item) + 1).to_s + ')'    end    tw = text_size(name).width    y = line_height * 4    draw_icon(item.icon_index, (contents_width - tw) / 2 - 12, y)    draw_text(28, y, contents_width - 28, line_height, name, 1)    y += line_height    draw_tp_mp(1, y)    y += line_height    draw_damage(@actor.skill_level(item) + 1, y)    y += line_height    draw_cost(@actor.skill_level(@last_item) + 1, y)  end
 
Last edited by a moderator:

smeros

Villager
Member
Joined
Oct 18, 2013
Messages
15
Reaction score
3
First Language
Turkish
Primarily Uses
RMMV
How can I switch the actors while the skill upgrade menu is active? Or am I missing something?
 

Hinorashito

Apprentice
Member
Joined
Feb 14, 2013
Messages
130
Reaction score
14
First Language
english
Primarily Uses
this post is old but i just started using this script. Only one of my actors can upgrade his skills so i thought when i put the scene call script in events only his skills would come up but other come up as well. Is there anyways to ensure that only 1 actors skills come up since only 1 actor can upgrade his skills?
 

kerbonklin

Hiatus King
Veteran
Joined
Jan 6, 2013
Messages
1,726
Reaction score
275
First Language
English
Primarily Uses
RMMV
this post is old but i just started using this script. Only one of my actors can upgrade his skills so i thought when i put the scene call script in events only his skills would come up but other come up as well. Is there anyways to ensure that only 1 actors skills come up since only 1 actor can upgrade his skills?
It would require some custom edits on your own part to check the current actor in question upon changing to that scene and drawing everything.
 

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
I haven't tested this, but try adding this to a new slot below the skill upgrade script:

Code:
class Scene_Upgrade < Scene_Skill  def next_actor  end  def prev_actor  endend
That should stop you being able to use the page up/down keys to change actors. Then, if it doesn't show the correct actor when you go in, put this in a script call before you call the scene:
Code:
$game_party.menu_actor = $game_actors[id]
where id is your actor's id without leading zeros.
 

Hinorashito

Apprentice
Member
Joined
Feb 14, 2013
Messages
130
Reaction score
14
First Language
english
Primarily Uses
wow shaz to the rescue you work pretty fast lol ok lemme go check this

ok thank you shaz i tested it and it works flawlessly so far i have had no issues thank you so much you answer so much of my questions i will stop harassing you people with questions for one whole day so you all have tomorrow off lol

after that my spam of questions will commence again lol.
 
Last edited by a moderator:

cHAOScythe

Villager
Member
Joined
Feb 2, 2014
Messages
25
Reaction score
3
First Language
English
Primarily Uses
I have a question about this script. Can a spell have multiple morphs at the same level (I need at least 4 morph options at one time)? What I am actually looking for is a script that allows you to upgrade skills by adding mechanics to them. Here's an example of what I mean:

You purchase the "Air" spell. There are 4 mechanics that can be added to that spell once you learn it. These are: Air [-] (reduced cast time), Air [+] (increased damage), Air [x] (hits multiple times), and Air [÷] (can be spread between all targets). So, from Air, you have 4 morph choices. Lets say you choose Air [+]. From there, Air [+] can morph into Air [-+], Air[+x], or Air [+÷], etc etc etc. From the pictures, it looks like you can only have 2 options available at once, and that only 1 can be a morph spell. Is that correct, or is this script capable of doing what I need?

Thanks!
 

ArkhamVI

Villager
Member
Joined
Dec 13, 2013
Messages
18
Reaction score
2
First Language
English
Primarily Uses
RMMV
excuse me, but i was wondering, is there a way to get this script to increase the duration of buffs/debuffs?

For example, I have a skill that increases DEF for 3 turns, but upgrading it will increase the buff's duration by 1 turn.
 

Zoltor

Veteran
Veteran
Joined
Jan 18, 2014
Messages
1,550
Reaction score
211
First Language
English
Primarily Uses
This is almost exactly what I'm looking for(and I was afraid I was gonna have to settle on the Magic School leveling system). I just need to ask one thing, is there a way to learn completely new skills(not only by way of morphing), if a specific skill gets to a certain upgrade lv?
 

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

Latest Threads

Latest Posts

Latest Profile Posts

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.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,867
Messages
1,017,061
Members
137,575
Latest member
akekaphol101
Top