游戏开发论坛

 找回密码
 立即注册
搜索
查看: 13213|回复: 4

【数值框架】战斗公式:伤害公式分类

[复制链接]

2

主题

17

帖子

198

积分

注册会员

Rank: 2

积分
198
QQ
发表于 2020-5-15 18:18:18 | 显示全部楼层 |阅读模式
网上关于伤害公式的文章数不胜数,说法也是众说纷纭,一直没有找到一个通俗易懂的科普贴, 自学之路漫长且曲折,回看当初做了很多无用功,写这篇文章也是为了让新人节省一些宝贵的时间。
战斗公式需要讲解的东西太多了,用一篇文章说有点长,所以进行了内容拆分,这一章只讲一件事:伤害公式到底有哪些类型。

伤害公式分类

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+伤害加成[攻]-伤害减免[守])×种族修正×兵种修正×元素修正

总结:
  • 攻击类的拓展属性尽量和基础伤害放在一个括号内,如:神圣攻击
  • 伤害加成类的拓展属性尽量放在不同括号内,如:伤害加成、各种修正
  • 其实就这么简单

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

4

主题

59

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2020-5-18 23:12:02 | 显示全部楼层
点赞,好久没回来论坛了。

0

主题

6

帖子

46

积分

注册会员

Rank: 2

积分
46
发表于 2020-5-29 11:51:44 | 显示全部楼层
写的很好 感谢分享

0

主题

4

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2020-5-29 14:46:14 | 显示全部楼层
楼主什么时候回来啊

0

主题

2

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2023-8-29 10:55:57 | 显示全部楼层
看了这么多伤害公式的帖子 只有你是讲明白了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-12-22 19:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表