返回列表 发帖

[历史] 过低魔伤被属性抗性削弱到1伤以下,被判断为0伤的进位界限到底在哪里?

我原本以为,当MATK远小于MDEF所造成的伤害恒为1的情况下,当再算上各种抗性而降伤害乘算到0.5以下的时候,由于四舍五入就变成0了
但是下午看下来似乎不对

用冰箭术打穿着风衣的人,按照属性相克应该正好是0.5的进位点,但结果却还是出现了无伤。

想不通这是怎么回事啊……

原帖由 银色的永眠 于 2008-10-19 12:37 发表


将魔法伤害公式分为四段
dmg0=skill(matk)

dmg1=dmg0*(1-mdef/100)

dmg2=dmg1-vmdef

dmg3=dmg2*(1-属性%)*(1-种族%)*(1-防御性技能%)

在dmg1的阶段,mdef=100是否会导致dmg1=0,在这里暂时不讨论
但是从现实经验判断,当dmg1<vmdef的时候,是不会出现dmg2=0,而是强制输出1的
然后将dmg2=1带入dmg3,才可能会出现0伤。
这里有两种说法,第一种是不论后面减伤有多少,因为始终小于1,所以dmg3也始终小于1,小数舍去,则输出0。但是我有做过测试,当被攻击者仅使用一个HW盾,也就是说dmg3在取整前的实际值为0.7的时候,还是会输出1,所以我认为无条件舍去这个说法是不正确的。
另一种说法是普通的四舍五入,0.5进位为1,小于0.5的时候取整为0.但是同样测试,用冰箭术去打风1属性的对象,根据属性加成应该正好减为0.5。照例说应该进位为1,但实际输出却是0
所以我就是想知道的,到底当将1乘算为多少的时候,才是0到1的进位点。

[ 本帖最后由 银色的永眠 于 2008-10-19 14:33 编辑 ]

原帖由 看客 于 2008-10-18 17:32 发表

是不是表达错误了?

唔,简单来说原本伤害为1
由于属性相克的关系,此时伤害应该减少为了0.5
按照四舍五入,0.5应该进位为1,也就是有伤害
但是我看到的情况却是伤害为0,无伤害。

TOP

不过这个界限应该也不会超过60%吧……
有人能告诉我HW+大便+战斗,也就是40%减伤可以在PVP里实现0伤么?

TOP

……楼上几位都理解错误了吧 - -

TOP

原帖由 迷糊的安安 于 2008-10-18 22:08 发表
RO好像很多计算都是直接舍小数点,而不是四舍五入……

银娘……一点小小的争吵何必较真呢……还真的不开主号了。。


如果直接舍小数点,那只拿个HW盾应该就可以从1伤变到0伤,但是实际上还是1伤,所以肯定不是舍小数……

其实,我主号真的是密码和提问都忘了……之前还找猫头解决来着。。=-=

TOP

原帖由 らёгαρん 于 2008-10-19 00:16 发表
{int,round}(dmg*(1-mdef)/mdef-vmdef)*(1-属性%)*(1-种族%)*(1-防御性技能%)


将这个公式分为四段
dmg0=skill(matk)

dmg1=dmg0*(1-mdef/100)

dmg2=dmg1-vmdef

dmg3=dmg2*(1-属性%)*(1-种族%)*(1-防御性技能%)

在dmg1的阶段,mdef=100是否会导致dmg1=0,在这里暂时不讨论
但是从现实经验判断,当dmg1<vmdef的时候,是不会出现dmg2=0,而是强制输出1的
然后将dmg2=1带入dmg3,才可能会出现0伤。
这里有两种说法,第一种是不论后面减伤有多少,因为始终小于1,所以dmg3也始终小于1,小数舍去,则输出0。但是我有做过测试,当被攻击者仅使用一个HW盾,也就是说dmg3在取整前的实际值为0.7的时候,还是会输出1,所以我认为无条件舍去这个说法是不正确的。
另一种说法是普通的四舍五入,0.5进位为1,小于0.5的时候取整为0.但是同样测试,用冰箭术去打风1属性的对象,根据属性加成应该正好减为0.5。照例说应该进位为1,但实际输出却是0
所以我就是想知道的,到底当将1乘算为多少的时候,才是0到1的进位点。

dmg3既非floor{dmg2*(1-属性%)*(1-种族%)*(1-防御性技能%)},也非round{dmg2*(1-属性%)*(1-种族%)*(1-防御性技能%)},那到底是什么,这是问题所在……

[ 本帖最后由 银色的永眠 于 2008-10-19 14:36 编辑 ]

TOP

返回列表