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

Project1

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

[已经过期] 请问feizhaodan的技能冷却脚本怎么实现技能冷却减少?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
84 小时
注册时间
2015-11-15
帖子
20
跳转到指定楼层
1
发表于 2016-5-20 17:02:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

本版积分规则

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

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

GMT+8, 2024-11-16 11:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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