成长城堡游戏机制探索

736 字
4 分钟
成长城堡游戏机制探索

前言#

当初在做计算表格的时候发现,在单位的属性面板上,有两种伤害,一种叫增加伤害 (increased damage),另一种叫额外伤害 (more damage),让我做表格做起来更麻烦了,于是在当时就简单测试了它的算法,最终的成果在那份计算表格中也有体现。

伤害计算#

设基础攻击 (base attack) 为 DbaseD_{base}、增加伤害 (increased damage) 为 DiD_i、额外伤害 (more damage) 为 DmD_m,则面板伤害 DD

D=Dbase×Di×DmD = D_{base} \times D_i \times D_m

从面板伤害来说,它本来应该就这么简单,对应的词条加到对应的数值上。但这游戏的作者似乎有点混沌,对于 more damage 的计算,既有加法,又有乘法。

以冰法为例,基础的 DmD_m 为 20%,如果宝物装上拳套 (15% more damage),DmD_m 会变成 38%。此时再点上冰系技能树的起点 (10% more damage),则 DmD_m 会变成 51.8%。

该算法为乘区算法,即

51.8%=(1+20%)×(1+15%)×(1+10%)151.8\% = (1 + 20\%) \times (1 + 15\%) \times (1 + 10\%) - 1

它的算法比较反直觉,毕竟在 increased damage 中,就全部是纯粹的加法,估算起来简单得多。

从这里就能看出来,提高 more damage 所带来的面板提升,是比 increased damage 来得更多的。

所以,像技能树中的 more damage 技能点、宝物中的拳套、宝珠中的力量宝珠等,都遵循这套规则。而装备中的 damage 与 elemental damage 等,直接加到现有的 increased damage 面板中就行了。

CD 计算#

对于站边白袍的英雄,设原始 CD 为 CbaseC_{base} 秒,金 C 提供的减 CD 为 CsC_s,装备白 CD 为 CewC_{ew},装备红 CD 为 CerC_{er},则面板 CD CC

C=(Cbase/(1.67+Cs)1)×(1Cew)CerC = (C_{base} / (1.67 + C_s) - 1) \times (1 - C_{ew}) - C_{er}

首先对这个算式解释一下:

“1.67” 是 “1 + 0.5 + 0.15 + 0.02” 得到的结果。“1” 是除法运算的基数,“0.5” 是天赋点的 20 个 CD 提供的 - 50% 效果,“0.15” 是泉水提供的 - 15% 效果,“0.02” 是公会提供的 - 2% 效果。

“1.67” 括号外的 ”- 1” 是站边白袍的减 CD 效果。

在这个公式中,有两点很反直觉:

  1. 白袍的减 CD 效果并没有在最后运算,而是在装备白 C 的前面先一步结算
  2. 天赋等 CD 的计算是除法运算,而装备白 C 的计算是乘法运算

目前还暂时无法理解作者为什么要这样设计。但这一点其实和前面的伤害计算挺像的了,大致就可以理解为,天赋、泉水与公会提供的是 “increased damage”,装备提供的则是 “more damage”。

那对于不站边的角色的 CD,只需要把 ”- 1” 去掉就可以了,即

C=(Cbase/(1.67+Cs))×(1Cew)CerC = (C_{base} / (1.67 + C_s)) \times (1 - C_{ew}) - C_{er}

这种算法也是挺抽象的,弯弯绕绕,无法理解作者的思路。

CD 计算器#

公式:站边白袍时C = (Cbase ÷ (1.67 + Cs × 0.025) − 1) × (1 − Cew) − Cer;不站边时去掉「− 1」。

面板 CD =

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

成长城堡游戏机制探索
https://blog.fnxag.eu.org/posts/mechanic-explore/
作者
FnxAg
发布于
2026-07-13
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
FnxAg
aka Ariyara / 一个普通人
分类
标签