跳到主要内容

高级仇恨系统

对于每一个对精英怪造成伤害的玩家,EliteMobs 都会追踪两个彼此独立的数值:该玩家造成的原始伤害(用于战利品与贡献度奖励),以及仇恨值——决定精英怪攻击谁的仇恨账本。

注:仇恨(aggro)是决定 Boss 将攻击目标锁定到哪名玩家的机制的名称

目标锁定的运作方式​

每当有玩家对精英怪造成伤害,EliteMobs 就会为该玩家累加仇恨值,并立即重新评估精英怪的目标。AdvancedAggroManager 会挑选累计仇恨值最高且满足以下条件的玩家:

  • 在线、存活且有效
  • 处于生存或冒险模式
  • 与精英怪处于同一世界
  • 距离精英怪 35 格以内

在挑选目标时,原始伤害是被刻意不纳入考量的,因此一名伤害较低、但装备了 Loud Strikes 的坦克可以牢牢吸引住 Boss 的注意力。精英怪首次生成时,以及从召唤者那里继承仇恨时,目标也会被重新刷新。

这些检查在重新评估目标时进行,并不持续监控距离。如果没有符合条件的玩家拥有有限的仇恨记录,管理器会保留现有目标,而不是清除目标。

Loud Strikes 的运作方式​

Loud Strikes 附魔会提升对 EliteMobs 生成的实体命中时所产生的仇恨值。每件装备的 Loud Strikes 加成等于其附魔等级除以 3,并且会把全部 6 个装备栏位(头盔、胸甲、护腿、靴子、主手和副手)的加成相加。

公式: 伤害产生的仇恨 = 造成的伤害 × (1 + Loud Strikes 总加成) × 职业仇恨系数

当玩家的高级战斗职业处于生效状态,且根职业系为 spellcaster 时,职业系数为 0.8;否则为 1。嘲讽等直接添加仇恨的行为不会增加伤害贡献,也不使用此公式。以下示例均使用职业系数 1。

单件装备的计算: 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 是在其之上叠乘,而不是取而代之。

随附的 elitemobs:loud_strikes 定义将附魔上限设为 10(maxLevel),物品价值 parameters.value 为 6,且 parameters.procedural: false。明确配置的超上限等级会被保留。请使用当前的共享附魔格式,而不是已弃用的 maxLevelV2 和 maxEnchantmentLevel 字段。

玩家状态界面的装备面板显示装备倍率 1 + Loud Strikes 总加成,不包含 Spellcaster 职业系数或直接添加的仇恨。

来自召唤物的仇恨继承​

会召唤增援的自定义 Boss 可以把自己的仇恨表传递下去。当一个召唤配置了 inheritAggro=true 时,增援会复制召唤者的仇恨账本(但不会复制其伤害/奖励贡献),并立刻从中挑选一个目标。这可以让小怪继续攻击坦克,而不是马上扑向离得最近的人。

技术细节​

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

  • 造成的伤害:应用仇恨倍率之前记录的战斗伤害。用于战利品资格、贡献度与奖励。
  • 产生的仇恨:伤害乘以 1 + 该玩家的 Loud Strikes 总加成(全部 6 个装备栏位上 level / 3 之和),再乘以上述职业系数。直接添加的仇恨也记入此表。仅用于目标锁定。

非有限值或负的 Loud Strikes 数值会被钳制为 0,选择目标时非有限的仇恨条目会被跳过。清除精英怪的战斗状态(clearDamagers)会同时清空这两张表,因此伤害与仇恨不会出现偏离。

常见问题​

问:如果我打出了最高伤害,Boss 会不会总是锁定我? 答:只有在你是符合条件的玩家中仇恨最高的,且没有有效嘲讽优先指定目标时才会。伤害排名与仇恨排名仅在各玩家倍率相同且没有单独添加仇恨时一致。Loud Strikes 可以让伤害较低的坦克超过伤害较高玩家的仇恨。

问:我需要多少 Loud Strikes 才能有效地扛住 Boss? 答:足以让你的仇恨倍率超过与 DPS 的伤害差距即可。全部 6 个栏位都装备 Loud Strikes III 可产生 6.0 的加成,即 7.0× 的仇恨倍率——这意味着你只需打出裸装玩家约七分之一的伤害就能保持仇恨。

问:我能看到自己当前的仇恨倍率吗? 答:装备部分显示装备倍率,不包含职业系数、直接添加的仇恨或累计仇恨总值。

问:如果我跑出范围会怎样? 答:在下一次目标更新时,超过 35 格的玩家会被排除。管理器会选择符合条件且仇恨最高的玩家;如果没有这样的玩家,则保留现有目标。

有效嘲讽优先于累积仇恨,前提是目标在线、存活、处于生存或冒险模式、位于同一世界且距离不超过 35 格。目标不再符合条件时会清除强制目标。职业系统详见[Alpha] Advanced Combat System。