$D13x Skill Upgrade

#===============================================================================
# ☆ Introduction
#——————————————————————————-
# This script creates a highly dymanic and customizable Skill Upgrade scene.
# You can use either Exp, SP or Gold to obtain skills this way.
#
# Using this script you will be able to make a huge assortment of skill tree’s
# each different from the last. You can also enable each actor to utilize a
# different skill tree, very useful for different classes.
#
# In order to function correctly, this script requires the scripts listed below;
# $D13x – Core v2.2
# $D13x – Skill Levels v1.7
# $D13x – Learn Skill Requirements v2.0
#
Script Link

Image

Advertisements

64 responses

  1. Nyne

    Hey Dekita, really newbie question but how do I access the skill scene? The script is working just fine for as far as I’ve gotten but I’m unable to find a method of bringing up the scene.

    March 30, 2014 at 18:10

    • Sorry. I always forget to include that script call in the help info. Its…
      SceneManager.call( SUG_Scene )
      ^_^

      March 30, 2014 at 20:01

  2. Nyne

    Alrighty, thanks for the help again.

    March 31, 2014 at 18:08

  3. Yin

    Is there a way to respec with this system. Or basically like an “Initialize” command at a cost?

    April 5, 2014 at 00:05

    • Sorry I dont know what you mean by ‘respec’
      Do you mean to completely reset the skills that have been learned?

      April 5, 2014 at 01:12

      • Yin

        Yes! Reset. Sorry, I’ve been playing alot of DC Universe.

        April 5, 2014 at 01:51

  4. @Yin,
    Lol no need to apologize.

    There is no single ‘reset_skills’ script call; however, there are script calls within skill levels script to reduce/reset a single skills levels. You could also use the forget skill event command to forget a skill, but it would remember its current skill level.

    If you want, I can write a script call for it, shouldnt bee too difficult 🙂

    April 5, 2014 at 14:27

    • Yin

      A script call would be perfect ( And less math/work 😛 ) If you could, I would definitely appreciate it!

      April 5, 2014 at 18:07

      • So, I realized there is already a fairly simple way to do this…

        Simply make sure that the Reset_On_Forget option is true for the skill levels script and then use this script call…

        actor = $game_actors[ID]
        actor.skills.each do|skill|
          actor.forget_skill(skill.id)
        end
        

        This removes and resets all skills for actor ID.

        April 5, 2014 at 21:54

  5. Yin

    Thanks! Now I just need to refill the skill points!

    I have probably stupid question. How do I make it so that the skill does not level up on its own when it has enough experience, but only when I use the skill points on it. For example, I use the skill and one of the requirements is that it has a certain amount of exp, I fill the exp. Currently when I fill the exp, it gives me a message in battle saying “Skill is now level x” But I instead want the skill to stay at level 1 until the points are used on it and not display the level up message when it gets enough experience. I probably overlooked it somehow, so I’ll keep looking at the config and instructions until you can answer me.

    April 5, 2014 at 23:20

    • Actually, this may have been something I overlooked.

      I will have to update the skill levels script so it doesnt upgrade skills automatically. I will do that tomorrow as its pretty late here now ^_^

      April 6, 2014 at 00:22

      • Yin

        Oooh ok, I thought I was just overlooking the option. I will look forward to the skill level update for compatibility.

        April 7, 2014 at 21:17

  6. Nyne

    Hey Dekita, I’m experiencing some issues with upgrading skills. The problem is that despite the fact that I’ve met all of the requirements for the skill, I’m still told that I’m unable to learn it. The only way around this is for me to increase my characters level beyond the level requirement of the skill for it to be learned. For example I have some skills that require a level 5 character and the skill can be learned at level five but, despite it still saying the skill has a level five requirement, I have to get up to 14 or something to upgrade the skill. Any help would be appreciated.

    April 6, 2014 at 10:50

    • Thats very strange…
      I am just about to go out for a little while. I can look into the issue when I get home later tonight ^_^

      April 6, 2014 at 11:49

  7. Nyne

    Okay thanks, I’ve figured out that what is happening is that say a skill requires level 10 to learn, you have to get to 20 to upgrade it to the next level and then 30, 40, 50… or for a skill that require level 6 I need to be 6, 12, 18 ect. I just need it to be that at level 10 you can get the skill and upgrade it from that level

    April 6, 2014 at 13:35

  8. Selluvia

    Hello Dekita, I’ve been using a lot of your scripts for my project, they indeed are great!

    But I’ve got a question: In this skill upgrade system, there are arrows and requirements for skills to be learned right? Is it possible to put in place a requirement for a previous skill to be at least at certain level before learning the new one?

    Example:

    1st skill on the tree is Fire, the one on the left is Fire 2, but I need to have Fire on level 5 in order to learn Fire 2.

    If so, how is it done? Thank you in advance.

    April 25, 2014 at 13:39

    • Selluvia

      I tried using the learn skill requirement, it works when learning the skill automatically by level, but even if you need some skill on certain level, you can still learn it on the skill tree, that’s what happening ><

      April 25, 2014 at 16:35

  9. Selluvia

    Okay, I read thoroughly to see if it was my mistake somewhere, I read that notetags shall be used on skill noteboxes to work with skill upgrade, I tried every notetag possible, but the most important that is eval is getting this error:

    Script ‘Skill Upgrade’ line 1213: NoMethodError occurred.
    undefined method ‘skills_lv’ for #

    ——————————————————
    1212 @skill.evals_req.each do |evl|
    1213 if eval( evl.to_s )
    1214 y = draw_eval_req(y,mult)
    1215 end
    1216 end
    ——————————————————

    What’s exactly the problem? ><

    Skill notetag is like this:

    <eval req: skills_lv(201)

    Thank you for your attention ^^

    April 25, 2014 at 17:32

    • Selluvia

      Ooops, skill notetag is like THIS:

      <eval req: skill_lv(201)

      April 25, 2014 at 17:35

      • Selluvia

        Yeah, got it working when I took a look at the notetag configuration on learn skill requirement, eval indeed isn’t working, I needed to use

        It’s not on the instructions, so it became hard to solve the issue, thanks for the script ! ^-^

        Cheers! \o

        April 25, 2014 at 18:13

  10. Selluvia

    does it have problems with ”?

    I used: ”

    April 25, 2014 at 18:14

    • Hi, sorry for the delayed reply..,.

      The eval notetag did work the last time I checked. You actually have to pass it a true / false question / evaluation though.
      for example…

      skills_lv(id) Returns the level of the skills id. This would not be usable within an eval notetag as its not asking anything, therefore, its not evaluating anything.

      You could use…
      skills_lv(id) >= level . Which would ask the question, is skill id’s level greater or equal to level.

      Try this…

      <eval req: 5 < skills_lv(201)  >
      

      This will return true if the skill level is higher than 5. I am sure the eval method works ‘backwards’, so you may have to use this instea…

      <eval req: !(5 < skills_lv(201))  >
      

      Either way, it is definitely possible 🙂

      ALSO…

      you could have just used the notetag…

      <skill req: SKILL_ID , REQUIRED LEVEL >
      

      ^_^

      hope this helped somewhat 🙂

      April 26, 2014 at 13:54

  11. Rhaidor

    Hello Dekita ! Awsome script ! 🙂
    One question : is it possible to bound the skill trees not to specific actors,but to specific classes? ( or its already working like that and i missed something ? )
    Thank you!

    June 4, 2014 at 09:43

    • Yea it can do that. simply give the sug id notetag to classes instead of actors. If an actor has the note, then it will supersede the class notetag. ^_^

      <sug id: ID>
      

      June 4, 2014 at 12:59

      • Rhaidor

        Wow, thanks for the quick answer ! 🙂

        June 4, 2014 at 15:06

      • ^_^ no problem

        June 4, 2014 at 15:37

  12. Team Rocket Grunt

    Hello ! I have a strange problem..at every single skill it says, below the exp , gold and sp cost there is an extra line : Req Dagger 1 , and i have no idea why is this here. It dosnt do anything , so wont stop me learn or us the skill…it is just here. Do you have any idea? 😀

    June 13, 2014 at 19:23

  13. Yes. You have set a requirement for the skills to only be learned after you have whatever ‘dagger 1’ item is.

    If you didnt do this, it will be a bug or an incompatibity. To confirm that, I would suggest you test in a blank project. If the error persists – let me know ^_^

    June 13, 2014 at 21:30

    • Team Rocket Grunt

      In a clean project it wont appear, even if i copy all the scripts exactly like i have in the original project. So ok,i just copy the maps , and continue .
      And i figured out the Dagger was the Level … So Req Dagger 1 = Req Level 1 , but still no idea why Dagger 😀 and dindt renamed it.

      Well thank for you time and quick respond 🙂

      June 14, 2014 at 07:16

      • lol yea that makes more sense now, all skills have a learning requirement for level 1 by default lol Not sure why it called it ‘dagger’ though – especially if you didnt change the name :/

        Either way, happy you got it working 😀

        June 14, 2014 at 11:44

  14. Bearpigman

    Hello ,Dekita!
    This script is a charm and the most easy to use skill-tree script what i saw.
    One question : can i use it like… sorry for my bad english. So… can i use the lvl up method as… i create for a skill 5 lvls in the database,like : Heroic Strike 1, Heroic Strike 2 , etc. and if i lvl up Heroic Strike , my character forget the lvl 1 and get the lvl 2. Or this would be a totaly anather script and not possible , i use this 🙂

    June 17, 2014 at 17:04

    • Bearpigman

      I already use so many of your scripts , i need to add golden color font for your name in the credita 😀

      June 17, 2014 at 17:05

      • lol that would be cool ^_^

        Unfortunately, this script doesnt allow one skill to be replaced by another. It will probably be a feature that is added eventually as a few people have asked for it now. But I am far too busy this month with EUA (a game im making within a month lol)

        June 18, 2014 at 02:13

  15. Bearpigman

    Its cool if you have it in a future plan 🙂 I jump trought the skill system right now then , there is lot work to do.
    Good luck for you in the contest !

    June 18, 2014 at 09:03

  16. Joran

    Ok, i am probably just bad, so sorry for wasting your time…

    I’ve been able to get using most of your scripts without too many problems, got stuck sometimes and i eventually came over it in the end.

    But this one seems to be just beyond my skills.

    I can’t understand, this doesn’t seem to work because it says it need graphics but i have absolutely no clue on how to create something working.

    Aren’t there any examples anywhere? some graphic i can throw in to see how it works and then eventually replace it with my own?

    i can’t even say which kind of format it needs and where to put them exactly, i believe instructions provided are for someone that is on another level of knowledge than i currently am.

    I would be grateful if someone (even not the creator) could help me

    July 5, 2014 at 09:31

    • Follow the $D13x Engine link at the top of the page and then download the $D13x Master Demo.

      That will have the graphics that you need – which is only the skill box and selector images 🙂

      July 5, 2014 at 11:49

  17. Joran

    Thanks a lot for you answer! i’ve been really dumb to not understand how that worked after all!

    A little hint to improve this script:

    Would you think it will be possible to add a function that would be after the

    :skill => 1,
    :pos => [5,210],
    :dir => {l: [nil,false], r: [1,false], u: [nil,false], d: [nil,false]},

    as

    :learned => true, x

    Which loads a custom image to place above the skill icon (which could be like a green check V) when the skill reachs level X?

    That way the tree would be easyer to read for the player as he can see which skills he already learned.

    If it’s already possible to do that and i somehow missed it just slap me in the face and tell me how plz : )

    July 7, 2014 at 09:03

  18. Joran

    Oh, and there’s something else i can’t work around too : \

    If i use a the on a skill then the SP and Gold requirements on the skill tree aren’t showed up, there’s just a “–” instead.

    If i set the max level on 2 then they appear for lvl1, but the skill becomes upgradable and that’s not what i want.

    i’ve tryed modying the exp set on “skill levels” script by removing all levels but level 1, so that i don’t have to use the “max level”

    but he tries to draw requisites for the 2nd level anyway and crashes with an error.

    July 7, 2014 at 21:59

  19. Joran

    damn, it got eaten by the forum using the > < 😀 i meant if i use a "Max level: 1" notetag

    July 7, 2014 at 22:02

    • I will have to look into that issue further when I get some time.

      Seem you may have found a bug. Thanks for reporting it 🙂

      I will try get fix done as soon as I can but I ma very busy right now so I cant give a possible timeframe :/

      July 8, 2014 at 18:43

  20. Ashyra moonwolf

    Hi dekita! I found that script who is really cool, and usefull! I only got a tiny shiny problem…. Is there any way to use Dp and not Sp?? I want to use only 1 ressources for skill and status upgrade… (However, if it’s easyer to use Sp for both skill and status, i’ll deal with it!)

    September 24, 2014 at 12:02

    • Its possible yes; however, it would involve quite a bit of script modification. Unfortunately, there is no ‘easy’ way to achieve what you want 😦

      September 25, 2014 at 02:17

  21. Ashyra moonwolf

    well… can you help me a little and tell me what are the thing i have to change?

    September 25, 2014 at 11:23

  22. Ashyra moonwolf

    Excuse me again my friend! ^^’ I take my decision and use the sp setting by default! but i only give with lvl up for now! When i up many lvl, sp are not give…. thx for helping

    October 4, 2014 at 17:03

    • Yes, sorry. There is currently a few faults with this and I do not (currently) have enough time to fix the issues.
      I do plan to get the issues fixed, I’ve just been very very busy.

      I hope this does not cause you too much inconvenience 🙂

      October 5, 2014 at 15:38

  23. Ashyra moonwolf

    Hi me again ;p. Yeah I’ee there a few faults!! Don’t worry, this doen’t even is a inconvenience, i got time^^! And to do the best game ever i need to take it^^! So i decided to not use all sp gain! The player will have choice to change Stat into Skill point, and skill into stat! But the script code don’t work to… T-T So the Stat gone, and skill point never come^^ (Sorry for my english). (I use $game_actor[ID].gain_general_sp[MY VARIABLE])…… I think you probably hating me… And i wish you to know i’m sorry^^’, but you script is too cool and i don’t know scripting so…. (i can fix little bug… but you’re script is overcomplicated to me… ^^’

    October 7, 2014 at 19:58

    • Ashyra moonwolf

      (I just need the callscript fix to give or reduce sp point^^)

      October 8, 2014 at 22:09

      • Hi, you would use that script call that you posted; however, MY_VARIABLE MUST be a string (a string of letters enclosed with “) as shown below…

        $game_actors[ID].gain_general_sp(" MY_VARIABLE ")

        October 14, 2014 at 16:00

  24. Ashyra moonwolf

    …. Thx ^^… I’m sorry for that… II probably make it wrong…
    This is the exactly code i use!
    $game_actors[1].gain_general_sp(“$game_variables[11]”)
    i probably made something bad, even if the game don’t crah, i don’t earn points….

    October 14, 2014 at 22:32

  25. Ashyra moonwolf

    (To thx you if you wish, i’ll give you a demo ^^ (well demo is a fast word…. I will give you what i’ve done to try it ;), I’m “alone” on this project, but i make my best^^! For information, its kinda mix between monster hunter, ff on some point (and story point because old ff know it ^^, and he is based to be play hundreds hour! Got lot of thing to do, but when gameplay will be done…. The harder will be done^^ (yeah i hate scripting, but all mapping, event system, and graphics system is pretty cool^^) I have to finish all actor specific skil…. and have to made this Call script working^^)

    October 14, 2014 at 22:40

    • Ashyra moonwolf

      (But it’s in french… sorry ^^’)

      October 14, 2014 at 22:41

      • I will check that out when i get the chance but I am very very busy at the moment. If I can replicate the issue though then I should be able to find a fix for it 🙂

        October 16, 2014 at 20:15

  26. Ashyra moonwolf

    ;p if you want.. http://dl.free.fr/fuoqC6NVX ^^ you’ll can try my demo (i hope you know a few french words) and directly look what happens!!!

    October 18, 2014 at 11:44

    • Ashyra moonwolf

      No user: passwords: navi

      October 18, 2014 at 11:45

  27. Jacob

    Ok this is going to be a very noob question, but i have tried everything and cannot seem to get the menu option to pop up for the skill tree. Is it just me being dumb or do i have to get another script besides the ones that the script calls for in the instructions? I have the distribute option working but the skill tree menu wont ever appear. Hopefully you can help me >.<

    October 27, 2014 at 01:03

    • You have to use my skill scene to open it 🙂

      October 27, 2014 at 20:48

      • Jacob

        I am using the skill scene, but for whatever reason that isnt working either.

        October 27, 2014 at 20:50

      • Strange – do you have any other scripts that could be conflicting?
        Could also call the scene directly using
        SceneManager.call(SUG_Scene)

        October 29, 2014 at 00:57

  28. Jacob

    there are no other scripts that would be conflicting. I removed all others and only had your core and other scripts you have made. The skill scene just never comes up with the new windows and i have no idea why it wont.

    October 30, 2014 at 05:12

    • That is strange.. Do you have an example project you could send me and I will look into it further?

      October 30, 2014 at 15:22

  29. Edison

    Hi! I’m having a problem at level 1 skills because all requirements except for required level and skills, are blank or something like —
    I think it was my mistake! thank for the great script.

    November 7, 2014 at 12:42

  30. JayNyne

    Hey the script is great but I’m having a little bit of trouble when leveling up skills. If a skill requires 10 strength and level 20 to learn, then when I have met those requirements I can learn it. The issues come up when getting the skills to higher levels. First, the level requirement stills says 20 instead of 24, 28, 32 and 36 for each level but the character must be at those levels to learn it. The only other problem is that after learning the skill, the ISPD stat requirement becomes redundant when leveling up. The strength requirement will change to 12, 14, 16 and 18 but they won’t be needed and leveling the skill becomes purely based of the character’s level.

    December 14, 2014 at 22:29

    • hmmm, thats interesting. I will look into that when I can. 🙂

      December 15, 2014 at 16:29

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s