高级仇恨系统
对于每一个对精英怪造成伤害的玩家,EliteMobs 都会追踪两个彼此独立的数值:该玩家造成的原始伤害(用于战利品与贡献度奖励),以及仇恨值——决定精英怪攻击谁的仇恨账本。
注:仇恨(aggro)是决定 Boss 将攻击目标锁定到哪名玩家的机制的名称
目标锁定的运作方式
每当有玩家对精英怪造成伤害,EliteMobs 就会为该玩家累加仇恨值,并立即重新评估精英怪的目标。AdvancedAggroManager 会挑选累计仇恨值最高且满足以下条件的玩家:
- 在线、存活且有效
- 与精英怪处于同一世界
- 距离精英怪 35 格以内
在挑选目标时,原始伤害是被刻意不纳入考量的,因此一名伤害较低、但装备了 Loud Strikes 的坦克可以牢牢吸引住 Boss 的注意力。精英怪首次生成时,以及从召唤者那里继承仇恨时,目标也会被重新刷新。
Loud Strikes 的运作方式
Loud Strikes 附魔会提升对 EliteMobs 生成的实体命中时所产生的仇恨值。每件装备的 Loud Strikes 加成等于其附魔等级除以 3,并且会把全部 6 个装备栏位(头盔、胸甲、护腿、靴子、主手和副手)的加成相加。
公式: 产生的仇恨 = 造成的伤害 × (1 + Loud Strikes 总加成)
单件装备的计算: Loud Strikes 加成 = 附魔等级 ÷ 3
示例:
- 完全没有 Loud Strikes = 1.0× 仇恨,因此仇恨与原始伤害完全一致
- 一件装备上有 Loud Strikes III = 3 ÷ 3 = 1.0 加成,因此为 2.0× 仇恨
- 全部 6 个装备栏位都有 Loud Strikes III = 6 × 1.0 = 6.0 总加成,因此为 7.0× 仇恨
- 在总加成为 6.0 的情况下造成 100 点伤害 = 100 × 7.0 = 700 点仇恨
正是这一点让坦克能够在伤害显著低于 DPS 玩家的情况下依然保持仇恨。由于基础倍率是 1,一名完全没有坦克装备的玩家仍然会正常积累仇恨——Loud Strikes 是在其之上叠乘,而不是取而代之。
Loud Strikes 的游戏内默认显示上限为等级 3(maxLevelV2),硬性 maxEnchantmentLevel 为 10,物品价值 value 为 6,并且不会被随机附加到程序生成的物品上——它只出现在自定义物品上,这也正是它成为实例副本坦克装备标志性特征的原因。
你当前的仇恨倍率会显示在玩家状态界面的装备面板上,形式为 1 + Loud Strikes 总加成。
来自召唤物的仇恨继承
会召唤增援的自定义 Boss 可以把自己的仇恨表传递下去。当一个召唤配置了 inheritAggro=true 时,增援会复制召唤者的仇恨账本(但不会复制其伤害/奖励贡献),并立刻从中挑选一个目标。这可以让小怪继续攻击坦克,而不是马上扑向离得最近的人。
技术细节
对于每一名攻击精英怪的玩家,EliteMobs 会记录两个彼此独立的数值:
- 造成的伤害:不含任何修正的纯伤害数字。用于战利品资格、贡献度与奖励。
- 产生的仇恨:伤害乘以
1 + 该玩家的 Loud Strikes 总加成(全部 6 个装备栏位上等级 / 3之和)。仅用于目标锁定。
非有限值或负的 Loud Strikes 数值会被钳制为 0,选择目标时非有限的仇恨条目会被跳过。清除精英怪的战斗状态(clearDamagers)会同时清空这两张表,因此伤害与仇恨不会出现偏离。
常见问题
问:如果我打出了最高伤害,Boss 会不会总是锁定我? 答:只有在你同时拥有最高仇恨时才会。如果没有人穿戴 Loud Strikes,仇恨与伤害成正比,因此伤害最高者就会被锁定。而一旦有坦克堆叠了 Loud Strikes,其仇恨就可能超过伤害更高的玩家。
问:我需要多少 Loud Strikes 才能有效地扛住 Boss? 答:足以让你的仇恨倍率超过与 DPS 的伤害差距即可。全部 6 个栏位都装备 Loud Strikes III 可产生 6.0 的加成,即 7.0× 的仇恨倍率——这意味着你只需打出裸装玩家约七分之一的伤害就能保持仇恨。
问:我能看到自己当前的仇恨倍率吗? 答:可以——玩家状态界面的装备部分会显示它。原始仇恨点数总值不会显示。
问:如果我跑出范围会怎样? 答:距离精英怪超过 35 格的玩家不再是合格目标,因此 Boss 会回退到仍在范围内、仇恨最高的玩家。