Board logo

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

作者: 银色的永眠    时间: 2008-10-18 16:59     标题: 过低魔伤被属性抗性削弱到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 编辑 ]
作者: 7777777777    时间: 2008-10-18 17:30

原帖由 银色的永眠 于 2008-10-18 16:59 发表
我原本以为,当MATK远小于MDEF所造成的伤害恒为1的情况下,当再算上各种抗性而降伤害乘算到0.5以下的时候,由于四舍五入就变成0了
但是下午看下来似乎不对

用冰箭术打穿着风衣的人,按照属性相克应该正好是 ...

把1Z的东西卖NPC试试,很显然是舍尾。
作者: 路西法家的猫    时间: 2008-10-18 17:30

黄金小强卡...
作者: 看客    时间: 2008-10-18 17:32

原帖由 银色的永眠 于 2008-10-18 16:59 发表
我原本以为,当MATK远小于MDEF所造成的伤害恒为1的情况下,当再算上各种抗性而降伤害乘算到0.5以下的时候,由于四舍五入就变成0了
但是下午看下来似乎不对

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

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

是不是表达错误了?
作者: 银色的永眠    时间: 2008-10-18 17:34

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

是不是表达错误了?

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

原帖由 银色的永眠 于 2008-10-18 17:34 发表

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

这个算法谁知道他的语句是怎么写的
反正的确会因为atk/matk过低,vdef,imdef过高导致伤害为0的
作者: 银色的永眠    时间: 2008-10-18 17:53

不过这个界限应该也不会超过60%吧……
有人能告诉我HW+大便+战斗,也就是40%减伤可以在PVP里实现0伤么?
作者: 亚雷特    时间: 2008-10-18 19:41

MDEF 100的话。我用计算器算的如果对方的MATK无敌高的话还是有1%的伤害打出来, 和MDEF 99是一样的,实际不知道。。毕竟做不到

不过现在免费服最高也就99还只是暂时99.。。。。GVG里就算你大便HW战斗也没用的。这是乘算的

但是我不知道,有个想法。。因为金刚在无名2练级的时候。给个套子经常所有物理攻击全MISS了。。这里应该就是V的减算作用了

所以如果想象当MDEF99的时候  你的I也是99+XXX(比如审判十字军是最好的例子),估计就有可能造成CM不魔增全部攻击MISS,  魔增后100血
作者: 米蘭的小鐵匠    时间: 2008-10-18 19:46

话说我的CC金刚之后 GVG里大部分CM也是全MISS...连爆雪的强制冰冻也无视...
作者: 肉质大绵羊    时间: 2008-10-18 19:50

楼主的名字+旁边的注解从字面上很容易让人误会
作者: fxfx888    时间: 2008-10-18 20:29

mdef 到90 或者以上 足够让98%以上的魔法伤害不到你
你可以翻阅下魔防装介绍 战士类可以达到95 甚至超过
作者: 银色的永眠    时间: 2008-10-18 21:28

……楼上几位都理解错误了吧 - -
作者: 迷糊的安安    时间: 2008-10-18 22:08

RO好像很多计算都是直接舍小数点,而不是四舍五入……

银娘……一点小小的争吵何必较真呢……还真的不开主号了。。
作者: 银色的永眠    时间: 2008-10-18 22:21

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

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


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

其实,我主号真的是密码和提问都忘了……之前还找猫头解决来着。。=-=
作者: a    时间: 2008-10-18 23:21

提示: 作者被禁止或删除 内容自动屏蔽
作者: hgf    时间: 2008-10-18 23:37

高I牧师穿魔装加个SQ就可以让魔法MISS了,应该是直接舍弃小数点的
红蛙盾的算法估计是公式的位置问题吧
作者: らёгαρん    时间: 2008-10-19 00:16

这个最小值1存在么?
且不论对方是什么状态
被攻击方的状态是不会影响攻击方输出的

假设对方造成的伤害是dmg
那么针对魔法防御力而言
{int,round}(dmg*(1-mdef)/mdef-vmdef)*(1-属性%)*(1-种族%)*(1-防御性技能%)
这个所谓强制最小1在哪里的?
取整函数的括号括在哪里?
嘛,不测试的话怎么说得清楚?
条件不是我们主观说说就成的
真想知道应该就像测试双刀刺客输出加成一样去实际测试
虽然matk诡异一点
作者: ·樱羽亭·    时间: 2008-10-19 00:18

MDEF为99。。。。。。
作者: 恋雨    时间: 2008-10-19 01:01

头  巨大芙蓉花15+鬼娃树卡片5+红框5=25
衣  丝质10+魔羌卡片5=15
披  羊毛围巾4+钓鱼河童卡片8=12
鞋  只能抗魔5+邪恶摩艾卡片7=12
盾  镜盾5+搜索者卡片10=15
装饰  2幸运10  
霸体10


数学不好………郁闷

还是不对……凉鞋骑士穿不了……
从套装方面考虑有可能100吗?

[ 本帖最后由 恋雨 于 2008-10-19 01:06 编辑 ]
作者: 646124864    时间: 2008-10-19 01:52

你穿着水铠让会冰箭术的打你一下就知道什么叫魔法无伤害了
作者: 老灯    时间: 2008-10-19 03:52

原帖由 恋雨 于 2008-10-19 01:01 发表
头  巨大芙蓉花15+鬼娃树卡片5+红框5=25
衣  丝质10+魔羌卡片5=15
披  羊毛围巾4+钓鱼河童卡片8=12
鞋  只能抗魔5+邪恶摩艾卡片7=12
盾  镜盾5+搜索者卡片10=15
装饰  2幸运10  
霸体10


数学不好…… ...

+10bjl盾
作者: 银色的永眠    时间: 2008-10-19 12:37

原帖由 らёгαρん 于 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 编辑 ]
作者: 九曜    时间: 2008-10-19 12:50

=<0.5取0
〉0.5取1




欢迎光临 浆糊论坛-RO小站 (http://bbs.rohome.cn/) Powered by Discuz! 7.2