跳到主要内容

高级仇恨系统

EliteMobs 会为每个对精英怪造成伤害的玩家追踪两个独立的数值:每名玩家造成的 原始伤害,以及一个 仇恨值(原始伤害乘以该玩家的 Loud Strikes 加成)。

注意:仇恨(aggro)是用来决定 Boss 会以哪名玩家为攻击目标的机制名称

目前的目标选择基于伤害;Loud Strikes 加权尚未接入

EliteMobs 确实 会覆盖怪物的目标选择:每当一个有两名或以上攻击者的精英怪受到攻击时,它会重新将目标锁定为附近(35 格以内)造成 最多原始伤害 的攻击玩家。所以在当前版本中,造成最多伤害通常确实会把 Boss 拉到你身上——目标选择 并非 普通的原版逻辑。

目前 尚未 启用的,是基于 Loud Strikes 加权的仇恨值。独立的 aggro 映射表(原始伤害 × Loud Strikes 加成)虽然会被追踪,但目标选择代码 并不会读取 它。将仇恨与原始伤害解耦,从而让坦克能以更低的伤害维持仇恨,是一项计划中的功能(源代码中称为 "decoupling aggro from damage to allow for tanking mechanics")。Loud Strikes 附魔已经存在,并且已经在为仇恨追踪器提供数据,但它目前还不会改变 Boss 攻击哪名玩家。

设计意图如下:所有精英怪都会在攻击它们的玩家群体中,以仇恨值最高的玩家为目标。Loud Strikes 附魔会成倍提高仇恨的产生量,使坦克即便造成的伤害低于 DPS 玩家,也能建立威胁值。

这一设计是为我们的 实例地下城 准备的,玩家在其中需要扮演坦克和 DPS 的角色。实例地下城 甚至会有专为坦克角色制作的战利品掉落。这些战利品带有一种名为 Loud Strikes 的特殊附魔,它会增加玩家所攻击的任何精英怪产生的仇恨。

Loud Strikes 如何运作

Loud Strikes 附魔会提高对 EliteMobs 生成的实体造成攻击时所产生的仇恨。每件物品的 Loud Strikes 加成等于其附魔等级除以 3,并将全部 6 个装备槽位(头盔、胸甲、护腿、靴子、主手和副手)的加成相加。

公式: 产生的仇恨 = 造成的伤害 × Loud Strikes 总加成

单件物品计算: Loud Strikes 加成 = 附魔等级 ÷ 3

示例:

  • 一件物品上的 Loud Strikes III = 3 ÷ 3 = 1.0 加成
  • 全部 6 个装备槽位上的 Loud Strikes III = 6 × 1.0 = 6.0 总加成
  • 以 6.0 总加成造成 100 点伤害 = 100 × 6.0 = 产生 600 点仇恨

这项设计的目的是让坦克即便造成的伤害远低于 DPS 玩家,也能建立仇恨。请注意,如果没有装备任何 Loud Strikes,加成为 0,因此仇恨追踪器完全由坦克装备驱动(原始伤害则单独追踪)。由于目标选择目前读取的是原始伤害映射表,而不是这个仇恨值,因此 Loud Strikes 暂时还不会影响 Boss 攻击谁。

技术细节

对于每个攻击精英怪的玩家,EliteMobs 会记录两个独立的数值:

  • 造成的伤害:不含任何修正的纯粹伤害数值
  • 产生的仇恨:伤害乘以该玩家的 Loud Strikes 总加成(全部 6 个装备槽位上 level / 3 之和)

基于 Loud Strikes 加权的 仇恨值 目前虽被存储,但目标选择代码并不会读取它,因此它暂时不会改变 Boss 攻击哪名玩家。如今的目标选择由原始 伤害 映射表驱动:当一个有两名或以上攻击者的精英怪受到攻击时,它会重新锁定附近累计原始伤害最高的攻击者。一旦坦克目标选择功能完成,Boss 将改用仇恨值,使带有 Loud Strikes 的装备即便在 DPS 玩家造成更高伤害时也能维持威胁。

常见问题

问:如果我造成了最多伤害,Boss 是否总会以我为目标? 答:在当前版本中,当精英怪有两名或以上攻击者时,它会重新锁定附近造成最多原始伤害的玩家,所以造成最多伤害通常确实会把 Boss 拉到你身上。Loud Strikes 目前还不会覆盖这一逻辑——基于 Loud Strikes 加权的仇恨值会被追踪,但不会用于目标选择。那种基于仇恨的覆盖是一项计划中的功能。

问:我需要多少 Loud Strikes 才能有效地坦住 Boss? 答:一旦仇恨目标选择启用,这将取决于坦克与 DPS 玩家之间的伤害差距。全部 6 个槽位上各一件 Loud Strikes III 可产生 6.0 倍的仇恨加成。目前而言,Loud Strikes 会为仇恨追踪器提供数据,但不会改变目标选择。

问:我能查看自己当前的仇恨值吗? 答:不能。仇恨值不会在游戏内显示。