Help - Search - Members - Calendar
Full Version: Basic? - Skill Trees - of Awesome v1.22 (07-Jul-2011 chinese version)
RPG RPG Revolution Forums > Scripting > Script Submissions > RGSS2-Submissions
Pages: 1, 2, 3, 4, 5, 6
Rosenblack
QUOTE (leongon @ Dec 7 2011, 02:14 PM) *
QUOTE
Beginning Thursday December 1, 2011 we will begin a phased approached to incrementally providing access to account data. Though the entire process will take approximately 4-7 days to complete all phases, a vast majority will have access in the next 24-48 hours.

We apologize for the inconvenience and look forward to having FileDen.com back up to 100% as soon as possible.


My file hosting is under maintenance for some days. I will check if the demo download is working in a couple of days... if not, I will host the demo in a different place.

^^

please do
desukarhu
Any news on when the demo is going to be reuploaded?
leongon
QUOTE (desukarhu @ Dec 12 2011, 08:10 AM) *
Any news on when the demo is going to be reuploaded?

I have been trying to contact the people on my filehosting, but no reply so far... looks like their process of "enhancement" of their service was a complete mess.

I recovered my files from my old PC yesterday... will reupload the demo somewhere else now wink.gif Stay tuned.
leongon
Okay, the demo link is UP again on a different hosting. Now the download won't start instantly after you click the link, but you will just get a simple screen with a black button to download it without waiting times.

I loved Fileden QQ, but this new host is not so bad...
Rosenblack
QUOTE (leongon @ Dec 13 2011, 07:51 AM) *
Okay, the demo link is UP again on a different hosting. Now the download won't start instantly after you click the link, but you will just get a simple screen with a black button to download it without waiting times.

I loved Fileden QQ, but this new host is not so bad...

this is a very good script, too bad for you inability to use paper and a pencil.
Suitch
I really like this script! Thanks for making it. I do want to add Jet's Mouse script as well though and it has a weird problem: seems that it allows the clicking of arrows and spaces inbetween the skills; which returns a nil value and crashes the game. Is there anyway you could look into this? I only need to make them not respond in a non-NIL/void manner, not necessarily unclickable, just non-responsive.
leongon
QUOTE (Suitch @ Dec 13 2011, 10:51 PM) *
I really like this script! Thanks for making it. I do want to add Jet's Mouse script as well though and it has a weird problem: seems that it allows the clicking of arrows and spaces inbetween the skills; which returns a nil value and crashes the game. Is there anyway you could look into this? I only need to make them not respond in a non-NIL/void manner, not necessarily unclickable, just non-responsive.

Uhmmm that will take a little of scripting and I stopped scripting to focus on drawing. I support my script still but just to give some guidance.

Try to find a scripter willing to help, and tell him/her that the arrows in my script works as objects that the script itself bypasses until finding skill objects when moving the cursor... so, shouldn't be so hard to add some code for a response the mouse script can handle on clicking the arrows and empy spaces.

wink.gif
lazyViking
Hi smile.gif
I just found this script with a custum menu, and i would like to use both, the menu is made by PHLiM2 and is realy nice, but i cant find a way to add the skill tree to the menu, in the first post you said to ask, so here i am, asking tongue.gif

the menu script is here: http://www.rpgmakervx.net/index.php?showtopic=22292

the scripter allso posted a tutorial (http://www.rpgmakervx.net/index.php?showtopic=22292&view=findpost&p=270843),
wich i followed and it ended up doing nothing because i cant find which class to put after the $scene ( ex. $scene = Scene_SceneName) i tried with $scene = Scene_SkillTree, but it didnt work. you got any tips?
lvlercenary
would there be any way to edit this script to run similar to Skyrims skill trees? (i hope you know what im refering to....)
leongon
QUOTE (lazyViking @ Jan 28 2012, 09:53 PM) *
Hi smile.gif
I just found this script with a custum menu, and i would like to use both, the menu is made by PHLiM2 and is realy nice, but i cant find a way to add the skill tree to the menu, in the first post you said to ask, so here i am, asking tongue.gif

the menu script is here: http://www.rpgmakervx.net/index.php?showtopic=22292

the scripter allso posted a tutorial (http://www.rpgmakervx.net/index.php?showtopic=22292&view=findpost&p=270843),
wich i followed and it ended up doing nothing because i cant find which class to put after the $scene ( ex. $scene = Scene_SceneName) i tried with $scene = Scene_SkillTree, but it didnt work. you got any tips?


Hi

I took a look at the links, and I only can say that scriper is teeling people how to "edit" the script instead of making data gathering forms to make it possible to configurate for non-scripters... Making it very non-user-friendly. I must appologize but in the look I gave to the "tutorial" I got lost, since I haven't been scriting for quite a while.

However.. I can say that if you are using Scene_SkillTree to call my script, you are doing it right. I only can suggest you to ask for guidance on an active scripter to help you on editing that other menu script.



QUOTE (lvlercenary @ Jan 29 2012, 06:18 PM) *
would there be any way to edit this script to run similar to Skyrims skill trees? (i hope you know what im refering to....)


Yup is possible, but it requires a fair ammount of editing to my code, and might be complicated since my code is really dirty... but yeah, is possible to make it look like Skyrim's skill trees by doing basically some editing to placements and positioning smart data.

I'm only supporting my scripts for now... not developing them anymore. You can ask any scripter to edit my script, I'm okay with that as long as I'm credited as the original author -nods-

If I ever decide to come back to VX scripting, I will consider to make a Skyrim looking version. I love that game.
marjoni01
Why I get error like this:

Click to view attachment

Please help if anyone how to do it... ohmy.gif
leongon
QUOTE (marjoni01 @ Mar 9 2012, 02:36 AM) *
Why I get error like this:

Click to view attachment

Please help if anyone how to do it... ohmy.gif

Show me your setup script data smile.gif
marjoni01
@leongon

here's the setup

CODE
module ST_setup
################################################################################
#                                   * Setup *                                  #
#                     Basic? - Skill Tree - of Awesome v1.22                   #
#                                  19 Feb 2011                                 #
################################################################################
# Author: Leongon                                                              #
# Contact: carlos_gon47@hotmail.com       (or PM leongon on the board below)   #
# Licence: Free for commercial and non-commercial proyects, just credit.       #
# Share: Exclusive for www.rpgrevolution.com                                   #
#        If you want to share it outside give a link only, please.             #
################################################################################
# This is my very first big non-so-basic script, and I'm very proud of how it  #
# got done, almost exactly what I wanted to accomplish when I start writing it #
# about a week ago.                                                            #
# ---------------------------------------------------------------------------- #
# As the name says, this script introduces the very popular function from most #
# MMORPGs: Skill Trees, or talent trees if you prefer, for your heroes.        #
#                                                                              #
# You need to work only in this one, the Core manages the info you give here   #
# and builds the system.                                                       #
################################################################################
# Instructions #                                                               #
################                                                               #
#                                                                              #
# This works pretty much like Tankentai's action sequences building. You'll    #
# need to create objects that you must organize at the end in the final trees. #
# I put descriptions and syntax in each sections to help you on understanding  #
# how to build your trees. So read each carefully.                             #
#                                                                              #
# Actually I made it to be able to work like Diablo II and World of Warcraft   #
# talent systems. Combine both systems if you want. Play with the object's     #
# requirements to make it work as you like.                                    #
#                                                                              #
# If you don't understand this, play the Tutorial, is almost a game more than  #
# a demo, and it will carry you around some of this script posibilities, and   #
# teach you how to use them.                                                   #
#                                                                              #
# If you still need guidance, find bugs or have ideas, reply on the thread.    #
# I will answer everything that is not already explained here, the thread or   #
# in the tutorial, if I'm still around. (One never knows what the life have    #
# for fate)                                                                    #
#                                                                              #
################################################################################

################################################################################
# Command List #            Commands for use on script call events             #
################                                                               #
# Commands:                                                                    #
#                                                                              #
# ST_command::show(mode, actor, exit)       - Opens directly an actor's tree.  #
#                                                                              #
# ST_command::reward(mode, actor, quantity) - Give extra points to an actor.   #
# ST_command::reward_party(quantity)        - Give extra points to party.      #
#                                                                              #
# ST_command::reset(mode, actor)            - Reset an actor's skill trees.    #
# ST_command::reset_party                   - Reset entire party skill trees.  #
#                                                                              #
# ---------------------------------------------------------------------------- #
# Values:                                                                      #
#                                                                              #
# mode      0 - Target actor by party position.                                #
#           1 - Target actor by actor name.                                    #
#           2 - Target actor by actor ID.                                      #
#                                                                              #
# actor     Actor position, name or ID, depending on mode.                     #
#                                                                              #
# exit      true - Exits to Map uppon leaving the Skill Tree scene.            #
#           Ommit for exiting to menu.                                         #
#                                                                              #
# quantity  Amount of skill points to reward.                                  #
#           Ommit to reward one point.                                         #
#                                                                              #
################################################################################


#------------------------------------------------------------------------------#
# * General Settings *                                                         #
#                                                                              #
# --------- System ---------- # ---------------------------------------------- #
  ST_menu_pos = 6             # Menu index to land when exiting Skill Trees.   #
  ST_scale_mode = true        # (true-false) Skills that require actor level   #
                              # will scale with each point spended, requiring  #
                              # one more actor level each time.                #
  ST_level_up_point = true    # (true-false) Gain a skill point on level up.   #
  ST_first_skill_point = 2    # Actor lvl where start gaining skill points at. #
  ST_confirm_popup = true     # (true-false) Require confirm for spend point.  #
  ST_notalents_popup = true   # (true-false) Show warning pop-up for actors    #
                              # without skill trees available.                 #
  ST_notalents_popAN = true   # (true-false) Include actor's name in warning   #
                              # string for actors without skill trees.         #
# -------- Language --------- # ---------------------------------------------- #
  ST_menu = "SKILL TREE"      # Menu selection command. Will be used on menu   #
                              # access to the skill trees.                     #
  ST_voc_max = "Maxed"        # Skill maxed.                                   #
  ST_voc_unl = "Not Learned"  # Skill still not learned.                       #
  ST_voc_now = "Now: "        # Actual skill level description.                #
  ST_voc_nex = "Next: "       # Next skill level description.                  #
  ST_voc_cur = "Skill Points:"# Currency count.                                #
  ST_voc_req = "Require:"     # Title for requirements.                        #
  ST_voc_lvl = "Hero level "  # Hero level required.                           #
  ST_voc_one = " point in "   # One point required.                            #
  ST_voc_many = " points in " # More than one point required.                  #
  ST_voc_q = "Are you sure?"  # Confirm box question.                          #
  ST_voc_ok = "Ok"            # Confirm selection.                             #
  ST_voc_cancel = "Cancel"    # Revoke selection.                              #
  ST_voc_noSTpop_pre = ""     # Text before actor's name for no-tree warning.  #
  ST_voc_noSTpop_pos = " doesn't seem to be able to improve talents." # Text   #
                              # after actor's name for no-tree warning.        #
  ST_voc_noSTpop = "Continue" # Command for actors without skill trees         #
# -------- Graphics --------- # ---------------------------------------------- #
  ST_zero_sp_color = 10       # (0-31) Color for zero skill points.            #
  ST_skillname_color = 14     # (0-31) Color for selected skill's name.        #
  ST_arrow_disabled = 118     # (0-255) Alpha for disabled arrow objects.      #
  ST_skill_disabled = 138     # (0-255) Alpha for disabled skill objects.      #
  ST_show_obj_lvl = true      # (true-false) Show object level over the icons. #
  ST_arrow_hue = 155          # (0-360) This is the color variance of the      #
                              # arrow's graphics.                              #
  ST_imageback = 240          # (0-255) Alpha. Replaces the main tree window   #
                              # background with an image. To disable this mode #
                              # use false. Images must be at 206x348 size, in  #
                              # Graphics/System/ folder, matching the tree     #
                              # names in Tree Building section. (Ex: ARMS.png) #
  ST_windows_var = 6          # (ID) Game-variable ID that controls windows    #
                              # distribution on the screen. Change the value   #
                              # of that variable from 0 to 7, try them all.    #
  ST_tree_selection = 0       # (0-2) Tree selection windows work option.      #
                              # 0: Animated cursor. 1: Steady cursor.          #
                              # 2: Colour name, no cursor.                     #
  ST_treeselection_color = 14 # Color for tree selection option 2.             #
#-----------------------------#------------------------------------------------#


ST_arrow = [ # Don't touch.
#------------------------------------------------------------------------------#
# * Arrow Graphics List *                                                      #
#                                                                              #
# You don't need to touch this section unless you change the arrow's order in  #
# the SkillTree.png file.                                                      #  
#------------------------------------------------------------------------------#
# "GraphicName",                                                               #
  "A_l_st",            # To left line, start.                                  #
  "A_r_st",            # To right line, start.                                 #
  "A_ver_st",          # Vertical line, start.                                 #
  "A_ver",             # Vertical line.                                        #
  "A_hor",             # Horizontal line.                                      #
  "A_ver_end",         # Vertical line, end.                                   #
  "A_l_end",           # To left line, end.                                    #
  "A_r_end",           # To right line, end.                                   #
  "A_ver_w_diag_r",    # Vertical line with right diagonal branch.             #
  "A_ver_w_diag_l",    # Vertical line with left diagonal branch.              #
  "A_diag_r_st",       # Diagonal to right line, start.                        #
  "A_diag_r_abo_cor",  # Diagonal to right upper chunk.                        #
  "A_diag_r_bel_cor",  # Diagonal to right lower chunk.                        #
  "A_diag_r",          # Diagonal to right line.                               #
  "A_diag_r_end",      # Diagonal to right line, end.                          #
  "A_diag_l_st",       # Diagonal to left line, start.                         #
  "A_diag_l_abo_cor",  # Diagonal to left upper chunk.                         #
  "A_diag_l_bel_cor",  # Diagonal to left lower chunk.                         #
  "A_diag_l",          # Diagonal to left line.                                #
  "A_diag_l_end",      # Diagonal to left line, end.                           #
] # Don't touch.                                                               #
#------------------------------------------------------------------------------#


ST_object = { # Don't touch.
#------------------------------------------------------------------------------#
# * Creating Arrow Objects *                                                   #
#                                                                              #
# Here you build arrow objects for each tree. Each arrow fragment must be      #
# created as a unique arrow object, that way they can have requirements to be  #
# enabled.                                                                     #
#------------------------------------------------------------------------------#
#                                                                              #
# "ArrowObject"  - Is the unique name for that arrow object.                   #
# "arrow_object" - Identifier, use always "arrow_object".                      #
# "arrow"        - Is the graphic name from Arrow Graphics List section.       #
# "dadskill"     - Father Skill Object name. The skill object that conditions  #
#                  this arrow object.                                          #
#------------------------------------------------------------------------------#
# "ArrowObject" => ["arrow_object", "arrow", "dadskill"],

  "SP_1_1"      => ["arrow_object", "A_ver_st", "SP_1"],
  "SP_1_2"      => ["arrow_object", "A_ver_end", "SP_1"],
  "SP_2_1"      => ["arrow_object", "A_ver_st", "SP_2"],
  "SP_2_2"      => ["arrow_object", "A_ver_end", "SP_2"],
  "SP_3_1"      => ["arrow_object", "A_l_st", "SP_3"],
  "SP_3_2"      => ["arrow_object", "A_l_end", "SP_3"],
  "SP_3_3"      => ["arrow_object", "A_r_st", "SP_3"],
  "SP_3_4"      => ["arrow_object", "A_r_end", "SP_3"],
  "SP_3_5"      => ["arrow_object", "A_ver_st", "SP_3"],
  "SP_3_6"      => ["arrow_object", "A_ver_end", "SP_3"],
  "SP_4_1"      => ["arrow_object", "A_ver_st", "SP_4"],
  "SP_4_2"      => ["arrow_object", "A_ver_end", "SP_4"],
  "SP_5_1"      => ["arrow_object", "A_ver_st", "SP_5"],
  "SP_5_2"      => ["arrow_object", "A_ver_end", "SP_5"],
  "SP_6_1"      => ["arrow_object", "A_ver_st", "SP_6"],
  "SP_6_2"      => ["arrow_object", "A_ver_end", "SP_6"],
  "SP_7_1"      => ["arrow_object", "A_ver_st", "SP_7"],
  "SP_7_2"      => ["arrow_object", "A_ver_end", "SP_7"],
  "SP_8_1"      => ["arrow_object", "A_ver_st", "SP_8"],
  "SP_8_2"      => ["arrow_object", "A_ver_end", "SP_8"],
  "SP_9_1"      => ["arrow_object", "A_r_st", "SP_9"],
  "SP_9_2"      => ["arrow_object", "A_r_end", "SP_9"],
  "SP_10_1"     => ["arrow_object", "A_l_st", "SP_10"],
  "SP_10_2"     => ["arrow_object", "A_l_end", "SP_10"],
  "SW_1_1"      => ["arrow_object", "A_ver_st", "SW_1"],
  "SW_1_2"      => ["arrow_object", "A_ver_end", "SW_1"],
  "SW_2_1"      => ["arrow_object", "A_l_st", "SW_2"],
  "SW_2_2"      => ["arrow_object", "A_l_end", "SW_2"],
  "SW_2_3"      => ["arrow_object", "A_r_st", "SW_2"],
  "SW_2_4"      => ["arrow_object", "A_r_end", "SW_2"],
  "SW_2_5"      => ["arrow_object", "A_ver_st", "SW_2"],
  "SW_2_6"      => ["arrow_object", "A_ver_end", "SW_2"],
  "SW_3_1"      => ["arrow_object", "A_ver_st", "SW_3"],
  "SW_3_2"      => ["arrow_object", "A_ver", "SW_3"],
  "SW_3_3"      => ["arrow_object", "A_ver", "SW_3"],
  "SW_3_4"      => ["arrow_object", "A_ver", "SW_3"],
  "SW_3_5"      => ["arrow_object", "A_ver", "SW_3"],
  "SW_3_6"      => ["arrow_object", "A_ver", "SW_3"],
  "SW_3_7"      => ["arrow_object", "A_ver", "SW_3"],
  "SW_3_8"      => ["arrow_object", "A_ver_end", "SW_3"],
  "SW_4_1"      => ["arrow_object", "A_ver_st", "SW_4"],
  "SW_4_2"      => ["arrow_object", "A_ver", "SW_4"],
  "SW_4_3"      => ["arrow_object", "A_ver", "SW_4"],
  "SW_4_4"      => ["arrow_object", "A_ver", "SW_4"],
  "SW_4_5"      => ["arrow_object", "A_ver", "SW_4"],
  "SW_4_6"      => ["arrow_object", "A_ver", "SW_4"],
  "SW_4_7"      => ["arrow_object", "A_ver", "SW_4"],
  "SW_4_8"      => ["arrow_object", "A_ver_end", "SW_4"],
  "SW_5_1"      => ["arrow_object", "A_ver_st", "SW_5"],
  "SW_5_2"      => ["arrow_object", "A_ver_end", "SW_5"],
  "SW_6_1"      => ["arrow_object", "A_ver_st", "SW_6"],
  "SW_6_2"      => ["arrow_object", "A_ver_end", "SW_6"],
  "MA_1_1"      => ["arrow_object", "A_r_st", "MA_1"],
  "MA_1_2"      => ["arrow_object", "A_r_end", "MA_1"],
  
#                                                                              #
#------------------------------------------------------------------------------#


#------------------------------------------------------------------------------#
# * Creating Skill Objects *                                                   #
#                                                                              #
# Here you build skill objects for each tree. They contain the info regarding  #
# their levels and requirements to be enabled, and for enabling other skill    #
# objects.                                                                     #
#------------------------------------------------------------------------------#
#                                                                              #
# "SkillObject"  - Is the unique name for that skill object.                   #
# reqlvl         - Is the actor needed level for this object to be enabled.    #
# treepts        - Are the required points spended in the tree for this object #
#                  to be enabled.                                              #
# "dad" - "mom"  - Parents skill Object name. Skill objects that conditions    #
#                  this skill object. Use nil for no dependance.               #
# maxlvl         - Is the maximum skill points spendable on this skill object. #
# childreqlvl    - Is the necessary ammount of points in this skill object to  #
#                  allow spending points in skills linked to this one.         #
# idlvl...       - Are the Skill IDs for each level of that skill.             #
# -----------------------------------------------------------------------------#
# "SkillObject" => [reqlvl, treepts, "dad", "mom", maxlvl, childreqlvl, idlvl1, idlvl2,...],

  "SP_1"        => [1, 0, nil, nil, 5, 5, 118, 119, 120, 121, 122],
  "SP_2"        => [3, 0, "SP_1", nil, 5, 5, 123, 124, 125, 126, 127],
  "SP_3"        => [5, 0, "SP_2", nil, 5, 5, 128, 129, 130, 131, 132],
  "SP_4"        => [15, 0, "SP_3", nil, 5, 5, 133, 134, 135, 136, 137],
  "SP_5"        => [15, 0, "SP_3", nil, 5, 5, 138, 139, 140, 141, 142],
  "SP_6"        => [15, 0, "SP_3", nil, 5, 5, 143, 144, 145, 146, 147],
  "SP_7"        => [20, 0, "SP_4", nil, 5, 5, 148, 149, 150, 151, 152],
  "SP_8"        => [20, 0, "SP_5", nil, 5, 5, 153, 154, 155, 156, 157],
  "SP_9"        => [25, 0, "SP_7", nil, 5, 5, 158, 159, 160, 161, 162],
  "SP_10"       => [25, 0, "SP_8", nil, 5, 5, 163, 164, 165, 166, 167],
  "SP_11"       => [30, 0, "SP_9", "SP_10", 1, 5, 168],
  "SW_1"        => [1, 0, nil, nil, 5, 5, 169, 170, 171, 172, 173],
  "SW_2"        => [3, 0, "SW_1", nil, 5, 5, 174, 175, 176, 177, 178],
  "SW_3"        => [5, 0, "SW_2", nil, 5, 5, 179, 180, 181, 182, 183],
  "SW_4"        => [5, 0, "SW_2", nil, 5, 5, 184, 185, 186, 187, 188],
  "SW_5"        => [5, 0, "SW_2", nil, 5, 5, 189, 190, 191, 192, 193],
  "SW_6"        => [15, 0, "SW_5", nil, 5, 5, 194, 195, 196, 197, 198],
  "SW_7"        => [25, 0, "SW_3", nil, 5, 5, 199, 200, 201, 202, 203],
  "SW_8"        => [25, 0, "SW_6", nil, 5, 5, 204, 205, 206, 207, 208],
  "SW_9"        => [25, 0, "SW_4", nil, 5, 5, 209, 210, 211, 212, 213],
  "MA_1"        => [1, 0, nil, nil, 5, 5, 214, 215, 216, 217, 218],
  "MA_2"        => [3, 0, "MA_1", nil, 5, 5, 219, 220, 221, 222, 223],
  

} # Don't touch.                                                               #
#------------------------------------------------------------------------------#


ST_tree_build = { # Don't touch.
#------------------------------------------------------------------------------#
# * Tree Building *                                                            #
#                                                                              #
# Here you build each skill tree using the previous set'd skill and arrow      #
# objects.                                                                     #
#                                                                              #
# There are 7 slots per row, being 1, 4 and 7 for skill objects, while 2,3,5   #
# and 6 are for arrow objects. Rows have no max limit, you have the first one  #
# for skills, next two are for arrows and so.                                  #
#------------------------------------------------------------------------------#
#                                                                              #
# "TREE_NAME" - Is the tree unique name.                                       #
# "obj..."    - Skill or Arrow Object name from the previous sections.         #
#               For empty slot use nil.                                        #
# -----------------------------------------------------------------------------#
# "TREE_NAME" => [   obj 1,   obj 2,   obj 3,   obj 4,   obj 5,   obj 6,   obj 7],

"SPEAR"      => [     nil,     nil,     nil,  "SP_1",     nil,     nil,     nil,
                       nil,     nil,     nil,"SP_1_1",     nil,     nil,     nil,
                       nil,     nil,     nil,"SP_1_2",     nil,     nil,     nil,
                       nil,     nil,     nil,  "SP_2",     nil,     nil,     nil,
                       nil,     nil,     nil,"SP_2_1",     nil,     nil,     nil,
                       nil,     nil,     nil,"SP_2_2",     nil,     nil,     nil,
                    "SP_4","SP_3_2","SP_3_1",  "SP_3","SP_3_3","SP_3_4",  "SP_5",
                  "SP_4_1",     nil,     nil,"SP_3_5",     nil,     nil,"SP_5_1",
                  "SP_4_2",     nil,     nil,"SP_3_6",     nil,     nil,"SP_5_2",
                    "SP_7",     nil,     nil,  "SP_6",     nil,     nil,  "SP_8",
                  "SP_7_1",     nil,     nil,"SP_6_1",     nil,     nil,"SP_8_1",
                  "SP_7_2",     nil,     nil,"SP_6_2",     nil,     nil,"SP_8_2",
                    "SP_9","SP_9_1","SP_9_2", "SP_11","SP_10_2","SP_10_1", "SP_10"],
                  
"SWORD"      => [     nil,     nil,     nil,  "SW_1",     nil,     nil,     nil,
                       nil,     nil,     nil,"SW_1_1",     nil,     nil,     nil,
                       nil,     nil,     nil,"SW_1_2",     nil,     nil,     nil,
                    "SW_3","SW_2_2","SW_2_1",  "SW_2","SW_2_3","SW_2_4",  "SW_4",
                  "SW_3_1",     nil,     nil,"SW_2_5",     nil,     nil,"SW_4_1",
                  "SW_3_2",     nil,     nil,"SW_2_6",     nil,     nil,"SW_4_2",
                  "SW_3_3",     nil,     nil,  "SW_5",     nil,     nil,"SW_4_3",
                  "SW_3_4",     nil,     nil,"SW_5_1",     nil,     nil,"SW_4_4",
                  "SW_3_5",     nil,     nil,"SW_5_2",     nil,     nil,"SW_4_5",
                  "SW_3_6",     nil,     nil,  "SW_6",     nil,     nil,"SW_4_6",
                  "SW_3_7",     nil,     nil,"SW_6_1",     nil,     nil,"SW_4_7",
                  "SW_3_8",     nil,     nil,"SW_6_2",     nil,     nil,"SW_4_8",
                    "SW_7",     nil,     nil,  "SW_8",     nil,     nil, "SW_9"],
                  
"MAGIC"      => [  "MA_1","MA_1_1","MA_1_2",  "MA_2",     nil,     nil,     nil,
                  nil     ,     nil,     nil,     nil,     nil,     nil,     nil,
                  nil     ,     nil,     nil,     nil,     nil,     nil,     nil,
                  nil],

                  
"AXE"        => [     nil,     nil,     nil,     nil,     nil,     nil,     nil,
                       nil,     nil,     nil,     nil,     nil,     nil,     nil,
                       nil,     nil,     nil,     nil,     nil,     nil,     nil,
                       nil],
                  
"STAFF"      => [     nil,     nil,     nil,     nil,     nil,     nil,     nil,
                       nil,     nil,     nil,     nil,     nil,     nil,     nil,
                       nil,     nil,     nil,     nil,     nil,     nil,     nil,
                       nil],

} # Don't touch.                                                               #
#------------------------------------------------------------------------------#


ST_class_assign = { # Don't touch.
#------------------------------------------------------------------------------#
# * Asigning Skill Trees to Classes *                                          #
#                                                                              #
# Here you set the available trees for each class. Max of 3 trees per class.   #
# If less, use nil.                                                            #
#------------------------------------------------------------------------------#
#                                                                              #
# ClassID           - Is the class id, d'oh.                                   #
# "TREE..."         - Are the tree's unique names from Tree Building section,  #
#                     this class have available.                               #
# "Display..."      - Are the displayed name for that skill tree. Ex: Having   #
#                     "Protection" tree for Warriors and Paladins in WoW.      #
#------------------------------------------------------------------------------#
# ClassID => ["TREE_1", "TREE_2", "TREE_3", "Display 1", "Display 2", "Display 3"],

  2 => ["SPEAR", "MAGIC", nil, "Spear", "Magic", nil],
  3 => ["SWORD", "MAGIC", nil, "Sword", "Magic", nil],
  4 => ["AXE", "MAGIC", nil, "Axe", "Magic", nil],
  5 => ["STAFF", "MAGIC", nil, "Staff", "Magic", nil],
  6 => ["SWORD", nil, nil, "Sword", nil, nil],
  7 => ["MAGIC", nil, nil, "Magic", nil, nil],
  
} # Don't touch.                                                               #
#------------------------------------------------------------------------------#


#------------------------------------------------------------------------------#
end # of Skill Tree's setup script.                                            #
#------------------------------------------------------------------------------#
leongon
Okay.... after some tests for about one hour (°3° this happens when you are away from scripting for so much time xD) I believe you are calling some unexistant skills into the skill tree... so, check your database... see if all the skill IDs you are using in the skill tree are set properly. You're calling skills from 118 to 223, check if those are set in your game database.
marjoni01
Silly me!
I forgot that the my maxed skill is 200...
and the skill that i use is 200++
tongue.gif Well, sorry to trouble you...

Last Question:
Is the skill is limited to 11?
Because if i'm added more it will give me error says:

Skill Tree Core
Unidentified Method "+" bla bla...
leongon
should not be limited... it might be a bug, but i'll need more info to check that... the actual error message and what exactly you mean by a skill limited to 11
marjoni01
QUOTE (leongon @ Mar 11 2012, 07:19 PM) *
should not be limited... it might be a bug, but i'll need more info to check that... the actual error message and what exactly you mean by a skill limited to 11



Well, the error is at line 283 in your tree skill core...this is the code that error :
CODE
index_lvls_plus += 6

The "+" in that line is error when i use skill more than 11...
And what i mean about the skill limited is about this error...If i make the skill more than 11(Or 12 I Think?) it will go error in one job like spear or something....So, i need to know about it...Thanks for your help before... wink.gif
leongon
I don't really understand yet what is that 11 or 12 you mention... where you put the 11 or 12 to get that error. If you're editing the core, i don't mind as long as i'm credited as original author, but i can't give support on those edits.

If the 11 or 12 is a setting in the setup script, please tell me where you put it to get the error. Then i can see if is a bug and maybe make a fix for it. -nods-

Also... please... the error message you get xD
marjoni01
QUOTE (leongon @ Mar 13 2012, 08:34 AM) *
I don't really understand yet what is that 11 or 12 you mention... where you put the 11 or 12 to get that error. If you're editing the core, i don't mind as long as i'm credited as original author, but i can't give support on those edits.

If the 11 or 12 is a setting in the setup script, please tell me where you put it to get the error. Then i can see if is a bug and maybe make a fix for it. -nods-

Also... please... the error message you get xD


Well, I'm sorry to trouble you... tongue.gif
looks like i'm wrong about it...
Now, it's look okay...I don't know why that time there's an error...
But now, It's looks like perfect...
Maybe Just This Computer That Error dry.gif
Once Again, I'm really sorry to trouble you happy.gif

EDIT: Never Mind. I know it...

EDIT 2: And how to call the skill tree? (Like $scene= blablabla)
leongon
QUOTE (marjoni01 @ Mar 12 2012, 10:37 PM) *
EDIT 2: And how to call the skill tree? (Like $scene= blablabla)

how to call a skill tree scene?... bro, it's explained in the demo, and in the setup script's header.
marjoni01
I mean about the scene is because the demo link is broken and i need to added it into menu
The menu i use is Ring menu VX...(http://www.rpgmakervx.net/index.php?showtopic=3152)
And i test it but it directly call one actor...And that's why i'm ask you...
Well, i'm troubling you again mellow.gif
leongon
I see, well... is Scene_SkillTree, but you need to do actor selection first in your menu script. Check that menu script's intro... it should explain how to set menu command that requires prior actor selection. I did on mine.

THanks for telling me the demo link is broken... I'll check what's wrong ><
leongon
Allright people, the demo link is working again >< Now I hosted it in a more reliable system, and also is direct download again... it means you click the download demo button on the first post of this thread, and you get the file right ahead.
Zanaram
This script is awesome!! I've been looking for something like this for awhile now, thank you soo much for scripting it and sharing it with the public!

I'm having a small problem with it thou, Im kinda a noob with scripts and can only figure out what to do by following dirrections. This script is kinda complicated, but i'm figuring most of it out from trial n error. I started making a skill tree for the hero in my game, and when i went to test it an error pops up everytime i try to access the skill tree saying,

Script 'Leongon SkillTree Core' line 264: NoMethodError occurred.
undefined method '[]' for nil:NilClass

the core script says to leave it alone, and i wouldnt know what to do with it anyway.. Is this error a bugg or problem that others are having? or did I just do something wrong when i was playing with the setup script?
leongon
The error on that line makes me think that you are calling an arrow object in the skill tree building section, and that specific arrow object name is not created yet in the arrow object section.

This script goes like this: you create arrow objects -> you create skill objects -> you organize those arrow and skill objects into trees.

Unexistant arrow object seems to be your problem, so check your setup script again. EDIT: At a second look, it might be an unexistant object... arrow or skill... you're calling an object name in the tree building section, that you have not created in arrows or skills sections.
Zanaram
QUOTE (leongon @ Mar 18 2012, 10:44 PM) *
The error on that line makes me think that you are calling an arrow object in the skill tree building section, and that specific arrow object name is not created yet in the arrow object section.

This script goes like this: you create arrow objects -> you create skill objects -> you organize those arrow and skill objects into trees.

Unexistant arrow object seems to be your problem, so check your setup script again. EDIT: At a second look, it might be an unexistant object... arrow or skill... you're calling an object name in the tree building section, that you have not created in arrows or skills sections.


Thank you for your help. I looked through the script and realized I kept the ARMS tree and skills but removed the arrows, which is what caused the error. I removed them and now it's working perfectly.
rofl1337
Are you planning on converting this script to Ace? As of now, there are no skill tree systems out for Ace and yours would be the first one.
I really like the amount of customizability and the idea of having multiple skill trees.
There is one additional feature I would propose though: Stat increases and additional traits (for Ace), that are gained, when unlocking nodes in the skill tree. So basically, nodes, that do not unlock skills, but rather grant passive bonuses.
Sincerely
leongon
There are plenty of Passive Skill scripts to be used for that functionality. I made one, is not the best, but does the work.

About converting to ACE, ehmmm is not in my plans. I'm merely giving support to my scripts by now, but not scripting anymore.
Kali3
I may not be good at scripting, but I just can't make this compatible with YEM. Any help? Each time I go to main menu, I get an error report. sad.gif
leongon
What is YEM?
Kali3
QUOTE (leongon @ Apr 12 2012, 02:36 PM) *
What is YEM?

YEM is Yanfly's Engine Melody. I am using it 'cause it's awesome. If you would like to check it out, download it here:
http://rmrk.net/index.php?topic=42396.0
Hope you find a solution...
Have a nice day.
leongon
Oh, an engine. Well is not a surprise that scripts not specifically made for that engine does not work... they are altering most of the base of VX.

Sorry, but I won't dig into that engine to find a solution, too much work for a retired guy (i don't develop scripts anymore, just give some guidance) Look into the main menu script of that engine and try to follow it's directions on how to add a new command with actor prompt, if it has instructions. The skill tree needs to be told which actor's trees to open, so is necessary an actor selection from the menu script before launching the Skill Tree script.

If that does not works... then just don't command the skill trees through the main menu, open it through NPCs maybe, using the commands I made for accessing the skill trees with script events. THe info to use this method is described in the script's header, and also very explained and exampled in the demo.

Kali3
QUOTE (leongon @ Apr 13 2012, 11:03 AM) *
Oh, an engine. Well is not a surprise that scripts not specifically made for that engine does not work... they are altering most of the base of VX.

Sorry, but I won't dig into that engine to find a solution, too much work for a retired guy (i don't develop scripts anymore, just give some guidance) Look into the main menu script of that engine and try to follow it's directions on how to add a new command with actor prompt, if it has instructions. The skill tree needs to be told which actor's trees to open, so is necessary an actor selection from the menu script before launching the Skill Tree script.

If that does not works... then just don't command the skill trees through the main menu, open it through NPCs maybe, using the commands I made for accessing the skill trees with script events. THe info to use this method is described in the script's header, and also very explained and exampled in the demo.

Ok. Thanks, I'll try to make it work. smile.gif
Zaephyr
I'm no good at scripting, and i've tried fixing this and i cant find a solution.

i get this error, yet i dont get what is wrong, i used the script just like the demo, Any idea?
leongon
QUOTE (Zaephyr @ Aug 11 2012, 04:17 PM) *
I'm no good at scripting, and i've tried fixing this and i cant find a solution.

i get this error, yet i dont get what is wrong, i used the script just like the demo, Any idea?

You're using a file name for a background image in a skill tree, and this file does not exists in your folder.

Make sure to do it as I stated in the first post of this thread: "Background Images:
If you keep Imageback Mode enabled, you must have images matching the unique names of your trees in Graphics/System folder."

Sollution: Disable imageback mode in the setup script options, or put the images with matching names for the skill trees you created.

Hope it helps~

Zaephyr
QUOTE (leongon @ Aug 12 2012, 03:53 PM) *
QUOTE (Zaephyr @ Aug 11 2012, 04:17 PM) *
I'm no good at scripting, and i've tried fixing this and i cant find a solution.

i get this error, yet i dont get what is wrong, i used the script just like the demo, Any idea?

You're using a file name for a background image in a skill tree, and this file does not exists in your folder.

Make sure to do it as I stated in the first post of this thread: "Background Images:
If you keep Imageback Mode enabled, you must have images matching the unique names of your trees in Graphics/System folder."

Sollution: Disable imageback mode in the setup script options, or put the images with matching names for the skill trees you created.

Hope it helps~


I tried disabling it and got error on line 115.
Also i copy your scripts along with the images from your demo, so every image has the exact name as on the script, still i get the error 671 if i dont disable the image.
leongon
Error in 115 looks like is about not having a skill trees asigned, in the last part of the setup script, for the actor you're trying to open the skill tree scene.

Make sure in the last part of the setup script your actors have the skill trees asigned to their respective class in the database of your project.

Look how is the database in the Demo, for further reference.
Zaephyr
QUOTE (leongon @ Aug 13 2012, 11:16 AM) *
Error in 115 looks like is about not having a skill trees asigned, in the last part of the setup script, for the actor you're trying to open the skill tree scene.

Make sure in the last part of the setup script your actors have the skill trees asigned to their respective class in the database of your project.

Look how is the database in the Demo, for further reference.


I used the id1 with paladin (id1) and got the same error, however i changed it to a random new class (id20) and it started working for some reason.
I'll try some new stuff and let you know how it went.
Thanks for the support, really appreciate it.
Matte_0710
Hi, I tried this skill tree, to me it's very good and i'd like to use it in my own game. So in your demo it's everything ok. Then, i moved the two scripts (Setup & Core) in my project, in which I use the Ring Menu that i'll post below, without copying also your Main Menu Manager, because i already have one.

CODE
#==============================================================================
# ** Ring Menu
#-------------------------------------------------------------------------------
# by Syvkal
# Version 1.1
# 06-23-08
#==============================================================================

   #===================================================#
   #  **  C O N F I G U R A T I O N   S Y S T E M  **  #
   #===================================================#
  
  # Amount of frames for Startup Animation
  STARTUP_FRAMES = 20
  # Amount of frames for Movement Animation
  MOVING_FRAMES = 10
  # Radius of the Menu Ring
  RING_R = 75
  # Disabled icon to display when disabled
  ICON_DISABLE= Cache::picture('Icon_Disable')
  
  
   #-------------D-O---N-O-T---T-O-U-C-H---------------#
  
  class Scene_Title < Scene_Base
    alias game_objects_original create_game_objects
    def create_game_objects
      game_objects_original
  
   #-------------D-O---N-O-T---T-O-U-C-H---------------#
  
  # As this script allows you to make a custom Menu I thought to make it easier
  # I would make it possible to add extra Menu Options from here
  
  # All you need to do is specify the Text to display, the icon and the command
  # The command must be in a STRING
  # Simply add to the array below :

  $game_ring_menu = [
  
   # Menu Option 0  eg. Item
   [Vocab::item, Cache::picture('Icon_Items'), "$scene = Scene_Item.new(1)"],
  
   # Menu Option 1  eg. Skill
   [Vocab::skill, Cache::picture('Icon_Skills'), "start_actor_selection",
     "$scene = Scene_Skill.new(@status_window.index)"],
    
   # Menu Option 2  eg. Equip
   [Vocab::equip, Cache::picture('Icon_Equip'), "start_actor_selection",
     "$scene = Scene_Equip.new(@status_window.index)"],
  
   # Menu Option 3  eg. Status
   [Vocab::status, Cache::picture('Icon_Status'), "start_actor_selection",
     "$scene = Scene_Status.new(@status_window.index)"],
  
   #---------------------------------------------------#
   #  **      I N S E R T   M O R E   H E R E      **  #
   #---------------------------------------------------#
  
   # Preferably Insert your custom Menu Options Here
   # Otherwise the existing Menu Options will return to wrong point on the Menu
  
   # Menu Option 4  eg. SkillTree
  
   [ST_setup::ST_menu, Cache::picture('Icon_Skills'), "start_actor_selection", "$scene = Scene_SkillTree.new"],
  
   # Menu Option 5  eg. Save
   ["Quest", Cache::picture('Icon_Load'), "$scene = Scene_Quest.new"],
  
   # Menu Option 6  eg. Save
   ["Save Game", Cache::picture('Icon_Save'), "$scene = Scene_File.new(true, false, false)"],
  
   # Menu Option 7  eg. End Game
   [Vocab::game_end, Cache::picture('Icon_End'), "$scene = Scene_End.new"]
  
   ] # <--- Do no Delete This
  
   #===================================================#
   #  **     E N D   C O N F I G U R A T I O N     **  #
   #===================================================#
  end
end
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  Edited to add Ring Menu
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  alias initialize_original initialize
  alias start_selection_original start_actor_selection
  alias end_selection_original end_actor_selection
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0, move = true)
    @move = move
    initialize_original(menu_index)
  end
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 360)
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose if @status_window
  end

  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @gold_window.update
    @status_window.update if @status_window
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    commands = []
    for i in 0...$game_ring_menu.size
      commands.push($game_ring_menu[i][0])
    end
    icons = []
    for i in 0...$game_ring_menu.size
      icons.push($game_ring_menu[i][1])
    end
    @command_window = Window_RingMenu.new(232, 164, commands, icons, @move, @menu_index)
    if $game_party.members.size == 0
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_system.save_disabled
      @command_window.disable_item(4)
    end
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_status_window
    names = []
    chars = []
    for i in 0...$game_party.members.size
      names[i] = $game_party.members[i].name
      chars[i] = $game_party.members[i]
    end
    @status_window = Window_RingMenu.new(255, 200, names, chars, true, $game_party.last_actor_index, true)
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      eval($game_ring_menu[@command_window.index][2])
    end
  end
  #--------------------------------------------------------------------------
  # * Start Actor Selection
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @command_window.visible = false
    create_status_window
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # * End Actor Selection
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @command_window.visible = true
    @status_window.dispose if @status_window
    @status_window = nil
  end
  #--------------------------------------------------------------------------
  # * Update Actor Selection
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      eval($game_ring_menu[@command_window.index][3])
    end
  end
end

  
#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
#  Edited to return to the menu properly when loading
#==============================================================================

class Scene_File
  alias return_scene_original return_scene
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      if @saving
        $scene = Scene_Menu.new($game_ring_menu.size - 3)
      else
        $scene = Scene_Menu.new($game_ring_menu.size - 2)
      end
    end
  end
end

#==============================================================================
# ** Scene_End
#------------------------------------------------------------------------------
#  Edited to return to the menu properly due to loading being added
#==============================================================================

class Scene_End
  alias return_scene_original return_scene
  def return_scene
    $scene = Scene_Menu.new($game_ring_menu.size - 1)
  end
end

#==============================================================================
# ** Window_Location
#------------------------------------------------------------------------------
#  This class shows the current map name.
#==============================================================================

class Window_location < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 160, (WLH*2) + 32)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    $maps = load_data("Data/MapInfos.rvdata")
    @map_id = $game_map.map_id
    @currmap = $maps[@map_id].name
    self.contents.font.color = system_color
    self.contents.draw_text(0, -4, 128, 32, "Location :")
    self.contents.font.color = normal_color
    self.contents.draw_text(0, -4+WLH, 128, 32, @currmap, 1)
  end
end

#==============================================================================
# ** Window_RingMenu
#------------------------------------------------------------------------------
#  This Window creates a Ring Menu system
#==============================================================================

class Window_RingMenu < Window_Base  
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :index
  attr_reader   :item_max
  #--------------------------------------------------------------------------
  # * Refresh Setup
  #--------------------------------------------------------------------------
  START = 1
  WAIT  = 2
  MOVER = 3
  MOVEL = 4
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(center_x, center_y, commands, items, move = true, index = 0, character = false)
    super(0, 0, 544, 416)
    self.contents = Bitmap.new(width-32, height-32)
    self.opacity = 0
    @move = move
    @char = character
    @startup = STARTUP_FRAMES
    @commands = commands
    @item_max = commands.size
    @index = index.to_i
    @items = items
    @disabled = []
    for i in 0...commands.size-1
      @disabled[i] = false
    end
    @cx = center_x
    @cy = center_y
    start_setup
    refresh
  end
  #--------------------------------------------------------------------------
  # * Start Setup
  #--------------------------------------------------------------------------
  def start_setup
    @mode = START
    @steps = @startup
  end
  #--------------------------------------------------------------------------
  # * Disable index
  #     index : item number
  #--------------------------------------------------------------------------
  def disable_item(index)
    @disabled[index] = true
  end
  #--------------------------------------------------------------------------
  # * Determines if is moving
  #--------------------------------------------------------------------------
  def animation?
    return @mode != WAIT
  end
  #--------------------------------------------------------------------------
  # * Determine if cursor is moveable
  #--------------------------------------------------------------------------
  def cursor_movable?
    return false if (not visible or not active)
    return false if (@opening or @closing)
    return false if animation?
    return true
  end
  #--------------------------------------------------------------------------
  # * Move cursor right
  #--------------------------------------------------------------------------
  def cursor_right
    @index -= 1
    @index = @items.size - 1 if @index < 0
    @mode = MOVER
    @steps = MOVING_FRAMES
  end
  #--------------------------------------------------------------------------
  # * Move cursor left
  #--------------------------------------------------------------------------
  def cursor_left
    @index += 1
    @index = 0 if @index >= @items.size
    @mode = MOVEL
    @steps = MOVING_FRAMES
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if self.active
      if cursor_movable?
        last_index = @index
        if Input.repeat?(Input::DOWN) or Input.repeat?(Input::RIGHT)
          cursor_right
        end
        if Input.repeat?(Input::UP) or Input.repeat?(Input::LEFT)
          cursor_left
        end
        if @index != last_index
          Sound.play_cursor
        end
      end
      refresh
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh    
    self.contents.clear
    case @mode
    when START
      refresh_start
    when WAIT
      refresh_wait
    when MOVER
      refresh_move(1)
    when MOVEL
      refresh_move(0)
    end
    rect = Rect.new(18, 128, self.contents.width-32, 32)
    self.contents.draw_text(rect, @commands[@index], 1)
  end
  #--------------------------------------------------------------------------
  # * Refresh Start Period
  #--------------------------------------------------------------------------
  def refresh_start
    d1 = 2.0 * Math::PI / @item_max
    d2 = 1.0 * Math::PI / @startup
    for i in 0...@item_max
      j = i - @index
      if @move
        r = RING_R - 1.0 * RING_R * @steps / @startup
        d = d1 * j + d2 * @steps
      else
        r = RING_R
        d = d1 * j
      end
      x = @cx + ( r * Math.sin( d ) ).to_i
      y = @cy - ( r * Math.cos( d ) ).to_i
      draw_item(x, y, i)
    end
    @steps -= 1
    if @steps < 1
      @mode = WAIT
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh Wait Period
  #--------------------------------------------------------------------------
  def refresh_wait
    d = 2.0 * Math::PI / @item_max
    for i in 0...@item_max
      j = i - @index
      x = @cx + ( RING_R * Math.sin( d * j ) ).to_i
      y = @cy - ( RING_R * Math.cos( d * j ) ).to_i
      draw_item(x, y, i)
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh Movement Period
  #--------------------------------------------------------------------------
  def refresh_move( mode )
    d1 = 2.0 * Math::PI / @item_max
    d2 = d1 / MOVING_FRAMES
    d2 *= -1 if mode != 0
    for i in 0...@item_max
      j = i - @index
      d = d1 * j + d2 * @steps
      x = @cx + ( RING_R * Math.sin( d ) ).to_i
      y = @cy - ( RING_R * Math.cos( d ) ).to_i
      draw_item(x, y, i)
    end
    @steps -= 1
    if @steps < 1
      @mode = WAIT
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(x, y, index)
    if @char
      if @index == index
        draw_character(@items[index].character_name, @items[index].character_index , x, y)
        
      end
    else
      rect = Rect.new(0, 0, @items[index].width, @items[index].height)
      if @index == index
        self.contents.blt( x, y, @items[index], rect )
        if @disabled[@index]
          self.contents.blt( x, y, ICON_DISABLE, rect )
        end
      else
        self.contents.blt( x, y, @items[index], rect, 128 )
      end
    end
  end
end

#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
#  Edited to allow disabled character icons
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # * Draw Character Graphic
  #--------------------------------------------------------------------------
  def draw_character(character_name, character_index, x, y, enabled = true)
    return if character_name == nil
    bitmap = Cache.character(character_name)
    sign = character_name[/^[\!\$]./]
    if sign != nil and sign.include?('$')
      cw = bitmap.width / 3
      ch = bitmap.height / 4
    else
      cw = bitmap.width / 12
      ch = bitmap.height / 8
    end
    n = character_index
    src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, enabled ? 255 : 128)
  end
end


I call the scene SkillTree, from the menù ring but when ingame i open the menù, clicking on the "Talents" voice it returns me the following error: "Wrong numbers of arguments (0 for 1)". So I added in the 4th option of the menù (where i put the skill tree scene) "start actor selection", thinking that the problem was about the actor index. But it keeps showing me the same error. I haven't changed nothing about the Setup & Core script, and considering my low knowledge in ruby, i don't really know what to do.

If there's someone who knows how to fix it i'd be really grateful ^^

(I apologize for any error in the writing, i'm not mother tongue.)
leongon
At first sight it looks like your settings are correct for the ring menu, so just make sure the skill tree setup and core script are both above the ring menu system and come back to tell what happens, I can try to find a way to help further after you check this.

If your mother language is spanish I can help you in that language instead, but I can't handle anything else °3°;
Matte_0710
QUOTE (leongon @ Sep 7 2012, 03:56 AM) *
At first sight it looks like your settings are correct for the ring menu, so just make sure the skill tree setup and core script are both above the ring menu system and come back to tell what happens, I can try to find a way to help further after you check this.

If your mother language is spanish I can help you in that language instead, but I can't handle anything else �3�;


I already have put both scripts above the ring's one, but if it can helps, I can say which are the other scripts that I use. I have a custom item, status and equip scene, from the FFXII Menu script. There was also a Portuguese script called "Modulo Geral" in that group of scripts and it was necessarily to let the other scripts work, and I think it rewrite some class, but I'm not sure cause I can't understand very well portuguese and rgss2 too. If it's helpful I can post it here.

Anyway, I'm Italian not Spanish, sorry.
leongon
Hmmm... i'm not scripting at all lately, so it's a bit hard for me to analyze your menu script... but let's try using this line:

[ST_setup::ST_menu, Cache::picture('Icon_Skills'), "start_actor_selection", "$scene = Scene_SkillTree.new(@status_window.index)"],

Tell me what happens.
Matte_0710
It works! Thank you so much, do you know also what was the problem? So if it happens again i know what to change!
leongon
Sorry for the delayed reply, I have been working too much... not a chance to get online.

The problem was apparently your menu script modifying the base behavior of the actor selection or something like that... so you can't just tell it that it needs to be run before launching the new scene, now you also need to attach the answer of the actor selection manually into the new scene call.
omgnoob
Hi, I really hope this won't be considered necro-posting... pinch.gif (my first post.. not really a 'forum' person...)

First thing I'd like to say is: WOW! Amazing script, never seen anything like it! A true masterpiece!
lots of great features and great visualization. thumbsup.gif

I was playing around with the DEMO, looking at the trees made there and I think its wonderful.
But it seems I failed at making my own tree. :\
I followed the instructions and made every skill\level in the database and set everything up in the
configuration script.
But I keep encountering this error:


Here is my setup script:
CODE
module ST_setup
################################################################################
#                                   * Setup *                                  #
#                     Basic? - Skill Tree - of Awesome v1.22                   #
#                                  19 Feb 2011                                 #
################################################################################
# Author: Leongon                                                              #
# Contact: carlos_gon47@hotmail.com       (or PM leongon on the board below)   #
# Licence: Free for commercial and non-commercial proyects, just credit.       #
# Share: Exclusive for www.rpgrevolution.com                                   #
#        If you want to share it outside give a link only, please.             #
################################################################################
# This is my very first big non-so-basic script, and I'm very proud of how it  #
# got done, almost exactly what I wanted to accomplish when I start writing it #
# about a week ago.                                                            #
# ---------------------------------------------------------------------------- #
# As the name says, this script introduces the very popular function from most #
# MMORPGs: Skill Trees, or talent trees if you prefer, for your heroes.        #
#                                                                              #
# You need to work only in this one, the Core manages the info you give here   #
# and builds the system.                                                       #
################################################################################
# Instructions #                                                               #
################                                                               #
#                                                                              #
# This works pretty much like Tankentai's action sequences building. You'll    #
# need to create objects that you must organize at the end in the final trees. #
# I put descriptions and syntax in each sections to help you on understanding  #
# how to build your trees. So read each carefully.                             #
#                                                                              #
# Actually I made it to be able to work like Diablo II and World of Warcraft   #
# talent systems. Combine both systems if you want. Play with the object's     #
# requirements to make it work as you like.                                    #
#                                                                              #
# If you don't understand this, play the Tutorial, is almost a game more than  #
# a demo, and it will carry you around some of this script posibilities, and   #
# teach you how to use them.                                                   #
#                                                                              #
# If you still need guidance, find bugs or have ideas, reply on the thread.    #
# I will answer everything that is not already explained here, the thread or   #
# in the tutorial, if I'm still around. (One never knows what the life have    #
# for fate)                                                                    #
#                                                                              #
################################################################################

################################################################################
# Command List #            Commands for use on script call events             #
################                                                               #
# Commands:                                                                    #
#                                                                              #
# ST_command::show(mode, actor, exit)       - Opens directly an actor's tree.  #
#                                                                              #
# ST_command::reward(mode, actor, quantity) - Give extra points to an actor.   #
# ST_command::reward_party(quantity)        - Give extra points to party.      #
#                                                                              #
# ST_command::reset(mode, actor)            - Reset an actor's skill trees.    #
# ST_command::reset_party                   - Reset entire party skill trees.  #
#                                                                              #
# ---------------------------------------------------------------------------- #
# Values:                                                                      #
#                                                                              #
# mode      0 - Target actor by party position.                                #
#           1 - Target actor by actor name.                                    #
#           2 - Target actor by actor ID.                                      #
#                                                                              #
# actor     Actor position, name or ID, depending on mode.                     #
#                                                                              #
# exit      true - Exits to Map uppon leaving the Skill Tree scene.            #
#           Ommit for exiting to menu.                                         #
#                                                                              #
# quantity  Amount of skill points to reward.                                  #
#           Ommit to reward one point.                                         #
#                                                                              #
################################################################################


#------------------------------------------------------------------------------#
# * General Settings *                                                         #
#                                                                              #
# --------- System ---------- # ---------------------------------------------- #
  ST_menu_pos = 2             # Menu index to land when exiting Skill Trees.   #
  ST_scale_mode = true        # (true-false) Skills that require actor level   #
                              # will scale with each point spended, requiring  #
                              # one more actor level each time.                #
  ST_level_up_point = true    # (true-false) Gain a skill point on level up.   #
  ST_first_skill_point = 2    # Actor lvl where start gaining skill points at. #
  ST_confirm_popup = true     # (true-false) Require confirm for spend point.  #
  ST_notalents_popup = true   # (true-false) Show warning pop-up for actors    #
                              # without skill trees available.                 #
  ST_notalents_popAN = true   # (true-false) Include actor's name in warning   #
                              # string for actors without skill trees.         #
# -------- Language --------- # ---------------------------------------------- #
  ST_menu = "Skills"         # Menu selection command. Will be used on menu   #
                              # access to the skill trees.                     #
  ST_voc_max = "Maxed"        # Skill maxed.                                   #
  ST_voc_unl = "Not Learned"  # Skill still not learned.                       #
  ST_voc_now = "Current Lv.: "        # Actual skill level description.                #
  ST_voc_nex = "Next Lv.: "       # Next skill level description.                  #
  ST_voc_cur = "Skill Points: "# Currency count.                                #
  ST_voc_req = "Require:"     # Title for requirements.                        #
  ST_voc_lvl = "Level "  # Hero level required.                           #
  ST_voc_one = " point in "   # One point required.                            #
  ST_voc_many = " points in " # More than one point required.                  #
  ST_voc_q = "Are you sure?"  # Confirm box question.                          #
  ST_voc_ok = "Confirm"            # Confirm selection.                             #
  ST_voc_cancel = "Cancel"    # Revoke selection.                              #
  ST_voc_noSTpop_pre = ""     # Text before actor's name for no-tree warning.  #
  ST_voc_noSTpop_pos = "Currently unavailable." # Text   #
                              # after actor's name for no-tree warning.        #
  ST_voc_noSTpop = "Back" # Command for actors without skill trees         #
# -------- Graphics --------- # ---------------------------------------------- #
  ST_zero_sp_color = 10       # (0-31) Color for zero skill points.            #
  ST_skillname_color = 14     # (0-31) Color for selected skill's name.        #
  ST_arrow_disabled = 118     # (0-255) Alpha for disabled arrow objects.      #
  ST_skill_disabled = 138     # (0-255) Alpha for disabled skill objects.      #
  ST_show_obj_lvl = true      # (true-false) Show object level over the icons. #
  ST_arrow_hue = 155          # (0-360) This is the color variance of the      #
                              # arrow's graphics.                              #
  ST_imageback = 240          # (0-255) Alpha. Replaces the main tree window   #
                              # background with an image. To disable this mode #
                              # use false. Images must be at 206x348 size, in  #
                              # Graphics/System/ folder, matching the tree     #
                              # names in Tree Building section. (Ex: ARMS.png) #
  ST_windows_var = 11         # (ID) Game-variable ID that controls windows    #
                              # distribution on the screen. Change the value   #
                              # of that variable from 0 to 7, try them all.    #
  ST_tree_selection = 0       # (0-2) Tree selection windows work option.      #
                              # 0: Animated cursor. 1: Steady cursor.          #
                              # 2: Colour name, no cursor.                     #
  ST_treeselection_color = 14 # Color for tree selection option 2.             #
#-----------------------------#------------------------------------------------#


ST_arrow = [ # Don't touch.
#------------------------------------------------------------------------------#
# * Arrow Graphics List *                                                      #
#                                                                              #
# You don't need to touch this section unless you change the arrow's order in  #
# the SkillTree.png file.                                                      #  
#------------------------------------------------------------------------------#
# "GraphicName",                                                               #
  "A_l_st",            # To left line, start.                                  #
  "A_r_st",            # To right line, start.                                 #
  "A_ver_st",          # Vertical line, start.                                 #
  "A_ver",             # Vertical line.                                        #
  "A_hor",             # Horizontal line.                                      #
  "A_ver_end",         # Vertical line, end.                                   #
  "A_l_end",           # To left line, end.                                    #
  "A_r_end",           # To right line, end.                                   #
  "A_ver_w_diag_r",    # Vertical line with right diagonal branch.             #
  "A_ver_w_diag_l",    # Vertical line with left diagonal branch.              #
  "A_diag_r_st",       # Diagonal to right line, start.                        #
  "A_diag_r_abo_cor",  # Diagonal to right upper chunk.                        #
  "A_diag_r_bel_cor",  # Diagonal to right lower chunk.                        #
  "A_diag_r",          # Diagonal to right line.                               #
  "A_diag_r_end",      # Diagonal to right line, end.                          #
  "A_diag_l_st",       # Diagonal to left line, start.                         #
  "A_diag_l_abo_cor",  # Diagonal to left upper chunk.                         #
  "A_diag_l_bel_cor",  # Diagonal to left lower chunk.                         #
  "A_diag_l",          # Diagonal to left line.                                #
  "A_diag_l_end",      # Diagonal to left line, end.                           #
] # Don't touch.                                                               #
#------------------------------------------------------------------------------#


ST_object = { # Don't touch.
#------------------------------------------------------------------------------#
# * Creating Arrow Objects *                                                   #
#                                                                              #
# Here you build arrow objects for each tree. Each arrow fragment must be      #
# created as a unique arrow object, that way they can have requirements to be  #
# enabled.                                                                     #
#------------------------------------------------------------------------------#
#                                                                              #
# "ArrowObject"  - Is the unique name for that arrow object.                   #
# "arrow_object" - Identifier, use always "arrow_object".                      #
# "arrow"        - Is the graphic name from Arrow Graphics List section.       #
# "dadskill"     - Father Skill Object name. The skill object that conditions  #
#                  this arrow object.                                          #
#------------------------------------------------------------------------------#
# "ArrowObject" => ["arrow_object", "arrow", "dadskill"],

  "MF_1_1"      => ["arrow_object", "A_ver_st", "MF_1"],
  "MF_1_2"      => ["arrow_object", "A_ver_end", "MF_1"],
  "MF_2_1"      => ["arrow_object", "A_diag_l_st", "MF_2"],
  "MF_2_2"      => ["arrow_object", "A_diag_l_end", "MF_2"],
  "MF_2_3"      => ["arrow_object", "A_diag_l_abo_cor", "MF_2"],
  "MF_2_4"      => ["arrow_object", "A_diag_l_bel_cor", "MF_2"],
  "MF_4_1"      => ["arrow_object", "A_ver_st", "MF_4"],
  "MF_4_2"      => ["arrow_object", "A_ver_end", "MF_4"],
  "WA_1_1"      => ["arrow_object", "A_ver_st", "WA_1"],
  "WA_1_2"      => ["arrow_object", "A_ver_end", "WA_1"],
  #--
  "WA_d1_1"     => ["arrow_object", "A_ver_st", "WA_d1"],
  "WA_d1_2"     => ["arrow_object", "A_ver_end", "WA_d1"],
  "WA_d2_1"     => ["arrow_object", "A_ver_st", "WA_d2"],
  "WA_d2_2"     => ["arrow_object", "A_ver_end", "WA_d2"],
  "WA_d4_1"     => ["arrow_object", "A_diag_l_abo_cor", "WA_d4"],
  "WA_d4_2"     => ["arrow_object", "A_diag_l_st", "WA_d4"],
  "WA_d4_3"     => ["arrow_object", "A_ver_st", "WA_d4"],
  "WA_d4_4"     => ["arrow_object", "A_diag_r_st", "WA_d4"],
  "WA_d4_5"     => ["arrow_object", "A_diag_r_abo_cor", "WA_d4"],
  "WA_d4_6"     => ["arrow_object", "A_diag_l_end", "WA_d4"],
  "WA_d4_7"     => ["arrow_object", "A_diag_l_bel_cor", "WA_d4"],
  "WA_d4_8"     => ["arrow_object", "A_ver_end", "WA_d4"],
  "WA_d4_9"     => ["arrow_object", "A_diag_r_bel_cor", "WA_d4"],
  "WA_d4_10"     => ["arrow_object", "A_diag_r_end", "WA_d4"],
#------------------------------------------------------------------------------#

  "AR_1_4"      => ["arrow_object", "A_diag_l_end", "AR_1"],
  "AR_1_5"      => ["arrow_object", "A_ver_end", "AR_1"],
  "AR_3_7a"     => ["arrow_object", "A_ver", "AR_3"],
  "AR_3_7b"     => ["arrow_obejct", "A_ver_end", "AR_3"],
  "AR_4_6"      => ["arrow_object", "A_ver_end", "AR_4"],
  "AR_5_7"      => ["arrow_object", "A_diag_r_end", "AR_5"],
  "AR_6_14a"    => ["arrow_object", "A_ver", "AR_6"],
  "AR_6_14b"    => ["arrow_object", "A_ver_end", "AR_6"],
  "AR_8_9"      => ["arrow_object", "A_ver_end", "AR_8"],
  "AR_9_15a"    => ["arrow_object", "A_ver", "AR_9"],
  "AR_9_15b"    => ["arrow_object", "A_ver_end", "AR_9"],
  "AR_10_11a"   => ["arrow_object", "A_ver", "AR_10"],
  "AR_10_11b"   => ["arrow_object", "A_ver_end", "AR_10"],
  "AR_12_13a"   => ["arrow_object", "A_ver", "AR_12"],
  "AR_12_13b"   => ["arrow_object", "A_ver_end", "AR_12"],
  "AR_14_16a"   => ["arrow_object", "A_ver", "AR_14"],
  "AR_14_16b"   => ["arrow_object", "A_ver_end", "AR_14"],
  "AR_15_16"    => ["arrow_object", "A_diag_r_end", "AR_15"],
  
#------------------------------------------------------------------------------#


#------------------------------------------------------------------------------#
# * Creating Skill Objects *                                                   #
#                                                                              #
# Here you build skill objects for each tree. They contain the info regarding  #
# their levels and requirements to be enabled, and for enabling other skill    #
# objects.                                                                     #
#------------------------------------------------------------------------------#
#                                                                              #
# "SkillObject"  - Is the unique name for that skill object.                   #
# reqlvl         - Is the actor needed level for this object to be enabled.    #
# treepts        - Are the required points spended in the tree for this object #
#                  to be enabled.                                              #
# "dad" - "mom"  - Parents skill Object name. Skill objects that conditions    #
#                  this skill object. Use nil for no dependance.               #
# maxlvl         - Is the maximum skill points spendable on this skill object. #
# childreqlvl    - Is the necessary ammount of points in this skill object to  #
#                  allow spending points in skills linked to this one.         #
# idlvl...       - Are the Skill IDs for each level of that skill.             #
# -----------------------------------------------------------------------------#
# "SkillObject" => [reqlvl, treepts, "dad", "mom", maxlvl, childreqlvl, idlvl1, idlvl2,...],

  "MF_1"        => [1, 0, nil, nil, 5, 1, 1, 2, 3, 4, 5],
  "MF_2"        => [5, 0, nil, nil, 3, 1, 6, 7, 8],
  "MF_3"        => [10, 0, "MF_1", "MF_2", 5, 0, 9, 10, 11, 12, 13],
  "MF_4"        => [1, 0, nil, nil, 5, 5, 14, 15, 16, 17, 18],
  "MF_5"        => [10, 0, "MF_4", nil, 5, 5, 19, 20, 21, 22, 23],
  "WA_1"        => [1, 0, nil, nil, 3, 3, 24, 25, 26],
  "WA_2"        => [1, 0, "WA_1", nil, 5, 0, 27, 28, 29, 30, 31],
  "WA_d1"       => [1, 0, nil, nil, 1, 1, 32],
  "WA_d2"       => [1, 0, "WA_d1", nil, 1, 1, 33],
  "WA_d3"       => [1, 0, "WA_d2", nil, 1, 1, 34],
  "WA_d4"       => [1, 0, "WA_d3", nil, 1, 1, 35],
  "WA_d5"       => [20, 0, nil, nil, 1, 1, 36],
  "WA_d6"       => [20, 0, nil, nil, 1, 1, 37],
  "WA_d7"       => [20, 0, nil, nil, 1, 1, 38],
  
#---- Archer Class Skills -----------------------------------------------------#

  "AR_1"        => [1, 0, nil, nil, 10, 5, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125],
  "AR_2"        => [4, 0, nil, nil, 10, 0, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135],
  "AR_3"        => [4, 0, nil, nil, 5, 3, 171, 172, 173, 174, 175],
  "AR_4"        => [6, 0, "AR_1", nil, 5, 1, 144, 145, 146, 147, 148],
  "AR_5"        => [6, 0, "AR_1", nil, 8, 5, 136, 137, 138, 139, 140, 141, 142, 143],
  "AR_6"        => [12, 0, "AR_4", nil, 5, 1, 149, 150, 151, 152, 153],
  "AR_7"        => [12, 0, "AR_3", "AR_5", 3, 0, 154, 155, 156],
  "AR_8"        => [8, 0, nil, nil, 5, 5, 184, 185, 186, 187, 188],
  "AR_9"        => [16, 0, "AR_8", nil, 8, 3, 157, 158, 159, 160, 161, 162, 163, 164],
  "AR_10"       => [16, 0, nil, nil, 5, 5, 179, 180, 181, 182, 183],
  "AR_11"       => [28, 0, "AR_10", nil, 3, 0, 189, 190, 191],
  "AR_12"       => [20, 0, nil, nil, 3, 3, 176, 177, 178],
  "AR_13"       => [32, 0, "AR_12", nil, 5, 0, 193, 194, 195, 196, 197],
  "AR_14"       => [24, 0, "AR_6", nil, 6, 3, 165, 166, 167, 168, 169, 170],
  "AR_15"       => [28, 0, "AR_9", nil, 1, 1, 192],
  "AR_16"       => [36, 0, "AR_14", "AR_15", 6, 0, 198, 199, 200, 201, 202, 203],

} # Don't touch.                                                               #
#------------------------------------------------------------------------------#


ST_tree_build = { # Don't touch.
#------------------------------------------------------------------------------#
# * Tree Building *                                                            #
#                                                                              #
# Here you build each skill tree using the previous set'd skill and arrow      #
# objects.                                                                     #
#                                                                              #
# There are 7 slots per row, being 1, 4 and 7 for skill objects, while 2,3,5   #
# and 6 are for arrow objects. Rows have no max limit, you have the first one  #
# for skills, next two are for arrows and so.                                  #
#------------------------------------------------------------------------------#
#                                                                              #
# "TREE_NAME" - Is the tree unique name.                                       #
# "obj..."    - Skill or Arrow Object name from the previous sections.         #
#               For empty slot use nil.                                        #
# -----------------------------------------------------------------------------#
# "TREE_NAME" => [   obj 1,   obj 2,   obj 3,   obj 4,   obj 5,   obj 6,   obj 7],

"MAGE_FROST" => ["MF_1"  ,     nil,     nil,  "MF_2",     nil,     nil,  "MF_4",
                  "MF_1_1","MF_2_3","MF_2_1",     nil,     nil,     nil,"MF_4_1",
                  "MF_1_2","MF_2_2","MF_2_4",     nil,     nil,     nil,"MF_4_2",
                  "MF_3"  ,     nil,     nil,     nil,     nil,     nil,  "MF_5"],
                  
"ARMS"       => ["WA_1"  ,     nil,     nil,     nil,     nil,     nil,  "WA_d1",
                  "WA_1_1",     nil,     nil,     nil,     nil,     nil,"WA_d1_1",
                  "WA_1_2",     nil,     nil,     nil,     nil,     nil,"WA_d1_2",
                  "WA_2"  ,     nil,     nil,     nil,     nil,     nil,  "WA_d2",
                       nil,     nil,     nil,     nil,     nil,     nil,"WA_d2_1",
                       nil,     nil,     nil,     nil,     nil,     nil,"WA_d2_2",
                       nil,     nil,     nil, "WA_d4",     nil,     nil,  "WA_d3",
                  nil,"WA_d4_1","WA_d4_2","WA_d4_3","WA_d4_4","WA_d4_5",      nil,
                  nil,"WA_d4_6","WA_d4_7","WA_d4_8","WA_d4_9","WA_d4_10",      nil,
                  "WA_d5" ,     nil,     nil, "WA_d6",     nil,     nil,  "WA_d7"],

#---- Archer Class Tree -------------------------------------------------------#

"ARCHER" => [  "AR_2",       nil,        nil,     nil,     "AR_1",     nil,        nil,
                   nil,       nil,        nil,"AR_1_4",   "AR_1_5",     nil,     "AR_3",
                   nil,       nil,     "AR_4",     nil,     "AR_5",     nil,  "AR_3_7a",
                "AR_8",       nil,   "AR_4_6",     nil,        nil,"AR_5_7",  "AR_3_7b",
              "AR_8_9",       nil,     "AR_6",     nil,        nil,     nil,     "AR_7",
                "AR_9",       nil, "AR_6_14a",     nil,    "AR_10",     nil,        nil,
            "AR_9_15a",       nil, "AR_6_14b",     nil,"AR_10_11a",     nil,    "AR_12",
            "AR_9_15b",       nil,    "AR_14",     nil,"AR_10_11b",     nil,"AR_12_13a",
               "AR_15",       nil,"AR_14_16a",     nil,    "AR_11",     nil,"AR_12_13b",
                   nil,"AR_15_16","AR_14_16b",     nil,        nil,     nil,    "AR_13",
                   nil,       nil,    "AR_16",     nil,        nil,     nil,       nil],

} # Don't touch.                                                               #
#------------------------------------------------------------------------------#


ST_class_assign = { # Don't touch.
#------------------------------------------------------------------------------#
# * Asigning Skill Trees to Classes *                                          #
#                                                                              #
# Here you set the available trees for each class. Max of 3 trees per class.   #
# If less, use nil.                                                            #
#------------------------------------------------------------------------------#
#                                                                              #
# ClassID           - Is the class id, d'oh.                                   #
# "TREE..."         - Are the tree's unique names from Tree Building section,  #
#                     this class have available.                               #
# "Display..."      - Are the displayed name for that skill tree. Ex: Having   #
#                     "Protection" tree for Warriors and Paladins in WoW.      #
#------------------------------------------------------------------------------#
# ClassID => ["TREE_1", "TREE_2", "TREE_3", "Display 1", "Display 2", "Display 3"],

  1  => ["MAGE_FROST", "ARMS", nil, "Frost", "Arms", nil],
  12 => ["ARCHER", nil, nil, "Archer", nil, nil],
  
} # Don't touch.                                                               #
#------------------------------------------------------------------------------#


#------------------------------------------------------------------------------#
end # of Skill Tree's setup script.                                            #
#------------------------------------------------------------------------------#


Thanks in advance, I'd really like to get it to work. unsure.gif

EDIT: Never mind! I fixed it!
I'm so dumb.. -__-
It was just a typo at one of the arrow objects ("arrow_obejct" instead of "arrow_object") ...
Thanks anyway! Once again great script!

EDIT 2:
Another question if I may...
Is it possible to make the cursor go up and down by both 2 & 3 rows?
I'm no scripter, but I've seen this part of the code:
CODE
  def cursor_down(wrap = false)
    if (@index < @item_max - @column_max) or (wrap and @column_max == 1)
      @index = (@index + (@column_max*3)) % @item_max unless
      @data[(@index + (@column_max*3)) % @item_max] == nil or
      @data[(@index + (@column_max*3)) % @item_max] == "arrow"
      $sk_tree_data_refresh = true
    end
  end
  def cursor_up(wrap = false)
    if (@index >= @column_max) or (wrap and @column_max == 1)
      @index = (@index - (@column_max*3) + @item_max) % @item_max unless
      @data[(@index - (@column_max*3) + @item_max) % @item_max] == nil or
      @data[(@index - (@column_max*3) + @item_max) % @item_max] == "arrow"
      $sk_tree_data_refresh = true
    end
  end

As I understand it, the index will always be a '@culomn_max*3' value, meaning 3 rows up\down...
I'd like it to check for 2 rows as well, but its out of my ability to do so. :\
Could you please help me edit this little part so it will check if it can move by 2 or 3 rows at the same time?
Thanks in advance.

EDIT 3:
Apparently I managed to pull that off myself!
No more issues \ questions~ ^^
Thanks for this great script!
leongon
Glad you sorted it out by yourself.

I'm still checking if there is assistance needed for my scripts, just that since forum's traffic has gone very low in VX area, i'm not comming to check too often. tongue.gif

Still, if anyone needs help, i'll keep trying to give guidance for some more time.
Destinynite1
Hey Leon. (Sorry for necropost. Need a bit of help) I am currently using a mouse script, found here at RRR, and I accidentally clicked on a blank spot on the skill tree and it threw an error at me. Is there anyway this can be fixed? I'm not using the other script in the demo as I have my own menu script.
leongon
That would need some coding. Is because all in the skill trees is made a "button" even the empty spaces, and in the script architecture i made it so when you move the cursor it "skips" anything that is not a skill object. I understand with a mouse script you can force a click on areas my script was not letting the cursor to be... so I think to patch that it will be necessary to add behavior when clicking on both arrow objects and empty spaces aswell.

I'm not able to add coding for you at the moment, since I formated my computer and lost my installation of VX. I'll try to find it and see if can do something. But for now I suggest you to ask another scripter for help on this specific issue.
Destinynite1
Alright. That's not an issue. Its nothing big just more of an inconvenience. But thanks for the heads up.
gregjhanks
Hey, I was wondering if you had a work-around for the KGC party system in conjunction with your script. (this is the system where you can switch between all 8 party members, accessed through a menu icon - the default RPGVX doesn't allow you to have 8 in your party) I LOVE your Skill Tree script, but I can't get it to work with KGC party system. If you have any ideas or if this was already answered in the forum, could you point me in the right direction? Or if you know of any other party system that works with your script. Thanks!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.