如题,一直在VA中使用技能cd脚本,因为想有限制某些技能使用次数和频率,所以很久之前寻到这样一个脚本,感觉蛮好用的。
现在入MV坑,想把这个脚本延续下去,但是找来找去也没有这样的插件,我的js又无比之烂,上学时就写不出一两行,几年不摸更是深感无力,只能伸手求助各位大神了。
一下是VA的脚本,希望可以给各路大神一些灵感,或者节约一些时间。各位大神一定要帮帮忙啊~~~~~~~ - class RPG::Skill < RPG::UsableItem def cool_time @note.each_line{|line| case line when /\/ return $1.to_i end } return 0 endend#==============================================================================# ■ 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 endend#==============================================================================# ■ 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) rect.width -= 4 w = @actor.skill_cool_turn(skill) draw_item_name(skill, rect.x, rect.y, enable?(skill)) change_color(crisis_color) draw_text(rect ,"- " ,2) draw_text(rect ,w ,2) else rect = item_rect(index) rect.width -= 4 draw_item_name(skill, rect.x, rect.y, enable?(skill)) draw_skill_cost(rect, skill) end end end end复制代码
复制代码 本帖来自P1论坛作者salvareless,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=388260 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |