Skill Upgrade

● ARCHIVED · READ-ONLY
Started by Kread-EX 20 posts View original ↗
  1. 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

    Spoiler
    upg1.jpg

    upg2.jpg
    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.
  2. Anyway to grab the skills level? like skill.level or something?
  3. It's by actor (in case several actors have the same skills) so it would be actor.skill_level(skill).
  4. thanks for the heads up, using a few conditional tags to tag status conditions to the skills.
  5. Weeee, nice script, sir.
  6. 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.
  7. What is the command for the upgrade screen
  8. Woah, I forgot to put it in the instructions. It's SceneManager.call(Scene_Upgrade).
  9. thank you Sir Kreaddy
  10. Fixed some more bugs, namely a graphic glitch when Ace Menu Engine wasn't installed and a crash when an actor had no skills.
  11. 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?
  12. 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
  13. How can I switch the actors while the skill upgrade menu is active? Or am I missing something?
  14. 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?
  15. Hinorashito said:
    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.
  16. 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.
  17. 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.
  18. 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!
  19. 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.
  20. 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?