Project1

标题: 求大神把VA的技能cd脚本改成MV用插件 [打印本页]

作者: salvareless    时间: 2016-1-10 14:24
标题: 求大神把VA的技能cd脚本改成MV用插件
如题,一直在VA中使用技能cd脚本,因为想有限制某些技能使用次数和频率,所以很久之前寻到这样一个脚本,感觉蛮好用的。
现在入MV坑,想把这个脚本延续下去,但是找来找去也没有这样的插件,我的js又无比之烂,上学时就写不出一两行,几年不摸更是深感无力,只能伸手求助各位大神了。
一下是VA的脚本,希望可以给各路大神一些灵感,或者节约一些时间。各位大神一定要帮帮忙啊~~~~~~~
  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. class Game_Battler
  20. #--------------------------------------------------------------------------
  21. # ● 初始化对象
  22. #--------------------------------------------------------------------------
  23.   alias skill_cool_time_initialize initialize
  24.   def initialize
  25.     skill_cool_time_initialize
  26.     @skill_cool_time=[]
  27.   end
  28. #--------------------------------------------------------------------------
  29. # ● 应用技能/物品的效果
  30. #--------------------------------------------------------------------------
  31.   alias skill_cool_time_item_apply item_apply
  32.   def item_apply(user, item)
  33.     skill_cool_time_item_apply(user,item)
  34.     if item.is_a?(RPG::Skill)
  35.       user.set_cool_time(item)
  36.     end
  37.   end
  38. #--------------------------------------------------------------------------
  39. # ● 设置技能冷却时间
  40. #--------------------------------------------------------------------------
  41.   def set_cool_time(skill)
  42.     if skill.cool_time
  43.       @skill_cool_time[skill.id] = skill.cool_time
  44.     end
  45.   end
  46. #--------------------------------------------------------------------------
  47. # ● 回合结束处理
  48. #--------------------------------------------------------------------------
  49.   alias skill_cool_time_on_turn_end on_turn_end
  50.   def on_turn_end
  51.     skill_cool_time_on_turn_end
  52.     @skill_cool_time.each_index{|index|
  53.     @skill_cool_time[index] -= 1 if @skill_cool_time[index] and @skill_cool_time[index] > 0
  54.     }
  55.   end
  56. #--------------------------------------------------------------------------
  57. # ● 技能是否正在冷却
  58. #--------------------------------------------------------------------------
  59.   def skill_cooling?(skill)
  60.     @skill_cool_time[skill.id] and @skill_cool_time[skill.id] != 0
  61.   end
  62. #--------------------------------------------------------------------------
  63. # ● 获取冷却回合
  64. #--------------------------------------------------------------------------
  65.   def skill_cool_turn(skill)
  66.     @skill_cool_time[skill.id] ? @skill_cool_time[skill.id] : 0
  67.   end
  68. #--------------------------------------------------------------------------
  69. # ● 检查技能的使用条件
  70. #--------------------------------------------------------------------------
  71.   alias skill_cool_time_skill_conditions_met? skill_conditions_met?
  72.   def skill_conditions_met?(skill)
  73.     skill_cool_time_skill_conditions_met?(skill) && !skill_cooling?(skill)
  74.   end
  75. #--------------------------------------------------------------------------
  76. # ● 战斗结束处理
  77. #--------------------------------------------------------------------------
  78.   alias skill_cool_time_on_battle_end on_battle_end
  79.   def on_battle_end
  80.     skill_cool_time_on_battle_end
  81.     @skill_cool_time.clear
  82.   end
  83. end
  84. #==============================================================================
  85. # ■ Window_SkillList
  86. #------------------------------------------------------------------------------
  87. #  技能画面中,显示技能的窗口。
  88. #==============================================================================

  89. class Window_SkillList < Window_Selectable
  90. #--------------------------------------------------------------------------
  91. # ● 绘制项目
  92. #--------------------------------------------------------------------------
  93.   alias skill_cool_time_draw_item draw_item
  94.   def draw_item(index)
  95.     skill = @data[index]
  96.    
  97.     if skill
  98.       if @actor.skill_cooling?(skill)
  99.         rect = item_rect(index)
  100.         rect.width -= 4
  101.         w = @actor.skill_cool_turn(skill)
  102.         draw_item_name(skill, rect.x, rect.y, enable?(skill))
  103.         change_color(crisis_color)
  104.         draw_text(rect ,"-  " ,2)
  105.         draw_text(rect ,w ,2)
  106.       else
  107.         rect = item_rect(index)
  108.         rect.width -= 4
  109.         draw_item_name(skill, rect.x, rect.y, enable?(skill))
  110.         draw_skill_cost(rect, skill)
  111.       end
  112.     end
  113.   end  
  114. end
复制代码

作者: trentswd    时间: 2016-1-10 16:07
本帖最后由 trentswd 于 2016-1-10 17:09 编辑

没用过va的技能cd,mv的yep插件是有技能cd的

http://yanfly.moe/2015/10/14/yep-9-skill-cooldowns/
作者: salvareless    时间: 2016-1-11 15:33
启用了但是不明白怎么设置,我先看看能不能读懂脚本看看。
作者: fyqinpku    时间: 2016-1-14 17:24
salvareless 发表于 2016-1-11 15:33
启用了但是不明白怎么设置,我先看看能不能读懂脚本看看。

这个首先需要先插入YEP的SkillCore插件,然后再插这个技能CD插件,才能用。
可以在插件管理界面点击YEP插件Help查看使用说明。没记错的话最简单的设置就是在技能的备注里加上
<Cooldown: N>
使技能变N回合的CD。更多的设置就自己看看help吧
作者: suilyo    时间: 2018-12-3 20:12
来迟了问一句,现在这个脚本还有吗?楼上链接文件好像失效了。。。


作者: 白嫩白嫩的    时间: 2018-12-4 23:46
suilyo 发表于 2018-12-3 20:12
来迟了问一句,现在这个脚本还有吗?楼上链接文件好像失效了。。。

奶牛君的简书
作者: suilyo    时间: 2018-12-5 20:21
白嫩白嫩的 发表于 2018-12-4 23:46
奶牛君的简书

非常感谢!!





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