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

Project1

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

[已经过期] 这段脚本里面如何捕捉到某角色的某技能的剩余冷却时间

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2014-9-21 16:09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 chd114 于 2014-9-20 23:11 编辑

RUBY 代码复制
  1. =begin
  2. 在VA默认战斗系统上增加技能冷却时间系统。使用一个技能后在一定回合内不可以使用。
  3. 需要在技能备注里添加<冷却时间 x>
  4. =end
  5. class RPG::Skill < RPG::UsableItem
  6.   def cool_time
  7.     @note.each_line{|line|
  8.     case line
  9.     when /\<(?:冷却时间)[ ]*(\d+)\>/
  10.       return $1.to_i
  11.     end
  12.     }
  13.     return 0
  14.   end
  15. end
  16. #==============================================================================
  17. # ■ Game_Actor
  18. #------------------------------------------------------------------------------
  19. #  管理角色的类。
  20. #   本类在 Game_Actors 类 ($game_actors) 的内部使用。
  21. #   具体使用请查看 Game_Party 类 ($game_party) 。
  22. #==============================================================================
  23.  
  24. class Game_Battler
  25.   #--------------------------------------------------------------------------
  26.   # ● 初始化对象
  27.   #--------------------------------------------------------------------------
  28.   alias skill_cool_time_initialize initialize
  29.   def initialize
  30.     skill_cool_time_initialize
  31.     @skill_cool_time=[]
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 应用技能/物品的效果
  35.   #--------------------------------------------------------------------------
  36.   alias skill_cool_time_item_apply item_apply
  37.   def item_apply(user, item)
  38.     skill_cool_time_item_apply(user,item)
  39.     if item.is_a?(RPG::Skill)
  40.       user.set_cool_time(item)
  41.     end
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 设置技能冷却时间
  45.   #--------------------------------------------------------------------------
  46.   def set_cool_time(skill)
  47.     if skill.cool_time
  48.       @skill_cool_time[skill.id] = skill.cool_time
  49.     end
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 回合结束处理
  53.   #--------------------------------------------------------------------------
  54.   alias skill_cool_time_on_turn_end on_turn_end
  55.   def on_turn_end
  56.     skill_cool_time_on_turn_end
  57.     @skill_cool_time.each_index{|index|
  58.     @skill_cool_time[index] -= 1 if @skill_cool_time[index] and @skill_cool_time[index] > 0
  59.     }
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 技能是否正在冷却
  63.   #--------------------------------------------------------------------------
  64.   def skill_cooling?(skill)
  65.     @skill_cool_time[skill.id] and @skill_cool_time[skill.id] != 0
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 获取冷却回合
  69.   #--------------------------------------------------------------------------
  70.   def skill_cool_turn(skill)
  71.     @skill_cool_time[skill.id] ? @skill_cool_time[skill.id] : 0
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 检查技能的使用条件
  75.   #--------------------------------------------------------------------------
  76.   alias skill_cool_time_skill_conditions_met? skill_conditions_met?
  77.   def skill_conditions_met?(skill)
  78.     skill_cool_time_skill_conditions_met?(skill) && !skill_cooling?(skill)
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 战斗结束处理
  82.   #--------------------------------------------------------------------------
  83.   alias skill_cool_time_on_battle_end on_battle_end
  84.   def on_battle_end
  85.     skill_cool_time_on_battle_end
  86.     @skill_cool_time.clear
  87.   end
  88. end
  89. #==============================================================================
  90. # ■ Window_SkillList
  91. #------------------------------------------------------------------------------
  92. #  技能画面中,显示技能的窗口。
  93. #==============================================================================
  94.  
  95. class Window_SkillList < Window_Selectable
  96.   #--------------------------------------------------------------------------
  97.   # ● 绘制项目
  98.   #--------------------------------------------------------------------------
  99.   alias skill_cool_time_draw_item draw_item
  100.   def draw_item(index)
  101.     skill = @data[index]
  102.     sss=@data[1]
  103.     if skill
  104.       #skill.cool_time
  105.       #p sss
  106.       p "文字"
  107.       #p index
  108.       p @actor.skill_cool_turn(1)
  109.       #p @actor.skill_cool_turn(skill)
  110.       if @actor.skill_cooling?(skill)
  111.         rect = item_rect(index)
  112.         w = (skill.cool_time - @actor.skill_cool_turn(skill)).to_f / skill.cool_time
  113.         draw_gauge(rect.x,rect.y,rect.width,w,text_color(5),text_color(13))
  114.       end
  115.     end
  116.     skill_cool_time_draw_item(index)
  117.   end
  118. end

试着P @actor.skill_cool_turn(skill)
可P出来的结果是所有的囧

@invwindy @Taxord ···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv4.逐梦者

梦石
8
星屑
164
在线时间
57 小时
注册时间
2013-7-14
帖子
37
2
发表于 2014-9-21 20:02:34 | 只看该作者
p @skill_cool_time 看看
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
 楼主| 发表于 2014-9-21 21:33:21 | 只看该作者
invwindy 发表于 2014-9-21 03:02
p @skill_cool_time 看看

P出来的结果是[1,0](1是我角色第一个技能的剩余CD,0是另一个技能的···)
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
164
在线时间
57 小时
注册时间
2013-7-14
帖子
37
4
发表于 2014-9-21 21:58:04 | 只看该作者
chd114 发表于 2014-9-21 21:33
P出来的结果是[1,0](1是我角色第一个技能的剩余CD,0是另一个技能的···) ...

因此如果在这个表外的就都是0了。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
 楼主| 发表于 2014-9-21 21:59:00 | 只看该作者
invwindy 发表于 2014-9-21 04:58
因此如果在这个表外的就都是0了。

刚好我都没学表外的······

点评

周末再看了···  发表于 2014-9-21 22:05
那就不清楚了看看别处吧……  发表于 2014-9-21 22:04
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 10:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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