• 售前

  • 售后

客户端-帖子详情右侧广告位-2
热门帖子
我打了好几个野生火鸡了,捡了东西,背包里一个都没有。。。
综合讨论-WLK 2024-11-24
目前绝大部分集合石团,基本都是252biss pdd。说实话本人从TBC打到现在,几乎周周都用
综合讨论-WLK 2024-11-24
以前好像是某个wa自带的,昨天为了玩60服去大脚下了个插件,切回wlk的时候自动下了大
猎人-WLK 2024-11-24
昨晚all in了个彗星,然后打完本高高兴兴测试木桩,同样起手十字军的50w测试,天谴之
死亡骑士-WLK 2024-11-24
看了精华帖,没找到教图腾基础知识的,所以想发帖请教一下。 1,是不是所有类型的图腾
萨满-WLK 2024-11-24
今天在群里看到biaoge插件的图,觉得有点意思。发上来大家评鉴一下。
综合讨论-WLK 2024-11-24
所有骂雷的帖子全被锁定了。 原来我是不信雷子下场干预的 现在我服了[s:ng:doge]
综合讨论-WLK 2024-11-24
坐标霜语,车名For The HORDE, yy同名。进组前我看到规则是60% 严格考核,而且无团双
综合讨论-WLK 2024-11-25
竞速赛12月份结束,然后随便混俩cd不就25年了
综合讨论-WLK 2024-11-24
其实,我对你是有一些失望的。当初给你定级90分水平,是高于你面试时的水平的。我是希
综合讨论-WLK 2024-11-25

[综合] [狂暴] [武器] Airj's TBC 输出战士数学模型

[复制链接]
光荣与梦想483 显示全部楼层 发表于 2023-5-29 14:30:16 |阅读模式 打印 上一主题 下一主题

===目录===
结论

基础知识&数据
猛击武器战
- 重伤伤害期望
- 乱舞覆盖
- DPS 模拟
- 属性权重
- 装备选择
双持狂暴战
- DPS 模拟
- 属性权重
- 装备选择
双持毁灭打击
- DPS 模拟
- 属性权重
- 装备选择
横向比较
结语

===2021-05-31 23:00===
马上开服了, 实在是更新不动最后一部分"双持毁灭打击"流了

这部分我的感性的结论是: 前期DPS大约是狂暴的80%左右, 具体可以看下之前的DPS实测帖子

双持毁灭打击存在的意义是如果是防战, 但是又有不需要你抗boss的战斗, 那么你可以换上输出装进行输出. 伤害是比不会变身回能量的猫德输出高的.
回复

使用道具 举报

分享

精彩评论19

后果后我买卖顺 显示全部楼层 发表于 2023-5-29 14:34:33
结论占楼, zsbd
回复 支持 反对

使用道具 举报

大地歌女妥 显示全部楼层 发表于 2023-5-29 14:39:06
===[size=150%]序===

===主旨===
我们关注的环境是: 团队副本中的BOSS战我们关注的目标是: 最大化DPS所以对于类似"5人本怎么打的多" / "小怪怎么毛伤害"等话题都不在讨论范围.


===原因===
对于"输出战士TBC这么弱, 你为何要玩?"的类似问题, 我的回答是: 玩自己喜欢的.我个人认为战士是TBC最好玩的输出职业, 没有之一, 原因如下:
- 打击感, 无论是狂暴在后期无限英勇, 还是武器战瞬间的超大数字.
- 机动性好, 冲锋/拦截/援护.
- 可玩性强, 武器战PVE是上下限差距最大的输出职业, 没有之一.
- PVP够好玩.
- 多功能性, 对于临时客串坦克的场景, 输出战士比其他任何非坦克天赋都适合
- 本身能力, 狂暴战是T6.5阶段最强的近战输出职业, 没有之一, 仅次于术猎. 在基尔加丹战斗大量移动战中相对伤害更高.
- [del]可以装备双刀[/del]


===预警===
这是一篇超长的, 非常枯燥乏味的帖子
回复 支持 反对

使用道具 举报

梨波儿 显示全部楼层 发表于 2023-5-29 14:40:33
===[size=150%]基础理论&数据===

===最基础的属性转换===
以下全部针对70级玩家. 且未考虑天赋影响.基础属性:1 力量 = 2 攻击强度 = 2.2 攻击强度 (王者)
1 敏捷 = 1/ 33 % 暴击 = 0.0333% 暴击(王者)
1 耐力 = 10生命 = 11 生命(王者)物理属性:14攻击强度 = 1 每秒伤害
15.77 命中等级 = 1%命中
22.09 暴击等级 = 1%暴击
15.77 精准等级 = 1%精准(0.25%一档)
15.77 急速等级 = 1%急速
1 无视护甲 = -1 目标护甲
boss 护甲减免 = 护甲值 / (护甲值 + 10557)


===平砍攻击圆桌===
勘误, 下文中偏斜伤害使用的是65%期望, 实际tbc的偏斜伤害为65%~85%, 期望为75%, 所以下文中所有的0.65应该为0.75, 所有的0.35 应该为0.25对于平砍攻击(白字), 遵循圆桌理论. 除了命中以外的概率以相加的方式瓜分, 命中占据最终的剩余.
每次攻击都是1次随机过程, 根据此次随机数所落入的区域得到相应结果, 类似轮盘.针对73级BOSS默认攻击圆桌:
未命中 = 8% - (面板命中 - 1%), 双持时为 = 27% - (面板命中 - 1%)
闪躲 = 6.5% - (面板精准 * 0.25%)
招架 = 0% (背后无招架)
偏斜 = 24% (造成65%伤害)
暴击 = 面板暴击 - 4.8% (暴击属性压缩)
命中 = 余下部分注: 暴击伤害取决于是否带有多彩宝石[残酷的大地风暴钻石], 如果有该多彩宝石, 则206%(226%)伤害, 否则200%(220%)伤害. 括号内为穿刺天赋下的技能伤害.
注: 英勇队列依然存在, 即当英勇(或顺劈)在队列的情况下, 副手命中按照非双持(8%)来计算.[collapse=举例]
双手武器下, 装备提供5%命中.
那么实际未命中 = 8% - (5% - 1%) = 4%装备提供50点精准等级, 等于12点精准, 等于 3%闪躲减少
实际闪躲 = 6.5% - 3% = 3.5%面板暴击30%(含天赋的5%)
实际暴击 = 30% - 4.8% = 25.2%最后是命中 = 100% - 4% - 3.5% - 24% - 25.2% = 43.3%
[/collapse]特别注意的是在期望上: 平砍的暴击数量/平砍的次数 = 平砍暴击概率


===技能的判定===
技能的判定中, 命中与暴击分为2次随机过程.1) 先判定未命中与闪躲:
未命中 = 8% - (面板命中 - 1%)
闪躲 = 6.5% - (面板精准 * 0.25%)
进行下一步判定 = 余下部分2) 如果命中后在进行暴击判定
暴击 = 面板暴击 - 4.8% (暴击属性压缩)
命中 = 余下部分注: 暴击伤害取决于是否带有多彩宝石[残酷的大地风暴钻石], 如果有该多彩宝石, 则206%(226%)伤害, 否则200%(220%)伤害. 括号内为穿刺天赋下的技能伤害.特别注意的是在期望上: 技能的暴击数量/技能释放数量 < 技能暴击概率


===物理技能伤害标准化===
暴雪通过攻击强度直接作用于秒伤, 而不是每次伤害上一定程度的解决了慢速武器和快速武器直接不会有显著的dps差异.但是由于技能通常使用cd(或者通过战斗资源等效cd)机制, 所以又引入物理技能伤害标准化机制标准化是指通过攻击强度对技能提供伤害不随武器速度变化而变化. 但是武器本身的伤害还是会增加技能伤害, 也就是慢速武器的技能伤害还是更高.通常"对目标造成xxx%的武器伤害"技能遵从标准化.对于战士来说, 准化的技能为:
- 致死打击
- 毁灭打击
- 旋风斩对于战士来说, 非标准化的技能为:
- 英勇打击
- 顺劈斩
- 猛击
- 剑武器专精


===全局伤害系数===
全局伤害系数是指:
- 护甲减伤
- 武器天赋中5%双手武器增伤
- 死亡之愿 20%增伤
- 团队buff中: 武器战士4%物理增伤, 和惩戒骑2%小队增伤这些基本对所有伤害都起效, 所以下面的伤害公式中就不再列出


===平砍伤害===
命中伤害期望:
- (攻击强度 / 14 + 武器秒伤) * 武器速度
- 副手造成 50%的伤害, 5/5双武器专精后为62.5%非双持下单次"挥动"的伤害期望:
- 命中伤害 * (0.845 + 面板命中 + 面板精准*0.25% - 0.24 * 0.35 + 暴击比例 * (暴击伤害比例 - 1))
- 上述"比例"的计算方式请见前文提到的"平砍攻击圆桌"部分双持下单次"挥动"的伤害期望:
- 命中伤害 * (0.655 + 面板命中 + 面板精准*0.25% - 0.24 * 0.35 + 暴击比例 * (暴击伤害比例 - 1))
- 上述"比例"的计算方式请见前文提到的"平砍攻击圆桌"部分


===风怒图腾===
主手平砍, 英勇打击, 顺劈 可以触发风怒图腾. 触发概率为命中后的20%伤害为白字伤害, 即伤害计算和平砍伤害一样, 一次随机过程且计算偏斜.触发后的伤害给怒气.


===猛击===
天赋后0.5秒读条, 读条时间不能被任何加速效果缩短.技能本身仍然占用1.5秒的gcd, 也不能被任何加速效果缩短.猛击伤害后会重置平砍时间, 所以理论上在上次一平砍后的瞬间释放损失最小.伤害 = (攻击强度 / 14 + 武器秒伤) * 武器速度 + 140
怒气 = 15双手武器下, 伤害每怒气 远高于致死打击/嗜血.


===致死打击===
双手武器下, 攻击强度提供的伤害标准化为3.3攻速伤害 = 攻击强度 / 14 * 3.3 + 武器秒伤 * 武器速度 + 210
怒气 = 30


===嗜血===
伤害 = 攻击强度 * 0.45
怒气 = 30


===旋风斩===
双手武器下, 攻击强度提供的伤害标准化为3.3攻速
非匕首单手武器下, 攻击强度提供的伤害标准化为2.4攻速副手武器造成伤害, 系数与平砍相同.副手武器无法触发武器专精, 如: 剑武器专精/锤武器专精.双手伤害 = 攻击强度 / 14 * 3.3 + 武器秒伤 * 武器速度
双持伤害 = 攻击强度 / 14 * 2.4 + 主手武器秒伤 * 主手武器速度 + (攻击强度 / 14 * 2.4 + 副手武器秒伤 * 副手武器速度) * 0.625
怒气 = 25


===英勇打击===
下次攻击类技能.伤害 = (攻击强度 / 14 + 武器秒伤) * 武器速度 + 176
怒气 = 15, 强化英勇打击-1/点注: 一次双手平砍在T4时期怒气获取期望大约25点, T6.5时期大约40点11级英勇打击造成208额外伤害, 数据库中存在, 但学习方法未知.


===剑武器专精===
算作技能伤害(黄字), 即2次随机过程且无偏斜.触发后不会重置平砍计时.任何武器伤害都可以触发, 包括: 平砍, 风怒, 致死打击, 猛击, 旋风斩 等技能.存在大约0.5秒的内置cd, 这导致本身无法触发自身. 且如果风怒图腾触发, 也不能在一次"挥动"中触发2次.伤害非标准化伤害 = (攻击强度 / 14 + 武器秒伤) * 武器速度注: 当前Beta存在bug, 伤害为白字, 且重置平砍计时, 大概率为bug. 因2.1.3的补丁说明中明确说明, 其为黄字且不重置平砍.


===通过伤害获得怒气===
可获取怒气的伤害的怒气获取公式为:
- 伤害/73.25 + 1.75 * 武器速度 * 暴击系数
- 如果暴击, 则暴击系数=2, 否则=1
- 武器速度为"武器装备上的速度", 不是计算了加速效果后的速度.可获取怒气的伤害为:
- 平砍
- 风怒图腾触发的额外攻击
- 剑武器专精触发的额外攻击


===通过技能获得怒气===
可获得额外怒气的技能/天赋为:
- 愤怒掌握, 1点/3秒
- 怒不可遏, 触发后1点, 5点天赋后触发为15PPM
- 锤武器专精, 触发后7点, 5点天赋后触发为1.5PPM


===重伤===
平砍/技能暴击后, 会造成流血伤害.伤害为每3秒一跳, 每跳伤害为平砍伤害的15%, 与造成重伤的"那次"伤害无关.新的暴击造成的重伤不会把之前未跳完的伤害积累, 且会重置debuff的持续时间.即: 如果某次暴击后3秒内没有再造成任何暴击, 这次暴击所产生的重伤才能造成一跳伤害.


===乱舞===
造成暴击后, 会使下3次的攻击速度提高25%. (5点)
- 对于标准武器天赋, 因为只能点3点, 所以为15%产生乱舞的机制:
- 平砍, 主副手均可以
- 技能暴击消耗乱舞的机制:
- 平砍, 主副手, 未命中同样消耗.攻击加速效果和其他加速效果使用相乘的方式进行叠加.攻击次数维度的覆盖率 = 1 - (1 - 暴击比例) * (3次挥舞可产生暴击的攻击次数)
时间维度的覆盖率 = (攻击次数维度的覆盖率 / (1 + 乱舞加速比例)) / ((1 - 攻击次数维度的覆盖率) + 攻击次数维度的覆盖率 / (1 + 乱舞加速比例))注: 乱舞略有复杂, 下面会有单独的一章, 对其做深入的研究.


===触发类的覆盖===
这里主要指 锻造双手剑(狮心斩杀者系列), 和龙脊两个物品.引用曾经关于触发的理论知识:
[quote]
[quote]
===什么是PPM? 什么是PPH?===
PPM 英文 proc per minute. 每分钟触发(次数)
PPH 英文 proc per hit. 每次命中触发(概率)


===为什么会有PPM?===
因为游戏中的武器存在各种各样的速度, 如果统一使用PPH方式, 那么快速武器就会触发更多的特效, 导致失衡.
所以对于一些不希望和武器速度相关的机制, 采用武器速度修正的方式, 从而引入PPM机制.


===那么PPM的运作原理是什么?===
PPM在实际请情况下, 先转换为PPH, 然后再进行实际触发判断.转换公式:
  1. <br/>PPH = PPM * 武器速度 / 60<br/>
复制代码
这里的武器速度, 就是"武器装备"上的"速度", 不受"急速等级"和"临时急速效果"影响.[collapse=举例]
锤类武器专精, 5点天赋后, 触发PPM为1.5
那么如果我使用3.8速度的武器.
单次命中后的触发概率为 1.5 * 3.8 / 60 = 9.5 %
致死打击命中后一样会有 9.5%的触发概率.
开嗜血后, 一样是9.5%的触发概率.
[/collapse]


===PPM的推论===
因为大多数技能可以触发特效, 而技能释放间隔和武器速度无关, 所以慢速武器获得了更高的单位时间内触发次数期望急速, 命中, 精准, 都会增加单位时间内触发次数期望


===PPM的常见误区===
[del]PPM是实战中每分钟触发次数[/del]
[del]PPM机制的触发不会被加速效果增强[/del]


===什么是内置CD===
内置cd是指某个特效触发后, 在cd期间, 无法再次触发.


===内置CD结束后必然触发?===
在TBC年代, 内置cd是暴雪在PPM机制仍然会导致慢速武器收益过高而加入的另一个防止随机触发物品过于强大的机制, 很不成熟.所以内置cd结束后, 还要在进行由PPM转换的PPH判断, 而且通常这个PPH比较小, 导致内置cd结束了到物品实际触发由相对较长的时间这也导致"PM的推论"中的机制也能降低触发间隔.

===随机特效覆盖===
对于没有内置cd的特效, 其覆盖率为
  1. <br/>1 - (1 - PPH) ^ (触发特效持续时间 * 单位时间触发次数期望)<br/>
复制代码


[/quote]锻造双手剑 1PPM, 无内置CD龙脊 1PPM, 20s内置CD
[/quote]
===2021-05-25 13:16===
嗜血的伤害的攻强不计算如下4种来源:
- 天赋10%
- 增强萨 10%
- 猎人强化猎人印记110点
- 生存猎敏捷25%转换的攻强这些已经经过证实, 并且列入暴雪的"not bug"列表
回复 支持 反对

使用道具 举报

123456879 显示全部楼层 发表于 2023-5-29 14:44:22
===[size=150%]武器战===

===主要存在原因===
4%的物理易伤
在4近4猎的团队中, 大约提供了32%的单人dps.

===直观感受===
如果你仔细阅读了基础数据部分, 可以直观的感受到,
- 如果武器够慢, 猛击的伤害可能和致死打击差不多
- 猛击的耗怒只有致死打击的一半
- 猛击天赋后读条0.5秒, 在比较完美操作情况下, 平砍间隔提高约15%.所以有了猛击流输出手法.结果也证明, 猛击流输出手法, dps远高于只是用致死/旋风的输出手法.具体的理性论证会在后面的dps模拟部分展开说明


===常规猛击手法===
采用4次平砍作为一次循环
- 在平砍后立刻读条猛击
- 猛击gcd后立刻使用另一个顺发技能, 如致死/旋风/战斗怒吼/挫志怒吼/破甲循环为: 平砍->猛击->致死->平砍->猛击->旋风斩->平砍->猛击->致死->平砍->猛击->其他->下一次循环以3.5秒攻击间隔为例, 如下:
1.png


===猛击延时===
实际人是无法在平砍结束的瞬间释放猛击的, 所以即使在平砍读条插件的支持下, 存在一个延时下面的讨论中, 默认次延迟约为0.1秒. 实际情况取决于每个人的实际操作情况


===急速的收益===
从上面的手法上可以发现
- 当攻击间隔 + 猛击延迟 + 0.5 秒 > 3 秒 时, 急速效果可以大幅度的提高总体伤害.
[collapse=为什么]
一般情况下, 其他近战的急速属性都只能提高平砍的伤害, 而武器战几乎提高全部伤害.
[/collapse]
- 但是当攻击间隔 + 猛击延迟 + 0.5秒 <= 3秒后, 急速为0收益, 除非使用其他的输出手法.


===高攻速下的猛击手法===
当攻击间隔 + 猛击延迟 + 0.5秒 <= 3秒后, 会出现多种不同的输出方式, 具体后面会有单独章节讨论.
回复 支持 反对

使用道具 举报

海鑫木业 显示全部楼层 发表于 2023-5-29 14:49:04
===[size=150%]重伤===

===基础知识回顾===
平砍/技能暴击后, 会造成流血伤害.伤害为每3秒一跳, 每跳伤害为平砍伤害的15%, 与造成重伤的"那次"伤害无关.新的暴击造成的重伤不会把之前未跳完的伤害积累, 且会重置debuff的持续时间.即: 如果某次暴击后3秒内没有再造成任何暴击, 这次暴击所产生的重伤才能造成一跳伤害.


===直观感受===
当暴击增加时, 因为频繁刷新重伤, 所以导致重伤伤害变低.当攻击间隔过快, 导致3秒内有更多的攻击次数, 重伤伤害也会变低.


===结果===
这里使用了模拟的方式, 以每秒重伤跳数作为指标.当攻击间隔+猛击延迟 > 3秒时:
1.png
多项式拟合结果为:
  1. <br/>dw_ps = -0.1365 * crit ^ 2 - 0.2120 * crit + 0.3200<br/>
复制代码
当攻击间隔+猛击延迟 < 3秒时:
2.png
多项式拟合结果为:
  1. <br/>dw_ps = 0.2662 * crit ^ 2 - 0.6186 * crit + 0.3379<br/>
复制代码



===直观结论===
暴击对重伤存在负收益.
回复 支持 反对

使用道具 举报

无奈的剑侠站 显示全部楼层 发表于 2023-5-29 14:49:19
===[size=150%]乱舞===

===基础知识回顾===
造成暴击后, 会使下3次的攻击速度提高25%. (5点)
- 对于标准武器天赋, 因为只能点3点, 所以为15%产生乱舞的机制:
- 平砍, 主副手均可以
- 技能暴击消耗乱舞的机制:
- 平砍, 主副手, 未命中同样消耗.攻击加速效果和其他加速效果使用相乘的方式进行叠加.攻击次数维度的覆盖率 = 1 - (1 - 暴击比例) * (3次挥舞可产生暴击的攻击次数)
时间维度的覆盖率 = (攻击次数维度的覆盖率 / (1 + 乱舞加速比例)) / ((1 - 攻击次数维度的覆盖率) + 攻击次数维度的覆盖率 / (1 + 乱舞加速比例))


===攻击次数维度的覆盖===
对于任意一次发动攻击(记为T次攻击)后, 到下一次攻击(记为T+1次攻击)前.不存在乱舞的概率为: T-2次攻击, T-1次攻击, T次攻击的平砍/猛击/风怒/剑精全部未暴击. 并且, 从T- 2次攻击开始到 T次攻击之间的主动技能也未暴击.从T次攻击到T+1次攻击中, 如果主动技能暴击, 也能部分的降低从 T到T+1次的攻击间隔.所以最终简化版的乱舞覆盖为:乱舞攻击次数维度覆盖 = 1 - (1 - 暴击比例) ^ 修正后的攻击次数注: 这里因为存在非线性变换, 而计算过程中为了简化, 提前使用了期望化的方式, 导致计算出的乱舞比实际乱舞"非常略微"的高一点.


===时间维度的覆盖===
首先要明确的是, 因为乱舞提高攻击速度, 所以 攻击次数维度的覆盖 不等于 时间维度的覆盖[collapse=为什么?]
举例来说, 如果次数维度覆盖为50%. 基础攻击间隔为1秒如果攻击100次, 总消耗时间为 50 + 50 / 1.15 = 93.48秒其中有乱舞的时间为 50 / 1.15 = 43.48秒所以乱舞的时间维度覆盖是: 43.48 / 93.48 = 46.51% < 50%
[/collapse]而为了更好的定量计算乱舞的加速收益, 就必须将上面的次数维度乱舞覆盖转换为时间维度的乱舞收益时间维度的覆盖率 = 有乱舞的时间 / (没有乱舞的时间 + 有乱舞的时间)
= (攻击次数维度的覆盖率 / 1.15) / ((1 - 攻击次数维度的覆盖率) + 攻击次数维度的覆盖率 / 1.15)


===修正后的攻击次数===
对于武器战来说, 经验数据如下:在有风怒图腾的情况下
修正后的攻击次数 在 8.6 到8.7 之间在无风怒图腾的情况下
修正后的攻击次数 在 7.5 到8.1 之间实际情况会在"加速效果叠加"章节中更深入的研究.


===暴击对乱舞覆盖的收益===
这里我们用 修正后的攻击次数 = 8.6 为例不同暴击下暴击次数维度覆盖和时间维度覆盖如下
1.png 上图可见, 暴击在40%后, 乱舞覆盖就已经非常高, 也就是暴击对乱舞的收益就会变得很低.下图是每1%暴击对乱舞覆盖的绝对提升:
2.png
回复 支持 反对

使用道具 举报

462710480 显示全部楼层 发表于 2023-5-29 14:52:59
===[size=150%]龙脊的收益===

===基础信息===
触发后提升325点急速等级, 持续时间10秒
20秒内置冷却, 1PPM触发


===覆盖公式===
命中后触发概率 = 1 * 武器速度 / 60覆盖率 = 覆盖持续时间 / (内置冷却时间 + 1 / (命中后触发概率 * 命中频率 ))带入数据得到 覆盖率 = 10 / (20 + 1 / (命中后触发概率 * 命中频率))


===直观印象===
龙脊的覆盖大约在 25% ~ 26% 之间具体数值会在"急速效果叠加"章节进一步讨论.


===龙脊的收益===
在"武器战"章节已经介绍, 攻击间隔在1.75秒~2.4秒之间时, 急速几乎0收益.
对于SW之前, 因装备上几乎没有急速属性, 缩短攻击间隔只来自于:
- 战鼓, 80点急速等级, 全程覆盖
- 加速药水, 400急速等级, 15秒每2分钟
- 嗜血, 30%加速效果, 40秒, 一般不会给近战队
- 乱舞, 15%加速效果, 高覆盖所以即便是灾变这把3.5基础攻速的武器, 在不使用加速药水和嗜血的情况下, 龙脊触发后, 攻击速度为
  1. <br/>3.5 / 1.15 / (1 + 0.01 * (80 + 325) / 15.77) = 2.422<br/>
复制代码

仍然 > 2.4所以在SW急速装备之前, 龙脊几乎可以获得全额的急速收益, 所以龙脊的特效大约可以提高整体dps的2.5%~3%, 收益非常高.
- 对比海啸护符, 特效仅带来0.9%的dps提升.
- 对比背叛者的疯狂, 特效仅带来1.1% ~ 1.2%左右的dps提升.而在SW大量急速装备, 和奥伯莱恩仅3.4秒的基础攻击速度情况下. 龙脊收益大幅度降低, 实际太阳井毕业装备的情况下, 龙脊特效仅带来1%左右的dps提升
回复 支持 反对

使用道具 举报

尹以为荣 显示全部楼层 发表于 2023-5-29 14:58:38
===[size=150%]加速效果的叠加===

===原因===
为什么要讨论加速效果的叠加?因为武器战急速存在明显的阈值性效应所以 一个提供25%覆盖的20%加速效果, 和100%覆盖的5%加速效果, 对dps的提升可能完全不同. 所以需要对每一种可能加速组合单独拆解, 最终在根据覆盖比例对最终DPS加权求和.


===当前情况===
上面我们介绍了多种加速效果, 再配合上嗜血与加速药水, 所有战斗中的可变加速效果为:
- 乱舞, 15%, 和其他加速效果相乘.
- 龙脊特效, 325急速等级, 和其他急速效果相加
- 加速药水, 400急速等级, 和其他急速效果相加
- 嗜血, 30%, 和其他加速效果相乘.
- 基尔加丹战斗中的25%加速效果(未进行计算)忽略的效果是武器附魔猫鼬, 2%加速效果, 和其他加速效果相乘.
因其加速效果比较少, 所以采用的期望化的方法.对于使用猫鼬附魔的情况, 我直接使用了基础攻击速度+0.5%的方式.


===解决方法, 迭代法===
具体过程:
1) 对我们将我们要求解的设置某个初始值
- 这里指乱舞覆盖, 龙脊覆盖. 2个变量2) 计算当前情况下, 各机制情况
- 这里指使用的输出手法(1平砍1猛击 还是 2平砍1猛击), 以及每个技能的释放频率3) 再根据各机制的结果, 计算我们设定值的偏差.
- 这里指通过手法和技能频率, 计算乱舞/龙脊的覆盖4) 比较偏差的大小
- 如果所有偏差小于一个非常小的限制值, 代表已经收敛, 迭代结束
- 否则回到第(2)步再进行迭代
- 我这里采用的限制值是 1e-9.


===加速程度分解===
根据"原因"那一节, 我们要穷举全部可能的加速幅度以及其相应的覆盖率.首先要对几种加速的独立性进行判断.先说嗜血和加速药水, 加速药水可选择每次和嗜血同时开启, 所以认为嗜血和加速药水互相之间为完全非独立事件
- 嗜血+加速药水覆盖: 15 / 战斗时长
- 嗜血无加速药水覆盖: 25 / 战斗时长
- 仅加速药水覆盖: 15 / 120 - 15 / 战斗时长
- 无嗜血无加速药水: 1 - 25 / 战斗时长 - (15 / 120)*注: 这里用的是一场战斗只吃1次嗜血的模型, 实际战斗中多是如此.其余事件(乱舞/龙脊)都是随机触发, 所以这里认为其触发为独立事件.将战斗按照
- 是否有乱舞
- 是否有龙脊特效
- 嗜血与加速药水
分为 2 * 2 * 4 = 16种加速场景分别对其计算输出手法和技能频率, 然后在反馈到乱舞覆盖, 龙脊覆盖. 最后根据每种加速场景的当前占比, 得到几种加速特效的覆盖这就是上面迭代法中(2)(3)步的实际过程.听起来很复杂, 实际也很复杂, 但是实际计算过程中, 即使在1e-9这种很低的限制下, 迭代5次也基本收敛了.
回复 支持 反对

使用道具 举报

找食的麻雀粮 显示全部楼层 发表于 2023-5-29 15:00:48
===[size=150%]DPS模拟===

===准备工作完毕===
有了最开始基础知识中的伤害公式.有了各种加速的覆盖的交叉比例.有了怒气公式.有了各技能的使用频率.是时候计算出具体的DPS值了.


===计算代码===
[quote]
===英文对照===
melee - 平砍
wf - 风怒
slam - 猛击
ms - 致死打击
ww - 旋风斩
hs - 英勇打击
ss - 剑武器专精
dw - 重伤

技能伤害:
[code=py]hit_p = (1 - (0.09 - min(hit, 0.09)) - (0.065 - min(expertise + 0.02, 0.065)))
physics_scale = 10557 / (boss_armor + 10557) * 1.04
all_scale = 1.05 * 1.02 * (1 + 0.2 * 30/180)crit_scale = 1 if not crit_meta else 1.06hit_rage = 15 * weapon_speed / 60
if mace_spec:
hit_rage = 1.5 * weapon_speed / 60 * 7# wind fury
wf_pa = 0
melee_wf_ss_scale = 1
if wf_totem:
wf_pa += 0.2 * hit_p
melee_wf_ss_scale += 0.2 * hit_p * (1 - 0.05 * hit_p)
melee_base_damage = (ap / 14 + weapon_dps) * weapon_speed
spell_base_damage = ap / 14 * 3.3 + weapon_dps* weapon_speedss_damage = (melee_base_damage) * hit_p * (1 + crit * (crit_scale + 0.2)) * physics_scale * all_scale if sword_spec else 0
ss_rage = ss_damage / 73.25 + 1.75 * weapon_speed * hit_p * (1 + crit) + hit_rage * hit_p if sword_spec else 0
rage_ss = ss_rage * 0.05melee_damage = melee_base_damage * (hit_p + crit * crit_scale - 0.25 * 0.35) * physics_scale * all_scale
melee_rage = melee_damage /73.25 + 1.75 * weapon_speed * (hit_p + crit)slam_damage = (melee_base_damage + 140) * hit_p * (1 + crit * (crit_scale + 0.2)) * physics_scale * all_scale
slam_rage = 15 - hit_rage * hit_p - rage_ss * hit_pms_damage = (spell_base_damage + 210) * hit_p * (1 + crit * (crit_scale + 0.2)) * ms_scale * physics_scale * all_scale
ms_rage = 30 - hit_rage * hit_p - rage_ss * hit_pww_damage = spell_base_damage * hit_p * (1 + crit * (crit_scale + 0.2)) * physics_scale * all_scale
ww_rage = 25 - hit_rage * hit_p - rage_ss * hit_phs_damage = (melee_base_damage + 176) * hit_p * (1 + crit * (crit_scale + 0.2)) * physics_scale * all_scale
hs_rage = 13 + melee_ragedw_damage = 0.15 * melee_base_damage * all_scale * 1.04
[/code]
1平砍1猛击循环
[code=py]
rc_pa = 0
ss_pa = 0
rg_pa = 1rg_pa += (melee_rage + hit_rage * hit_p) * (1 + wf_pa)
rg_pa += rage_ss * hit_p * melee_wf_ss_scale
ss_pa += 0.05 * hit_p * melee_wf_ss_scaleslam_pa = min((rg_pa - rc_pa )/ slam_rage, 1)
rc_pa += slam_pa * slam_rage
ss_pa += slam_pa * 0.05 * hit_pms_pa = min((rg_pa - rc_pa )/ ms_rage, 0.5)
rc_pa += ms_pa * ms_rage
ss_pa += ms_pa * 0.05 * hit_pww_pa = min((rg_pa - rc_pa)/ww_rage, 0.25)
rc_pa += ww_pa * ww_rage
ss_pa += ww_pa * 0.05 * hit_phs_pa = min((rg_pa - rc_pa)/hs_rage, 1)
rc_pa += hs_pa* hs_rage
melee_pa = (1 - hs_pa)
return {
"melee": melee_pa,
"wf": wf_pa,
"slam": slam_pa,
"ms": ms_pa,
"ww": ww_pa,
"hs": hs_pa,
"ss": ss_pa,
}
[/code]
2平砍1猛击循环
[code=py]
rc_pa = 0
ss_pa = 0rg_pa += (melee_rage + hit_rage * hit_p) * (1 + wf_pa) * 2
rg_pa += rage_ss * hit_p * melee_wf_ss_scale * 2
ss_pa += 0.05 * hit_p * melee_wf_ss_scale * 2slam_pa = min((rg_pa - rc_pa )/ slam_rage, 1)
rc_pa += slam_pa * slam_rage
ss_pa += slam_pa * 0.05 * hit_pms_pa = min((rg_pa - rc_pa )/ ms_rage, 0.5)
rc_pa += ms_pa * ms_rage
ss_pa += ms_pa * 0.05 * hit_pww_pa = min((rg_pa - rc_pa)/ww_rage, 0.25)
rc_pa += ww_pa * ww_rage
ss_pa += ww_pa * 0.05 * hit_phs_pa = min((rg_pa - rc_pa)/hs_rage, 2)
rc_pa += hs_pa* hs_rage
melee_pa = (2 - hs_pa)
return {
"melee": melee_pa,
"wf": wf_pa,
"slam": slam_pa,
"ms": ms_pa,
"ww": ww_pa,
"hs": hs_pa,
"ss": ss_pa,
}
[/code]
[/quote]
回复 支持 反对

使用道具 举报

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

本版积分规则

魔兽世界玩家社区,为广大wower打造专属于自己的精神家园!
  • 小程序

  • 微信公众号

  • 商务合作