本帖最后由 nczcbs 于 2015-6-24 12:13 编辑
前言: 本文以炎天职业为例,分析在可使用的潜能点数一定的情况下,如何分配力量和敏捷属性使伤害(战力评分)最大化。 计算中未考虑破魔力/破防/各种防御属性,仅考虑了属性和装备带来的暴击/暴击加成/面板伤害变化。 计算原理同样适用于追求伤害/治疗最大化的其他职业。 理论上也可以用来算防御属性,但是需要知道防御属性与面板各数值的转换关系。 本文中所有计算均利用matlab完成。 由于作者目前只有40级,神格等高级玩法尚未涉及,未知那些东西对属性点的影响情况。如有错漏,欢迎捉虫。
本文成果: 1. 提出一种方法,用于计算在面板数据一定的情况下,潜能点在2种属性间的最佳分配方案。 2. 得出潜能点和属性点的公式。 3. 得出暴击和暴击率的公式。 4. 得出面板攻击力和面板伤害的公式。 5. 得出了装备上白字攻击力和面板攻击力的公式。
结论放这里: 面板数值一定的情况下最佳分配方案是存在的,可以用程序得到。但是程序在计算面板攻击力的时候有误差,误差大小与攻击力上下限差值成正比。 面板数值不同的时候最佳方案也不同。
缩写列表 Str | 力量,Strength | Dex | 敏捷,Dexterity | Spi
| 精神,Spirit | Sta | 体质,Stamina
| Int | 智力,Intellect | Crit | 暴击率(鼠标指向显示)
| Panel_CritLevel | 暴击(面板数值)
| Gear_CritLevel | 装备提供的暴击
| Gear_CritDmg | 装备提供的暴击加成
| Gear_Dmg
| 装备提供的物理伤害加成(鼠标指向显示)
| Gear_Dex | 装备提供的敏捷(属性黄字)
| Gear_Str | 装备提供的力量(属性黄字) | Att | 面板物理攻击力(鼠标指向显示) |
一 伤害计算原理首先由游戏说明可知: 1敏捷=0.5物理伤害+1暴击; 10敏捷=4力道; 1力量=1物理伤害;
而每点力道提升1%攻击转化为伤害的比例,则物理攻击力与物理伤害的关系: 物理伤害=物理攻击力*(1+力道*0.01)
在只考虑平砍/平射,不使用技能的情况下,伤害的期望值显然与面板物理伤害、暴击率和暴击加成相关: 伤害的期望值=面板物理伤害*(1-暴击率)+面板物理伤害*暴击率*(1+暴击加成)
1. 面板物理伤害 无装备,不使用潜能点:有装备,不使用潜能点:
公式为: - Dmg=Att*(1+0.01*4*floor(Dex/10))+Str+0.5*Dex+Gear_Dmg;
复制代码其中力道对Att转化为Dmg的加成为0.01*4*floor(Dex/10),其中floor表示向下取整
2 . 暴击数值与暴击率 无装备,不使用潜能点:有装备(属性点不影响暴击加成):
暴击数值与暴击率线性相关,由excel拟合得到二者关系为: - Crit=(0.06* Panel_CritLevel +0.004+1)*0.01;
复制代码其中0.01为前面提到的额外暴击率。 3. 期望伤害: - E_Dmg=Dmg*(1-Crit)+Dmg*Crit*(1+0.5+Gear_CritDmg);
复制代码
二 潜能点与属性点关系在本文的计算中,记已获得的属性点为x,即面板属性白字=x,投入的潜能点数为P,显然二者均为正整数。 显然P为x的函数:P=P(x). 引入函数:
则,当x为10的倍数时, - P(x)= 10*sum(1:1:ceil(x/10));
复制代码其中sum(1:1:ceil(x/10))=1+2+...+x/10 当x不是10的倍数时, - P(x)= rem(x,10)*ceil(x/10)+10*sum(1:1:ceil(x/10)-1);
复制代码部分计算结果如图:
这样,在知道属性点数值的情况下就可以推算所用潜能点。 也可以反过来,已知潜能点数值后计算可获得的属性点数值。
结论有了期望伤害公式: - E_Dmg=Dmg*(1-Crit)+Dmg*Crit*(1+0.5+Gear_CritDmg);
复制代码和潜能点-属性点关系: 当x为10的倍数时, - P(x)= 10*sum(1:1:ceil(x/10));
复制代码
其中sum(1:1:ceil(x/10))=1+2+...+x/10;
当x不是10的倍数时, - P(x)= rem(x,10)*ceil(x/10)+10*sum(1:1:ceil(x/10)-1);
复制代码之后,就可以计算在给定初始条件(装备加成数据,当前属性值,可用潜能点)下,期望伤害随分配方案的分布情况(通常是计算2个属性间如何分配潜能点,如力量和敏捷)。
具体计算由matlab完成
用39级炎天号(总潜能点1074,先加30体质和30精神,剩下的潜能点数分配给力量和敏捷)测试,结果如下 1. 在不穿装备、不使用潜能点的情况下,程序得出的分配方案与游戏内战力评分最高的方案一致。 方案为117力量,61敏捷。 2. 穿全装备、不使用潜能点的情况下,面板攻击力187-252,面板暴击158,伤害加成数值33,装备提供暴击加成0.071,装备提供敏捷4: 程序得出的分配方案与游戏内战力评分最高的方案不一致,但战力评分仅相差7。 计算方案为72力量,110敏捷,评分2861; 游戏内最高评分方案为60力量,117敏捷,评分2868。
40级炎天号(总潜能1122,先加30体质和30精神,剩余的分配给力量和敏捷),换了一件装备后再次测试: 穿装备后的面板如下:
1. 不穿装备、不使用潜能点的情况下,程序得出的分配方案与游戏内战力评分最高的方案一致。 方案为118力量,66敏捷,评分891。
其他分配方案评分都低于891:
2. 穿全装备、不使用潜能点的情况下,面板攻击力187-244,面板暴击143,伤害加成数值33,装备提供暴击加成0.07,装备提供敏捷4: 程序得出的分配方案与游戏内战力评分最高的方案不一致,但战力评分仅相差1。 计算方案为78力量,110敏捷,评分2871;
游戏内最高评分方案为64力量,119敏捷,评分2872。
穿装备后结果不一致的原因可能跟面板物理攻击力的取值有关,大家知道物理攻击力是浮动值,面板会给出攻击力的上下限,而本文计算所用的攻击力是取上下限的平均值来计算的。因此当武器上下限差距较小时,计算方案会更接近游戏评分最高的方案。
但是,在初始属性点相同的情况下,穿或不穿装备得出的分配方案有明显差别。也就是说,最优方案随装备属性的变化而变化。 此外,由于作者目前只有40级,神格等高级玩法尚未涉及,未知那些东西对属性点的影响情况。
附录1. 炎天职业在不穿装备,且不使用任何潜能点的情况下,人物的初始属性: 力量=1; 智力=1; 体质=2; 精神=2; 敏捷=2; 暴击=2; % 注意这里的2点暴击是由2点敏捷提供的 额外暴击率=0.01; % 鼠标指向显示;固定值 暴击加成=0.5; % 鼠标指向显示; 攻击力=0; % 鼠标指向显示;
2. 装备白字与面板攻击力 利用手头的装备测试了一下武器攻击力白字、装备攻击力白字与面板攻击力的对应关系,初步结论如下: 1) 武器精炼获得的“物理攻击+x%”为二次加成,先加成武器白字,再加成最终攻击力,显示在面板上 2) 装备上的“基础最大/最小物攻+x%”只影响该装备自身的白字 3) 装备上的“最大/最小物攻+x”数值计算优先级低于所有比例加成 由此,面板攻击为: Att=(武器白字*(1+物攻加成比例)+sum(装备白字*(1+基础物攻加成比例)))*(1+物攻加成比例)+物攻加成数值 (然而这条结论并没有什么用……因为计算分配方案时Att数值是直接读取面板数值的╮(╯_╰)╭。)
|