admin 发表于 2020-6-3 21:42:49

战斗公式:伤害公式分类--战斗数值框架分享

网上关于伤害公式的文章数不胜数,说法也是众说纷纭,一直没有找到一个通俗易懂的科普贴, 自学之路漫长且曲折,回看当初做了很多无用功,写这篇文章也是为了让新人节省一些宝贵的时间。战斗公式需要讲解的东西太多了,用一篇文章说有点长,所以进行了内容拆分,这一章只讲一件事:伤害公式到底有哪些类型。
伤害公式分类
1.两个基础认知:
[*]伤害公式的种类非常之多,以至于不可能完全罗列,所以绝不止市面上常说的【减法公式】和【乘/除法公式】这两类。
[*]几乎所有中、大型项目都会同时使用多种伤害公式,以保证游戏策略的丰富性。
【举例1】伤害=当前血量[敌]×n%【举例2】伤害=最大血量[己]×n%【举例3】伤害=(攻击[己]-防御[敌])×当前血量[己]/最大血量[敌]×n%
为了方便理解,我将伤害公式分为了【特殊类】和【基础类】两大类别:
[*]特殊类:就像是方言,虽然使用的范围小,但是十分具有地方特色。
[*]基础类:就像是普通话,使用范围广,具有普遍认知度。

2. 特殊类伤害公式:
[*]这类伤害公式,主要用于技能伤害,制造英雄/职业个性化差异,丰富玩法策略。
[*]上面举的3个例子都是特殊类伤害公式

3. 基础类伤害公式:ps:下文进攻方简化为[攻],防守方简化为[守]
[*]游戏底层公式,用于大多数情况的伤害结算。
[*]基础类分为减法和乘法两大类型,其他的全部为衍生类型:
【减法公式】伤害=攻击[攻]-防御[守]【乘法公式】伤害=攻击[攻]×(1-免伤[守])                              =攻击[攻]×(1-防御[守]/(防御[守]+n))PS:这里的免伤指的是防御来带的免伤,其他免伤类型和防御免伤不在同一个层级,最后会说。
4减法衍生公式:
[*]减法衍生公式较为简单,就是对伤害进行一个倍率修正,就不过多阐述了。

5乘法衍生公式:
[*]我上面说基础类伤害公式只有减法、乘法两大类,却偏偏没有说除法,这是为什么?因为除法本质上也是乘法公式!
[*]乘法公式中的免伤=防御[守]/(防御[守]+n),这是免伤的基础公式,其中n为修正系数,n的修正方式决定了不同的衍生公式!
[*]下面做几个实例讲解:

【英雄联盟】
[*]n=100,当n为常量时仅仅是对防御数量级的修正,防御数量级一般在n的0%~400%之间,负值处理可以参考dota
[*]免伤=防御/(防御+100)
[*]展示公式:伤害=攻击[攻]×(1-护甲[守]/(护甲[守]+100))

【魔兽世界】
[*]n=400+85×等级[攻],额外增加了攻方的等级修正,当攻方等级提升时,防守方需要增加防御值以维持当前免伤,但防御的投放受限于等级。
[*]免伤=护甲[守]/(护甲[守]+400+85×等级[攻])
[*]展示公式:伤害=攻击[攻]×(1-护甲[守]/(护甲[守]+400+85×等级[攻]))

【苍之纪元】 (又称之为除法公式)
[*]n=攻击[攻],额外增加了攻方的攻击修正,防御属性的投放不再依赖于等级,可以伴随攻击的投放而投放。
[*]免伤=防御[敌]/(防御[敌]+攻击[攻])
[*]展示公式:伤害=攻击[攻]×(1-防御[敌]/(防御[敌]+攻击[攻]))
                              =攻击[攻]^2/(防御[敌]+攻击[攻])
【其他】
[*]n=攻击强度[攻],解决了除法公式攻击收益过高的问题,防御的投放伴随攻击强度的投放
[*]n=战力[攻],加入战力压制,解决了战力不准的问题。。。有点硬核,哈哈哈

6属性补充上面的公式属于公式的基础部分,只有血量、攻击、防御3个属性,如果要增加更多属性类型,应该增加到哪个层级呢?举一个完整公式的例子:设:基础伤害=攻击[攻]-防御[守]最终伤害=((基础伤害+神圣攻击[攻]-神圣防御[守])×技能倍率[攻]+技能附加伤害[攻])×(1+伤害加成[攻]-伤害减免[守])×种族修正×兵种修正×元素修正
总结:
[*]攻击类的拓展属性尽量和基础伤害放在一个括号内,如:神圣攻击
[*]伤害加成类的拓展属性尽量放在不同括号内,如:伤害加成、各种修正
[*]其实就这么简单

伤害公式的分类讲完了,下一讲会重点讲一下减法公式的优劣以及使用细节。

WilliamCak 发表于 2020-12-24 19:42:39

-

I am sorry, that I interrupt you, but it is necessary for me little bit more information.

zhangsanlisi 发表于 2021-9-18 11:53:43

这个可以
页: [1]
查看完整版本: 战斗公式:伤害公式分类--战斗数值框架分享