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

Project1

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

[RMVA发布] 技能冷却

[复制链接]

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

跳转到指定楼层
1
发表于 2012-3-21 19:47:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 feizhaodan 于 2012-3-22 12:44 编辑

在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.     if skill
  97.       if @actor.skill_cooling?(skill)
  98.         rect = item_rect(index)
  99.         w = (skill.cool_time - @actor.skill_cool_turn(skill)).to_f / skill.cool_time
  100.         draw_gauge(rect.x,rect.y,rect.width,w,text_color(5),text_color(13))
  101.       end
  102.     end
  103.     skill_cool_time_draw_item(index)
  104.   end
  105. end
  106.       
复制代码
使用方法:
在技能的备注栏内输入
  1. <冷却时间 x>
复制代码
x改为冷却的回合数。

评分

参与人数 6星屑 +762 +1 收起 理由
不汐汐 + 1
冰舞蝶恋 + 250 路过塞糖~
xiaoshun23 + 10 非常感谢!
Kimu + 400 发布奖励
MSQ + 90 好物
不会脚本 + 12 好快,好快,真的好快……

查看全部评分

Lv3.寻梦者

虚空人形

梦石
0
星屑
4604
在线时间
2037 小时
注册时间
2011-8-11
帖子
3398

贵宾

2
发表于 2012-3-21 21:09:55 | 只看该作者
是个好东西,就是那个冷却条的位置有些碍眼,是在100多行那里改吧?

点评

=-=你确定不用发图标?  发表于 2013-4-29 07:45
改draw_item内第二个if里面的内容  发表于 2012-3-22 10:12
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
354
在线时间
1036 小时
注册时间
2011-5-19
帖子
2098
3
发表于 2012-3-22 12:25:16 | 只看该作者
看到了好东西~~=W=

话说这种RUBY代码如何复制?

点复制代码没效果,手动复制就全部变为一行了,囧~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
226
在线时间
123 小时
注册时间
2008-8-23
帖子
55
4
发表于 2012-3-22 13:57:57 | 只看该作者
能加入一个使用某技能或者物品可以立即结束CD的效果否

点评

暂时没有打算。  发表于 2012-3-22 17:19
暂时没有  发表于 2012-3-22 17:19
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
152 小时
注册时间
2012-1-12
帖子
456
5
发表于 2012-3-25 17:13:54 | 只看该作者
这个脚本好像应该和CP战斗脚本一起用效果好得多吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
739 小时
注册时间
2011-11-24
帖子
341
6
发表于 2012-3-28 19:11:46 | 只看该作者
请问这个技能冷却可不可以将一个技能变成在一场战斗中只能使用一次?

点评

……通过技能公式可以给使用者附加禁用某技能的状态,持续回合数可调,不过这样的话冷却时间只能写在技能说明里了……  发表于 2014-5-28 19:34
嗯.......的确理论上是不会有一场战斗打这么久的.............=.=  发表于 2012-3-28 19:40
将冷却设为9999?  发表于 2012-3-28 19:13
【长期招募制作成员】
原创科幻RPG - PURIFICATION (内涵‧严肃‧认真)
https://rpg.blue/thread-371063-1-1.html
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
676
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

7
发表于 2012-3-29 19:37:47 | 只看该作者
黑白。hi~
话说其实个人觉得回合制的话技能冷却很多余,即时的才好嘛
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
66
在线时间
140 小时
注册时间
2012-2-6
帖子
384
8
发表于 2012-3-29 20:38:19 | 只看该作者
我能不能说一下,曾经被封号的@阿尔西斯的马甲发过这个东西?

点评

发过  发表于 2015-4-4 10:34
是么?  发表于 2012-3-30 17:11
签名是什么?可以吃么?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
354
在线时间
1036 小时
注册时间
2011-5-19
帖子
2098
9
发表于 2012-3-30 18:55:44 | 只看该作者
FZD君好人呀~~居然换了代码框~~QAQ~~感激不尽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
629 小时
注册时间
2009-9-24
帖子
570
10
发表于 2012-4-11 12:28:00 | 只看该作者
角本无力…我是直接用状态做的…一个技能附加一个禁用该技能X回合的事件状态…

点评

那啥,挂了以后技能CD重置也没啥不行的吧……孤火花的效果还带离场重置的呢……  发表于 2014-5-28 19:36
我也是,不过问题在于一旦挂了状态就被清除了  发表于 2013-5-8 11:03
很适合脚本盲的群众们~  发表于 2012-9-25 10:56
十三工坊式作型人形兵器驾驶员
“和基巴君是不同的!和基巴君!”
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 04:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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