news 2026/10/25 1:45:30

Path of Building PoE2 DPS 伤害计算完整指南:从一次暴击闪电到面板数字的完整追踪

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Path of Building PoE2 DPS 伤害计算完整指南:从一次暴击闪电到面板数字的完整追踪

Path of Building PoE2 DPS 伤害计算完整指南:从一次暴击闪电到面板数字的完整追踪

【免费下载链接】PathOfBuilding-PoE2项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2

Path of Building(PoB)的 Calcs 面板会直接给你一个 DPS 数字,但很多人只看不懂:它到底是怎么从你身上的武器、词缀、技能宝石算出来的?这篇指南换个思路——不罗列模块,而是跟着一发"会暴击的闪电伤害"走完全程,把 CalcOffence.lua 里的计算顺序、每一步的公式和面板上那些数字的来源一次讲透。读完你会明白:为什么 MORE 比 INC 值钱、为什么暴击流要堆暴击伤害、以及面板 DPS 和"理论值"差在哪。

一次命中要回答的四个问题

PoB 计算某个技能时,本质是在回答四个问题,每个问题对应面板上的一组数字:

问题对应输出面板位置
这一下打多少伤害?各伤害类型的 min/max/平均Damage 栏
多大概率暴击?CritChance / CritMultiplierCrit 栏
多大概率打中?HitChance(含命中与格挡)Hit 栏
一秒能砸几一下?HitSpeed(每秒命中数)Attacks per second 栏

DPS 就是这四个数字的乘积(后面细说)。下面的流程严格按照 CalcOffence.lua 中calcs.offence的执行顺序展开。

基础伤害:武器、附加伤害和"基础伤害乘数"怎么合体

计算的第一步发生在所有词缀生效之前。PoB 先算出每种伤害类型(Physical / Lightning / Cold / Fire / Chaos)的基础值,公式是:

baseMin = ((source[typeMin] or 0) + addedMin * addedMult) * baseMultiplier

翻译成人话:

  • source:武器面板伤害(攻击技能)或技能宝石自身伤害(法术);
  • addedMin × addedMult:附加伤害词缀,且会被"X% of Added Damage"这类词缀放大;
  • baseMultiplier:技能数据里的 baseMultiplier,比如某些技能的"每颗宝石 +X 伤害"在这里乘进去。

关键细节:附加伤害是"加法进底池"的。你武器 100 物理,附加 200 闪电,你的物理底池还是 100,闪电底池是 200——它们各自独立,后面各自走各自的加成。这也是"附加伤害不吃物理加成、只吃元素加成"这一常见疑问的答案。

转换与获得:两种"借伤害"的机制区别

PoB 用一张 5×5 的转换表(conversionTable)处理所有 Convert 词缀。处理顺序是固定的两步:先处理技能专属转换("This Skill's Physical Damage is Converted to Lightning"),再处理全局转换("Physical Damage is Converted to Lightning"),并且全局转换只作用在"技能转换后剩下的部分"上。如果所有转换加起来超过 100%,会等比压缩回 100%——所以"转 150% 伤害"这种词缀实际只有 100% 生效。

另一种机制是Gain As("获得 X% 物理伤害作为闪电伤害"),它存在独立的gainTable里。两者区别很大:

Convert(转换)Gain As(获得)
原伤害是否减少是,按百分比扣走否,原伤害完整保留
目标伤害吃到目标类型加成能能
面板表现原伤害变少,新伤害变多原伤害不变,额外多出一块

最后,每种伤害类型的"汇总基础值"是三段相加:

summedMin = baseMin * convMult + convertedMin + gainedMin

即:自己剩下的底池 + 从别处转进来的 + 从别处获得的。这个数字就是后面所有加成的作用对象。

INC 和 MORE 到底差在哪:先看 PoB 怎么取数

这是玩家最常搞混的一层。在 ModList.lua 里,两个词缀走的是完全不同的取数函数:

local inc = 1 + skillModList:Sum("INC", cfg, "Damage", "LightningDamage") / 100 local more = skillModList:More(cfg, "Damage", "LightningDamage")
  • Sum("INC")把所有 increased/reduced求和:+30% 和 +50% 合计 1.8 倍;
  • More()把所有 more/less连乘:+30% more 和 +50% more 合计 1.3 × 1.5 = 1.95 倍。

所以同样是两块词缀,INC 给你 1.8 倍,MORE 给你 1.95 倍。MORE 的边际收益永远不递减,这就是"MORE 比 INC 值钱"的数学根源。

然后每种伤害类型的最终命中前伤害是:

return round(summedMin * inc * more * moreMinDamage + addMin)

注意两个容易忽略的点:

  1. 存在独立的MinDamage/MaxDamage修正("Min Physical Damage is Increased by X%"),只对区间端点生效;
  2. 这里只处理命中前的伤害。抗性、护甲在下一步才减,所以"按 X 伤害计算护甲"(CalcArmourAsThoughDealing)之类的词缀会在这个阶段介入。

双通道计算:暴击流为什么暴击伤害收益被暴击率摊薄

PoB 对每个技能做两遍完整计算:pass 1是暴击命中(cfg.skillCond["CriticalStrike"] = true),pass 2是普通命中。两遍各自独立走完 INC/MORE 流程,这样"暴击时伤害 +X%"这种只在暴击时生效的词缀天然就能工作。

两遍之后合并成平均命中:

output.AverageHit = totalHitAvg * (1 - CritChance/100) + totalCritAvg * CritChance/100

暴击倍率本身也是"加法池 + 乘法池"的结构:(1 + 基础暴击加成% × (1+INC%) × MORE%),默认 150% 是"基础值里已含 +50%"。

还有一个细节值得注意:命中率不满 100% 时,暴击会先过一遍命中判定——PoB 在 effective 模式下把 CritChance 乘上 HitChance 来模拟"暴击 roll 成功后再确认命中"的规则;Bifurcated Crits(两次判定)则按1 - (1-c)²折算。所以低命中堆高暴击时,面板 DPS 的下跌比你直觉里更狠。

减伤链:护甲、穿透、抗性降序怎么一步步砍掉你的伤害

平均命中算出来后,PoB 会模拟"敌人视角"把伤害砍一遍,顺序是:

物理伤害 → 护甲公式

armourReduction = armour / (armour + raw * ArmourRatio) * 100

护甲减伤是百分比且随你伤害提高而边际递减——这就是为什么物理流后期堆伤害比堆穿透/碎甲更划算的数学原因(对 CalcDefence.lua 中armourReductionF的封装)。忽略护甲词缀直接把对应部分清零。

元素伤害 → 抗性 + 穿透:先把敌方抗性夹到配置上限(默认 75%),再用max(resist - pen, minPen)得到有效抗性;存在"混沌用最低/最高抗性结算"这类词缀时,PoB 会遍历三种元素抗性取目标值,并按实际生效的元素重新取穿透。

敌人侧加成 → 总乘区

effMult = (1 + takenInc/100) * takenMore * (1 - effectiveResist/100)

"受伤增加"(Damage Taken)这类词缀也走同样的 INC/MORE 双池,只不过挂在敌人身上。最终 min/max/平均三个值统一乘以 effMult,得到"敌人实际掉的血"。

面板 DPS 从哪来:速度、多重命中与 DpsMultiplier

减完之后,DPS 的主公式只有一行:

output.TotalDPS = output.AverageDamage * (globalOutput.HitSpeed or globalOutput.Speed) * output.DpsMultiplier * quantityMultiplier

拆开看:

  • AverageDamage = AverageHit × HitChance/100——打空的那一下只算 0 伤害;命中率本身来自 CalcDefence.lua 的经典公式1.25 × accuracy / (accuracy + 0.3 × evasion),再乘上 (1 − 格挡率);
  • HitSpeed:触发类技能(Brand、持续伤害类)是1 / (HitTime + Cooldown)或1 / max(HitTime, Cooldown);普通攻击受服务器 tick 上限约束(每秒最多若干次命中);
  • DpsMultiplier:一个专门挂在 "DPS" 上的 MORE 池,双持(Hits with both weapons,+100%)、Barrage 的重复数、机会性重新装填等都往这里乘——这就是为什么有些技能"面板单发伤害"不高,DPS 却翻倍。

异常状态:为什么 Ignite 有 DPS 上限

Ailment(点燃/中毒/冰缓等)走独立管道,但源数据复用前面的结果:PoB 把减伤前的命中平均(StoredHitAvg/StoredCritAvg)存起来作为异常状态的输入。计算时先按"持续挂状态"的叠层期望取一个 roll 均值(叠层越多越偏向区间上限),然后:

ailmentDPS = baseVal * effectMod * rateMod * activeAilments * effMult ailmentDPSCapped = min(ailmentDPSUncapped, DotDpsCap)

注意两个点:异常状态按自己的伤害类型(Ignite 按火、Poison 按混沌)过一遍敌人抗性,且存在一个全局的DotDpsCap上限——叠到顶之后,面板上会继续显示 "x% of Maximum ailment DPS" 提示你还差多少才封顶。Combined DPS 则是命中 DPS + 各异常状态 DPS(+ Impale 等)的加总。

用 Breakdown 面板核对每一步

上面讲的每个乘数,PoB 都可以在界面里逐行验证:Calcs 页签的Breakdown视图由 CalcBreakdown.lua 生成,会打出类似这样的链条:

2500 to 4500 (damage from weapon) + 800 to 1200 (added damage) x 1.80 (increased/reduced) x 1.30 (more/less) = 6300 to 8880 (total damage) x 0.833 (effective DPS modifier)

每一行都带灰色注释标明来源。建议的核对路径:先确认 (1) 基础伤害里附加伤害是否被乘对,(2) 转换表是否把目标伤害扣减了,(3) effective modifier 是否符合你预期的抗性/穿透/受伤增加。如果某行乘数和你预期不符,往上看它的^8(...)^7注释就能定位是哪个词缀进了哪个池子。项目内也有 docs/calcOffence.md 记录了 pass/output 的机制,适合想改代码的同学深入。

顺着这套逻辑做 Build 的三个判断

理解了流水线,装备取舍就有了依据:

  • 堆底池还是堆加成?所有加成都作用于summedMin,所以底池越大,同样的 INC 值收益越高。后期装备选择时,"+X 伤害"类词缀在数学上等价于把底池放大,优先级取决于你现有加成池的大小——加成池越大,底池越值钱。
  • MORE 的兑换率:一块 +X% MORE 的收益是乘法独立于所有其他乘区,而两块 +X% INC 的收益会被池子里已有的 INC 摊薄。粗略经验:当你总 INC 已经很高时,一块小 MORE 经常胜过同数值的两块 INC。
  • 暴击流的收益曲线:面板 DPS 对暴击率的依赖是1 - c + c × multiplier,这意味着暴击率从 50% 提到 70% 的收益,小于从 0% 提到 20% 的收益——暴击率越高,多堆 1 点暴击伤害的相对价值越高,反之亦然。

DPS 不是玄学,它就是一台把"底池 → 转换 → 加成 → 暴击 → 减伤 → 速度"按固定顺序乘一遍的计算器。你现在看 Calcs 面板时,已经能对上每一个数字是从哪一行公式来的了。

【免费下载链接】PathOfBuilding-PoE2项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/25 1:43:37

Git 与 GitHub 从零到协作:核心操作完全指南

本文面向零基础读者,通过以下 9 个章节,帮助大家从零开始掌握 Git 与 GitHub 的核心操作:从认识 Git 的基本概念、安装并配置 Git Bash,到常用命令实战、在 GitHub 上创建仓库并上传代码,再到远程更新、团队权限交付以…

作者头像 李华
网站建设 2026/10/25 1:38:34

电力系统制造去中心化电网创新:捷思特测试与自动化智能制造解决方案

行业背景:一场不可逆转的能源架构革命全球电力系统正在经历一个多世纪以来最深刻的结构性变革。过去一百年,电力系统的底层逻辑从未改变——建大型集中式发电厂,用水能、煤炭或天然气发电,再通过数千公里的输电线路将电力送至终端…

作者头像 李华
网站建设 2026/10/25 1:33:23

什么是生成器模式?一文详解

目录 一.意图 二.结构 三.举例:产品套餐 1.代码实现 ①创建“产品” ②创建“抽象套餐” ③创建“具体套餐1” ④创建“具体套餐2” ⑤创建“服务员” 最终,进行测试 四.真题 1.2017年上半年 题目 分析过程 正确答案 2.2018年上半年 题…

作者头像 李华
网站建设 2026/10/25 1:26:50

Codex-X 提示词注入实战手册:回滚与开关全知道

Codex-X 提示词注入实战手册:回滚与开关全知道 【免费下载链接】Codex-X OpenAI Codex 桌面端/CLI 的可视化管理工具,具有Provider/API 切换、会话同步、提示词注入、Skills/MCP 管理、TOML 配置可视化的跨平台工具。 项目地址: https://gitcode.com/G…

作者头像 李华
网站建设 2026/10/25 1:25:18

AI通识课:零基础看懂机器学习本质与落地逻辑

简介:本资源是面向AI零基础学习者的人工智能通识入门课程讲义,聚焦概念建立、技术脉络梳理与现实应用衔接,帮助初学者系统构建AI认知框架,缓解因术语繁多、分支庞杂导致的学习畏难情绪。压缩包为单个6.25MB的PDF文件,完…

作者头像 李华