Project1

标题: 想請問分類技能問題 [打印本页]

作者: 亂堂和樹    时间: 2014-12-8 18:40
标题: 想請問分類技能問題
我想請問前輩們,有關技能分類的問題...當然這前頭是沒有腳本的,單純系統可以自己新增類型與數量的(技能、特技、必殺技...等等)

但是想要單獨讓它顯示在狀態內(不含選擇框),要如何做呢?

例如:
技能有:1.2.3.4.5.6.7...
其中1.3.5為技能
而2.4.6為特技
最後7為必殺技

要如何顯示呢?
能夠像

draw_item_name(@actor.equips[0~6], x, y )
單獨顯示當前角色的裝備0~6這樣嗎?
作者: 三途亚梦    时间: 2014-12-8 22:59
本帖最后由 三途亚梦 于 2014-12-8 23:00 编辑

呃……说实话这次你的问题也让人理解起来有点辛苦……

是想要在人物的状态界面里描绘这个人物习得的技能吗?

还是在哪儿描绘你所说的技能特技必杀技?

如果是技能分类的话,默认脚本是自行对技能进行分类的。
会自动在人物的技能界面添加对应的技能分类、战斗中会添加对应的指令。
作者: 亂堂和樹    时间: 2014-12-9 01:13
本帖最后由 亂堂和樹 于 2014-12-9 01:42 编辑
三途亚梦 发表于 2014-12-8 22:59
呃……说实话这次你的问题也让人理解起来有点辛苦……

是想要在人物的状态界面里描绘这个人物习 ...


附帶一提,裡面有添加
#==分頁3/3==================================
  def set_mode1(new_mode1)
    @mode1 = (new_mode1 + 3) % 3
    Sound.play_cursor
    refresh
  end

  def update
    super
      if Input.trigger?(:UP)
      set_mode1(@mode1 + 1)
    elsif Input.trigger?(:DOWN)
      set_mode1(@mode1 - 1)
    end
  end

  def draw_block4(y)
    if @mode1 == 0
      draw_parameters1(8, y)
      #draw_equipments(288, y)
    elsif @mode1 == 1
      draw_parameters_ex1(8, y)
      #draw_element_rate(152, y)
      #draw_state_rate(344, y)
    else
      draw_parameters_ex2(8, y)
      #draw_element_rate(152, y)
      #draw_state_rate(344, y)
    end
  end
#==分頁3/3==================================





上頭那分成三頁,是想單獨顯示在紅框內頭..不過刷新上會有些問題...
這種上下切換兩頁的語法,結果切換上下頁才update更新內容..不動就卡住
(以技能框來說就是如此..按一次"下"就光框閃爍一次...就卡了..不能循環更新)

所以才問有沒有類似...

draw_item_name(@actor.equips[0], x, y )
draw_item_name(@actor.equips[1], x, y )
draw_item_name(@actor.equips[2], x, y )

這種單獨顯示當前角色的前幾樣裝備,又不用時常刷新的語法Orz

坦白說我還真的異想天開的打上...

name = $data_system.skill_types[2]
#↑技能庫stype_id= 2 類型
draw_item_name(@actor.skill[0], x, y )

...當然還是失敗Orz

作者: VIPArcher    时间: 2014-12-9 23:41
本帖最后由 VIPArcher 于 2014-12-22 15:52 编辑

其实可以自己定义一个这样的绘制特定技能类别的技能的方法。
楼主可以做成这样的菜单,想必是有一定的脚本基础的。那么我就写个代码范例给楼主参考一下吧。
  1. class Window_Base < Window
  2.   #--------------------------------------------------------------------------
  3.   # ● 绘制指定技能类型的技能
  4.   #--------------------------------------------------------------------------
  5.   def draw_types_skill(actor,stype_id,x,y)
  6.     actor.skills.select{|x| x.stype_id == stype_id}.each do |skill|
  7.       draw_item_name(skill, x, y )
  8.       y += line_height
  9.     end
  10.   end
  11. end
复制代码
未测试。
RUBY 代码复制
  1. class Window_Base < Window
  2.   #--------------------------------------------------------------------------
  3.   # ● 绘制指定技能类型的技能
  4.   #--------------------------------------------------------------------------
  5.   def draw_types_skill(actor,stype_id,x,y,width = 160, height = line_height)
  6.     skills = actor.skills.select{|x| x.stype_id == stype_id}
  7.     skills.each_index do |index|
  8.       draw_item_name(skills[index], x, y )
  9.       rect = Rect.new(x, y, width, height)
  10.       draw_types_skill_cost(actor,rect, skills[index])
  11.       y += height if index % 2 == 1
  12.       x = index % 2 == 0 ? width : 0
  13.     end
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 绘制技能的使用消耗
  17.   #--------------------------------------------------------------------------
  18.   def draw_types_skill_cost(actor, rect, skill)
  19.     if actor.skill_tp_cost(skill) > 0
  20.       change_color(tp_cost_color)
  21.       draw_text(rect, actor.skill_tp_cost(skill), 2)
  22.     elsif actor.skill_mp_cost(skill) > 0
  23.       change_color(mp_cost_color)
  24.       draw_text(rect, actor.skill_mp_cost(skill), 2)
  25.     end
  26.   end
  27. end

作者: 亂堂和樹    时间: 2014-12-10 14:50
VIPArcher 发表于 2014-12-9 23:41
其实可以自己定义一个这样的绘制特定技能类别的技能的方法。
楼主可以做成这样的菜单,想必是有一定的脚本 ...

謝謝大大熱心教學~不過可能是我太不長進了...很多還不能理解Orz

目前製作到這程度就好了,非常很感激你的幫忙啊>"<

成果圖如下:










欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1