乐欧游戏网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 66|回复: 2

探究王者荣耀攻防属性机制

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-3-18 18:11:11 | 显示全部楼层 |阅读模式
一、探究在被攻击方物理防御与攻击方物理穿透一定的情况下被攻击方所受伤害与攻击方物理攻击的关系

1.实验条件

在王者荣耀单人训练营中利用人偶、无限金钱机制来调整各属性,利用数据面板读取数据,并使用Excel进行数据处理。
2.实验步骤

在排除特殊机制(如英雄技能、装备特殊机制、免伤、暴击等)的作用下,影响攻击方实际造成伤害 d (被攻击方所受伤害)的因素有攻击方攻击 A  、攻击方穿透 P 以及被攻击方防御 D 。本文中的攻击 A 指攻击方输入的伤害而非英雄攻击属性(对应地, d 称作输出伤害)。本文中的攻击方穿透 P 只考虑如陨星与暗影战斧等增加的穿透数值的属性,并不考虑破晓、碎星锤等增加的百分比穿透。然而在游戏中排除特殊机制而言,一次普通攻击造成的伤害,若无视被攻击方防御,则恰好等于英雄的攻击力属性,通过读取英雄攻击属性即可得知一次普通攻击的输入伤害,故本次实验利用普通攻击来直观读出输入伤害
而在王者荣耀中,造成的伤害(输出伤害)、攻击(输入伤害)、防御以及穿透都分为物理与魔法两种,在本实验中我们主要研究物理体系下的攻防机制。攻击方通过装备、铭文或利用人偶控制被攻击方物理防御恒定,并利用多次调换装备来调整攻击方物理攻击数值并攻击被攻击方来获得被攻击方所受伤害,获得被攻击方所受伤害与攻击方物理攻击的多组数据。最后变换被攻击方物理防御以及攻击方物理穿透重复上述实验。
3.实验结果

在攻击方(狄仁杰)物理穿透为0、被攻击方(韩信人偶)物理防御为400的情况下,通过更换装备以及升级改变攻击方物理攻击,得到被攻击方所受物理伤害数据如下:


在攻击方(狄仁杰)物理穿透为0、被攻击方(庄周人偶)物理防御为1000的情况下,通过更换装备以及升级改变攻击方物理攻击,得到被攻击方所受物理伤害数据如下:


在攻击方(狄仁杰)物理穿透为60、被攻击方(庄周人偶)物理防御为400的情况下,通过更换装备以及升级改变攻击方物理攻击,得到被攻击方所受物理伤害数据如下:


可见,将y轴截距近似为0,当攻击方物理穿透以及被攻击方物理防御不变时,攻击方单次攻击造成的物理伤害与攻击方物理攻击成正比,即 d_{p}=kA_{p} ,其中 k 应当仅与被攻击方物理防御以及攻击方物理穿透有关,即 k\left(D_{p},P_{p}\right),引入物理免伤率 r_{p}=1-k ,则有 d_{p}=\left(1-r_{p}\right)A_{p} 。
而图片中y轴截距不为零的可能原因在于王者荣耀中造成的伤害都是计算后取整数,在round的过程中导致了y轴截距的偏差。
二、探究(在物理攻防体系下)在攻击方物理穿透恒定时,物理免伤率与被攻击方物理防御的关系

1.实验条件

同上。
2.实验步骤

保持攻击方物理穿透恒定,通过调整装备与等级来调整被攻击方的物理防御,再通过在面板上读出攻击方物理攻击力以及即时读出被攻击方所受伤害,利用公式 r_{p}=1-\frac{d_{p}}{A_{p}} 计算得出物理免伤率,以此探究物理免伤率与被攻击方物理防御的关系。
3.实验结果

在攻击方(狄仁杰)物理穿透为0、情况下,通过更换攻击方和被攻击方(狄仁杰)的装备以及改变双方等级来改变攻击方的物理攻击、被攻击方的物理防御,得到物理免伤率 r_{p} 与被攻击方的物理防御 D_{p} 的关系如下:


显然,当 D_{p}=0 时,有 r_{p}=0 ,且当 D_{p}\rightarrow+\infty 时,应当有 r_{p}\rightarrow1 。猜测 r_{p}=1-\frac{1}{\left(\frac{D_{p}}{a}+1\right)^{k}},a>0,k>0 或 r_{p}=1-a^{D_{p}},a\in(0,1) 。
若 r_{p}=1-a^{D_{p}} ,则有 \ln{(1-r_{p})}=\ln{a}\cdot D_{p} 。绘制 \ln(1-r_{p})-D_{p} 图像如下:


可见线性拟合度一般。
接下来讨论 r_{p}=1-\frac{1}{\left(\frac{D_{p}}{a}+1\right)^{k}} 的情况,则有 \left(\frac{1}{1-r_{p}}\right)^{\frac{1}{k}}-1=\frac{1}{a}\cdot D_{p}
尝试分别绘制 k=\frac{1}{2},1,2 时的 \left(\left(\frac{1}{1-r_{p}}\right)^{\frac{1}{k}}-1\right)-D_{p} 图像:



k=0.5



k=1



k=2

可见,当 k=1 时线性拟合得相当完美,尽管x轴上的截距不为零,但是按给出的拟合方程来计算可得当 D_{p}=0 时, r_{p}=0.3\% ,可以忽略不计。因此,在攻击方物理穿透为0的情况下,可以视作:r_{p}=\frac{D_{p}}{D_{p}+a},a>0
按照这样的思路,我们开始探究攻击方物理穿透不为0的情况。
在攻击方(狄仁杰)物理穿透为60、情况下,通过更换攻击方和被攻击方(狄仁杰)的装备以及改变双方等级来改变攻击方的物理攻击、被攻击方的物理防御,得到物理免伤率 r_{p} 与被攻击方的物理防御 D_{p} 的关系如下:


可见曲线形状与物理穿透为0时十分相似。
绘制 \left(\frac{1}{1-r_{p}}-1\right)-D_{p} 图像:


虽然拟合度较高,但是x轴上的截距达到了58.3,则 \frac{1}{1-r_{p}}-1=\frac{1}{a}\left(D_{p}-t\right),t>0 ,即 r_{p}=\frac{D_{p}-t}{D_{p}-t+a}
但存在一个问题,当 D_{p}<t 时, r_{p}<0 ,这是不合理的。因此我们推测 r_{p}=\left\{\begin{matrix} \frac{D_{p}-t}{D_{p}-t+a}&D_{p}\geq t\\  0& D_{p}<t \end{matrix}\right.
于是在攻击方物理穿透为130的情况下再次进行实验:


可以看到,拟合程度依然相当令人满意,仅仅在 D_{p} 较小时出现了一定的偏差。去除 D_{p}=95 时的数据点,重新绘制图像:


则 R^{2}=1 ,说明在 D_{p}=95<t , r_{p}=0 符合我们的猜想。
同时观察到,在三次物理穿透不同的实验中,都有 \frac{1}{a}=0.0017 ,猜想 a 是与 D_{p},P_{p} 无关的常量。
三、探究a是否为与被攻击方物理防御及攻击方物理穿透无关的常量

1.实验条件

同上。
2.实验步骤

根据之前的实验,我们得出当 D_{p}-t\geq0 时,有 \frac{1}{1-r_{p}}-1=\frac{1}{a}\left(D_{p}-t\right) ,即 a\cdot\frac{r_{p}}{1-r_{p}}+t=D_{p}
虽然我们暂不明确 t 与 P_{p} 的关系,但我们只需要在攻击方物理穿透一定的情况下,通过拟合 D_{p}-\frac{r_{p}}{1-r_{p}} 成一次函数图像,读出斜率即可。
3.实验结果

直接使用之前在实验(二)中的数据。
当攻击方物理穿透为0时:



a=598.43

当攻击方物理穿透为60时:



a=598.91

当攻击方物理穿透为130时:



a=599.82

物理穿透的变化对 a 的影响极小,不妨视之为常量。
加权取平均得 a=599 。不妨命名为王者荣耀物理常量 a_{p}
四、探究攻击方物理穿透参量t与攻击方物理穿透的关系

1.实验条件

同上。
2.实验步骤

在之前的实验中,我们已经得出了 r_{p}=\left\{\begin{matrix} \frac{D_{p}-t}{D_{p}-t+a_{p}}&D_{p}\geq t\\  0&D_{p}<t \end{matrix}\right. ,而 t 应当仅与攻击方物理穿透 P_{p} 有关,不妨命名为攻击方物理穿透参量。而在被攻击方物理防御足够高的情况下(即 D_{p}>t\Leftrightarrow r_{p}>0\Leftrightarrow d_{p}<A_{p} ),有 t=D_{p}-\frac{r_{p}}{1-r_{p}}a_{p} ,由此我们可以计算出 t 的值,来探究 t 与 P_{p} 的关系。
3.实验结果

使用之前实验的数据:
当物理穿透为0时,得到 t=-3\pm2.8 ;
当物理穿透为60时,得到 t=59\pm 2.1 ;
当物理穿透为90时,得到 t=90 (只做了一组实验);
当物理穿透为130时,得到 t=130\pm1.3 。
由此,请允许我断言 t=P_{p} 。:-)
五、结论

通过上述四个实验,我们分别得出了以下公式:
d_{p}=\left(1-r_{p}\right)A_{p}
r_{p}=\left\{\begin{matrix} \frac{D_{p}-t}{D_{p}-t+a_{p}}&D_{p}\geq t\\  0&D_{p}<t \end{matrix}\right.
t=P_{p}
整理得到:
d_{p}=\left\{\begin{matrix} \frac{a_{p}}{D_{p}-P_{p}+a_{p}}A_{p} &D_{p}\geq P_{p}\\ A_{p} & D_{p}<P_{p} \end{matrix}\right.
其中, d_{p} 是被攻击方所受伤害, A_{p} 是攻击方物理攻击, P_{p} 是攻击方物理穿透, a_{p} 是王者荣耀物理常量。
( a_{p}=599 )
六、一些补充

查阅网上资料可以看到常用的王者荣耀物理常量其实是602,不妨计算一下相对误差(将602作为约定真值)。
设 d_{p}(x)=\frac{x}{D_{p}-P_{p}+x} ,
\delta=\left|\frac{d_{p}(599)-d_{p}(602)}{d_{p}(602)}\right|=1-\frac{599}{602}\left(1+\frac{3}{D_{p}-P_{p}+599}\right)<1-\frac{599}{602}=0.5\%
非常小的相对误差,几乎不影响计算。
而本文尚未讨论的“百分比物理穿透”,查阅网上攻略得知,在游戏中其实并非是增加已有的物理穿透属性,而是百分比减防机制。接下来还可以继续研究物理穿透和百分比物理穿透的计算优先级等等,只是我目前只想先写到这发了,以后再更新。(╹ ╹ )
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-3-18 18:11:42 | 显示全部楼层
写这么多真不容易,建议下次把结论再弄得浅显易懂一些
回复

使用道具 举报

1

主题

3

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2023-3-18 18:12:14 | 显示全部楼层
感谢支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|乐欧游戏网

GMT+8, 2025-4-10 10:07 , Processed in 0.103251 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表