免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

[数据规律分析] 物理攻击公式

§前言:关于攻击公式和公式的那点事

物理攻击公式是很老很老的资料了,有非常多的前辈做了研究。
在我翻旧帖的过程中到也看到了一些正确的结论,只可惜没有记录到现行流通的错误资料中。

物理攻击公式除了系统阐述数值计算过程外,还涵盖了以下这些常被谈论的子话题:240理论,种族属性修正,防御和怕必杀,以及可以类比“精神魔法发动”的,“攻击物理发动”,以及其他许多使用方便的小推论。

因为某种朴素的观念,很多人都认为自然的好于合成的,手算要比自动算更准等等。这在其他条件等同时,并不成立。
但还是有很多人,在偶然心血来潮的冲动下,翻找出错误的物理攻击公式,然后计算器(也是手算,总而言之不是程序)直接得出小数点后三四位的高精确结果。这是可怜、可悲的事情。可怜的是计算者自己从错误的前提出发,经过自己缜密、正确的推算,得出了精度极高的错误结论;可悲的是,这种高精度的结论,使其他阅读者更容易盲目相信。

所以,我一直都不认为,公式是用来计算和显摆的。任何手算的细节,都可以被完整地整合到程序中去。
公式作为集体智慧的记录和结晶,是供其他研究者继承、分析、批判、讨论的公共知识。这才是公式应有的姿态。

更新
20131007 修正了单位优先修正的具体算法(世界观测者2.22版已内置)

§正文

物理攻击公式的完整形态(不考虑细节计算):
f-dam=Tech*Rebirth*Weaponkind*Defstatus*(Cri-dam+Unitstatus*Unitbonus*Weaponbonus*[Race+Ele-1]*b-dam*Float)
用语言描述是这样:
最终伤害=技能修正*精灵变身修正*武器种类修正*防守状态修正*(必杀伤害+单位状态修正*单位优先修正*武器修正*[种族修正+属性修正-1]*中值基础伤害*浮动系数)

下面就从中值基础伤害开始,一步一步详细介绍各个参数

基础伤害由攻击方的攻击和防御方的防御决定,基础伤害并非连续的函数,在攻击力等于0和防御力等于0的时候,会套用不同的算法。使用条件函数可以把基础伤害的计算汇总成一个式子:
b-Dam=(Atk!=0)*(rAtk/(rDef/rAtk+1/3) +(Def<0)*(-Def))+ (Atk==0)*1【注1】
用语言描述是这样:
攻击等于0的时候,基础伤害等于1;
攻击大于0,防御大于0的时候,基础伤害等于 折算攻击/(折算防御/折算攻击+1/3)
攻击大于0,防御小于0的时候,基础伤害等于 折算攻击/(折算防御/折算攻击+1/3)-实际防御 【注2】

【注1】:逻辑运算也有数值,条件为真是1,条件为假是0.
【注2】:实际防御小于零,所以减号的结果就是增加了基础伤害

式子中的一些具体解释
Atk 玩家的攻击力示数,不包括小数点后的部分。如果受伤或者使用了改变攻击力的技能,则用不包括小数点的数值乘以修正后,再略去小数点。

Def 玩家的防御力示数,具体计算同上

rAtk:当Atk数值不超过241时,与atk相等;当Atk超过241后,为240+round((Atk-240)*0.3+0.1),其中,round为四舍五入
可写为 rAtk=(Atk<=241)*Atk+(Atk>241)*(240+round((Atk-240)*0.3+0.1))

rDef:当Def小于0时,等于0;当Def数值不超过241时,与Def相等;当Def超过241后,为240+round((Def-240)*0.3+0.1)

"!="   :不等于运算,如果两边不等于,则返回1,否则返回0.
"==","<" :“等于"和"小于"运算,返回数值的情况同上,其他的逻辑运算也是类似性质,若成立则返回1,不成立返回0.
例如 “800!=0” 返回值为1.

【辟谣】240理论指的就是折算攻击/防御和实际攻击/防御的换算过程。换算中包括了乘以系数0.3的过程,所以很多人都认为攻击、防御突破240之后,“效果”、即攻击-伤害的增幅关系变为原来的30%。这不是正确的理解,240理论若被称作“240修正”,会更能体现其原本的意义。

攻击公式的设定中,本来就是使伤害和攻击力成线性关系。(防御0的情况下)但由于被攻击方的防御力的影响,这个线性关系被歪曲,成为两段,前半段近似二次曲线,后半段逐渐过渡回线性。所谓的“越涨越快突破天际”,只是错把公式看成二次函数而已。





图片中的攻击-伤害曲线,整体来看其实很接近一条直线



防御力的影响使得前期的攻击力收益远低于后期收益。240修正的出现就是对整个伤害曲线进行平衡调整,使玩家早期加攻可以获得较大的收益,算是对初期玩家的照顾。所以,在玩家早期(20级前),装备的意义非常大。相对于“攻击超过了240之后,效果变差”的说法,更正确的理解是“攻击在240之前,收效更高”。
这就是240修正的作用,不坑爹,只是让攻击-伤害在很大的范围内保持准线性关系。

由于防御和伤害的关系和反比例关系接近(类似y=1/x),所以防御的收益并没有攻击显著,在具体考察如何增加生存能力时,需要结合物理攻击公式的所有参数综合计算,才可能得出纯物理伤害的条件下,是先增加防御更好、还是先增加体力更好。

看完上篇,你应该知道传统观点的“240理论”毫无例外全都是错的。240修正只不过是平衡游戏的一个参数,并不坑爹。你要高伤害,就要加高攻,高必杀;你要耐揍,就要考察防御和生命的分配比例。

个人认为,游戏除了要控制参数收益外,还要控制战斗节奏。所以防御不可能比攻击收益更高,否则一场战斗就要打半个小时了。因此,攻击的地位比防御更高。
附件: 您需要登录才可以下载或查看附件。没有帐号?接受这个被你干涉之门的邀请

TOP

物理攻击公式的完整形态(不考虑细节计算):
f-dam=Tech*Rebirth*Weaponkind*Defstatus*(Cri-dam+Unitstatus*Unitbonus*Weaponbonus*[Race+Ele-1]*b-dam*Float)
用语言描述是这样:
最终伤害=技能修正*精灵变身修正*武器种类修正*防守状态修正*(必杀伤害+单位状态修正*单位优先修正*武器修正*[种族修正+属性修正-1]*中值基础伤害*浮动系数)

上篇介绍了中值基础伤害的形态和240修正的实际作用。
下篇继续展开其他的参数:

§正文
中值基础伤害的概念有利于我们单独分析攻击和防御的效果,在魔法伤害的研究中,去掉其他参数的修正,得到中值基础伤害也是考察精神和魔攻效果的必要手段。

经常看到许多人在扯不同等级魔法伤害的问题,其中,就有一部分人会错误地讨论游戏中受到许多条件影响的最终魔法伤害,把问题复杂化。我们评估魔法伤害,就是评估伤害中值,排除修正,也排除浮动。明确了这个概念,我们就可以把“中值基础伤害”简称为“基础伤害”了。

从基础伤害到最终伤害,要经过三轮计算,这三轮计算的顺序不能弄错,也依次对应了世界观测者的物理伤害计算中的几个修正参数,下面具体展开这三轮计算,计算过程中会包含计算的部分细节。

第一轮计算(浮动内的修正计算):
max(1,fix(max(0,[种族修正+属性修正 -1])*中值基础伤害*浮动系数))
式中,fix表示取整,舍掉小数点后的数值,max表示取两个数值中较大的一个。

属性修正
属性数值的设定情况:单项属性点数最多为100,一般时最低为0,游戏中如果有15,45等属性,分别显示为1格和4格。风克地,地克水,水克火,火克风。有克制关系的属性点数相乘,克为正,被克为负。属性点总数有差值时,差值部分乘以100计入,多为正,少为负。两个步骤得到的数值之和,除以10000,再乘以0.3,得到的计算结果取整保留两位小数,再与1相加。

种族修正
魔力中有十个种族,种族修正分为两种,半克和全克。除了一个情况外,其他的全克的信息可以由法兰城的NPC告知。NPC没有提供种族半克的信息。除邪魔系外,其他每个种族都和其他四个种族产生全克、被全克、半克、被半克的关系。邪魔系除了不克邪魔系之外,克其他所有系。
具体的种族修正循环:

Dragon龙——>Fly飞行——>Insect昆虫——>Amorphas特殊/不定形——>Metal金属——>Dragon龙
Human人——>Beast野兽——>Plant植物——>Undead不死——>Human人

Human->Insect->Plant->Amorphous->Dragon->Beast->Fly->Undead->Metal->Human

其中,“——>”表示全克,"->"表示半克,箭头左侧的克箭头右侧的。

辟谣】有说法认为PK和非PK条件,种族修正效果不同,这是错误的。无论是否PK,被全克返回0.8,被半克返回0.85,半克返回1.1,全克返回1.2,不克返回1.0。邪魔系的修正在攻击时为1.1,在被攻击时为0.8。从这些修正中,可以看出克和半克是一个含糊的概念,例如邪魔系在进攻时半克对方,在被攻击时全克对方。而半克也不等于全克的一半。

区别】正确的公式和普遍流传的错误公式的最大的区别,在于种族修正和属性修正,并非相乘,而是相加。

浮动系数
浮动系数取值范围是0.9:0.01:1.1,从0.9,到0.91、0.92,到1.09,1.1,共21个可能的值。

第二轮计算(必杀旁的修正[不修正必杀]和必杀追加伤害)
fix(必杀伤害+单位状态修正*单位优先修正*武器修正*第一轮计算结果)

必杀伤害
必杀追加伤害等于fix(攻击方等级/防御方等级/2*防御方人物面板防御值)。这个式子的意思包括两个细节,必杀追加伤害计算的防御值不经过240修正、也不受技能影响。所以护卫是不怕必杀的,阳炎也不会减少必杀追加的伤害。因为必杀伤害免除了属性、种族、武器和浮动值的修正影响,使得必杀追加伤害值可以提供很准确的防御信息。如果被攻击方的防御为负数,则必杀追加-1伤害,使必杀时出现的伤害比不必杀时更低。

辟谣】正是因为必杀伤害与防御力挂钩,所以才导致一些不求甚解的人得出“防高怕必杀”的推论。在处理这则推论之前,首先我们要定义一下防高怕必杀的意思——防高怕必杀,指的是必杀追加的伤害占总伤害的比重较高,例如超过50%。所以,防高怕必杀考察的不是伤害绝对值,而是伤害构成比重问题。基于这样的认识,所以高防boss才特怕必杀(其实是因为boss种族属性修正高)。
实际游戏中,玩家需要考察的就是抗打击能力,即伤害数值的多少,而不是考虑被打的伤害的构成。经过对比计算,综合考虑第一轮计算结果,我们可以得到这样一个正确性、适用性更广的推论:怕必杀的高防单位,即便被必杀,也不会掉多少血;不怕必杀的低防单位,即便不被必杀,也会掉很多血

单位状态修正
对应石化或者祈祷。石化时,修正返回0.30-0.50之间的可能值。石化时,基础物理伤害取消最低1的限定,最低可以返回0.

单位优先修正
不同的单位互相攻击,这个参数不同。
玩家人物对敌方单位攻击,修正返回1.2
玩家宠物对敌方非邪魔系单位攻击,修正返回1.2
敌方非邪魔系单位对任何单位攻击,修正返回0.8
其他情况返回1

武器修正
如果玩家人物角色已经处在不能再装备更多的武器的情况下,将得到1.15的武器修正。

第三轮计算(外部修正系数)
最终伤害=多级取整(技能修正*精灵变身修正*武器种类修正*防守状态修正 *第二轮计算结果)

第三轮计算中,除技能修正外,其他三个修正各自还有浮动数值,会使最终伤害的最大可能数超过21种。其计算过程的取整算法也颇为复杂,建议将游戏中看到的伤害数值,对比世界观测者的模拟来检查。


图中右上角的四个修正,就对应了三轮计算的相应步骤,如果设置了包含的参数,就无需手动修改



武器种类修正
指使用回力镖和小刀时的修正系数。小刀随机返回0.5,0.6,0.7,0.8,回力镖随机返回0.1,0.2,0.3,0.4,0.5,0.6。因果报应的伤害修正尚未测明,可能和回力镖的修正相同,网上流传的技能数据已确定错误。

防守状态修正
成功防御(不处在混乱状态)时,随机返回0,0.1,0.2,0.3,0.4,0.5(中间值0.25)的修正,圣盾另有专门的修正系数。若防御状态被崩击,则崩击技能生效,而防御修正无效。

精灵变身修正
精灵变身修正的攻防作用有别,如果攻防双方都为精灵变身状态,则攻击修正和防御修正相乘。很可惜并没有测试道具的lv4及以上水晶的效果。攻击部分:1级精灵变身时,随机返回 round(1.2*(0.9:0.01:1.1))中的一个数;2,3级精灵变身时,随机返回 round(1.3*(0.9:0.01:1.1))中的一个数。防御部分:n级精灵变身时,随机返回round((0.72-0.02*n)*(0.8:0.01:1.2))中的一个数。攻击修正一共21种可能,防御修正则有41种可能。

经过上面所有的步骤,就可以得到和游戏中一致的伤害数值。世界观测者的伤害包含小数,这只是为了方便检查可能存在的其他影响,实际伤害都以取整来算。

随着世界观测者的发展,我们可能会注意到游戏中更多的例外情况,这些例外情况也推动着物理攻击公式的细节部分进一步发展。但公式的大体全貌早在10年就已经完成,对魔力知识感兴趣的你,是过了多少年才看到这个正确的知识呢?

§细节、推论

·在240修正的算式中,有一个四舍五入的步骤。这一个步骤可以得出一条小结论,即攻防超过240后,攻防各位数为2,5,8时,收益最高。把攻击力从258提高到261,不会改变普通情况下的基础伤害。

·从精神-魔法伤害的关系,看攻击-物理发动的荒谬。

首先还是要定义精神魔法发动的概念。虽然在魔法研究的最早期,魔法发动是指“基础伤害达到最高值,不会再随着精神提高而增加”。但由于“发动”这个词的字面意思,在长期的知识传承中,就出现了两个分支理解。第一个发动的理解,是低等级魔法基础伤害高于高等级魔法基础伤害,若只考虑精神,无论人还是宠物,都不存在这一发动。第二个发动的理解,是未达到发动精神时,魔法伤害会差得很多。既然第一个已经错了,就考虑一下第二个吧。世界观测者已经内置了零误差的魔法伤害公式,模拟(或去游戏中改变条件实际测试)出精神-魔法伤害的曲线攻击-物理伤害的曲线,将两条曲线放在一个图中对比。



两条曲线的坐标起始点虽然不同,但其变化规律却极其相似。如果给物理伤害设定一个不可能达到的值作为其“上限值”,那么精神魔法发动的一切推论就都适用在物理伤害曲线中,关于物理伤害的选择,也就可以等价类比成魔法伤害的选择。且不论正确性,任何关系到“攻宠不加攻,加其他”的结论,都可以直接转化为“魔宠不加魔,加其他”。所谓的攻宠宁掉攻不掉血,就和魔宠的宁掉魔不掉血一回事。

也许有人还会说精神比修正的问题,大框架的精神比是你不可以控制的——与其考虑压制对方的魔宠,不如让你的宠物的魔法打在不被精神比修正制约的单位上。当然,具体细节就要到魔法理论推论中谈了。
附件: 您需要登录才可以下载或查看附件。没有帐号?接受这个被你干涉之门的邀请

TOP

D姐你好啊喵    唔  那什么 按照您的公式 然后结算结果和用您的那个观察者算得结果不同呢 是不是减伤机制没说呢喵?   咱嘛  打算写一个放置游戏 (基本全抄魔力宝贝八23333)   所以想找D姐要一下减伤的公式来着

TOP

返回列表