# 岚风雷(论坛ID:gqxastg)制作
#--------------------------------------------------------------------------
# 技能/物品备注 <特殊连续攻击> 或 <repeat_hit> 即可
# 第一次使用(命中)成功则后续次数均成功 否则立刻中断
#==============================================================================
# ■ RPG::UsableItem
#==============================================================================
class RPG::UsableItem < RPG::BaseItem
#--------------------------------------------------------------------------
# ● 返回是否特殊连续攻击
#--------------------------------------------------------------------------
def repeat_hit?
/<(?:特殊连续攻击|REPEAT_HIT)>/i =~ @note ? true : false
end
end
#==============================================================================
# ■ Game_ActionResult
#==============================================================================
class Game_ActionResult
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :force_hit_result # 强制命中结果
#--------------------------------------------------------------------------
# ● 判定最后是否命中
#--------------------------------------------------------------------------
alias fixed_hit_repeat_hit? hit?
def hit?
if @force_hit_result.nil?
return fixed_hit_repeat_hit?
else
@missed = false if @force_hit_result
@evaded = false if @force_hit_result
return @force_hit_result
end
end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 使用技能/物品
#--------------------------------------------------------------------------
alias fixed_hit_repeat_use_item use_item
def use_item
@last_hit = nil
fixed_hit_repeat_use_item
end
#--------------------------------------------------------------------------
# ● 发动技能/物品
#--------------------------------------------------------------------------
alias fixed_hit_repeat_invoke_item invoke_item
def invoke_item(target, item)
return if item.repeat_hit? && @last_hit == false
target.result.force_hit_result = item.repeat_hit? ? @last_hit : nil
fixed_hit_repeat_invoke_item(target, item)
@last_hit = target.result.hit?
end
end