# 战斗开始前附加状态并于HP到达一定比率时附加状态
#--------------------------------------------------------------------------
# ● 战斗开始前附加状态
#--------------------------------------------------------------------------
# 用法是在角色|职业|装备|敌人的备注栏
# 备注<被动状态:状态ID> 例如<被动状态:18> 那么就会在战斗开始前
# 会为该角色附加18号状态,战斗结束时移除这个状态。同时装备2个以
# 上的有被动状态的装备亦可叠加,都会附加上对应的状态。
#--------------------------------------------------------------------------
# ● HP到达一定比率时附加状态
#--------------------------------------------------------------------------
# 用法是在角色|职业|装备|敌人的备注栏
# 设定34行处设定HP比率并备注<danger:状态ID>可在设定的HP比率下附加状态
# 例:比率0.5 <danger:19> 就会在该角色HP低于50%的情况下附加19号状态
# 并于战斗结束时移除这个状态。
# 设定的状态请勾选战斗结束时解除
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 战斗开始处理
#--------------------------------------------------------------------------
alias state_battle_start on_battle_start
def on_battle_start
state_battle_start
self.feature_objects.each {|obj|
self.add_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
end
#--------------------------------------------------------------------------
# ● 重新整理
#--------------------------------------------------------------------------
def refresh
state_resist_set.each {|state_id| erase_state(state_id) }
@hp = [[@hp, mhp].min, 0].max
@mp = [[@mp, mmp].min, 0].max
if hp_rate <= 0.99 #设定触发状态的生命比率
self.feature_objects.each {|obj|
self.add_state($1.to_i) if obj.note =~ /<danger:\s*(\d+)>/}
else
self.feature_objects.each {|obj|
self.remove_state($1.to_i) if obj.note =~ /<danger:\s*(\d+)>/}
end
@hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
end
#--------------------------------------------------------------------------
# ● 战斗结束时的处理
#--------------------------------------------------------------------------
alias state_on_battle_end on_battle_end
def on_battle_end
state_on_battle_end
self.feature_objects.each {|obj|
self.remove_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
self.feature_objects.each {|obj|
self.remove_state($1.to_i) if obj.note =~ /<danger:\s*(\d+)>/}
end
end