電腦人BOT

From Team Fortress Wiki
< Bots
Revision as of 05:07, 3 November 2019 by Zyox123cc (talk | contribs) (標靶電腦人指令)
Jump to: navigation, search
這個頁面是介紹在遊戲中的絕地要塞2的電腦人。關於絕地要塞官方維基百科的電腦人BOT,請參閱絕地要塞官方維基百科的電腦人BOT。關於在絕地要塞經典版的電腦人BOT,請參閱電腦人(絕地要塞經典版)。關於在曼恩 vs. 機器更新的機器人,請參閱機器人
一個火箭兵電腦人。在Dustbowl的訓練地圖內。
我的拳頭!它們真的是用做的!
重裝兵電腦人對自己的認知

在TF2的電腦人(BOT),有兩種模式:「人工智慧電腦人」和「標靶電腦人」。人工智慧電腦人是以一連串複雜的程式碼做出來,在遊戲中模仿真人玩家,可對戰的人工智慧。標靶電腦人就沒有人工智慧程式碼,只會呆站在原地,但他們在玩家測試武器或當標靶時很有用。標靶電腦人需要伺服器開啟作弊碼才能使用。這意味著在使用這種電腦人時,成就並不會被達成。

人工智慧電腦人(簡稱AI BOT)

AI Bot是被設計來模仿人類玩家,動作自主,讓真人可和它們對戰的電腦人。除此之外,他們選兵種時是隨機挑伺服器選的。它們使用了和惡靈勢力系列裡的AI相同的複雜程式碼。[1]AI Bot不需要伺服器開啟作弊碼就能使用,因此,你在和它們對戰時,成就仍可以達成。不過,因為電腦人不會看死亡觀察攝影機,所以陣亡後對它們的嘲諷成就還是無法解開。

AI Bots也有一些經常會出現的行為:

  • 準備時間(Setup time)時,有在你的準心上的AI電腦人都會做嘲諷動作。
  • 如果你按下請求治療鈕(預設E鍵),任何同隊的醫護兵電腦人都會過來醫治你。.
  • 如果一個醫護兵正醫治你,而且醫療槍電量也達 100%時,按下「前進!」(Z-3)或「啟動ÜberCharge!」(X-7)聲音指令會讓那個醫護兵電腦人啟動他的醫療槍無敵。
  • AI Bots 有時會自行喊出「間諜!」或是「往前!」等聲音指令,但是文字並不會出現在聊天對話框中。

現在人工智慧BOT的情況:

更精進的 AIBot 現在正在 beta 測試中,到時釋出會比現行的版本更好。無帽日更新後,所有兵種的 AI 系統都設定的很好,包括之前一直無法表現得很好的間諜也是。AI Bot 目前只在官方的山丘之王、一些彈頭車地圖、攻擊防禦控制點地圖如DustbowlGorge爭奪情報箱地圖、曼恩莊園地圖才會正常行動(在後兩者的地圖中,電腦人必須鍵入tf_bot_add指令才會出現)。在非官方地圖叫出人工智慧電腦人是可能的,但是他們就不會像官方地圖一樣運作自如了。

註:有許多受歡迎的非官方地圖,已經做出電腦人運作包

在沒 AI BOT 支援的地圖叫出電腦人:

  1. 在控制台(console)鍵入"sv_cheats 1"
  2. 再鍵入"nav_generate"
  3. 等待電腦畫出AI路徑
  4. 地圖會重新載入(路徑已經被儲存了,所以之前的動作不需重複)
  5. 再打開控制台,鍵入"tf_bot_add <數字>"叫出電腦人。

你可以在任何地圖鍵入這些指令,叫出電腦人,但是最後一行指令必須要依情況,鍵入數字,叫出適當數量的電腦人。

AI電腦人特徵

  • 電腦人目前為止不能使用任何非基本武器,或是戴上帽子和配帶其他物品
  • 在簡單難度下,電腦人多數情況都會使用,甚至只使用,他們的主要武器。
  • 簡單難度下不會有間諜狙擊手的電腦人;他們只出現在普通或以上的難度。
  • 電腦人目前為止不會火箭跳黏彈跳,也不會搬運建築物。(工程師電腦人在轉移陣地時會直接破壞他們的建築物)
  • 如果電腦人成功殺了一個玩家,它們很有可能會當場做出嘲諷,即使他們仍被敵方攻擊時也一樣。
  • 間諜電腦人(以及玩家)在偽裝時會被其他電腦人正確地忽略。然而,在電腦人發現敵方間諜被「撞」到、放置電子破壞器、使用武器、或者隱形時,他們會將其視為敵人,不會忘記,直到間諜在視線外改變偽裝或者他們死亡為止。
  • 電腦人控制的火焰兵會很頻繁的使用壓縮氣爆來反彈飛行物。
  • 醫護兵會在醫治狙擊手或工程師之前,先治療其他的兵種,就算呼叫醫護兵的聲音指令被執行也一樣。
  • 準備好ÜberCharge的醫護兵電腦人會在受傷的瞬間馬上啟動ÜberCharge。
  • 在專家難度下,如果一個偽裝的間諜看到敵方間諜啟動隱身,無論隱身有無失效,他都有辦法跟蹤對方。
  • 電腦人在準備時間不會攻擊,除非他們先被攻擊。(正在放黏彈的爆破兵除外)
  • 工程師電腦人可能會在奇怪的地方蓋步哨,接著摧毀它,然後尋找金屬好重蓋一個,接著不斷重複這個流程。
  • 工程師電腦人傾向不升級傳送器,有時他們也不會修理步哨,儘管在閒暇時也一樣。
  • 除了工程師、狙擊手跟間諜以外的電腦人,在攻擊/防禦控制點模式或者彈頭車模式的準備時間,會待在他們的出生點不動。

目前有電腦人功能的官方地圖

AI Bot指令

在有支援AI Bot的地圖中使用AI Bot,伺服器的管理員應該會在控制台(console:按下~鍵打開)打入以下指令:

指令碼 功用描述
tf_bot_add 這指令會在地圖中叫出一個或更多個隨機兵種,隨機隊伍的電腦人。他們會以"設計過的名子"被命名。
語法
tf_bot_add [<count>] [<class>] [<team>] [<difficulty>]
參數
<count>
設定有多少個電腦人會被叫出。如果忽略這項,就只會有一個BOT被叫出。
設定數字時要注意真人玩家和電腦人總人數的最大值。如果伺服器的人數最大值為24,只有一名真人玩家時,你應該只叫出最多23名AI BOT。超過的話會讓叫出的BOT站在原地。
<class>
設定兵種名稱。應打入:DemomanEngineerHeavyweaponsMedicPyroScoutSoldierSniperSpy
<team>
設定電腦人應加入哪個隊伍。會是:redblue
<difficulty>
設定電腦人的實力,難度。鍵入:easynormal 或hard
例子
tf_bot_add red 3 heavyweapons easy ---> 會叫出3個難度簡單的重裝兵到紅隊。
tf_bot_difficulty 設定所有加入的電腦人的難度。
語法
tf_bot_difficulty <level>
參數
<level>
設定所有加入的電腦人的難度。參數會是: 0=簡單,1=中等,2=難,3=專家。預設值是中等(1)。
例子
tf_bot_difficulty 2 --->會使這段指令後所有叫出的電腦人的難度為"難"。
tf_bot_force_class 如果設定成某個兵種的名稱,所有電腦人會重生轉成那個兵種。
語法
tf_bot_force_class <class>
參數
<class>
兵種名稱可以是以下字串值:DemomanEngineerHeavyWeaponsMedicPyroScoutSoldierSniperSpy。預設值為""(空白)。
例子
tf_bot_force_class medic ---> 會使所有的電腦人職業都固定成Medic不變。
tf_bot_join_after_player 如果值非0,電腦人會等到至少一個玩家進入遊戲後才加入遊戲。
語法
tf_bot_join_after_player <integer>
參數
<integer>
只能是0或1。預設值為1(啟用)。
例子
tf_bot_join_after_player 0 ---> 會讓所有電腦人加入遊戲,即使隊伍裡沒有任何人類玩家。
tf_bot_keep_class_after_death 如果值為0,電腦人在重生時會換兵種。
語法
tf_bot_keep_class_after_death <integer>
參數
<integer>
只能是0或1。預設值為0(禁用)。
例子
tf_bot_keep_class_after_death 1 --->使電腦人不會換兵種。
tf_bot_kick

這個指令會踢除任一或所有電腦人。

語法
tf_bot_kick <name/all>
參數
<name/all>
指定一個電腦人的名字,或是踢除所有電腦人。
例子
tf_bot_kick CEDA ---> 會把叫做「CEDA」的電腦人踢除(如果有的話)。
tf_bot_prefix_name_with_difficulty 如果值非0,會在電腦人的名字附上該名電腦人的難度等級。
語法
tf_bot_prefix_name_with_difficulty <integer>
參數
<integer>
只能是0或1。預設值為0(禁用)。
例子
tf_bot_prefix_name_with_difficulty 1 ---> 會讓加進來的電腦人有像是「1 Aimbot(普通難度)」和「3 Saxton Hale(專家難度)」等的名字。
tf_bot_quota 設定伺服器裡的電腦人總數。只在tf_bot_quota_mode的值是fill或match的時候才有作用。
語法
tf_bot_quota <integer>
參數
<integer>
值可以是0到伺服器玩家上限的數字。預設值是0。
例子
tf_bot_quota 2 --->如果tf_bot_quota_mode值為match,則會依照一名人類玩家:兩名電腦人的比例加入電腦人。
tf_bot_quota_mode 設定加入電腦人的方式。
語法
tf_bot_quota_mode<normal/fill/match>
參數
normal/fill/match
如果值為normal,則在沒有特定指令的情況下伺服器不會增加/移除任何電腦人,且tf_bot_quota指令將會沒有作用。
如果值為fill,則伺服器會調整電腦人數量好讓伺服器保持至少有N名玩家,其中N為tf_bot_quota的數值。
如果值為match,則伺服器會保持1名人類玩家:N名電腦人的比,其中N為tf_bot_quota的數值。
例子
tf_bot_quota_mode fill ---> 伺服器將會確保遊戲中有(bot_quota值 - 人類玩家數量)個電腦人。

標靶電腦人

標靶電腦人並沒有AI也不會靠自己移動。這些電腦人可以像機器人一樣的使用,操作者可以命令他們跟著玩家到處亂走亂開火。標靶機器人經常被用於戰鬥技的練習,但也可以藉由使用多項命令來製造驚人的視覺效果。

標靶電腦人指令

下列指令並非全部都有作用;但為求精確,還是將完整的指令列表列出。

附註:以未指定數值的方式鍵入帶參數的指令會顯示該指令的現在設定值,以及簡單的功能敘述。

指令碼 作用描述
bot 這個指令將會將一名可以指定名字、兵種、隊伍的電腦人加入遊戲。若沒有指定,隊伍、名字或兵種將會隨機決定。
語法
bot -team <teamname/number> -class <classname> -name <botname>
參數
-team teamname/number
指定電腦人加入指定隊伍的名稱或代號。name/number可以是RED1BLU0
-class classname
兵種名稱可以是DemomanEngineerHeavyWeaponsMedicPyroScoutSoldierSniperSpy
-name botname
電腦人名字可隨意設定。如果已經有玩家或電腦人有相同的命字,則會在名字前面加上一個用括號括住的遞增數字(由1開始)。例如joe、(1)joe、(2)joe,以此類推。如果沒有指定名字,則電腦人的名字會是"bot",且後面會加上從01開始的遞增數字。舉例來說,第一個加入的電腦人會是bot01,再來加的是bot02,以此類推。
例子
bot -team red -class Engineer -name joe ---> 會在紅隊加入一個名字叫做joe的工程師電腦人。
bot_changeclass 強迫所有電腦人換成指定兵種。

無效指令:輸入後沒有作用。

bot_changeteams

強迫所有電腦人換隊。 這指令會強制讓使所有電腦人跳到另一個隊伍。如果一名電腦人本來在紅隊,輸入指令後會跳到藍隊;藍隊的電腦人則會跳到紅隊。

bot_command 令指定電腦人執行特定指令。
語法
bot_command <botname> <console command>
botname是欲指定指令的電腦人名字。
console command可以是控制台命令列表裡的任意指令。
例一:bot_command bot01 "voicemenu 0 0" ---> 會使bot01喊出「Medic!」。
例二: bot_command bot01 "taunt" ---> 會使bot01做出嘲諷動作。
Slot指令(slot1、slot2等等)在bot_command沒有作用,但配合使用bot_forcefireweapon指令的話,你可以令所有指定電腦人切換至該樣武器並開始射擊再令他們停下。只可能用這種方式令指定電腦人換武器。
bot_defend 設為某隊的代號(1=紅隊,0=藍隊)的話,該隊伍的電腦人會保持警戒姿態。

舉例來說,重裝兵電腦人便會開始預轉格林機槍。

bot_dontmove 允許或禁止電腦人移動。設為1時電腦人無法移動,但還是可以轉身及跳躍。配合bot_mimic指令使用,你可以把電腦人移到想要的位置,並讓他們停在該處。
語法
bot_dontmove <0/1>
電腦人可以移動(設為0)或不能移動(設為1)。
例子
bot_dontmove 1
bot_forceattack 這個指令會讓所有電腦人開始射擊他們現在持用的武器。如果bot_forceattack2設為0的話,電腦人會進行主要攻擊。如果bot_forceattack2設為1,電腦人將會進行次要攻擊。

本指令在bot_mimic啟用中(設為1)的情況下無效。

語法
bot_forceattack <0/1>
設成0時電腦人不會攻擊;設成1時將會不斷重複開火。
例子
bot_forceattack 1
bot_forceattack2 這個指令會在bot_forceattack設為1時,讓所有電腦人用使用中的武器進行次要攻擊。
語法
bot_forceattack2 <0/1>
這個指令設成1時會讓所有電腦人開始使用他們現在持用武器的次要攻擊功能、設成0時則是主要射擊功能。
bot_forceattack2 1
bot_forceattack_down 如果設為0,電腦人的射擊模式將會是快速點擊開火鍵(適用於手槍,但不適於重裝兵格林機槍)。如果設為1電腦人的射擊模式將會是按住開火鍵(適用於重裝兵)。
語法
bot_forceattack_down <0/1>
設為1為啟動,設為0為關閉。
例子
bot_forceattack_down 1
bot_forcefireweapon 強迫所有電腦人切換為指定武器並開火。

如果有電腦人沒有這項武器,本指令對他不會有效果(除非他正在使用其他武器開火,這時輸入本指令他的動作會停止)。

語法
bot_forcefireweapon <weapon filename>
filename的格式通常是tf_weapon_ <weapon name>
例子
bot_forcefireweapon tf_weapon_fists ---> 讓所有重裝兵電腦人切換為拳頭並開始連續出拳,並讓其他兵種的電腦人停止攻擊。
bot_forcefireweapon tf_weapon_shotgun_pyro ---> 讓所有 火焰兵電腦人切換為散彈槍並以之連續開火,同時讓其他兵種的電腦人停止攻擊。
若要讓所有電腦人停止攻擊,只要在filename參數指定不存在的武器名稱即可。只要名稱前面沒有tf_weapon字串的肯定不是TF2裡的武器,所以電腦人沒辦法使用它。例如,bot_forcefireweapon ,,
另外,電腦人的裝備無法更動,因此你不能讓電腦人使用解鎖武器開火。
bot_kill

殺死指定的電腦人。

語法
bot_kill <bot name>
讓指定的電腦人自殺。
例子
bot_kill bot01
bot_mimic 令所有電腦人跟從玩家動作。

電腦人將會執行任何玩家的動作,包括移動、轉身、跳躍、開火...等。

本指令會使bot_forceattack失效,但bot_dontmove依然可以作用。

語法
bot_mimic <0/1>
設為1為開啟,設為0為關閉。
例子
bot_mimic 1
bot_mimic_yaw_offset

指定電腦人的面對角度。 電腦人將會看向和玩家相對來看的角度方向。預設值為180,也就是所有電腦人都會正面面對玩家。設為0會令電腦人看向玩家正在看的相同方向(換句話說,完全背對玩家)。

語法
bot_mimic_yaw_offset <0-360>
設定電腦人看向的方向角度,單位為度。數值為0到360。
例子
bot_mimic_yaw_offset 180 ---> 會使電腦人正面面對玩家。
bot_randomnames
bot_mirror

指定機器人模仿身上裝備。

語法
bot_mirror <bot name>
讓指定的模仿身上裝備。
例子
bot_mirror bot01

AI Bot的名字

AI Bots設計為擁有不同的名字,且許多名字都影射了V社出品的其他遊戲的內容。有些名字也直接影射了Team Fortress系列的內容。下列名字大部分都是在Steam玩家論壇的網友提出來的。

Unused bot names

The following bot names were found in a leaked source code version of TF2, containing bot names that were never put into production for unknown reasons.

  • John Spartan
  • Leeloo Dallas Multipass
  • Sho'nuff
  • Bruce Leroy
  • CAN YOUUUUUUUUU DIG IT?!?!?!?!
  • Big Gulp, Huh?
  • Stupid Hot Dog
  • I'm your huckleberry
  • The Crocketeer
語法
bot_randomnames <0/1>
設為1為開啟,設為0為關閉。
例子
bot_randomnames 1
bot_refill 將所有電腦人的彈藥數補到上限,包含工程師的金屬
語法
bot_refill
bot_saveme 這個指令會使所有電腦人呼叫Medic。效果等同於對所有使用bot_command <botname> "voicemenu 0 0"指令。
語法
bot_saveme <0/1>
設為1為開啟,設為0為關閉。
bot_selectweaponslot 這個指令會使第一個加入的電腦人選擇指定的武器欄位。

0 = 主要武器、1 = 次要武器、 2 = 近戰武器、 3 = 特殊物品 本指令只對第一個加入的電腦人有效。目前尚未發現能夠指定其他電腦人的方法。

語法
bot_selectweaponslot <n>
令電腦人切換為編號為n的武器欄位。
例子
bot_selectweaponslot 2
bot_teleport 將一名電腦人傳送至指定座標位置。

玩家現在所在的地圖座標位置可藉由在控制列輸入Status得知。

語法
bot_teleport <botname> <X> <Y> <Z> <Pitch> <Yaw> <Roll>
botname為欲傳送的電腦人名字。
X Y Z為地圖座標的X軸、Y軸、Z軸。
Pitch Yaw Roll為電腦人被傳送後面對地圖座標的X軸、Y軸、Z軸的角度。(值為0到360)
例子
bot_teleport bot01 -4815 1385 -447 0 0 0
bot_whack 使指定電腦人受到來自玩家的即死傷害。效果通常是電腦人被玩家使用中的武器殺死,推測應該是開發用的測試指令。
語法
bot_whack <botname>
botname是你想「痛扁」的電腦人名字。
例子
bot_whack bot109

更新紀錄

2010年1月6日更新
  • 對戰鬥行為作出改進。
  • 在山丘之王模式中,電腦人現在:
    • 如果在時間剩餘很多的情況下,比較會四處巡邏並追擊敵人。
    • 在時間快倒數完或是隊友開始佔點時,會比較積極的去壓點了。
  • 醫護兵電腦人現在:
    • 會視情況盡可能的過量治療鄰近友軍。
    • 比較會優先治療鄰近的受傷友軍了。
    • 不會只將治療重點全放在重裝兵上了。
    • 不會在回合開始時連點醫療槍。
    • 不會去找過低於治療對象的掩護(koth_nucleus)。
    • 會視情況使用注射槍作反擊。
  • 一般電腦人改進:
    • 在佔點或防守時不再一味的呆站不動了。
    • 比較會選擇不同的移動路線了。
    • 會選擇比較理想的控制點防禦佈陣。
    • 會在某樣武器彈藥耗盡時切換使用另一項武器。
    • (狙擊手)會在使用狙擊鏡瞄準中時調整視野。
    • 將近距離遭遇的防禦步哨槍視為最大威脅。
    • 會比較節制發射武器,注重彈藥使用效率。
    • 工程師會視情況使用散彈槍攻擊。
  • 為電腦人追蹤敵人時的模式加入「虛擬滑鼠墊」的概念:
    • 他們現在會使用預測追蹤中敵人的位置和速度的追蹤方式,而非以往的「鎖定」。
    • 徹底解決玩家們對電腦人的抱怨:「背後長眼睛喔」、「Heavy bot mogg」、「Sniper bot mogg」、「我當Scout完全打不贏Heavy電腦人啊(淚)」等。
  • 將狙擊手電腦人龜點選擇及瞄準規則微調得較為有變化,部份解決了「玩家可以預測狙擊手龜點」的問題。
  • 火箭兵電腦人在附近有障礙物時將會審慎決定是否發射火箭以免炸死自己。
  • 修正電腦人會試圖從工程師搬運中的補給器獲得醫療和補給的問題。
  • 調整記分板模式以防止某些惡意伺服器會把Ping欄位調大以遮擋BOT標籤的問題。
  • 新增更多TF社群提議的電腦人名字。

2010年4月28日更新

  • 電腦人在戰鬥中時將不會一受傷就立刻尋求醫療資源。
  • 電腦人不再在試圖阻擋佔點時撤退。
  • 電腦人現在在尋找醫療資源時會使用適合的武器且戰且走了。
  • 在地圖上巡視的電腦人現在會追擊敵人,並將之逼到死角。
  • 會使用飛行道具的電腦人(如火箭、榴彈等等)不再按住開火鍵,以免在橫移進入鄰近牆壁作掩護時會炸死自己。
  • 火箭兵電腦人會在四顆火箭打完後切換成散彈槍追擊敵人。
  • 新增更多社群提議的電腦人名字。
  • 修正工程師電腦人收集金屬的行為迴圈。

2010年6月10日更新

  • 現在盯著一個電腦人看幾秒會讓他做嘲諷動作。

2010年6月14日更新

  • 修正電腦人使用醫療包造成伺服器當機的問題。

2010年6月16日更新

  • 醫護兵電腦人現在會對呼叫Medic的人類玩家作反映了。
  • 如果一個ÜberCharge計量表滿的醫護兵電腦人正在治療你,使用聲音指令「前進!」或「啟動ÜberCharge!」時會強迫該醫護兵電腦人啟動ÜberCharge。

2010年7月19日更新

  • 改善電腦人在控制點佔領、回合開始以及抵達檢查點的運算規則與行為表現。
  • 修正工程師電腦人會不斷重複建造-摧毀的動作迴圈的問題。
  • 修正醫護兵電腦人會在碰到補給櫃時ÜberCharge計量表會歸零的問題。
  • 修正同時在遊戲中運行多種電腦人系統時會造成當機的問題。
  • 修正電腦人會擠成一堆搶著搭三級傳點的問題。
  • 電腦人不再視被放置電子破壞器的防禦步哨槍為威脅了。
  • 電腦人將不會試圖進入敵方基地的重生點(除非他們贏了該回合)。
  • 工程師電腦人會避免把傳點蓋在可能會卡到隊友移動的斜坡上了。
  • 新增 tf_bot_pyro_always_reflect 指令。設為 1 時會讓火焰兵電腦人總是會試圖反彈飛行道具,無視他們的難度等級。

2011年8月23日更新

  • 修正爆破兵電腦人試圖引爆已經被摧毀的黏性炸彈時會當機的問題。
  • 新增 tf_bot_kill 指令。(語法和 tf_bot_kick 相同)
  • 改善電腦人遵循近戰限定模式的狀況。
  • 新增 func_nav_avoid 實體,讓地圖作者能控制電腦人「喜歡」去的地方。
  • 修正電腦人的爆破兵使用黏性炸彈時會射一發補一發,使他在布置黏彈陷阱或摧毀建築時沒有效率的問題。
  • 電腦人現在在攜帶情報時不會嘲諷了。
  • 新增使用獵人長弓的狙擊手電腦人的瞄準邏輯。
  • 狙擊手電腦人現在會更加積極地優先解決敵方狙擊手和工程師了。
  • 改善爆破兵電腦人用黏彈攻擊步哨防禦槍的表現。
  • 電腦人現在不會再試圖使用位置上是安排給敵方使用的醫療物品了。
  • 新增對應衝擊刺盾和各種消耗品(如 Bonk 飲料三明治等等)的行為反應。
  • 醫護兵電腦人現在會比較緊跟著治療對象了。
  • 狙擊手電腦人現在在極近距離遇敵時會拔出近戰武器作戰了。
  • 新增 func_tfbot_hint 實體來讓地圖作者能提示電腦人狙擊手哪些地方是適合的狙擊點。
  • 狙擊手電腦人在移動到狙擊點的路程中,會看情況攻擊路途上遇到的可能成功擊殺的目標。
  • 間諜電腦人現在會比較積極地在破壞建築前先行刺殺工程師了。

參考