过低魔伤被属性抗性削弱到1伤以下,被判断为0伤的进位界限到底在哪里?
我原本以为,当MATK远小于MDEF所造成的伤害恒为1的情况下,当再算上各种抗性而降伤害乘算到0.5以下的时候,由于四舍五入就变成0了但是下午看下来似乎不对
用冰箭术打穿着风衣的人,按照属性相克应该正好是0.5的进位点,但结果却还是出现了无伤。
想不通这是怎么回事啊……
[quote]原帖由 [i]银色的永眠[/i] 于 2008-10-19 12:37 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9783902&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
将魔法伤害公式分为四段
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的进位点。 [/quote]
[[i] 本帖最后由 银色的永眠 于 2008-10-19 14:33 编辑 [/i]] [quote]原帖由 [i]银色的永眠[/i] 于 2008-10-18 16:59 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9780926&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
我原本以为,当MATK远小于MDEF所造成的伤害恒为1的情况下,当再算上各种抗性而降伤害乘算到0.5以下的时候,由于四舍五入就变成0了
但是下午看下来似乎不对
用冰箭术打穿着风衣的人,按照属性相克应该正好是 ... [/quote]
把1Z的东西卖NPC试试,很显然是舍尾。 黄金小强卡... [quote]原帖由 [i]银色的永眠[/i] 于 2008-10-18 16:59 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9780926&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
我原本以为,当MATK远小于MDEF所造成的伤害恒为1的情况下,当再算上各种抗性而降伤害乘算到0.5以下的时候,由于四舍五入[color=Red]就变成0了[/color]
但是下午看下来似乎不对
用冰箭术打穿着风衣的人,按照属性相克应该正好是 [color=Red]但结果却还是出现了无伤。[/color]
想不通这是怎么回事啊…… [/quote]
是不是表达错误了? [quote]原帖由 [i]看客[/i] 于 2008-10-18 17:32 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9781038&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
是不是表达错误了? [/quote]
唔,简单来说原本伤害为1
由于属性相克的关系,此时伤害应该减少为了0.5
按照四舍五入,0.5应该进位为1,也就是有伤害
但是我看到的情况却是伤害为0,无伤害。 [quote]原帖由 [i]银色的永眠[/i] 于 2008-10-18 17:34 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9781045&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
唔,简单来说原本伤害为1
由于属性相克的关系,此时伤害应该减少为了0.5
按照四舍五入,0.5应该进位为1,也就是有伤害
但是我看到的情况却是伤害为0,无伤害。 [/quote]
这个算法谁知道他的语句是怎么写的
反正的确会因为atk/matk过低,vdef,imdef过高导致伤害为0的 不过这个界限应该也不会超过60%吧……
有人能告诉我HW+大便+战斗,也就是40%减伤可以在PVP里实现0伤么? MDEF 100的话。我用计算器算的如果对方的MATK无敌高的话还是有1%的伤害打出来, 和MDEF 99是一样的,实际不知道。。毕竟做不到
不过现在免费服最高也就99还只是暂时99.。。。。GVG里就算你大便HW战斗也没用的。这是乘算的
但是我不知道,有个想法。。因为金刚在无名2练级的时候。给个套子经常所有物理攻击全MISS了。。这里应该就是V的减算作用了
所以如果想象当MDEF99的时候 你的I也是99+XXX(比如审判十字军是最好的例子),估计就有可能造成CM不魔增全部攻击MISS, 魔增后100血 话说我的CC金刚之后 GVG里大部分CM也是全MISS...连爆雪的强制冰冻也无视... 楼主的名字+旁边的注解从字面上很容易让人误会 mdef 到90 或者以上 足够让98%以上的魔法伤害不到你
你可以翻阅下魔防装介绍 战士类可以达到95 甚至超过 ……楼上几位都理解错误了吧 - - RO好像很多计算都是直接舍小数点,而不是四舍五入……
银娘……一点小小的争吵何必较真呢……还真的不开主号了。。 [quote]原帖由 [i]迷糊的安安[/i] 于 2008-10-18 22:08 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9782241&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
RO好像很多计算都是直接舍小数点,而不是四舍五入……
银娘……一点小小的争吵何必较真呢……还真的不开主号了。。 [/quote]
如果直接舍小数点,那只拿个HW盾应该就可以从1伤变到0伤,但是实际上还是1伤,所以肯定不是舍小数……
其实,我主号真的是密码和提问都忘了……之前还找猫头解决来着。。=-= **** 作者被禁止或删除 内容自动屏蔽 **** 高I牧师穿魔装加个SQ就可以让魔法MISS了,应该是直接舍弃小数点的
红蛙盾的算法估计是公式的位置问题吧 这个最小值1存在么?
且不论对方是什么状态
被攻击方的状态是不会影响攻击方输出的
假设对方造成的伤害是dmg
那么针对魔法防御力而言
{int,round}(dmg*(1-mdef)/mdef-vmdef)*(1-属性%)*(1-种族%)*(1-防御性技能%)
这个所谓强制最小1在哪里的?
取整函数的括号括在哪里?
嘛,不测试的话怎么说得清楚?
条件不是我们主观说说就成的
真想知道应该就像测试双刀刺客输出加成一样去实际测试
虽然matk诡异一点 MDEF为99。。。。。。 头 巨大芙蓉花15+鬼娃树卡片5+红框5=25
衣 丝质10+魔羌卡片5=15
披 羊毛围巾4+钓鱼河童卡片8=12
鞋 只能抗魔5+邪恶摩艾卡片7=12
盾 镜盾5+搜索者卡片10=15
装饰 2幸运10
霸体10
数学不好………郁闷
还是不对……凉鞋骑士穿不了……
从套装方面考虑有可能100吗?
[[i] 本帖最后由 恋雨 于 2008-10-19 01:06 编辑 [/i]] 你穿着水铠让会冰箭术的打你一下就知道什么叫魔法无伤害了 [quote]原帖由 [i]恋雨[/i] 于 2008-10-19 01:01 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9782949&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
头 巨大芙蓉花15+鬼娃树卡片5+红框5=25
衣 丝质10+魔羌卡片5=15
披 羊毛围巾4+钓鱼河童卡片8=12
鞋 只能抗魔5+邪恶摩艾卡片7=12
盾 镜盾5+搜索者卡片10=15
装饰 2幸运10
霸体10
数学不好…… ... [/quote]
+10bjl盾 [quote]原帖由 [i]らёгαρん[/i] 于 2008-10-19 00:16 发表 [url=http://bbs.rohome.net/redirect.php?goto=findpost&pid=9782817&ptid=931149][img]http://bbs.rohome.net/images/common/back.gif[/img][/url]
{int,round}(dmg*(1-mdef)/mdef-vmdef)*(1-属性%)*(1-种族%)*(1-防御性技能%)
[/quote]
将这个公式分为四段
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-防御性技能%)},那到底是什么,这是问题所在……
[[i] 本帖最后由 银色的永眠 于 2008-10-19 14:36 编辑 [/i]] =<0.5取0
〉0.5取1
页:
[1]