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

Project1

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

[已经解决] 想請問分類技能問題

[复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
跳转到指定楼层
1
发表于 2014-12-8 18:40:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想請問前輩們,有關技能分類的問題...當然這前頭是沒有腳本的,單純系統可以自己新增類型與數量的(技能、特技、必殺技...等等)

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

例如:
技能有: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這樣嗎?

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2014-12-8 22:59:00 | 只看该作者
本帖最后由 三途亚梦 于 2014-12-8 23:00 编辑

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

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

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

如果是技能分类的话,默认脚本是自行对技能进行分类的。
会自动在人物的技能界面添加对应的技能分类、战斗中会添加对应的指令。

点评

以補上0.0...不過不知道能不能詮釋意思QAQ  发表于 2014-12-9 01:30
一般没有人会想要在人物状态栏中描绘技能的…… 所以你最好能截图说明下情况,最好再通过PS能手段做一个理想图,这样比较好帮你想办法。  发表于 2014-12-9 01:07
是想要在人物的状态界面里描绘这个人物习得的技能吗?<<是的 (不過直接套用技能的腳本,會出現選項框...而且也沒辦法單獨顯示三種類型)  发表于 2014-12-9 00:48

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
3
 楼主| 发表于 2014-12-9 01:13:54 | 只看该作者
本帖最后由 亂堂和樹 于 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

点评

S....我居然敗在S..(吐血  发表于 2014-12-10 01:07
@actor.skils[0] 就可以描绘出来了……你真就差一步……  发表于 2014-12-9 13:11
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

4
发表于 2014-12-9 23:41:43 | 只看该作者
本帖最后由 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-22 17:01
原來是要這樣寫喔>"<...我一開始就亂方向了啊QAQ...真的太感激你了>"<~謝謝  发表于 2014-12-22 16:55
看来你没明白我的意思,我再写一个示例你自己看看吧  发表于 2014-12-22 15:55
不...說真的,我使用colmax 2...他也沒有分成兩列,繪製的部分...也不能直接用...有些頭疼啊>"<"  发表于 2014-12-22 13:25
绘制两列啥的都差不多啦,操作x和y就好了(上面的 y += line_height就是绘制后操作y达到换行的效果。 绘制mp/tp消耗你可以参考Window_SkillList#draw_skill_cost  发表于 2014-12-21 20:41

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
330 小时
注册时间
2010-5-4
帖子
173
5
 楼主| 发表于 2014-12-10 14:50:32 | 只看该作者
VIPArcher 发表于 2014-12-9 23:41
其实可以自己定义一个这样的绘制特定技能类别的技能的方法。
楼主可以做成这样的菜单,想必是有一定的脚本 ...

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

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

成果圖如下:





回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 13:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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