设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 4985|回复: 7
打印 上一主题 下一主题

[原创发布] 技能树系统

[复制链接]

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

跳转到指定楼层
1
发表于 2013-9-24 17:15:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 RyanBern 于 2013-9-24 21:29 编辑

不知道有没有别人做过这个东西呢……自己花一晚上写的这些,拿出来跟大家分享一下。
具体的说明都在代码里面了,有什么地方不明白的尽管在帖子里面问啊!
  1. #==============================================================================
  2. # 技能树系统 Ver 1.0
  3. # 作者:RyanBern
  4. #------------------------------------------------------------------------------
  5. # 功能特色:
  6. #     开放技能点增加系统,每一个角色都有自己独特的技能成长历程。
  7. #     通过获得技能点来让技能变得更加强大。在学习技能的过程中,可以解锁同种技能
  8. #     的更高级别,也可以解锁威力更大的技能。
  9. #     主角的一切技能成长都遵循您的意愿!
  10. #==============================================================================
  11. # 使用方法
  12. #     在脚本的第 88 行起定义你的自定义技能树。
  13. #     注意,要一个一个角色的定义,因为不同角色的技能树肯定不同。
  14. #     核心定义脚本actor.set_data(id,ar1,ar2)
  15. #     id  :你要定义的技能ID
  16. #     ar1 :是一个数组,记录着该技能的前置技能的ID(这就意味着一个技能的前置技能
  17. #          可以有多个),角色必须学会这个技能的所有前置技能才可以学习该技能。
  18. #     ar2 :是一个数组,记录着该技能学会之后,可能开启的后置技能。
  19. #          设置ar2主要是为了描绘方便,但是会增加使用者的工作量。
  20. #     ar1和ar2可以为空,表示该技能没有前置技能或后置技能,用空的方括号[]表示
  21. #------------------------------------------------------------------------------
  22. #     定义范例:
  23. #     # 1号角色
  24. #     actor = Game_Skill_Tree.new
  25. #     actor.set_data(1,[],[2]) # 定义ID为1的技能,不需要前置技能,可能开启ID为2的技能
  26. #     actor.set_data(2,[1],[3,4])
  27. #     actor.set_data(3,[2],[4]) # 定义ID为3的技能,前置技能为ID 2,后置技能为ID 4
  28. #     actor.set_data(4,[2,3],[])
  29. #     actor.skills.sort!
  30. #     data.push(actor)
  31. #     # 1号角色定义完毕
  32. #------------------------------------------------------------------------------
  33. #  ※ 默认每个人升5级就能获得1技能点,即角色在5,10,15...级会得到技能点,如果想
  34. #     改变获得技能点的级数,请改下面的  SKILLS_PTS_STEP = 5
  35. #  ※ 默认每次打到规定登记会获得1个技能点,如果想改变每次获得的技能点个数,请
  36. #     改下面的  UPGRADE_GAIN = 1
  37. #  ※ 默认每个技能学习消耗1个技能点,这个暂时不支持更改-_-||
  38. #  ※ 角色各自的技能点保存在游戏的变量当中(也就是$game_variables中),默认保存
  39. #     的位置是 NUMBER_SHIFT + 角色的ID,即如果NUMBER_SHIFT == 0,则ID为1的角色
  40. #     的技能点数保存在1号变量中,以此类推。当然考虑到这个位置可能实现保存了编者
  41. #     的其它数据,固设置数据位移量NUMBER_SHIFT,如果你想从101号变量开始保存,
  42. #     只需要改 NUMBER_SHIFT = 100
  43. #------------------------------------------------------------------------------
  44. #  ※ 考虑到主菜单场景大家改起来不方便,可以用事件在地图上进行调用。
  45. #  ※ 方法是建立一个新事件,使用脚本$scene = Scene_Skill_Tree.new即可。
  46. #  ※ 当然会写脚本的同学可以把它融入到主菜单中。
  47. #  ※ 使用PageUP和PageDown可以在不同角色之间进行切换
  48. #==============================================================================
  49. # 界面说明:
  50. #     玩家已经习得的技能用黄色字体表示
  51. #     玩家能够学习的技能用白色表示
  52. #     没有达到学习条件的技能用灰色表示
  53. #     已经达到学习条件的,但是技能点不足,无法学习的技能,用红色表示
  54. #     在前置技能中,已经学到的技能用白色表示,并且后面有个“√”
  55. #     在前置技能中,没有学到的技能用灰色表示
  56. #==============================================================================

  57. SKILL_PTS_STEP = 5
  58. UPGRADE_GAIN = 1
  59. NUMBER_SHIFT = 0

  60. class Game_Skill_Tree
  61.   attr_accessor :skills
  62.   attr_reader   :prev_skills
  63.   attr_reader   :next_skills
  64.   def initialize
  65.     @skills = []
  66.     @prev_skills = {}
  67.     @next_skills = {}
  68.   end
  69.   #----------------------------------------------------------------------------
  70.   # 定义数据类型
  71.   # skill_id :要定义的技能id
  72.   # pre_skills :要定义技能之前置技能,是一个数组
  73.   # post_skills :要定义技能之后置技能,是一个数组
  74.   #----------------------------------------------------------------------------
  75.   def set_data(skill_id,pre_skills,post_skills)
  76.     @skills.push(skill_id)
  77.     @prev_skills[skill_id] = pre_skills
  78.     @next_skills[skill_id] = post_skills
  79.   end
  80. end

  81. def get_skill_tree
  82.   data = [nil]
  83.   # 开始定义各个主角的技能树
  84.   # 1号角色

  85.   # 1号角色定义完毕
  86.   return data
  87. end

  88. class Game_Actor
  89.   #--------------------------------------------------------------------------
  90.   # ● 更改 EXP
  91.   #     exp : 新的 EXP
  92.   #--------------------------------------------------------------------------
  93.   def exp=(exp)
  94.     [url=home.php?mod=space&uid=13302]@exp[/url] = [[exp, 9999999].min, 0].max
  95.     # 升级
  96.     while [url=home.php?mod=space&uid=13302]@exp[/url] >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  97.       [url=home.php?mod=space&uid=22147]@level[/url] += 1
  98.       # 学会特技
  99.       for j in $data_classes[@class_id].learnings
  100.         if j.level == @level
  101.           learn_skill(j.skill_id)
  102.         end
  103.       end
  104.       # 达到技能点要求就增加技能点
  105.       if [url=home.php?mod=space&uid=22147]@level[/url] % SKILL_PTS_STEP == 0
  106.         $game_variables[NUMBER_SHIFT + self.id] += UPGRADE_GAIN
  107.       end
  108.     end
  109.     # 降级
  110.     while @exp < @exp_list[@level]
  111.       @level -= 1
  112.     end
  113.     # 修正当前的 HP 与 SP 超过最大值
  114.     @hp = [@hp, self.maxhp].min
  115.     @sp = [@sp, self.maxsp].min
  116.   end
  117.   def skill_can_learn?(skill_id)
  118.     skill_tree = $data_skilltree[self.id]
  119.     # 没有对应设置,返回false
  120.     if skill_tree == nil
  121.       return false
  122.     end
  123.     skills_need = skill_tree.prev_skills[skill_id]
  124.     # 不在技能树中的技能无法习得
  125.     if skills_need == nil
  126.       return false
  127.     end
  128.     # 逐个检查
  129.     for i in skills_need
  130.       # 如果有前置技能没有学习
  131.       unless skill_learn?(i)
  132.         return false
  133.       end
  134.     end
  135.     # 前置技能全部都学习了
  136.     return true
  137.   end
  138. end

  139. #==============================================================================
  140. # ■ Window_Skill_Tree
  141. #------------------------------------------------------------------------------
  142. #  技能树场景中,显示所有技能的窗口。
  143. #==============================================================================

  144. class Window_Skill_Tree < Window_Selectable
  145.   #--------------------------------------------------------------------------
  146.   # ● 初始化对像
  147.   #     actor : 角色
  148.   #--------------------------------------------------------------------------
  149.   def initialize(actor)
  150.     super(0, 128, 180, 352)
  151.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  152.     @skill_tree = $data_skilltree[@actor.id]
  153.     @column_max = 1
  154.     refresh
  155.     self.index = 0
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 获取特技
  159.   #--------------------------------------------------------------------------
  160.   def skill
  161.     return @data[self.index]
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● 刷新
  165.   #--------------------------------------------------------------------------
  166.   def refresh
  167.     if self.contents != nil
  168.       self.contents.dispose
  169.       self.contents = nil
  170.     end
  171.     @data = []
  172.     # 没有技能树,返回
  173.     if @skill_tree == nil
  174.       return
  175.     end
  176.     for i in 0...@skill_tree.skills.size
  177.       skill = $data_skills[@skill_tree.skills[i]]
  178.       if skill != nil
  179.         @data.push(skill)
  180.       end
  181.     end
  182.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  183.     @item_max = @data.size
  184.     if @item_max > 0
  185.       self.contents = Bitmap.new(width - 32, row_max * 32)
  186.       for i in 0...@item_max
  187.         draw_item(i)
  188.       end
  189.     end
  190.   end
  191.   #--------------------------------------------------------------------------
  192.   # ● 描绘项目
  193.   #     index : 项目编号
  194.   #--------------------------------------------------------------------------
  195.   def draw_item(index)
  196.     skill = @data[index]
  197.     if @actor.skill_learn?(skill.id)
  198.       self.contents.font.color = crisis_color
  199.     elsif @actor.skill_can_learn?(skill.id)
  200.       if $game_variables[NUMBER_SHIFT + @actor.id] > 0
  201.         self.contents.font.color = normal_color
  202.       else
  203.         self.contents.font.color = knockout_color
  204.       end
  205.     else
  206.       self.contents.font.color = disabled_color
  207.     end
  208.     x = 4
  209.     y = index  * 32
  210.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  211.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  212.     bitmap = RPG::Cache.icon(skill.icon_name)
  213.     opacity = self.contents.font.color == disabled_color ? 128 : 255
  214.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  215.     self.contents.draw_text(x + 28, y, 140, 32, skill.name, 0)
  216.   end
  217.   #--------------------------------------------------------------------------
  218.   # ● 刷新帮助文本
  219.   #--------------------------------------------------------------------------
  220.   def update_help
  221.     @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  222.   end
  223. end

  224. #==============================================================================
  225. # ■ Window_Skill_Tree_Status
  226. #------------------------------------------------------------------------------
  227. #  技能树界面中,显示特技画面、特技使用者的窗口。
  228. #==============================================================================

  229. class Window_Skill_Tree_Status < Window_Base
  230.   #--------------------------------------------------------------------------
  231.   # ● 初始化对像
  232.   #     actor : 角色
  233.   #--------------------------------------------------------------------------
  234.   def initialize(actor)
  235.     super(0, 64, 640, 64)
  236.     self.contents = Bitmap.new(width - 32, height - 32)
  237.     [url=home.php?mod=space&uid=95897]@actor[/url] = actor
  238.     refresh
  239.   end
  240.   #--------------------------------------------------------------------------
  241.   # ● 刷新
  242.   #--------------------------------------------------------------------------
  243.   def refresh
  244.     self.contents.clear
  245.     draw_actor_name(@actor, 4, 0)
  246.     draw_actor_state(@actor, 140, 0)
  247.     self.contents.font.color = system_color
  248.     self.contents.draw_text(360, 0, 160, 32, "可用技能点:")
  249.     skill_pt = $game_variables[NUMBER_SHIFT + @actor.id]
  250.     if skill_pt == 0
  251.       self.contents.font.color = knockout_color
  252.     else
  253.       self.contents.font.color = normal_color
  254.     end
  255.     self.contents.draw_text(496, 0, 64, 32, skill_pt.to_s, 2)
  256.   end
  257. end

  258. class Window_Skill_Prev < Window_Base
  259.   def initialize(actor,skill)
  260.     super(180, 192, 230, 288)
  261.     self.contents = Bitmap.new(width - 32, height - 32)
  262.     @actor = actor
  263.     [url=home.php?mod=space&uid=260100]@skill[/url] = skill
  264.     refresh
  265.   end
  266.   def skill=(skill)
  267.     if [url=home.php?mod=space&uid=260100]@skill[/url] != skill
  268.       @skill = skill
  269.       refresh
  270.     end
  271.   end
  272.   def refresh
  273.     self.contents.clear
  274.     skill_tree = $data_skilltree[@actor.id]
  275.     # 没有技能树,结束描绘
  276.     if skill_tree == nil or @skill == nil
  277.       return
  278.     end
  279.     skills_need = skill_tree.prev_skills[@skill.id]
  280.     skills_need.sort!
  281.     for i in 0...skills_need.size
  282.       x = 4
  283.       y = i * 32
  284.       skill = $data_skills[skills_need[i]]
  285.       if @actor.skill_learn?(skills_need[i])
  286.         self.contents.font.color = normal_color
  287.         tag = "√"
  288.         opacity = 255
  289.       else
  290.         self.contents.font.color = disabled_color
  291.         tag = ""
  292.         opacity = 128
  293.       end
  294.       bitmap = RPG::Cache.icon(skill.icon_name)
  295.       self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  296.       self.contents.draw_text(x + 28, y, 166, 32, skill.name + tag, 0)
  297.     end
  298.   end
  299. end

  300. class Window_Skill_Next < Window_Base
  301.   def initialize(actor,skill)
  302.     super(410, 192, 230, 288)
  303.     self.contents = Bitmap.new(width - 32, height - 32)
  304.     @actor = actor
  305.     @skill = skill
  306.     refresh
  307.   end
  308.   def skill=(skill)
  309.     if @skill != skill
  310.       @skill = skill
  311.       refresh
  312.     end
  313.   end
  314.   def refresh
  315.     self.contents.clear
  316.     skill_tree = $data_skilltree[@actor.id]
  317.     # 没有技能树,结束描绘
  318.     if skill_tree == nil or @skill == nil
  319.       return
  320.     end
  321.     skills_next = skill_tree.next_skills[@skill.id]
  322.     skills_next.sort!
  323.     for i in 0...skills_next.size
  324.       x = 4
  325.       y = i * 32
  326.       skill = $data_skills[skills_next[i]]
  327.       self.contents.font.color = normal_color
  328.       bitmap = RPG::Cache.icon(skill.icon_name)
  329.       self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), 255)
  330.       self.contents.draw_text(x + 28, y, 166, 32, skill.name, 0)
  331.     end
  332.   end
  333. end

  334. #==============================================================================
  335. # ■ Window_Tip
  336. #------------------------------------------------------------------------------
  337. #  技能树画面提示窗口
  338. #==============================================================================

  339. class Window_Tip < Window_Selectable
  340.   #--------------------------------------------------------------------------
  341.   # ● 初始化对像
  342.   #--------------------------------------------------------------------------
  343.   def initialize
  344.     super(160, 176, 320, 128)
  345.     self.contents = Bitmap.new(width - 32, height - 32)
  346.     @item_max = 2
  347.     @column_max = 2
  348.     @commands = ["是的",  "不要"]
  349.     refresh
  350.     self.index = 0
  351.     self.z = 1000
  352.   end
  353.   #--------------------------------------------------------------------------
  354.   # ● 刷新
  355.   #--------------------------------------------------------------------------
  356.   def refresh
  357.     self.contents.clear
  358.     self.contents.font.color = system_color
  359.     self.contents.draw_text(4, 0, 328, 32, "您确定要学习该技能吗?")
  360.     self.contents.draw_text(4, 32, 328, 32, "本次学习将消耗1个技能点。")
  361.     self.contents.font.color = normal_color
  362.     for i in 0...@item_max
  363.       draw_item(i)
  364.     end
  365.   end
  366.   #--------------------------------------------------------------------------
  367.   # ● 描绘项目
  368.   #     index : 项目编号
  369.   #--------------------------------------------------------------------------
  370.   def draw_item(index)
  371.     x = 4 + index * 144
  372.     self.contents.draw_text(x, 64, 128, 32, @commands[index])
  373.   end
  374.   def update_cursor_rect
  375.     if [url=home.php?mod=space&uid=370741]@Index[/url] < 0
  376.       self.cursor_rect.empty
  377.     else
  378.       self.cursor_rect.set(@index * 144, 64, (self.width - 32) / 2, 32)
  379.     end
  380.   end
  381. end

  382. #==============================================================================
  383. # ■ Scene_Skill_Tree
  384. #------------------------------------------------------------------------------
  385. #  处理特技树画面的类。
  386. #==============================================================================

  387. class Scene_Skill_Tree
  388.   #--------------------------------------------------------------------------
  389.   # ● 初始化对像
  390.   #     actor_index : 角色索引
  391.   #--------------------------------------------------------------------------
  392.   def initialize(actor_index = 0)
  393.     @actor_index = actor_index
  394.   end
  395.   #--------------------------------------------------------------------------
  396.   # ● 主处理
  397.   #--------------------------------------------------------------------------
  398.   def main
  399.     # 获取角色
  400.     @actor = $game_party.actors[@actor_index]
  401.     # 生成帮助窗口、状态窗口、特技窗口
  402.     @title1 = Window_Base.new(180, 128, 230, 64)
  403.     @title2 = Window_Base.new(410, 128, 230, 64)
  404.     @title1.contents = Bitmap.new(198, 32)
  405.     @title1.contents.draw_text(4, 0, 120, 32, "前置技能")
  406.     @title2.contents = Bitmap.new(198, 32)
  407.     @title2.contents.draw_text(4, 0, 120, 32, "后置技能")
  408.     @help_window = Window_Help.new
  409.     @status_window = Window_Skill_Tree_Status.new(@actor)
  410.     @skill_window = Window_Skill_Tree.new(@actor)
  411.     @prev_window = Window_Skill_Prev.new(@actor,nil)
  412.     @next_window = Window_Skill_Next.new(@actor,nil)
  413.     # 关联帮助窗口
  414.     @skill_window.help_window = @help_window
  415.     # 生成信息提示窗口 (设置为不可见・不活动)
  416.     @tip_window = Window_Tip.new
  417.     @tip_window.visible = false
  418.     @tip_window.active = false
  419.     # 执行过渡
  420.     Graphics.transition
  421.     # 主循环
  422.     loop do
  423.       # 刷新游戏画面
  424.       Graphics.update
  425.       # 刷新输入信息
  426.       Input.update
  427.       # 刷新画面
  428.       update
  429.       # 如果画面切换的话就中断循环
  430.       if $scene != self
  431.         break
  432.       end
  433.     end
  434.     # 准备过渡
  435.     Graphics.freeze
  436.     # 释放窗口
  437.     @help_window.dispose
  438.     @status_window.dispose
  439.     @skill_window.dispose
  440.     @tip_window.dispose
  441.     @prev_window.dispose
  442.     @next_window.dispose
  443.     @title1.dispose
  444.     @title2.dispose
  445.   end
  446.   #--------------------------------------------------------------------------
  447.   # ● 刷新画面
  448.   #--------------------------------------------------------------------------
  449.   def update
  450.     # 刷新窗口
  451.     @help_window.update
  452.     @status_window.update
  453.     @skill_window.update
  454.     @tip_window.update
  455.     @prev_window.update
  456.     @next_window.update
  457.     @skill = @skill_window.skill
  458.     @prev_window.skill = @skill
  459.     @next_window.skill = @skill
  460.     # 特技窗口被激活的情况下: 调用 update_skill
  461.     if @skill_window.active
  462.       update_skill
  463.       return
  464.     end
  465.     # 目标窗口被激活的情况下: 调用 update_target
  466.     if @tip_window.active
  467.       update_tip
  468.       return
  469.     end
  470.   end
  471.   #--------------------------------------------------------------------------
  472.   # ● 刷新画面 (特技窗口被激活的情况下)
  473.   #--------------------------------------------------------------------------
  474.   def update_skill
  475.     # 按下 B 键的情况下
  476.     if Input.trigger?(Input::B)
  477.       # 演奏取消 SE
  478.       $game_system.se_play($data_system.cancel_se)
  479.       # 切换到菜单画面
  480.       $scene = Scene_Map.new
  481.       return
  482.     end
  483.     # 按下 C 键的情况下
  484.     if Input.trigger?(Input::C)
  485.       # 获取特技窗口现在选择的特技的数据
  486.       @skill = @skill_window.skill
  487.       # 不能使用的情况下
  488.       if @skill == nil or not @actor.skill_can_learn?(@skill.id) or $game_variables[NUMBER_SHIFT + @actor.id] == 0 or @actor.skill_learn?(@skill.id)
  489.         # 演奏冻结 SE
  490.         $game_system.se_play($data_system.buzzer_se)
  491.         return
  492.       else
  493.         # 演奏确定 SE
  494.         $game_system.se_play($data_system.decision_se)
  495.         @tip_window.visible = true
  496.         @skill_window.active = false
  497.         @tip_window.active = true
  498.         return
  499.       end
  500.     end
  501.     # 按下 R 键的情况下
  502.     if Input.trigger?(Input::R)
  503.       # 演奏光标 SE
  504.       $game_system.se_play($data_system.cursor_se)
  505.       # 移至下一位角色
  506.       @actor_index += 1
  507.       @actor_index %= $game_party.actors.size
  508.       # 切换到别的特技画面
  509.       $scene = Scene_Skill_Tree.new(@actor_index)
  510.       return
  511.     end
  512.     # 按下 L 键的情况下
  513.     if Input.trigger?(Input::L)
  514.       # 演奏光标 SE
  515.       $game_system.se_play($data_system.cursor_se)
  516.       # 移至上一位角色
  517.       @actor_index += $game_party.actors.size - 1
  518.       @actor_index %= $game_party.actors.size
  519.       # 切换到别的特技画面
  520.       $scene = Scene_Skill_Tree.new(@actor_index)
  521.       return
  522.     end
  523.   end
  524.   #--------------------------------------------------------------------------
  525.   # ● 刷新画面 (目标窗口被激活的情况下)
  526.   #--------------------------------------------------------------------------
  527.   def update_tip
  528.     # 按下 B 键的情况下
  529.     if Input.trigger?(Input::B)
  530.       # 演奏取消 SE
  531.       $game_system.se_play($data_system.cancel_se)
  532.       # 删除目标窗口
  533.       @skill_window.active = true
  534.       @tip_window.visible = false
  535.       @tip_window.active = false
  536.       @tip_window.index = 0
  537.       return
  538.     end
  539.     # 按下 C 键的情况下
  540.     if Input.trigger?(Input::C)
  541.       $game_system.se_play($data_system.decision_se)
  542.       if @tip_window.index == 0
  543.         id = @skill_window.skill.id
  544.         @actor.learn_skill(id)
  545.         $game_variables[NUMBER_SHIFT + @actor.id] -= 1
  546.       end
  547.       @tip_window.active = false
  548.       @tip_window.visible = false
  549.       @skill_window.active = true
  550.       @status_window.refresh
  551.       @skill_window.refresh
  552.       @tip_window.index = 0
  553.     end
  554.   end
  555. end


  556. class Scene_Title
  557.   alias m main
  558.   def main
  559.     $data_skilltree = get_skill_tree
  560.     m
  561.   end
  562. end
复制代码
如果什么地方乱码了请及时告诉我,懂代码的朋友们请多帮帮忙。
下面是界面,感觉比较烂,不过还能用……

还有一个新工程的附件范例,都一并拿去吧……
Project1.rar (277.23 KB, 下载次数: 285)
刚才看了一下,脚本第99 102 158 273 388行都出现了不该出现的东西,大家把那个什么url的删掉就好,或者直接下范例附件。

点评

那个阿尔西斯正常建议去掉···  发表于 2013-10-4 14:19

评分

参与人数 3星屑 +131 收起 理由
断电 + 20 精品文章
你最珍贵 + 45 精品文章
美丽晨露 + 66 精品文章

查看全部评分

Lv1.梦旅人

梦石
0
星屑
40
在线时间
90 小时
注册时间
2013-6-26
帖子
92
2
发表于 2013-9-24 18:36:26 | 只看该作者
诶……【前排】
不太懂……姑且把工程下下来……
我没有耐心也没收藏癖,搞了半天的蛋少年就点下吧



回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
帖子
11485

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

3
发表于 2013-9-24 18:51:58 | 只看该作者
哗,其实我很早之前就想要这个系统了······
谢谢楼主的辛勤劳动。
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
33
在线时间
85 小时
注册时间
2009-7-19
帖子
21

开拓者

4
发表于 2013-9-24 21:02:16 | 只看该作者
谢谢楼主分享 先试试看了
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

5
 楼主| 发表于 2013-9-24 21:25:50 | 只看该作者
我是羊羽我骄傲 发表于 2013-9-24 18:36
诶……【前排】
不太懂……姑且把工程下下来……

嗯,只要能用就好啦……
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

6
 楼主| 发表于 2013-9-24 21:26:25 | 只看该作者
美丽晨露 发表于 2013-9-24 18:51
哗,其实我很早之前就想要这个系统了······
谢谢楼主的辛勤劳动。 ...

如果有什么好建议和意见还请多多指教!
回复 支持 反对

使用道具 举报

Lv2.观梦者

故九江太守

梦石
0
星屑
423
在线时间
2104 小时
注册时间
2012-12-5
帖子
4421
7
发表于 2013-10-4 13:28:26 | 只看该作者
给几个建议,希望在前置后置技能可以加个需要多少金钱,或物品
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
127 小时
注册时间
2011-8-19
帖子
9
8
发表于 2013-12-4 17:09:39 | 只看该作者
楼主好厉害,不过想请教一个问题,如果技能树不是按照角色的ID来设定,而是根据职业的ID来设定该怎么改呢?

点评

嗯,确实是这样的,但是如果假定A角色在B、C两种职业之间进行选择,当选择B职业享有一棵技能树,而当选择C职业享有另一棵技能树时该怎么弄呢?  发表于 2013-12-4 22:39
这个问题太瞎了....角色本身就要设置职业... 所以是角色还是职业有什么差别~~??  发表于 2013-12-4 19:22
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-15 12:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表