战斗测算普攻 / 技能 / 组合 · 多目标期望值模拟 ← 返回工具列表

战斗测算 · 多目标

同一套属性、同一套时间轴,跑多遍:只普攻、只放技能、技能+普攻(技能 CD 期间补普攻),再各跑一遍「技能换成群攻」。 结果并排放,能直接看出「放技能比平砍快多少」。防御方可以有多个目标和多个种类(BOSS + 一堆小怪),攻击方按优先级集火。 所有属性默认 0,点「载入示例」看一组能打起来的数值。

一、属性攻速 / 技能攻速 / 技能系数在最上面,其余默认全 0

属性来自「属性战力」页(去增删),这里只读。攻击方一列 + 每个模组一列(模组点上面的「+ 加入模组」加,加完这张表自动多一列);攻速(次/秒)、技能攻速(次/秒 = 1 ÷ 技能冷却)和平均技能系数是本页专用,不参与战力计算。 单位:生命/攻击/防御是数值;暴击率、命中、闪避、吸血、反伤、忽视防御是 0–1 的比例;暴伤是倍率(2 = 两倍);攻速是「每秒出手几次」;技能系数是「技能伤害相当于普攻的几倍」。

模组 先在这里确定有哪几种怪;它们的属性在下面表里按列填,下面「三、对战设置」再从这些模组里排参战阵容

属性 攻击方一列、每个模组一列;新加模组这里会自动多一列

示例:攻击方 攻 100 / 血 1000 / 防 50 / 攻速 1.2 / 技能攻速 0.4(冷却 2.5 秒)/ 技能系数 1.8; BOSS ×1 攻 60 / 血 800 / 防 30 / 攻速 1.0 / 技能攻速 0.3(优先级 1);小怪 ×4 攻 20 / 血 300 / 防 10 / 攻速 0.8(优先级 2)

二、计算公式普攻一套、技能一套,都能改

公式就是一行算式,直接改、点「开始模拟」生效。攻击方的属性写 attacker.攻击,防御方写 defender.防御,中间的点不能省。 只有「吸血率」「反伤率」两行能用 damage(代表本次打出的伤害)。

函数什么意思例子
max(a, b)两个数里取大的max(10, 3) 得 10;常用来保底:max(伤害, 1) 保证至少打 1 点
min(a, b)两个数里取小的min(暴击率, 1) 把超过 100% 的按 100% 算
clamp(x, 小, 大)把 x 夹在「小」和「大」之间clamp(1.4, 0, 1) 得 1;clamp(-0.2, 0, 1) 得 0。等于 min(max(x,小),大)
ifelse(条件, A, B)条件成立取 A,否则取 Bifelse(攻击 > 防御, 攻击 - 防御, 1):打得动就相减,打不动给 1
round(x)四舍五入取整round(2.6) 得 3
floor(x)向下取整(抹掉小数)floor(2.9) 得 2
ceil(x)向上取整(有小数就进一)ceil(2.1) 得 3
abs(x)取绝对值(去掉负号)abs(-5) 得 5
pow(x, y)x 的 y 次方pow(2, 3) 得 8;pow(1.1, 等级) 就是每级涨 10%
sqrt(x)开平方根sqrt(100) 得 10
log(x) / exp(x)自然对数 / e 的 x 次方做收益递减时用:log(1 + 防御 / 100)

普攻公式

技能公式

默认「技能伤害 = 普攻伤害 × 平均技能系数」。真实的技能循环(冷却、普攻与技能交替)不是这么算的,这里是用平均系数把一轮技能摊平,做量级对比用。

三、对战设置

还没跑。

动作与切换时间 只在「技能 + 普攻」这种组合打法里用,单位秒

普攻动作时长 秒
技能动作时长 秒
技能 → 普攻 额外等待 秒
普攻 → 技能 额外等待 秒
当前技能冷却

动作时长=这一招自己的动画时间;额外等待=动画播完之后还要再等多久才允许接下一招(不需要就填 0,想留一点延迟填 0.1)。 两个都到了才切,而且还要看下一招自己的 CD 转没转好——没转好就等它转好,不硬插。

群攻技能 和单体技能同一套公式、同样冷却,只是能同时打多个目标

群攻目标数=一次群攻最多打几个(不足就按实际活着的算); 释放条件=场上存活的敌人 ≥ 这个数才放群攻,不够就退回去放单体技能; 第 N 个目标=一次群攻打到第 N 个目标时的伤害倍率,顺序就是参战阵容的集火顺序(第一个目标打 80% 伤害就填 0.8,第二个 60% 就填 0.6)。 技能倍率、冷却、命中/暴击这些都跟单体技能一样,不用重复配。

参战阵容 从上面定义好的模组里挑,填数量;同一个模组可以进来多次

攻击优先级:1 最高,攻击方永远先打还活着的、优先级数字最小的那个;数字一样就按阵容顺序从上到下。 数量表示这个模组放几只一样的目标(比如小怪 4 只)。 要加新种类的怪,去上面「一、属性」的「模组」里加,这里只是排阵容。

注:技能一放就进入冷却,冷却时长 = 1 ÷ 技能攻速(从起手算,已经包含技能动作时长)。技能动画播完之后,还要再等「技能 → 普攻 额外等待」这一格,才能接普攻。 这里不考虑动作表现(前摇后摇、位移、打断都不管),只排时间轴。如果切换延迟填得很短、而下一招自己的 CD 还没转好,就等它 CD 转好再打(不会硬插)。

四、结果对比

只普攻 vs 只放技能 vs 技能+普攻 vs 群攻参与

点「开始模拟」出结果。

逐回合明细

五、战斗演示

把上面算出来的那一场按时间播一遍:谁先动手、打谁、掉多少血,都能看出来。 注意这里是期望值的一次演出(没有逐次掷骰子),所以血条是平滑下降的。

先点上面的「开始模拟」,这里会自动接上画面

口径说明