Project1
标题:
中毒的伤害调整和持续回血
[打印本页]
作者:
wangswz
时间:
2008-8-1 01:24
标题:
中毒的伤害调整和持续回血
def slip_damage_effect
if slip_damage? and @hp > 0
@hp_damage = apply_variance(maxhp / 10, 10)
@hp_damage = @hp - 1 if @hp_damage >= @hp
self.hp -= @hp_damage
end
end
前面得那个10是 每回合10%得掉血 后面那个10是干什么得啊?
用这个做持续回血技能只要判断状态 再把 self.hp+= @hp_damage 就行了么?
作者:
dbshy
时间:
2008-8-1 01:26
分散度
LZ看这个吧
def apply_variance(damage, variance)
if damage != 0 # 若伤害不为0
amp = [damage.abs * variance / 100, 0].max # 计算极差
damage += rand(amp+1) + rand(amp+1) - amp # 执行分散度
end
return damage
end [LINE]1,#dddddd[/LINE]
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者:
Beside
时间:
2008-8-1 01:28
apply_variance(maxhp / 10, 10)
这个是定义过的方法
前面是生命的10% 后面是分散度
def apply_variance(damage, variance)
if damage != 0 # 伤害为 0 以外的情况
amp = [damage.abs * variance / 100, 0].max # 计算分散幅度
damage += rand(amp+1) + rand(amp+1) - amp # 执行分散
end
return damage
end
原方法是这样的 效果就是以生命值的1/10为基准浮动
这里的damage就是生命值的1/10 取绝对值乘上分散度再除以100 再和0比较大小 以大的作为amp的值
然后这个damamge加两次1-amp的随机数再减amp 得到最终结果 [LINE]1,#dddddd[/LINE]
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1