跳转到内容

Lineage 2/战斗/仇恨机制

来自Wikibooks,开放世界开放书籍

Lineage 2中,战斗是一种生活方式。在PvE战斗中,玩家怪物战斗以获得各种奖励。本文试图解释怪物目标选择背后的AI,并试图说明玩家如何利用它。

特别是,团队游戏依赖于对AI工作原理的良好理解,以便制定出比8个玩家对战1个怪物的想法更有意思的战术。了解AI的工作原理可以使每个专业职业最大化,这可以带来更大的游戏乐趣。

请注意,这个想法并非普遍适用,实际上是理论上的,但似乎与游戏中的观察结果一致。这可能是它在后台的编程方式,但如果没有查看代码,就不可能验证这里的想法。

(我们绝不声称自己在仇恨方面是专家。其他MMORPG可能也有类似的东西,其他人可能已经详细地讨论过它。只是我找不到它。 :))

怪物讨厌你

[编辑 | 编辑源代码]

如果你还没有注意到,怪物并不爱你。事实上,他们简直讨厌你。充其量他们会无视你;最坏的情况下,他们会拿着大砍刀向你冲来——或者更糟。但他们怎么知道该打谁呢?

如果你单人游戏,答案很简单:怪物会选择唯一一个站在它附近挥舞武器或向它施放法术的傻瓜玩家。这相当直截了当。但是当一个队伍中有8个玩家时,怪物只有一个大脑,所以它必须想办法决定攻击谁。那么它是如何挑选的呢?

在现实生活中,一只怪物可能会随机攻击一个玩家。在Lineage 2中,怪物比一般的熊更聪明,实际上会根据一组标准来选择一个玩家。这组标准归结为一个我们可以称为仇恨因素的属性。

仇恨因素

[编辑 | 编辑源代码]

怪物讨厌你。我们已经确定了这一点。但我们真正感兴趣的是它们如何讨厌你,以及当它们非常非常讨厌你的时候意味着什么。


一个实际的例子:

4个玩家(A、B、C和D)围攻一只怪物。怪物会跟踪所有4个玩家的
仇恨因素。玩家A对怪物造成200点伤害,玩家B造成400点伤害,而玩家C和D则无所事事。仇恨因素将分别为200、400、0和0。

怪物会查看这些数据,并决定它最讨厌玩家B,并相应地攻击玩家B。
  -- 大主教

仇恨因素背后的理念是,它是怪物拥有的一个统计数据集合。这组统计数据会因某些情境因素而增加。怪物将使用这组数据在每次攻击前做出目标选择,选择仇恨因素最高的玩家进行攻击。

这意味着,如果8个玩家围攻一只怪物,怪物会维护8个仇恨因素,每个玩家一个。仇恨因素最高的玩家会被怪物攻击。

需要记住的一点:怪物HP怪物仇恨因素关系不大。仇恨因素和HP是独立的统计数据。我们稍后将解释原因。

那么是什么增加了仇恨因素呢?我们可以将其概括为以下类别

  1. 怪物造成的伤害
  2. 玩家进行的治疗
  3. 玩家施加的增益
  4. 怪物施加的减益
  5. 其他特殊情况

我们将依次探讨每一个。

伤害与仇恨因素

[编辑 | 编辑源代码]

我们从造成的伤害开始,因为这是最简单的类别。处理仇恨时的首要规则如下

1 point of damage done is equivalent to 1 point of Hate

(这里的假设是仇恨积累是1:1的。实际上可能并非如此,但为了本文的目的,它可以成立)

这很直截了当,对吧?因此怪物的最大仇恨因素等于它的最大HP,对吧?

错误!

考虑以下情况。玩家A开始攻击怪物X。玩家B过来治疗怪物X——这个坏家伙。A对怪物X造成的伤害将超过它的初始HP,也就是它的最大值。

问题是,仇恨因素必须是一个开放式统计数据;只要怪物还活着,仇恨必须能够继续积累,以便它可以对玩家进行区分攻击。否则,如果玩家C加入到上面的三人行中,并造成相当于怪物X初始HP的伤害,怪物X可能会陷入一种竞态条件,它会在两个玩家之间来回切换——这是一种相当愚蠢的行为。

虽然在直接造成伤害时这一点并不明显,但当我们讨论治疗如何影响仇恨因子时,就会变得更加明显。

(旁注:对于你们中的软件程序员,你们当然会意识到,统计数据的变量存储存在实际限制。实际上,大多数怪物的 HP 永远不会达到这个限制,而且需要一群奇怪的家伙才会主动尝试突破这个限制。所以,软件存储统计数据的限制在这里并不是一个大问题。)

在这种情况下,法师们只是自找麻烦。由于法师拥有AOE法术,他们可以同时攻击多个怪物,因此所有怪物都会对法师感到愤怒。

然而,一个伤害输出较低的小法师,在群体混战中实际上可以不受仇恨的影响。虽然他在帮助削减人群,但每个被击中的怪物对他产生的仇恨值都比对其他更强大的伤害输出者产生的少。因此,法师可以开心地使用法术清理整个混乱,而他们的更强壮的兄弟姐妹则负责解决单个有问题的怪物。
  -- 大主教

只要一个玩家对一个怪物造成伤害,该玩家仇恨因子就会累积。对怪物造成最多伤害的人,将承受怪物的攻击。这对拥有许多伤害输出者坦克很少的队伍来说,有着很大的影响。

坦克顾名思义,抗伤害能力很强,但伤害输出能力不强。因此,如果这条规则是唯一的规则,那么坦克永远无法在队伍中维持对一个怪物仇恨 - 某些伤害输出者会造成几百/几千点的伤害,并立即将仇恨转移到伤害输出者身上。坦克将被迫追赶,而他在纯粹的伤害方面永远无法做到这一点。谢天谢地,坦克有一些技巧可以做到这一点。

关键是:如果一个伤害输出者对一个怪物造成太多伤害,他将得到怪物的全部注意力。如果队伍在猎杀强大的怪物,这可能会导致一个非常非常死的伤害输出者非常非常快。因此,伤害输出者必须注意,确保他们不要造成太多伤害,从而吸引错误的注意力,而坦克则必须注意,将怪物仇恨维持在自己身上。


治疗和仇恨因子

[编辑 | 编辑源代码]

造成伤害和仇恨很简单; 你对一个怪物造成更多伤害,怪物就越仇恨你。如果这是世界上唯一的规则,那么我们只需要坦克治疗者,而治疗者将拥有一个相当无聊但至关重要的工作。

AI 介入以让治疗者(不)开心地忙碌起来

1 point of damage healed to any player fighting the mob
is equivalent to 1 point of Hate. This is cummulative.

(这里的假设是仇恨积累是1:1的。实际上可能并非如此,但为了本文的目的,它可以成立)


一个实际例子:

玩家A击中一个怪物10次,每次造成10点伤害。他对自己产生了100点的仇恨

玩家B,作为一个路过的善良灵魂(不在玩家A的小队中),治疗了玩家A 200点。她对自己产生了200点的仇恨,怪物朝她追去。
  -- 大主教

哈哈。现在治疗者有一些乐趣了。请注意,这两个玩家甚至不需要在同一个队伍中; 请参阅调用以获取一个实际示例。

虽然在两人小队中这一点很简单 - 仇恨会落在治疗者或其他玩家身上,但在更大的队伍中,情况会变得更加...有趣...

考虑一个6人队伍,5个伤害输出者和1个治疗者。5个伤害输出者每个击中一个怪物造成50点伤害,每个伤害输出者产生50点的仇恨治疗者使用群体治疗,为所有玩家治疗了50点。所以,怪物对每个人都仇恨了50点,对吧?

错误!

治疗仇恨是累积的。在本例中,治疗者治疗了5个与怪物战斗的玩家,每个玩家治疗了50点。因此,治疗者获得了250点仇恨怪物现在将追赶治疗者,而伤害输出者很难将其吸引走,特别是如果治疗者反击或继续治疗自己(这是很可能的)。

在团队游戏中,这是治疗者和队伍领导者必须注意的两个主要问题之一。在战斗中治疗玩家可能是必要的,但这可能会导致治疗者非常非常地死亡,特别是如果这是一个高等级的治疗者与低等级的伤害输出者组队 - 当试图帮助队伍成员升级时,这种情况很常见。


了解所有这些信息让我发现了一个绝望的策略。在绝望的时候(例如,队伍集体被狠狠地踢了屁股...),治疗者可以疯狂地施放治疗来吸引仇恨。这使得治疗者暂时成为坦克,让伤害输出者可以快速消灭怪物,但由于治疗者穿着的盔甲很少,伤害输出者最好能快速地做到这一点。
  -- 大主教

这是因为治疗者在一个治疗中释放的治疗量,可以远远超过伤害输出者造成的伤害,以至于怪物无法仅仅依靠伤害将其吸引走。在这种情况下 - 特别是对高等级的团队怪物 - 治疗者通常会受到太多伤害。

群体治疗也是一个棘手的问题。群体治疗在紧急情况下和为了效率起见非常有用,但在战斗中使用它无异于自杀 - 很可能怪物立即追赶治疗者,因为治疗者累积了大量的仇恨。当你的队伍同时攻击一群怪物时尤其如此 - 如果你使用群体治疗每个怪物都会向你冲来!

显而易见的解决办法是在战斗中不要治疗,但这毫无意义 - 你必须为你的队伍成员加满血,否则要么付出高昂的复活代价,要么你(治疗者)也会死亡。这里的诀窍是在战斗中治疗单个队伍成员,并将群体治疗留给非战斗情况,或将治疗留到战斗后期,此时被怪物仇恨变得无关紧要,因为它很快就会死亡。

此外,在队伍中拥有一个真正的坦克(不是一个伪坦克),并且知道自己在做什么,将对保护治疗者的性命大有帮助。 坦克知道如何将仇恨治疗者身上转移,并且他拥有这样做的技能,所以在队伍中拥有一个坦克会非常有效。

增益、减益和仇恨因子

[编辑 | 编辑源代码]

所以,我们已经看到,直接伤害(普通和魔法)以及治疗攻击怪物的队伍,都会增加怪物对队伍成员的仇恨。但增益和减益不会直接伤害怪物,所以增益者应该没问题吧?

错误!

规则#3

Buffs and Debuffs add a predetermined amount of Hate against the caster.
This may be cummulative.

现在,这不是很棒吗?即使是辅助者也可以加入到乐趣中!增益和减益会对仇恨因子增加一定量;具体增加了多少尚不清楚,而且可能因增益而异。找出答案的唯一方法是组队并进行彻底的测试。

影响

[edit | edit source]
我用诅咒:虚弱来练级我的狼,它对怪物产生了仇恨——实际上很多。对于孢子真菌仇恨足以让我的狼在没有引起额外注意的情况下几乎杀死它;只有在最后几点的伤害时,真菌才会转向我的狼。如果网上资料可信,真菌大约有 226 点生命值,所以这大概就是诅咒:虚弱对怪物造成的 200 点仇恨
  -- Luthien,精灵神秘学者

由于大多数治疗者也是辅助者,所以这是该职业面临的第二个主要问题。辅助在团队作战中被认为非常重要;辅助,尤其是团队辅助,可以为每个团队成员在战斗中提供巨大的加成。

然而,与治疗类似,通过战斗中的辅助积累的仇恨因子可能是累积的(这并不确定)。如果是这样的话,如果一个辅助对仇恨因子增加 100 点,辅助 8 个团队成员将积累 800 点仇恨,而这很难转移给其他人。

不过,与治疗不同,辅助不是一件关键的事情;你可以在没有辅助的情况下暂时存活(或者应该能够)。因此,辅助者可以采取的最简单和最有效的预防措施是,坚持要求所有团队成员在辅助之前停止攻击怪物,并且在每个人都辅助完毕之前,不要去挑衅。

这条规则可以利用到你的优势,正如右边的评论所示;减益可以作为一种廉价的嘲讽,让怪物朝着你(并保持)你的方向前进,并且同时削弱他们的能力。考虑到施放诅咒:虚弱只需要 3 点MP,并且射程为 600,它非常有效!

情景仇恨

[edit | edit source]

现在,既然你知道,

  • 攻击怪物
  • 治疗你的朋友
  • 辅助/ 减益

会让怪物憎恨你。但这不是让他们憎恨你的唯一方法!到目前为止,我们已经讨论了假设怪物个体之间没有社会联系且不具有攻击性。当然,这不是一个非常现实的世界观;Lineage 2充满了特别具有攻击性的怪物,而且许多怪物在社会上很活跃。那么仇恨在这里是如何发挥作用的呢?

仇恨和具有攻击性的怪物

[edit | edit source]
这并不是一个大问题。大多数时候,玩家会避开已知的具有攻击性的怪物,并且只有在他们想要与怪物交战时才会靠近它。只有在怪物没有被认为是具有攻击性的,或者更糟糕的是,有人惹恼了被动怪物,从而将其变成了攻击模式时,这才会成为一个问题。此时,这很大程度上取决于玩家是想逃跑还是战斗。

说了这么多,了解怪物的行为是有益的,这样你就可以利用它。更不用说,它能帮助你理解为什么在可能遇到十几个怪物的时候
是一个好主意。
  -- 大主教


由于我们只能观察怪物的行为,我们只能对仇恨在这些情况下是如何运作的做出一些推断。第一个推断是,每个怪物都有一个侦测范围;如果玩家最终处于它的侦测范围内,AI 会检查怪物是否真的检测到了玩家(即使对于具有攻击性的怪物,也有可能完全偷偷地从它们身边溜过)。如果怪物没有检测到玩家,那么什么都不会发生;如果怪物检测到玩家,它会检查是否应该具有攻击性。如果是,则会对玩家产生一定(未明确说明的)仇恨,并且怪物会追逐玩家。

是的,仅仅身处具有攻击性的怪物附近就会增加怪物对你的仇恨。这就是为什么其他玩家可以通过攻击怪物来吸引追逐的怪物的原因——攻击所产生的仇恨超过了仅仅身处错误地点错误时间所产生的仇恨

影响

[edit | edit source]

如果你激怒了怪物,它已经对你产生了仇恨。如果你不(或不能)摆脱怪物,不要对它造成更多伤害,或者进行治疗(除非绝对必要)或辅助/ 减益(同样,除非它有所帮助,例如束缚怪物。这样做只会让其他人更难从你那里吸引怪物。一旦你决定逃跑,就停止想着伤害怪物,只管

仇恨和社会性怪物

[edit | edit source]

那么社会性怪物呢?

现在,社会性怪物要复杂一些。它们仍然有一个侦测范围,并且仍然试图检测你,但如果它们不是具有攻击性的,它们不会做太多事情。然而,社会性怪物也会检查它们应该与之保持社会联系的任何怪物是否在该范围内被攻击。如果有一个被攻击,怪物会对攻击玩家产生一定(未明确说明的)仇恨,并追逐玩家。

不清楚的是,当多个玩家(例如玩家 A、B、C 和 D)攻击怪物 X 时,社会性怪物 Y 将如何决定攻击哪一个?这可能是完全随机的,但这不太可能,因为这会导致很多麻烦。如果例如 C 只是治疗团队,情况会更加复杂。那么怪物 Y 应该攻击 C(这实际上在战术上是合理的)吗?

一种理论——而且完全是一种理论——是,附近的社会性怪物会根据被攻击的怪物所发生的事情获得仇恨。所以在上面的情况下,玩家 A 对怪物 X 造成了 100 点伤害,玩家 B 造成了 300 点伤害,玩家 C 治疗了总共 100 点,玩家 D 对怪物 X 造成了减益,怪物 X 和怪物 Y 获得的仇恨如下所示

怪物 X 怪物 Y
玩家 A 100 100
玩家 B 300 300
玩家 C 100 100
玩家 D 假定 200
(见以上部分)
假定 200
(见以上部分)

所以,如果上述理论成立,怪物 X 怪物 Y 都会攻击玩家 B,随后每个怪物都会开始单独积累仇恨

当然,它比上面所述要复杂得多。一方面,怪物 Y 不太可能简单地对朋友怪物 X 所受到的伤害与它本身所受到的伤害给予同等重视。更有可能的是,怪物 Y 会因为怪物 X 的战斗而产生仇恨,其比率低于它自身经历的任何战斗的比率。例如,如果比率为 50%,表格将如下所示

怪物 X 怪物 Y
玩家 A 100 50
玩家 B 300 150
玩家 C 100 50
玩家 D 假定 200
(见以上部分)
假定 100
(见以上部分)

这意味着怪物 Y 仍然会追逐玩家 B……但当它变成一场大规模混战,尤其是当核弹手参与进来时,拥有一个较低的比率会降低怪物 Y 做出一些愚蠢的事情的可能性,例如,忽略一个对它造成数千点伤害的玩家,而去追逐一个还没有接触过怪物 Y 的核弹手。

当然,这个比率到底是什么,甚至是否在所有怪物中都是恒定的,目前还不清楚。另一个未知的是,如果一群攻击怪物 X 的玩家正好位于怪物 Y 的侦测范围的边缘,会发生什么?例如,如果玩家 B 是一个核弹手,并且他在怪物 Y 的侦测范围之外对怪物 X 使用核弹,那么怪物 Y 会增加它对玩家 B 的仇恨吗?如果玩家 C,一个治疗者,治疗玩家 A(在怪物 Y 的范围内)和玩家 B(不在范围内),那么怪物 Y 对玩家 C 产生多少仇恨

此外,当怪物 Y 是一个具有攻击性的社会性怪物,而怪物 X 是一个被动的社会性怪物时,会发生什么?如果怪物 Z 出现怎么办?或者怪物 S、T、U、V 和 W 呢?当玩家 E、F、G 和 H 出现时又会怎么样?一场大规模混战不可避免地会产生大量的荒谬。

影响

[edit | edit source]

仇恨与社会性怪物之间的关系尤其难以确定。两个社会性怪物这样简单的场景仍然可以处理,但是当你有数十个怪物和玩家(例如在某些地下城中)时,谈论仇恨就变得毫无用处——转向你的怪物是在那个时间点对你仇恨最大的怪物。

归根结底,我们可以将仇恨和社会性怪物简化为以下几点:如果社会性怪物看到你对另一个与它友好的怪物不好,那么它很可能会对你感到厌烦。如果你在一个团队中,它会对哪个成员感到厌烦是盲目的运气(因为因素并不为人所知),所以最好不要让社会性怪物看到你。

专门的仇恨

[edit | edit source]

Lineage 2提供了一些专门的与仇恨相关的技能,使事情更加有趣。这些技能通常用于玩家的优势,所以不使用它们是愚蠢的。

(待续。:)

理论上的仇恨

[edit | edit source]
为什么我们要增加仇恨的可能性?因为仇恨可以用来赋予NPC/怪物与玩家角色相似的智能和行为。例如,一个攻击光精灵优先的黑暗精灵NPC符合故事背景,并增强了玩家对故事的沉浸感。反之亦然——可以使光精灵NPC对光精灵玩家角色的仇恨降低,让玩家角色感受到NPC不愿意攻击自己种族成员的感觉。

更不用说,你可以使用仇恨使单个怪物或怪物群组对玩家角色更加智能,甚至更加致命——当然,这一切都是为了挑战。
  -- 大主教

现在您已经了解了仇恨机制的工作原理,我们可以开始讨论如何利用仇恨使游戏对玩家角色更加“有趣”。以下是一些值得一提的理论情况,但这些情况尚未得到证实或观察。

仇恨工作

[编辑 | 编辑源代码]

如果你全面思考仇恨机制,你就会意识到,可以使怪物根据玩家角色的某些独特标识符,对玩家角色产生不平等的反应。一个非常简单的例子就是增加针对特定职业的仇恨增量。例如,一个拥有猎杀法师行为的怪物,可以简单地调整为对法师职业增加更多的仇恨,或者在侦测范围内对所有法师职业进行一次性仇恨提升。这样,这个特定的怪物看起来就更倾向于攻击法师。

仇恨种族

[编辑 | 编辑源代码]

或者,可以设置怪物根据玩家角色的种族增加仇恨。例如,一个黑暗精灵NPC/守卫可以设置为优先攻击光精灵——在其他条件相同的情况下,它会优先攻击队伍中的光精灵。

可以使一个兽人怪物对兽人玩家角色的仇恨减少,并向玩家展示兽人怪物害怕更发达的兽人——也就是玩家角色。这可以在游戏中带来更多可能性,因为队伍会想要包含特定种族,因为队伍打算探索特定种族有优势的区域。

仇恨业力

[编辑 | 编辑源代码]

从某种意义上说,我们已经看到了这种行为的实现;城镇/村庄守卫会优先攻击拥有业力(红名)的玩家,而忽略其他玩家。鉴于在编程上更容易复用守卫的怪物战斗行为,守卫很可能就是一种特殊怪物,当拥有特定标识符(正业力)的玩家角色进入其侦测范围时,就会触发仇恨。

进一步扩展,我们可以拥有更多基于阵营的怪物,类似于龙与地下城的怪物。可以创建“守序”的怪物,这些怪物会无视业力为零的玩家角色,而对拥有业力的玩家角色极具攻击性。或者,我们可以创造一些区域,让怪物优先攻击低业力玩家,使这个地方感觉像是一个邪恶的巢穴,并为 PvP/PKer 提供一个安全狩猎的地方。

整合仇恨

[编辑 | 编辑源代码]

正如您所见,将怪物的仇恨集中在特定类型的玩家角色或属性上,可以有效地创造特定环境。然而,当将几种不同的仇恨焦点组合在一起时,它就会变得非常强大。一个区域是为彼此有社会关系的怪物设置不同的仇恨焦点;这使得怪物群组拥有危险级别的智能和团队合作能力。

例如,一组怪物由 3 个独立的怪物组成(怪物 A、B 和 C)。这些怪物被设置为作为一个社会群体一起出现,或者在某个狩猎区域内保持社会关系。这些怪物的设置如下:

  • 怪物 A 被设置为普遍具有攻击性
  • 怪物 B 被设置为优先攻击法师/治疗师
  • 怪物 C 被设置为优先攻击伤害输出/弓箭手

对玩家角色而言,可能会发生这样一种令人不快的情况:怪物 A 被意外触发,怪物 B 和 C 被社会关系吸引而来。通常情况下,玩家角色会创造一种让所有怪物都集中攻击指定坦克的情况,但在这个例子中,情况并非如此。怪物 A 会攻击坦克(让它忙着),怪物 C 会消灭远程支援/伤害输出,而怪物 B 会消灭魔法支援。

一个平衡的队伍是建立在每个专家都可以自由专注于其任务的基础上的,通常他们会集中多个玩家角色攻击一个怪物,以便快速消灭每个怪物,这样他们就可以以最小的消耗继续前进。这种基于仇恨的优先攻击方式会打破团队合作,导致每个成员都自顾自地防守,从而使队伍难以有效地战斗。值得庆幸的是,这种行为在目前还尚未在Lineage 2中出现。

华夏公益教科书