本帖最后由 myownroc 于 2014-6-7 01:06 编辑
module PERCENT_REGEN REGEN_RATE = 0.05 # 以小数表示的百分比,每有一个回血状态会增加5%的自动回血的意味 REGEN_STATES = [35,37] # 回复状态id数组,存在于此数组的 end class Game_Battler include PERCENT_REGEN #-------------------------------------------------------------------------- # ● 应用连续伤害效果 #-------------------------------------------------------------------------- def slip_damage_effect # 设置回复 regen_rate = 0 slip_count = 0 @states.each{|id| regen_rate += REGEN_RATE if REGEN_STATES.include(id) slip_count += 1 } # 设置伤害 self.damage = 0 self.damage = self.maxhp / 10 if slip_count > regen_rate / REGEN_RATE self.damage -= self.maxhp * regen_rate # 抵消返回 return if self.damage ==0 # 分散准备 amp = [self.damage.abs * 15 / 100, 1].max #分散度 if self.damage.abs > 0 self.damage += rand(amp+1) + rand(amp+1) - amp else self.damage -= rand(amp+1) + rand(amp+1) - amp end # HP 的伤害减法运算 self.hp -= self.damage # 过程结束 return true end end
module PERCENT_REGEN
REGEN_RATE = 0.05 # 以小数表示的百分比,每有一个回血状态会增加5%的自动回血的意味
REGEN_STATES = [35,37] # 回复状态id数组,存在于此数组的
end
class Game_Battler
include PERCENT_REGEN
#--------------------------------------------------------------------------
# ● 应用连续伤害效果
#--------------------------------------------------------------------------
def slip_damage_effect
# 设置回复
regen_rate = 0
slip_count = 0
@states.each{|id|
regen_rate += REGEN_RATE if REGEN_STATES.include(id)
slip_count += 1
}
# 设置伤害
self.damage = 0
self.damage = self.maxhp / 10 if slip_count > regen_rate / REGEN_RATE
self.damage -= self.maxhp * regen_rate
# 抵消返回
return if self.damage ==0
# 分散准备
amp = [self.damage.abs * 15 / 100, 1].max
#分散度
if self.damage.abs > 0
self.damage += rand(amp+1) + rand(amp+1) - amp
else
self.damage -= rand(amp+1) + rand(amp+1) - amp
end
# HP 的伤害减法运算
self.hp -= self.damage
# 过程结束
return true
end
end
以上未经测试。
|