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

Project1

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

[RMVA发布] 技能冷却

[复制链接]

Lv1.梦旅人

Mr.Gandum

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

贵宾

跳转到指定楼层
发表于 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 好快,好快,真的好快……

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2015-12-24
帖子
6
24
发表于 2015-12-24 15:59:53 | 只看该作者
跪求清除冷却的代码怎么写
比如我用了10号技能,然后在10号技能触发时加一行代码,效果是把11号技能的冷却时间清0,怎么写?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

23
发表于 2014-9-20 22:20:16 | 只看该作者
  1. @skill_cool_time[skill.id] and @skill_cool_time[skill.id] != 0
复制代码
NoMeThodError是什么错误
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
66 小时
注册时间
2013-9-4
帖子
94
22
发表于 2013-10-27 11:33:50 | 只看该作者
昨天又挖坟了,希望不要扣我分
有XAS系统的冷却吗?[VA]
本人以后只点评!不回复!更不发主题!
(每次发资源都被扣分,还扣那么多!)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
560 小时
注册时间
2012-12-29
帖子
1075
21
发表于 2013-10-10 13:51:05 手机端发表。 | 只看该作者
这CD脚本真不错,如果是XP,且加到xas就更好了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

20
发表于 2013-10-9 15:34:15 手机端发表。 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2013-10-7
帖子
16
19
发表于 2013-10-9 12:53:53 | 只看该作者
- -不知道该说啥 虽然RPG用不上 还是先下了 坐等将来有用到的那天
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
164 小时
注册时间
2011-8-15
帖子
238
18
发表于 2013-7-24 16:23:26 | 只看该作者
有木有ARPG版 = =,相对回合制而言,ARPG更需要它.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2013-7-22
帖子
38
17
发表于 2013-7-22 11:54:28 | 只看该作者
为什么我的不行?没有冷却的。。。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39592
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

16
发表于 2013-5-5 16:08:35 | 只看该作者
支持一下。
另外请教一下,看到别人的游戏中有些技能设计成为战斗中只能使用1次,请问是用什么方法做到的?

点评

如果是游戏中只能使用一次,可以通过公共事件让角色遗忘技能。不依靠脚本能做到就是这些方法了。  发表于 2013-5-8 12:25
如果是一场战斗只能使用一次,可以通过附加状态禁用技能,但这个方法会在角色死亡时解除。  发表于 2013-5-8 12:24
可以试试去问那个作者,而不是我。我不知道你说的是哪个游戏,我也不知道他是怎么做的。  发表于 2013-5-6 10:10
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Mr.Gandum

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

贵宾

15
 楼主| 发表于 2013-5-5 09:37:00 | 只看该作者
暧昧的呼吸 发表于 2013-5-5 09:10
怎么没用啊%…………

试着把这个脚本放到Main上面一个。可能和其他脚本发生冲突。
也记得往要有冷却的技能的备注栏里放
  1. <冷却时间 x>
复制代码
,x是冷却时间
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 00:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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