Project1
标题:
技能冷却
[打印本页]
作者:
feizhaodan
时间:
2012-3-21 19:47
标题:
技能冷却
本帖最后由 feizhaodan 于 2012-3-22 12:44 编辑
在VA默认战斗系统上增加技能冷却时间系统。使用一个技能后在一定回合内不可以使用。
技能冷却.jpg
(67.76 KB, 下载次数: 52)
下载附件
保存到相册
2012-3-21 19:44 上传
class RPG::Skill < RPG::UsableItem
def cool_time
@note.each_line{|line|
case line
when /\<(?:冷却时间)[ ]*(\d+)\>/
return $1.to_i
end
}
return 0
end
end
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# 管理角色的类。
# 本类在 Game_Actors 类 ($game_actors) 的内部使用。
# 具体使用请查看 Game_Party 类 ($game_party) 。
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
alias skill_cool_time_initialize initialize
def initialize
skill_cool_time_initialize
@skill_cool_time=[]
end
#--------------------------------------------------------------------------
# ● 应用技能/物品的效果
#--------------------------------------------------------------------------
alias skill_cool_time_item_apply item_apply
def item_apply(user, item)
skill_cool_time_item_apply(user,item)
if item.is_a?(RPG::Skill)
user.set_cool_time(item)
end
end
#--------------------------------------------------------------------------
# ● 设置技能冷却时间
#--------------------------------------------------------------------------
def set_cool_time(skill)
if skill.cool_time
@skill_cool_time[skill.id] = skill.cool_time
end
end
#--------------------------------------------------------------------------
# ● 回合结束处理
#--------------------------------------------------------------------------
alias skill_cool_time_on_turn_end on_turn_end
def on_turn_end
skill_cool_time_on_turn_end
@skill_cool_time.each_index{|index|
@skill_cool_time[index] -= 1 if @skill_cool_time[index] and @skill_cool_time[index] > 0
}
end
#--------------------------------------------------------------------------
# ● 技能是否正在冷却
#--------------------------------------------------------------------------
def skill_cooling?(skill)
@skill_cool_time[skill.id] and @skill_cool_time[skill.id] != 0
end
#--------------------------------------------------------------------------
# ● 获取冷却回合
#--------------------------------------------------------------------------
def skill_cool_turn(skill)
@skill_cool_time[skill.id] ? @skill_cool_time[skill.id] : 0
end
#--------------------------------------------------------------------------
# ● 检查技能的使用条件
#--------------------------------------------------------------------------
alias skill_cool_time_skill_conditions_met? skill_conditions_met?
def skill_conditions_met?(skill)
skill_cool_time_skill_conditions_met?(skill) && !skill_cooling?(skill)
end
#--------------------------------------------------------------------------
# ● 战斗结束处理
#--------------------------------------------------------------------------
alias skill_cool_time_on_battle_end on_battle_end
def on_battle_end
skill_cool_time_on_battle_end
@skill_cool_time.clear
end
end
#==============================================================================
# ■ Window_SkillList
#------------------------------------------------------------------------------
# 技能画面中,显示技能的窗口。
#==============================================================================
class Window_SkillList < Window_Selectable
#--------------------------------------------------------------------------
# ● 绘制项目
#--------------------------------------------------------------------------
alias skill_cool_time_draw_item draw_item
def draw_item(index)
skill = @data[index]
if skill
if @actor.skill_cooling?(skill)
rect = item_rect(index)
w = (skill.cool_time - @actor.skill_cool_turn(skill)).to_f / skill.cool_time
draw_gauge(rect.x,rect.y,rect.width,w,text_color(5),text_color(13))
end
end
skill_cool_time_draw_item(index)
end
end
复制代码
使用方法:
在技能的备注栏内输入
<冷却时间 x>
复制代码
x改为冷却的回合数。
作者:
hcm
时间:
2012-3-21 21:09
是个好东西,就是那个冷却条的位置有些碍眼,是在100多行那里改吧?
作者:
MSQ
时间:
2012-3-22 12:25
看到了好东西~~=W=
话说这种RUBY代码如何复制?
点复制代码没效果,手动复制就全部变为一行了,囧~~
作者:
load_ing
时间:
2012-3-22 13:57
能加入一个使用某技能或者物品可以立即结束CD的效果否
作者:
tang19990919
时间:
2012-3-25 17:13
这个脚本好像应该和CP战斗脚本一起用效果好得多吧?
作者:
kapoleo
时间:
2012-3-28 19:11
请问这个技能冷却可不可以将一个技能变成在一场战斗中只能使用一次?
作者:
冰舞蝶恋
时间:
2012-3-29 19:37
黑白。hi~
话说其实个人觉得回合制的话技能冷却很多余,即时的才好嘛
作者:
杂兵天下
时间:
2012-3-29 20:38
我能不能说一下,曾经被封号的
@阿尔西斯的马甲
发过这个东西?
作者:
MSQ
时间:
2012-3-30 18:55
FZD君好人呀~~居然换了代码框~~QAQ~~感激不尽
作者:
shalicheng2
时间:
2012-4-11 12:28
角本无力…我是直接用状态做的…一个技能附加一个禁用该技能X回合的事件状态…
作者:
wangssthao
时间:
2012-4-11 12:36
回合制游戏 设置这个是不是有点~~~感觉怪怪的
作者:
eric4514
时间:
2013-3-23 20:43
問什麼我既能冷卻時即能可以用?
腳本衝突?
作者:
暧昧的呼吸
时间:
2013-5-5 09:10
怎么没用啊%…………
作者:
feizhaodan
时间:
2013-5-5 09:37
暧昧的呼吸 发表于 2013-5-5 09:10
怎么没用啊%…………
试着把这个脚本放到Main上面一个。可能和其他脚本发生冲突。
也记得往要有冷却的技能的备注栏里放
<冷却时间 x>
复制代码
,x是冷却时间
作者:
KB.Driver
时间:
2013-5-5 16:08
支持一下。
另外请教一下,看到别人的游戏中有些技能设计成为战斗中只能使用1次,请问是用什么方法做到的?
作者:
563548341
时间:
2013-7-22 11:54
为什么我的不行?没有冷却的。。。
作者:
a1578032454
时间:
2013-7-24 16:23
有木有ARPG版 = =,相对回合制而言,ARPG更需要它.
作者:
屈风
时间:
2013-10-9 12:53
- -不知道该说啥 虽然RPG用不上 还是先下了 坐等将来有用到的那天
作者:
晴兰
时间:
2013-10-9 15:34
提示:
作者被禁止或删除 内容自动屏蔽
作者:
我爱吴悦淇
时间:
2013-10-10 13:51
这CD脚本真不错,如果是XP,且加到xas就更好了
作者:
雷欧亦炫
时间:
2013-10-27 11:33
昨天又挖坟了,希望不要扣我分
有XAS系统的冷却吗?[VA]
作者:
chd114
时间:
2014-9-20 22:20
@skill_cool_time[skill.id] and @skill_cool_time[skill.id] != 0
复制代码
NoMeThodError是什么错误
作者:
caixiaojun
时间:
2015-12-24 15:59
跪求清除冷却的代码怎么写
比如我用了10号技能,然后在10号技能触发时加一行代码,效果是把11号技能的冷却时间清0,怎么写?
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1