赞 | 8 |
VIP | 0 |
好人卡 | 3 |
积分 | 6 |
经验 | 8536 |
最后登录 | 2024-11-7 |
在线时间 | 165 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 642
- 在线时间
- 165 小时
- 注册时间
- 2012-4-18
- 帖子
- 264
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
如题,一直在VA中使用技能cd脚本,因为想有限制某些技能使用次数和频率,所以很久之前寻到这样一个脚本,感觉蛮好用的。
现在入MV坑,想把这个脚本延续下去,但是找来找去也没有这样的插件,我的js又无比之烂,上学时就写不出一两行,几年不摸更是深感无力,只能伸手求助各位大神了。
一下是VA的脚本,希望可以给各路大神一些灵感,或者节约一些时间。各位大神一定要帮帮忙啊~~~~~~~- 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)
- 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
复制代码 |
|