跳轉到內容

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中出現。

華夏公益教科書