Difference between revisions of "Bots/zh-hans"

From Team Fortress Wiki
Jump to: navigation, search
m
m (漏洞: imp)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:电脑人}}
+
{{DISPLAYTITLE:人机}}
{{hatnote|这个页面是关于在游戏中的军团要塞2的电脑人。对于介绍在[[Team Fortress Wiki|军团要塞官方维基百科]]的电脑人,请参阅[[:Category:User bots|维基百科的电脑人]]。对于介绍在[[Team Fortress Classic|军团要塞经典]]的电脑人,请参阅[[Bots (Classic)|电脑人(经典)]]。对于介绍在[[Mann vs. Machine (update)/zh-hans|曼恩VS机器]]的机器人,请参阅[[Robots/zh-hans|机器人]]。}}
+
[[File:Tr_dustbowl0003.png|right|thumb|300px|一个{{cl|Soldier}}人机在[[Dustbowl (Training)/zh-hans|{{map name|Dustbowl}}训练]]地图上活动]]
[[Image:Tr_dustbowl0003.jpg|right|thumb|300px|一个[[Soldier|士兵]]机器人在[[Dustbowl (Training)|沙尘暴训练]]地图中活动。]]
+
{{hatnote|本条目的主题是游戏《军团要塞2》中由电脑控制的玩家。
{{Quotation|'''重装兵电脑人'''的自我描述自己的钢铁拳头|我的拳头可是用钢铁做的!|sound=Heavy_specialweapon01.wav}}
+
* 关于由电脑控制的用于作弊/[[griefing/zh-hans|骚扰]]的人机,请见[[Cheating/zh-hans#Bots|作弊人机]]
 +
* 关于在军团要塞维基上自动编辑的机器人,请见 [[:Category:User bots]]
 +
* 关于在[[Mann vs. Machine (update)/zh-hans|{{common string|Mann vs. Machine}}]]更新中推出的机器人,请见[[Robots/zh-hans|机器人]]。
 +
* 关于其他用途,请见[[Robot/zh-hans|机器人]]}}
  
BOT,又称机器人或电脑玩家;在军团要塞2中有两种'''机器人''':智能机器人以及木偶机器人。智能机器人使用了先进的人工智能代码进行编程,因此他们能学习玩家们在游戏中的动作。木偶机器人没有人工智能因此它们不会进行活动,但是它们对游戏测试以及训练有着显著帮助。若要使用木偶机器人,则必须在建立服务器时开启[[Cheats|作弊]]模式,此时将不能完成成就。
+
{{Quotation|'''士兵'''|人类队友可能会对你指手画脚,但这些没有灵魂的人机会吗?会。它们又不是瞎子。但他们又是哑巴,所以你的无能将会是它们入土都说不出来的秘密。}}
==智能机器人==
 
智能机器人能够学习玩家的动作并且不会受玩家直接控制。同时,他们都是以随机方式选择兵种的。他们使用复杂的人工智能代码编程,即使用求生之路中生还者机器人以及被感染者机器人的代码设置<ref>[http://teamfortress.com/post.php?id=3279 Team Fortress Official Blog - Erectin a dispenser]</ref> 添加智能机器人不需要服务器开启作弊模式,因此可以借此完成各种成就。
 
  
智能机器人在以下情况能够间接被玩家进行一定程度的控制:  
+
'''人机 / Bot''',又称机器人或电脑玩家,是服务器上[https://support.steampowered.com/kb_article.php?ref=9073-WOHK-7760 被电脑控制的玩家]。在军团要塞 2 中有两种人机:智能人机以及木偶人机。智能人机采用了复杂的人工智能编码,其目的是为了模拟玩家在游戏中的行为,可在未开启[[cheats/zh-hans|作弊]]的情况下使用。木偶人机没有人工智能编码,因此它们不会自动活动,但它们在游戏测试和训练的用途上很有帮助。木偶人机需要服务器开启作弊模式才能使用,并且此时也会禁用[[achievements/zh-hans|成就]]系统。
* 在[[Setup time|准备时间]]内,任何被你准心指着的机器人会摆出嘲讽动作,需要玩家也进行嘲讽。
 
* 当你使用"Medic!" [[Voice commands|语音指令]]时,附近的己方[[Medic|医生]]机器人会为你治疗。
 
* 当为你治疗的医生机器人的[[ÜberCharge|超级冲锋]]就绪时,使用"Go go go!"或者"Activate Charge!"语音指令会让其启动超级冲锋。
 
  
===目前智能机器人的情况=== 
+
== 基础智能人机 ==
智能机器人目前还算是在测试阶段而且随着每次游戏更新智能机器人都会得到一定改进。目前,并不是所有兵种都具有完善的AI智能,[[Spy|间谍]]就是个好例子。当玩家或者敌人望着间谍机器人时,他就会立刻跑开,而且也从不使用[[Cloak|隐身]]功能。目前可以通过创建[[List of game modes#Highlander|高地兵团模式]]地图、在[[vdc:Developer_Console|控制台]]中输入代码''"tf_bot_force_class Spy"''或是使用第三方软件来为游戏中增加间谍机器人。
+
基础智能人机,或者称为“TFBot”,是为了模仿人类玩家的游戏行为而设计出来的,并且不能受玩家直接控制。同时,它们都是以随机方式选择[[classes/zh-hans|兵种]]的。他们使用的是基于《求生之路》系列中生还者人机以及被感染者 AI 所使用的复杂人工智能代码<ref>[http://teamfortress.com/post.php?id=3279 军团要塞官方博客 - "Erectin a dispenser"]</ref>。添加智能人机不需要服务器开启作弊功能,所以可以借此完成各种成就;不过有一个例外:人机在被击杀后并没有[[Deathcam/zh-hans|死亡定格照]];因此也无法让玩家通过智能人机来达成与死亡定格照相关的成就。此外,用[[Strange/zh-hans|奇异]]属性的武器杀死人机也不会增加武器的杀敌计数,除非武器应用了[[Strange Parts/zh-hans|奇异升级部件]]:机器人消灭数,在这种情况下,杀敌数会添加到奇异部件上,而非武器本身。
大多数的[[King of the Hill|山丘之王]]模式地图、某些[[Payload|炸弹推车]]地图、[[Dustbowl|沙尘暴]]以及[[Mann Manor|麦恩庄园]]能添加智能机器人(通过在控制台输入tf_bot_add指令来添加机器人)。其他地图也可以使用这个方法添加机器人;但它们无法正常行动。
 
  
''注:目前已经有一些较为流行的地图被添加了[http://forums.steampowered.com/forums/showthread.php?t=1264447 机器人网格]''
+
智能人机具有从简单到专家的四个技术水平等级。[https://steamcommunity.com/id/segmentation_fault Sigsegv]对该技术水平差异进行了[https://steamcommunity.com/sharedfiles/filedetails/?id=572409016|详细的阐述]
  
====在不支持机器人的地图中添加机器人的步骤====
+
智能人机在以下情况能够间接地被玩家进行一定程度的控制:
# 在控制台中输入"sv_cheats 1"
+
* 在[[Setup time/zh-hans|准备阶段]]期间,被玩家准星所瞄准的任意一方人机都将做出[[taunt/zh-hans|嘲讽]]动作。
# 在控制台中输入"nav_generate"
+
* 当玩家使用[[Voice commands/zh-hans|语音指令]]“医生!”时,附近的友方[[Medic/zh-hans|医生]]人机就会前来提供治疗。
# 等待系统为地图绘制路径点
+
* 当治疗玩家的医生人机的 [[ÜberCharge/zh-hans|ÜberCharge]] 就绪时,玩家使用“冲!冲!冲!”或者“激活 Ubercharge!”语音指令会让它立刻激活 ÜberCharge。
# 重新载入地图(如果路径点已保存则不用重复之前步骤)
+
* 如果医生人机的治疗目标或它自身受到重创时,它会立刻激活自己的 ÜberCharge。
# 打开控制台,输入''"tf_bot_add <number>"''来选择添加机器人的数目
+
* 人机会尝试加入队友的同伴嘲讽(例如{{item link|High Five!}})或集体嘲讽(例如{{item link|Conga}})。
  
''注:即使使用以上步骤,目前也无法在[[Capture the Flag|情报争夺]]模式地图中正常使用机器人''
+
=== 寻路 ===
 +
====具备官方人机支持的地图====
 +
{{Maps with bot support}}
  
====智能机器人的行为====
+
====在不支持人机的地图上使用人机====
* 目前还不能为机器人装备成就物品,例如:非默认[[Weapons|武器]]、各种[[Hats|帽子]]或是[[Miscellaneous items|其他物品]]
+
{{hatnote|参考:{{vdc|Navigation Meshes}}}}
* 目前机器人还不懂得使用[[Jumping|跳跃]]、[[Rocketjump#Rocket jumps|火箭跳]]或是[[Stickyjump#Sticky jumps|黏弹跳]]。
+
# 导航网格编辑需要启用作弊,因此要在[[console/zh-hans|控制台]]中键入“<kbd>sv_cheats 1</kbd>”。
* 机器人在杀死玩家后,有几率立刻进行嘲讽,而且就算暴露在敌人火力下也会照做不误。
+
# 使用“<kbd>nav_generate</kbd>”指令构建初始导航网格。
* 如果机器人看见已经伪装的敌方间谍,它会盯着那名间谍。机器人不会立刻攻击那名间谍直到间谍进行攻击,或是间谍和敌人撞在一起。
+
# 等待游戏生成 AI 路径,可在控制台中跟踪进度。
* 火焰兵机器人会频繁使用[[Compression blast|压缩空气爆破]]来反弹敌方的火箭、榴弹等。
+
# 地图将重新加载。
 +
# 选择性地调整生成的导航网格,进而添加缺失的数据并移除错误的数据。使用“<kbd>nav_edit 1</kbd>”进入导航网格编辑模式。
 +
# 重新加载/重启服务器(可选,但如果跳过这一步则会禁用成就功能)。
 +
# 打开控制台,如上所示输入“<kbd>tf_bot_add <数量></kbd>”来添加人机。
 +
'''警告:如果你在启用人机的情况下编辑导航网格,游戏很可能会崩溃。'''
  
===智能机器人指令===
+
除了每次在需要添加人机时输入“<kbd>tf_bot_add <数量></kbd>”指令外,人机可以在任何已执行上述步骤的地图上使用,而不必重复这些步骤。
为了在能使用智能机器人的地图中添加机器人,服务器管理员应在控制台中输入以下命令:
+
 
 +
在控制点,山丘之王,推车和夺旗模式的地图上自动生成的导航网格的效果最佳。在[[Mannpower/zh-hans|曼恩之力]]地图上,人机会主动承担夺旗的任务,但无法使用{{item link|Grappling Hook}}或智能地使用它们经过的增益。
 +
 
 +
将控制台命令“tf_bot_offense_must_push_time”的值设置为 0 可以让人机在地图中对战,而并没有它们可以识别的目标,除非地图没有任何重生区域实体。
 +
 
 +
==== 不支持官方人机的默认地图 ====
 +
{{Maps with no bot support}}
 +
 
 +
=== 智能人机指令 ===
 +
{{Hatnote|有关更全面的指令列表,请见{{vdc|List of TF2 console commands and variables|军团要塞2控制台指令和变量一览表}}}}
 +
若要在已支持的地图上使用智能人机,服务器管理员应该在控制台中输入以下指令(有些指令可能需要将<kbd>sv_cheats</kbd>设置为 1 才能生效):
  
 
{| class="wikitable grid"
 
{| class="wikitable grid"
Line 42: Line 55:
 
! class="header" | 说明
 
! class="header" | 说明
 
|-
 
|-
|{{nw|<big>'''tf_bot_add'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_add'''</code></big>}}
|这个指令用于给双方队伍随机添加机器人,机器人的职业也是随机的。而且它们拥有有趣的名字。
+
|该指令将在双方队伍中随机添加一个或多个随机兵种的智能人机。游戏还会在默认名字集合中随机挑选一个名字分配给该人机。
  
;指令语法: <code>tf_bot_add [<''count''>] [<''class''>] [<''team''>] [<''difficulty''>]</code>
+
;格式:<code>tf_bot_add [<''count''>] [<''class''>] [<''team''>] [<''difficulty''>] [<''name''>] [''noquota'']</code>
  
;参数说明:
+
;参数:
 
:<code><''count''></code>
 
:<code><''count''></code>
::加上这个参数会为服务器添加指定数量的机器人。如果不加这个参数,则每次只会增加一个机器人。
+
::添加指定数量人机。如果省略该参数,则每次只会添加一个人机。
::使用这个参数时,如果添加的数目比服务器剩余位置还要多,例如一个24人服务器中有1名玩家,此时要想添加的机器人数目为25,那么只会在服务器中添加23个机器人。
+
::如果玩家试图添加超过服务器最大玩家数量的人机,则会无法生效并在控制台中显示一条错误消息。
 +
::如果<kbd>mp_teams_unbalance_limit</kbd>太低,则往一个队伍添加更多的人机仍然有可能会触发自动平衡,从而使两队人数相等。
  
 
:<code><''class''></code>
 
:<code><''class''></code>
::此处所要填写的为机器人的兵种英文名称,例如''[[Demoman]]'', ''[[Engineer]]'', ''[[Heavy]]Weapons'', ''[[Medic]]'', ''[[Pyro]]'', ''[[Scout]]'', ''[[Soldier]]'', ''[[Sniper]]''或是''[[Spy]]''
+
::指定人机所选兵种的英文名称,其中''class''处可以填写「''[[Demoman/zh-hans|Demoman]]''」、「''[[Engineer/zh-hans|Engineer]]''」、「''[[Heavy/zh-hans|Heavy]]Weapons''」、「''[[Medic/zh-hans|Medic]]''」、「''[[Pyro/zh-hans|Pyro]]''」、「''[[Scout/zh-hans|Scout]]''」、「''[[Soldier/zh-hans|Soldier]]''」、「''[[Soldier/zh-hans|Soldier]]''」或「''[[Spy/zh-hans|Spy]]''
  
 
:<code><''team''></code>
 
:<code><''team''></code>
::此处要填写的是想要机器人加入的队伍英文名称,例如''[[red]]''或者''[[blue]]''
+
::指定人机所加入的队伍的英文名称,其中''team''处可以填写「''[[red/zh-hans|red]]''」或者「''[[blue/zh-hans|blue]]''」。
 +
 
 +
:<code><''difficulty''></code>
 +
::设置人机的难度等级,其中''difficulty''处可以填写「''easy''」(简单)、「''normal''」(普通)、「''hard''」(困难)或「''expert''」(专家)。
 +
 
 +
:<code><''name''></code>
 +
::设置所连接的人机的名字。
  
:<code><''difficulty></code>
+
:<code>''noquota''</code>
::此处填写的是机器人的难度等级,例如''easy'', ''normal''或者''hard''
+
::如果存在明确的‘noquota’短语,则人机将会被排除在人机配额管理系统之外。详见<code>tf_bot_quota</code>
  
;例子: <code>tf_bot_add red 3 heavyweapons easy</code>意为在地图中为红队添加3个简单的重机枪手机器人。
+
;例子:
 +
:<code>tf_bot_add red 3 heavyweapons easy</code>,效果为在红队添加 3 个「简单」难度的机枪手人机。
 
|-
 
|-
|{{nw|<big>'''tf_bot_difficulty'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_difficulty</code>'''</big>}}
|用以选择机器人的技能等级。 
+
|定义所要加入游戏的人机的基技术等级。
  
;指令语法: <code>tf_bot_difficulty <''level''></code>
+
;格式:<code>tf_bot_difficulty <''level''></code>
  
;参数说明:
+
;参数:
 
:<code><''level''></code>
 
:<code><''level''></code>
::选择机器人的技能等级,用数字代替,例如: 0为简单, 1为普通, 2为困难, 3为专家。默认等级为"普通" (1)。
+
::设置人机的的技术难度等级,以数字表示。取值分别为: 0 表示简单, 1 表示普通, 2 表示困难, 3 表示专家。默认等级为“普通”(1)。
 +
 
 +
;例子:
 +
:<code>tf_bot_difficulty 2</code>,效果为将在执行该指令后所创建的所有人机的难度设置为“困难”。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_fire_weapon_allowed</code>'''</big>}}
 +
|指定人机是否应该进行攻击。如果选择禁用,人机仍然可以使用某些不具备破坏性的武器,如{{item link|Medi Gun}}。但存在一个例外,即{{cl|Medic}}人机仍然会使用{{item link|Syringe Gun}}开火。此外,{{cl|Demoman}}人机仍然可以引爆尚存的黏弹,但不会再放置新的黏弹。
 +
 
 +
;格式:<code>tf_bot_fire_weapon_allowed <''integer''></code>
 +
 
 +
;参数:
 +
:<code><''integer''></code>
 +
::0 表示关闭,1 表示开启(默认)。
  
;例子: <code>tf_bot_difficulty 2</code>意为将所有机器人的等级设置成"困难"。
+
;例子:
 +
:<code>tf_bot_fire_weapon_allowed 0</code>,效果为禁用人机的武器,但极个别武器除外。
 
|-
 
|-
|{{nw|<big>'''tf_bot_force_class'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_force_class</code>'''</big>}}
|如果填写一个兵种名称,则所有机器人都会选择此兵种。
+
|如果设置为一个兵种名称,则所有人机都将作为该兵种重新生成。
  
;指令语法: <code>tf_bot_force_class <''class''></code>
+
;格式:<code>tf_bot_force_class <''class''></code>
  
;参数说明:
+
;参数:
 
:<code><''class''></code>
 
:<code><''class''></code>
::''class''处可以填写以下职业名称''[[Demoman]]'', ''[[Engineer]]'', ''[[Heavy]]Weapons'', ''[[Medic]]'', ''[[Pyro]]'', ''[[Scout]]'', ''[[Soldier]]'', ''[[Sniper]]''或是''[[Spy]]''。默认情况下是随机选择兵种。
+
::''class''处可以填写「''[[Demoman/zh-hans|Demoman]]''」、「''[[Engineer/zh-hans|Engineer]]''」、「''[[Heavy/zh-hans|Heavy]]Weapons''」、「''[[Medic/zh-hans|Medic]]''」、「''[[Pyro/zh-hans|Pyro]]''」、「''[[Scout/zh-hans|Scout]]''」、「''[[Soldier/zh-hans|Soldier]]''」、「''[[Soldier/zh-hans|Soldier]]''」或「''[[Spy/zh-hans|Spy]]''」。默认为“”(即空白)。
 +
 
 +
;例如:<code>tf_bot_force_class medic</code>,效果为让所有人机作为医生重新生成。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_force_jump</code>'''</big>}}
 +
|如果启用,则强制人机反复进行跳跃。
 +
 
 +
;格式:<code>tf_bot_force_jump <''integer''></code>
 +
 
 +
;参数:
 +
:<code><''integer''></code>
 +
::1 表示开启,0 表示关闭(默认)。
  
;例如: <code>tf_bot_force_class medic</code>意为所有机器人都会选择医生。
+
;例子:
 +
:<code>tf_bot_force_jump 1</var>,效果为强制智能人机反复进行跳跃。
 
|-
 
|-
|{{nw|<big>'''tf_bot_join_after_player'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_join_after_player</code>'''</big>}}
|如果参数不为零,则机器人将会在玩家加入游戏后跟随加入。
+
|如果参数不为零,则人机将会在玩家加入游戏后才会跟随加入。该指令只适用于分配生成的人机。
  
;指令语法: <code>tf_bot_join_after_player <''integer''></code>
+
;格式:<code>tf_bot_join_after_player <''integer''></code>
  
;参数说明:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::此处可以填写 1 或者 0. 默认是 1 (即机器人会等待玩家)。
+
::0 表示关闭,1 表示开启(默认)。
  
;例子: <code>tf_bot_join_after_player 0</code>意为即使没有玩家加入游戏,也会添加机器人。
+
;例子:
 +
:<code>tf_bot_join_after_player 0</code>,效果为使 TFBot 在添加后便直接加入游戏,即使没有玩家处于任意一方团队中。
 
|-
 
|-
|{{nw|<big>'''tf_bot_keep_class_after_death'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_keep_class_after_death</code>'''</big>}}
|如果参数为0,那么每次机器人重生时都会重新选择职业。
+
|如果参数为零,则人机将在每次重生时都会重新选择兵种。
  
;指令语法: <code>tf_bot_keep_class_after_death <''integer''></code>
+
;格式:<code>tf_bot_keep_class_after_death <''integer''></code>
  
;参数说明:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::可以填写 1 或者 0。默认为0(开启此功能)。
+
::1 表示关闭,0 表示开启(默认)。
  
;例子: <code>tf_bot_keep_class_after_death 1</code>意为不允许机器人更换兵种。
+
;例子:
 +
:<code>tf_bot_keep_class_after_death 1</code>,效果为阻止 TFBot 更换兵种。
 
|-
 
|-
|{{nw|<big>'''tf_bot_kick'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_kick</code>'''</big>}}
|
+
|该指令将会踢出单个或所有的智能人机。
这个指令能将机器人踢出服务器。
+
 
 +
;格式:<code>tf_bot_kick <''name/all/team''></code>
 +
 
 +
;参数:
 +
:<code><''name/all/team''></code>
 +
::指定将要踢出的人机的名字,或是将要踢出的整个人机队伍的名称,或者全部的人机。
 +
 
 +
;例子:
 +
:输入<code>tf_bot_kick CEDA</code>将会踢出名为「CEDA」的人机(如果它存在的话)。而如果要踢出名字中包含有两个及以上的单词的人机,如「Black Mesa」,则只需要用英文引号("")将其括起来,即<code>tf_bot_kick "Black Mesa"</code>,就可以将名为「Black Mesa」的人机踢出。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_kill</code>'''</big>}}
 +
|该指令将会杀死单个或所有的智能人机。
 +
 
 +
;格式:<code>tf_bot_kill <''name/all/team''></code>
 +
 
 +
;参数:
 +
:<code><''name/all/team''></code>
 +
::指定将要杀死的人机的名字,或是将要杀死的整个人机队伍的名称,或者全部的人机。
 +
 
 +
;例子:
 +
:输入<code>tf_bot_kill CEDA</code>将会杀死名为「CEDA」的人机(如果它存在的话)。同<code>tf_bot_kick</code>,如果要杀死名字中包含有两个及以上的单词的人机,如「Black Mesa」,则只需要用英文引号("")将其括起来,即<code>tf_bot_kick "Black Mesa"</code>,就可以将名为「Black Mesa」的人机杀死。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_melee_only</code>'''</big>}}
 +
|指定人机是否应该只能使用近战武器。
  
;指令语法: <code>tf_bot_kick <''name/all''></code>
+
;格式:<code>tf_bot_melee_only <''integer''></code>
  
;参数说明:
+
;参数:
:<code><''name/all''></code>
+
:<code><''integer''></code>
::填写想要踢出的机器人名称或是踢出所有机器人。
+
::1 表示开启,0 表示关闭(默认)。
  
;例子: <code>tf_bot_kick CEDA</code>意为将名称为"CEDA"的机器人踢出。
+
;例子:
 +
:<code>tf_bot_melee_only 1</code>,效果为使人机只能使用近战武器。
 
|-
 
|-
|{{nw|<big>'''tf_bot_prefix_name_with_difficulty'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_prefix_name_with_difficulty</code>'''</big>}}
|如果参数不为零,则会在机器人名称之前添加其技能等级代码。
+
|如果参数不为零,则会在人机名字前面附加上该人机的技术等级的前缀。
  
;指令语法: <code>tf_bot_prefix_name_with_difficulty <''integer''></code>
+
;格式:<code>tf_bot_prefix_name_with_difficulty <''integer''></code>
  
;参数说明:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::可以填写 1 或者 0。默认为0(不开启此功能)。
+
::1 表示开启,0 表示关闭(默认)。
  
;例子: <code>tf_bot_prefix_name_with_difficulty 1</code>以为机器人的名字会变为"1 Aimbot" (普通难度)或是"3 Saxton Hale" (专家难度).
+
;例子:
 +
:输入<code>tf_bot_prefix_name_with_difficulty 1</code>后,所添加的人机的名字会变为「Normal Aimbot」(普通难度)和「Expert Saxton Hale」(专家难度)。
 
|-
 
|-
|{{nw|<big>'''tf_bot_quota'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_quota</code>'''</big>}}
|这个指令是用来决定服务器中机器人玩家的数目的,其非默认参数设置只有两种:"tf_bot_quota_mode" = "fill" or "match".
+
|指定游戏中 TFBot 的总数。该指令只会在<var>tf_bot_quota_mode</var>的参数为「<code>fill</code>」或「<code>match</code>」时生效。
  
;指令语法: <code>tf_bot_quota <''integer''></code>
+
;格式:<code>tf_bot_quota <''integer''></code>
  
;参数说明:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::设定的数字为0至服务器最大人数之间的一个数字。默认为0。
+
::介于 0 和服务器能容纳的最大玩家数之间的一个整数。默认值为 0。
  
;例子: <code>tf_bot_quota 2</code>,如果tf_bot_quota_mode 设置为 match,则每有一名玩家加入服务器时,就添加2个机器人。服务器中每加入一名玩家时则会自动添加2个机器人。
+
;例子:
 +
:在指令 <var>tf_bot_quota_mode</var> 设置为 <code>match</code> 时,输入<kbd>tf_bot_quota 2</code>的效果为每有 1 个玩家加入游戏时,就添加 2 个人机。
 
|-
 
|-
|{{nw|<big>'''tf_bot_quota_mode'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_quota_mode</code>'''</big>}}
|决定机器人的分配类型。
+
|指定人机的分配类型。
  
;指令语法: <code>tf_bot_quota_mode<''normal/fill/match''></code>
+
;格式:<code>tf_bot_quota_mode<''normal/fill/match''></code>
  
;参数说明:
+
;参数:
 
:<code>''normal/fill/match''</code>
 
:<code>''normal/fill/match''</code>
::如果为'normal',服务器则不会增加或踢出任何机器人,除非有明确的指令;bot_quota的指令也无效。
+
::如果为「normal」,服务器将不会添加或踢出任何人机,除非有明确的指令;此时指令<var>bot_quota</var> 也将无效。
::如果为'fill',服务器则会根据玩家人数,按照1:1的比例增加机器人玩家。
+
::如果为「fill」,服务器将会按照 1:1 的比例添加与玩家人数相匹配的 N 个数量的人机。其中 N 由 <var>bot_quota</var> 控制。
::如果为'match',则服务器会根据玩家人数按照1:N的比例增加机器人,此处N是指 bot_quota 设定的参数。
+
::如果为「match」,服务器将会按照 1:N 的比例添加与玩家人数相匹配的数量的人机。其中 N 由 <var>bot_quota</var> 控制
  
;例子: <code>tf_bot_quota_mode fill</code>意为服务器永远保持与玩家人数相同数量的机器人玩家。
+
;例子:
 +
:<code>tf_bot_quota_mode fill</code>,效果为游戏中的人机数量将始终保持与玩家人数相同。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_taunt_victim_chance</code>'''</big>}}
 +
|指定人机在杀死人类玩家后发起嘲讽的频率。
 +
 
 +
;格式:<code>tf_bot_taunt_victim_chance <''integer''></code>
 +
 
 +
;参数:
 +
:<code><''integer''></code>
 +
:: 介于 0 到 100 之间的整数。默认值为 20。
 +
 
 +
;例子:
 +
:<code>tf_bot_taunt_victim_chance 0</code>,效果为人机在杀死一名人类玩家后将不会发起嘲讽。
 +
:<code>tf_bot_taunt_victim_chance 100</code>,效果为人机在杀死一名人类玩家后将一定会发起嘲讽。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_warp_team_to_me</code>'''</big>}}
 +
|将与你同队的人机传送到你的位置。需要<code>sv_cheats 1</code>前置。
 +
 
 +
;格式:<code>tf_bot_warp_team_to_me</code>
 +
 
 +
;参数:
 +
:无
 
|}
 
|}
  
==木偶机器人==
+
===智能人机现况===
木偶机器人没有AI程序所以不会自行运动。这类机器人就像牵线木偶一样,玩家可以通过指令来控制他们的行为,例如跟随玩家动作或是开火。木偶机器人只要被用于测试方面,如果使用恰当的指令,还可利用它们制作惊人的视觉效果。
+
智能人机现在已经全面发布{{cite|when were they fully/officially released?}}。目前,在经过{{update link|Hatless Update}}后,所有的兵种的智能人机都已经能正常运作,包括曾经有漏洞的{{cl|Spy}}人机。智能人机只能适用于大部分官方[[King of the Hill/zh-hans|山丘之王]]地图、部分[[Payload/zh-hans|推车]]地图、攻防型地图{{map link|Dustbowl}}和{{map link|Gorge}}、[[Capture the Flag/zh-hans|夺旗]]地图,以及 {{map link|Mann Manor}}(在后两种地图中,智能人机只能通过在控制台输入<kbd>tf_bot_add</kbd>指令来添加)。玩家通过一些操作在不支持的地图上也可以使用智能人机;但这些人机并不会模仿人类玩家的游戏行为。
===木偶机器人指令===
 
并不是所有指令都有效果,但为了明确,下面列表中列出了所有的指令。
 
  
''注: 只输入指令的主体部分但不输入参数部分时,并不会使指令生效,而且还会得到个间接的指令说明。''
+
人机无法在任何[[PLR/zh-hans|推车竞赛]]地图上正常运作,因为它们要么跳不过{{map link|Hightower}}上的栏杆,要么被困在出生点中的随机角落里;而且人机还会在任意一个推车地图上开舞会(该情况在未来可能会改变){{cite|where is the future plan?}}。
 +
 
 +
====智能人机的行为====
 +
* 人机目前只能使用基础的[[loadout/zh-hans|装备配置]](尽管可以通过自定义模组/插件来让人机获得非默认武器)。
 +
* 简单难度的人机会很少会使用主武器以外的武器。而更高难度的人机会在主武器弹药耗尽后立即切换并使用它们的副武器,或者在距离不够的情况下用来补枪。
 +
* 人机目前还无法使用特殊的[[Jumping/zh-hans|跳跃]]操作(如火箭跳)或者[[haul/zh-hans|搬运]]建筑。
 +
* 人机在杀死玩家后,有几率立刻进行[[taunt/zh-hans|嘲讽]],而且就算暴露在敌人火力下也会照做不误。而正在携带着情报的人机则不会出现这种行为。[[Mann vs. Machine (game mode)/zh-hans|曼恩 vs. 机器]]模式里的[[Robots/zh-hans|机器人]]也存在有这类行为。
 +
* 间谍人机(和玩家)在[[disguise/zh-hans|伪装]]状态时会被其它人机完全忽略。然而,在“触碰”到任何敌方人机、[[Sapper/zh-hans|瘫痪]]建筑物、开火或[[Cloak/zh-hans|隐形]]时,所有目击到这些情景的人机会将间谍人机(或玩家)暴露为间谍,并且不会忘记其样貌,除非间谍在暗地里更换了伪装形象、该目击且暴露出间谍的人机死亡,或者是间谍使用{{item link|Dead Ringer}}进行假死。
 +
* 在非简单难度的游戏中,[[Pyro/zh-hans|火焰兵]]人机会十分频繁地使用[[Compression blast/zh-hans|压缩气爆]]来反弹敌方的飞行物。
 +
* [[Medic/zh-hans|医生]]人机的治疗目标是存在有优先级的,在大部分时候,比起治疗狙击手(以及优先级更低的工程师),它们会选择优先治疗其它的兵种,就算使用了“医生!”语音命令指令也是如此。
 +
* 医生人机更倾向于治疗机枪手、士兵、爆破手和火焰兵这类兵种,如果人类玩家也在游玩这类兵种,则医生会持续跟随治疗玩家。反之,如果人类玩家游玩上述以外的兵种,则医生会很少给玩家持续的治疗。
 +
* 当医生人机受到伤害时,它会立刻部署 ÜberCharge(如果有的话)。[[Mann vs. Machine (game mode)/zh-hans|曼恩 vs. 机器]]模式里的 [[Über Medic/zh-hans|Über 医生]]也有存在有这类行为。
 +
* 除非首先受到了攻击,否则人机在准备阶段期间是不会攻击的([[Demoman/zh-hans|爆破手]]人机布置黏性炸弹除外)。
 +
* 工程师人机不会升级自己的传送装置(甚至不会移除电子工兵),有时候在还未交火的状态下设置还不会修复自己的步哨枪。
 +
* 工程师人机永远不会修复或升级友方工程师人机的建筑,除非该建筑挡住了该工程师人机的目标。
 +
* 除了工程师、间谍和狙击手人机以外,其他的人机在[[Attack/Defend/zh-hans|攻防型]]或[[Payload/zh-hans|推车]]地图的准备阶段中会停留在出生点中不动。
 +
* 当间谍人机被另一个人机(或玩家)发现时,它将不会再尝试背刺目标,而是转为使用{{item link|Revolver}}并边开枪边撤退。
 +
* 一旦爆破手人机获知了步哨枪的位置(一般是被这一步哨枪杀死后),它们会站在步哨枪的射程以外使用榴弹精确地瞄准并计算出合适的发射点,然后让榴弹准确地落在步哨枪的位置。不过,墙壁和天花板有时候可能会挡住榴弹的飞行路线。
 +
* 狙击手人机在搜索范围内没有找到敌方目标时,则会使用[[Sniper voice commands/zh-hans#Voice Menu 3|“不行”]]这一语音命令。
 +
* 友方的医生人机会治疗已伪装的敌方间谍。
 +
 
 +
====漏洞====
 +
* 人机有时候可能会试图穿过墙壁等无法穿过的物体。
 +
* 每当玩家/人机在隐身/解除隐身或伪装/解除伪装时,即使是[[field of view/zh-hans|背对着]]间谍的人机都会“目击”到身后的目标并转身攻击。但其原因并不是由玩家发出的任何声音(脚步声、各种武器的噪音等)所造成的。
 +
* 尽管情况很少见,人机在使用工程师的传送装置时可能会站在传送装置的另一端上,并被卡住(不会自行移动)。
 +
* 当人机使用[[voice commands/zh-hans|语音命令]](例如“间谍!”和“前进!”),文本栏里并不会显示这些命令的文字。
 +
* 正在[[healing/zh-hans|治疗]]玩家的[[Medic/zh-hans|医生]]人机不会躲避敌人的火力攻击或寻找[[Health/zh-hans|医疗包]],就算它们的生命值非常的低。
 +
* 人机可以在嘲讽状态下移动,从而免疫了{{item link|Holiday Punch}}的攻击。
 +
* 医生人机在短时间内受到攻击时经常会使用{{item link|Bonesaw}}而非{{item link|Syringe Gun}}来对付非[[melee/zh-hans|近战]]范围内的敌人,甚至在极少数情况下会切换出它们的{{item link|Medi Gun}}。
 +
* 医生人机在使用{{item name|Syringe Gun}}时并不会抬高瞄点来补偿针头的下坠。其原因可能可能是{{item name|Syringe Gun}}在智能人机的代码中没有被准确识别为非[[hitscan/zh-hans|即时命中]]武器。
 +
* 无论在什么游戏难度下,间谍人机都能够看到并跟踪已经隐身的间谍(智能人机或玩家)。
 +
* 不论间谍的所伪装的团队是敌是友(仅限玩家,因为人机无法伪装成队友),只要这名间谍撞到了敌人,该敌人仍然会指认出他是间谍。
 +
* 人机会遵守自动平衡规则。如果要在特定的团队中生成人机,那么你必须将{{cvar|mp_teams_unbalance_limit}}的参数设置为 0。
 +
* 工程师人机可能会无视它们的[[buildings/zh-hans|建筑]],直到建筑被摧毁。
 +
* 机枪手人机有时会在弹药耗尽的情况下仍然试着用转轮机枪开火(尽管在低于高级的人机难度下,这种情况似乎会大量发生)。
 +
* 当附近没有敌人时,败方的医生人机偶尔会在[[Humiliation/zh-hans|羞辱]]期间自杀。而玩家自身就算使用指令也没法实现这一行为。
 +
* 将配置菜单的预览设置为蓝队时会导致红队人机出现在蓝队中。
 +
* 目前,人机无法在以下类型的游戏模式或地图上运行,即使该地图具备生成的导航网格(但间谍和狙击手人机可能会有效)。
 +
** [[Arena/zh-hans|竞技场]]和[[Versus Saxton Hale/zh-hans|决战霍尔]]模式 <small>{{tooltip|【注】|人机只有在受到攻击或敌人接近后才会移动,并且还是会永久地停留在出生点。只有狙击手和间谍可以正常运作。只有在控制点解锁时,工程师才能开始运作。如果你使用 tf_bot_force_class 指令强制只有狙击手或间谍这两个兵种,游戏才能正常进行。}}</small>
 +
** [[Payload/zh-hans#Payload Race|推车竞赛]] <small>{{tooltip|【注】|只有工程师、狙击手和间谍才会离开出生点。}}</small>
 +
** [[Mann vs. Machine (game mode)/zh-hans|曼恩 vs. 机器]] <small>{{tooltip|【注】|在实际的机器人队伍可以运作时,玩家方的所有人机都很少会起作用。它们知道想敌方开火,有时候人机会使用玩家放置的传送器,但最多就一两次。间谍人机一直都能正常运行,所以你有可能指令和一群间谍游玩。工程师人机也能运作,它的行为和MVM中的工程师机器人类似。}}</small>
 +
** [[Special Delivery (game mode)/zh-hans|速递]]
 +
** [[Robot Destruction/zh-hans|毁灭机器人]]
 +
** {{map link|Cactus Canyon}} <small>{{tooltip|【注】|未制作第二部分的导航网格。}}</small>
 +
** [[Mannpower/zh-hans|曼恩之力]] <small>{{tooltip|【注】|不会使用抓钩,也不会正确地使用增益。}}</small>
 +
** [[PASS Time/zh-hans|手球时刻]] <small>{{tooltip|【注】|只有间谍和狙击手才会离开出生点,而且它们也不会捡起或跟随手球。但是可以把手球传给它们。}}</small>
 +
** [[Player Destruction/zh-hans|毁灭玩家]] <small>{{tooltip|【注】|同样,只有间谍,有时狙击手也会离开出生点,如果没有人类玩家在场,这些间谍会伪装并在敌方的出生点外面蹲人。}}</small>
 +
** {{map link|Snowycoast}} <small>{{tooltip|【注】|红队不会离开出生点,也不会在战车周围设置防御工事,而蓝队会在试图推车时被卡在墙上。蓝队中的间谍根本不会移动。}}</small>
 +
** {{map link|Snowplow}} <small>{{tooltip|【注】|红队不会离开出生点以及在准备时间设置防御,而蓝队则会将火车视为战车来尝试推动它。未制作第二部分的导航网格。}}</small>
 +
** {{map link|Byre}} <small>{{tooltip|【注】|只有工程师才会离开出生点。}}</small>
 +
** {{map link|Nightfall}}和{{map link|Pipeline}} <small>{{tooltip|【注】|只有第三部分的导航网格未制作。}} </small>
 +
** {{map link|Hassle Castle}} <small>{{tooltip|【注】|红队人机运作良好,但蓝队人机永远不会离开出生点,除了侦察兵和间谍。}}</small>
 +
* 拿出[[melee/zh-hans|近战]]武器的人机有时候不会切换回其他的武器,即使它们获取的弹药也还是一样。
 +
** 要修复这种情况可以直接杀死它们或者随缘。
 +
* 在{{update link|Jungle Inferno Update}}之后,用特定参数(例如{{cvar|tf_bot_add 5 pyro blue normal}})生成的人机会直接死在重生室里。这种情况可以通过指令{{cvar|tf_bot_reevaluate_class_in_spawnroom 0}}来阻止,并且需要将{{cvar|sv_cheats}}的参数设置为 1。
 +
 
 +
===智能人机的名字===
 +
智能人机通过编程后都拥有不同的名字,其中的许多名字都与《军团要塞2》、Valve 的其他作品,以及计算机编程有各种关联。还有许多名字是应[[Steam Users' Forums/zh-hans|Steam 论坛]]上所提出的请求而被采纳的。
 +
 
 +
{{Bot names}}
 +
 
 +
玩家也可以给智能人机输入自定义的名字,例如,<kbd>tf_bot_add heavyweapons blue "Blu Hoovy"</kbd>;结果为在[[BLU/zh-hans|蓝队]]中添加了一个名为“Blu Hoovy”的蓝队{{cl|Heavy}}。
 +
 
 +
==木偶人机==
 +
木偶人机没有AI程序,所以不会自行移动或操作。不过这类人机可以当作牵线木偶一样进行使用:玩家可以通过指令来操控它们的行为,比如例如跟随玩家并使用武器开火。木偶人机主要被用来参与测试,如果相应的指令操作恰当,也可利用它们创造出惊人的视觉效果。若要生成木偶人机,则必须将{{cvar|sv_cheats}}的参数设置为 1。
 +
 
 +
===木偶人机指令===
 +
下列指令并非全部有效;也可能省略了一些有效的指令。
 +
 
 +
这些指令有可能对智能人机生效,也可能无效。
 +
 
 +
''注:只输入指令的主体部分而不输入参数部分并不会使指令生效,并将显示指令的当前设置和一段简短说明。''
  
 
{| class="wikitable grid"
 
{| class="wikitable grid"
Line 166: Line 331:
 
! class="header" | 说明
 
! class="header" | 说明
 
|-
 
|-
|{{nw|<big>'''bot'''</big>}}
+
|{{nw|<big>'''<code>bot</code>'''</big>}}
|使用这个指令时会为服务器中添加一个机器人,如果没有明确参数设定时,机器人则会随机选择的兵种与团队。
+
|使用该指令将在特定团队中创建一个特定兵种和特定名字的人机。如果省略了团队或名字,则这些选项将会随机选择。
  
;指令语法: <code>bot -team <''teamname/number''> -class <''classname''> -name <''botname''></code>
+
;格式:<code>bot [<''teamname/number''>] [<''classname''>] [<''name''>] [<''number''>]</code>
  
;参数说明:
+
;参数:
:<code>-team ''teamname/number''</code>
+
:<code><''number''></code>
::指定机器人的添加数目与加入的团队。''name/number''可以设置为''[[RED]]''或是''1''''[[BLU]]''或是''0''
+
::指定要添加的人机的数量。
:<code>-class ''classname''</code>
+
:<code><''teamname/number''></code>
::''classname''可设置为''[[Demoman]]'', ''[[Engineer]]'', ''[[Heavy]]Weapons'', ''[[Medic]]'', ''[[Pyro]]'', ''[[Scout]]'', ''[[Soldier]]'', ''[[Sniper]]''以及''[[Spy]]''
+
::指定人机所加入的团队的名称或编号,此处可以填写「''[[RED/zh-hans|RED]]''」或「''1''」、「''[[BLU/zh-hans|BLU]]''」或「''0''」。
:<code>-name ''botname''</code>
+
:<code><''classname''></code>
::''botname''可以设置为任何参数。如果出现同名的机器人,则会在所有同名机器人前面增加一个数字来区分彼此(从1开始),从最早加入的那个机器人开始编号。例如, joe, (1)joe, (2)joe, 等等。如果不指定名字,则所有加入的机器人都已"bot"加上数字进行命。数字从01开始编号; 例如,第一个加入的机器人名字为 bot01,第二个为bot02,后面以此类推。
+
::指定人机的兵种类型,此处可以填写「''[[Demoman/zh-hans|Demoman]]''」、「''[[Engineer/zh-hans|Engineer]]''」、「''[[Heavy/zh-hans|Heavy]]''」、「''[[Medic/zh-hans|Medic]]''」、「''[[Pyro/zh-hans|Pyro]]''」、「''[[Scout/zh-hans|Scout]]''」、「''[[Soldier/zh-hans|Soldier]]''」、「''[[Sniper/zh-hans|Sniper]]''」或「''[[Spy/zh-hans|Spy]]''」。
;例子: <code>bot -team red -class Engineer -name joe</code>这个代码的意思是:为红队添加一名工程师机器人,名字为joe。
+
:<code><''teleport''></code>
 +
::将生成的人机传送到玩家准星所瞄准的位置上。
 +
:<code><''targetdummy''></code>
 +
::阻止已生成的人机流失生命值。
 +
:<code><''name''></code>
 +
::''name''”处可以填写任意内容。如果出现多人同名的情况,则会在所有同名名字的开头增加一个带括号的数字(从 1 开始递增)来进行编号区分,从最早加入的人机开始编号。例如,joe、(1)joe、(2)joe,等等。如果没有指定名字,则该人机的名字将会以在“bot”一词的末尾加上数字(从 01 开始递增)进行命名;例如,第一个人机的名字是「bot01」,下一个则是「bot02」,依此类推。
 +
;例子:
 +
:<code>bot -team red -class Engineer -name joe</code>,效果为在红队添加一个名为 joe 的工程师人机。
 
|-
 
|-
|{{nw|<big>'''bot_changeclass'''</big>}}
+
|{{nw|<big>'''<code>bot_changeclass</code>'''</big>}}
|强制所有机器人选择指定的兵种类型。
+
|强制所有人机更换为指定的兵种类型。
''此命令好像还不能正常使用。''
+
 
 +
;格式:<code>bot_changeclass <''name''> <''classname''></code>
 +
 
 +
;参数:
 +
:<code><''name''></code>
 +
::目标人机的名字。
 +
:<code><''classname''></code>
 +
::人机将要切换到的兵种的名称。默认为“”(即空白)。
 +
;例子:
 +
:<code>bot_changeclass bot01 Soldier</code>,效果为将名为 bot01 的人机的兵种强制更改为“士兵”。
 
|-
 
|-
|{{nw|<big>'''bot_changeteams'''</big>}}
+
|{{nw|<big>'''<code>bot_changeteams</code>'''</big>}}
 
|
 
|
让所有机器人强制更换团队。
+
让所有人机强制更换队伍。如果有一个人机在红队,那么执行指令后它将会被更换到蓝队,反之亦然。
这会强制所有的机器人交换团队,例如一个在红队的机器人更换到蓝队去,反之亦然。
 
 
|-
 
|-
|{{nw|<big>'''bot_command'''</big>}}
+
|{{nw|<big>'''<code>bot_command</code>'''</big>}}
|命令指定的机器人做出特定的行为。
+
|代表特定的人机发送特定的指令。
  
;指令语法: <code>bot_command <''botname''> <''console command''></code>
+
;格式:<code>bot_command <''name/all''> <''console command''></code>
::''botname''填入的是你想要命令的机器人的名称。
 
::''console command''填入的是你想要机器人所做的事情的指令,请查看[[Scripting#Console Commands|控制台指令]].
 
;例子 1: bot_command bot01 "voicemenu 0 0" 命令机器人01号使用语音菜单中的0 0选项
 
;例子2 2: bot_command bot01 "taunt" 命令机器人01号使用嘲讽动作
 
  
::切换指令与bot_command不能同时生效,但是使用bot_forcefireweapon指令,可以让所有机器人切换到指定武器并且不停开火,也可以让它们停止开火。当然,你只能强制命令指定并种类型的机器人这么做。
+
;参数:
 +
:<code><''name/all''></code>
 +
::指定将要向其发送指令的人机的名字或 ID。填写“all”将向所有人机发送指令。
 +
:<code><''console command''></code>
 +
::可以填写[[Scripting/zh-hans#Console Commands|控制台指令]]中列出的任意一项指令,以及[[cheats/zh-hans|作弊码]]中的部分指令。
 +
;例子 1
 +
:<code>bot_command bot01 "voicemenu 0 0"</code>,效果为使 bot01 使用语音菜单中的 0 0 选项。
 +
;例子 2
 +
:<code>bot_command bot01 "taunt"</code>,效果为使 bot01 使用嘲讽动作。
 +
 
 +
::使用<code>bot_command</code>无法实现指定物品栏(栏位1,栏位2,等等)的指令,但是用<code>bot_forcefireweapon</code>等效替代,即让该兵种中的所有人机都切换指定某一栏位的武器并开始攻击,然后使其停止攻击。只有某一兵种中的全部人机才可以实现该效果。
 
|-
 
|-
|{{nw|<big>'''bot_defend'''</big>}}
+
|{{nw|<big>'''<code>bot_dontmove</code>'''</big>}}
|指定特定团队的所有机器人进行防御,此时指定队伍的所有机器人都将处于防御状态。
+
|允许或禁止人机进行移动。当参数设置为 1 时,人机无法移动,但它们仍然可以转身和跳跃。注意配合指令<code>bot_mimic</code>一起使用,可以将人机移动到特定区域并让它们停留在原地。
例如,重机枪手机器人使它们的机枪旋转起来。
+
 
 +
;格式:<code>bot_dontmove <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为 1 时,人机将被允许进行移动。默认值为 0(禁用)。
 +
;例子:
 +
:<code>bot_dontmove 1</code>
 +
|-
 +
|{{nw|<big>'''<code>bot_forceattack</code>'''</big>}}
 +
|该指令将强制所有的人机以它们当前使用的任意[[weapons/zh-hans|武器]]自动进行攻击。如果<code>bot_forceattack2</code>的参数设置为 ''0'',那么人机将执行主要攻击(primary_fire);如果参数为 ''1'',那么人机将执行辅助攻击(secondary_fire)。
 +
 
 +
请注意,如果<code>bot_mimic</code>处于生效状态时(即参数为 1 ),则此操作将不会生效。
 +
 
 +
;格式:<code>bot_forceattack <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为1时,所有人机都将开始攻击。默认值为 0(禁用)。
 +
;例子:
 +
:<code>bot_forceattack 1</code>
 +
|-
 +
|{{nw|<big>'''<code>bot_forceattack2</code>'''</big>}}
 +
|当<code>bot_forceattack</code>参数设置为 ''1'' 时,所有人机都将以它们当前使用的任意[[weapons/zh-hans|武器]]执行辅助攻击。
 +
 
 +
;格式:<code>bot_forceattack2 <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为 ''1'' 时,人机将会执行其武器的辅助攻击(secondary_fire),当设置为 ''0'' 时,执行主要攻击(primary_fire)。
 +
;例子:
 +
:<code>bot_forceattack2 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_dontmove'''</big>}}
+
|{{nw|<big>'''<code>bot_forceattack_down</code>'''</big>}}
|允许或禁止机器人进行移动。当指令设置为''1''时,所以机器人都不能够移动但它们依然能转身和跳跃。配合这个<code>bot_mimic</code>指令,你可以把机器人带到你想它们去的地方并且让它们呆在那里不动。
+
|指定人机的攻击方式,共有「点射」和「连射」这两种方式。如果参数设置为 ''0'',人机就会表现得像是连续点击攻击键一样(适用于{{item link|Stickybomb Launcher}})。如果设置为 ''1'',那么人机会表现得像是按住攻击键一样(适用于{{item link|Minigun}})。
  
;指令语法: <code>bot_dontmove <''0/1''></code>
+
;格式:<code>bot_forceattack_down <''0/1''></code>
::允许或禁止机器人进行移动。
+
;参数:
;例子: <code>bot_dontmove 1</code>意为禁止所有机器人移动
+
:<code><''integer''></code>
 +
::''1'' 为开启,''0'' 为关闭(默认)。
 +
;例子:
 +
:<code>bot_forceattack_down 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_forceattack'''</big>}}
+
|{{nw|<big>'''<code>bot_forcefireweapon</code>'''</big>}}
|这会强制所有机器人开火,无论它们手上使用的是什么[[weapon/zh-hans|武器]]。如果<code>bot_forceattack2</code>指令设置成''0'',那么机器人会使用主武器开火。如果设置成''1'',那它们则使用副武器开火。
+
|强制所有拥有指定武器的人机切换到此武器并进行攻击。
 +
如果有人机没有此种武器,则不会对其有任何影响(除非它正在使用其他武器进行攻击,在这种情况下它将会停止攻击)。
  
如果<code>bot_mimic</code>指令生效时(设置成''1''),那么强制开火指令就不会生效。
+
;格式:<code>bot_forcefireweapon <''weapon filename''></code>
 +
::“''filename''”处一般填写武器的文件名,即「''tf_weapon_ <weapon name>''」。
 +
;例子:
 +
<code>bot_forcefireweapon tf_weapon_fists</code> 会使所有{{cl|Heavy}}人机切换到{{item link|Fists}}并反复攻击,其他人机则原地待命。<br>
 +
<code>bot_forcefireweapon tf_weapon_shotgun_pyro</code> 会使所有{{cl|Pyro}}人机切换到{{item link|Shotgun}}并反复开火,其他人机则原地待命。
  
;指令语法: <code>bot_forceattack <''0/1''></code>
+
::若要让所有人机停止攻击,则只需输入一个游戏中不存在的武器的的文件名即可。任何未带有“tf_weapon”前缀的武器均不属于《军团要塞2》的武器,因此人机无法使用其进行攻击,例如<code>''bot_forcefireweapon ,,''</code>。
::设置为''0''时,机器人则不会开火。设置为''1''时,机器人则会开火。
+
|-
;例子: <code>bot_forceattack 1</code> 意为机器人会进行自动开火。
+
|{{nw|<big>'''<code>bot_jump</code>'''</big>}}
 +
|强制所有人机反复进行跳跃。
 +
;格式:<code>bot_jump <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为 1 时,所有的人机都将反复进行跳跃。默认值为 0(禁用)。
 +
;例子:
 +
:<code>bot_jump 1</code>
 +
|-
 +
|{{nw|<big>'''<code>bot_crouch</code>'''</big>}}
 +
|强制所有人机持续蹲伏。
 +
;格式:<code>bot_crouch <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为 1 时,所有的人机都将保持蹲伏状态。默认值为 0(禁用)。
 +
;例子:
 +
:<code>bot_crouch 1</code>
 +
|-
 +
|{{nw|<big>'''<code>bot_kick</code>'''</big>}}
 +
|按其名字来移除某一个人机,或者移除整一队人机,又或者移除所有的人机。
 +
;格式:<code>bot_kick <''name/team''></code>
 +
::使指定的人机自杀死亡。
 +
;例子:
 +
:<code>bot_kick bot01</code>,效果为踢出名为“bot01”的人机(如果它存在的话)。
 +
:<code>bot_kick red</code>,效果为踢出所有位于红队的人机。
 +
:<code>bot_kick blue</code>,效果为踢出所有位于蓝队的人机。
 +
:<code>bot_kick all</code>,效果为踢出服务器内所有的人机。
 
|-
 
|-
|{{nw|<big>'''bot_forceattack2'''</big>}}
+
|{{nw|<big>'''<code>bot_kill</code>'''</big>}}
|参见上一条指令。
+
|击杀指定的人机。
 +
;格式:<code>bot_kill <''name''></code>
 +
;参数:
 +
:<code><''name''></code>
 +
::使指定的人机自杀。
 +
;例子:
 +
:<code>bot_kill bot01</code>
 
|-
 
|-
|{{nw|<big>'''bot_forceattack_down'''</big>}}
+
|{{nw|<big>'''<code>bot_mirror</code>'''</big>}}
|设置机器人的开火方式,分点射和连射两种。当设置为''0''时,机器人则会像不断点击开火键一样进行点射(对[[Pistol/zh-hans|手枪]]有效,但对[[Heavy/zh-hans|重机枪手]]的[[Minigun/zh-hans|迷你机枪]]无效)。当设置为''1''时,机器人则会像按着开火键不放一样进行连射(对重机枪手来说有用)。
+
|指定的人机将会镜像了玩家的装备配置(兵种、饰品和武器)。该指令存在有部分漏洞;例如,如果一个{{cl|Demoman}}玩家装备了[[Booties/zh-hans|靴子]]和任意盾牌,镜像人机将仍会持有{{item link|Grenade Launcher}}和{{item link|Stickybomb Launcher}},尽管其模型上已经显示有靴子和盾牌。镜像人机死亡后将不会保留之前的配置,必须要再次使用<code>bot_mirror</code>才能恢复镜像。
  
;指令语法: <code>bot_forceattack_down <''0/1''></code>
+
;格式:<code>bot_mirror <''name''></code>
::''1''为开启,''0''为关闭
+
::其中“''name''”处填写要镜像的人机的名字。
;例子: <code>bot_forceattack_down 1</code> 意为所有机器人进行连射。
+
;例子:
 +
:<code>bot_mirror bot01</code>
 
|-
 
|-
|{{nw|<big>'''bot_forcefireweapon'''</big>}}
+
|{{nw|<big>'''<code>bot_mimic</code>'''</big>}}
|强制拥有指定武器的机器人切换到此武器并进行开火。
+
|人机将会通过 index 来执行玩家的用户命令行,即模仿玩家的行为。
如果一个机器人没有此种武器,则不会对其有影响。
+
人机将会执行玩家发出的所有按键行为,包括模仿玩家的移动、转身、跳跃、攻击等。但人机不会模仿玩家的呼叫医生、切换武器和嘲讽的行为。
;指令语法: <code>bot_forcefireweapon <''weapon filename''></code>
 
::''filename''一般填武器的名称''tf_weapon_ <weapon name>''.
 
;例子: <code>bot_forcefireweapon tf_weapon_fists</code> 会使所有[[Heavy/zh-hans|重机枪手]]使用他们的[[Fists/zh-hans|拳头]]进行攻击,而其他机器人则会原地待命。
 
<code>bot_forcefireweapon tf_weapon_shotgun_pyro</code> 会使所有[[Pyro/z-hans|火焰兵]]机器人使用[[Shotgun/zh-hans|霰弹枪]]开火,而且他机器人则原地待命。
 
  
::如果要想所有机器人停止开火,只需输入一个游戏中不存在的武器的名称即可。而且任何前端没有tf_weapon的武器不算军团要塞2的武器,因此机器人不会开火,例如''bot_forcefireweapon ,,''
+
请注意,该指令的效果将会覆盖指令<code>bot_forceattack</code>的效果,但不会覆盖<code>bot_dontmove</code>的效果。
::由于机器人的装备无法更换,因此无法命令他们使用非默认武器外的武器。
+
 
 +
;格式:<code>bot_mimic <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::''1'' 表示开启,''0'' 表示关闭(默认)。
 +
;例子:
 +
:<code>bot_mimic 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_kill'''</big>}}
+
|{{nw|<big>'''<code>bot_mimic_inverse</code>'''</big>}}
|
+
|指定人机与玩家反向移动;玩家向左移动时,人机将会向右移动,玩家向前移动则人机向后移动,以此类推。
杀死指定机器人。
+
人机的视角方向则不受其影响。
;指令语法: <code>bot_kill <''bot name''></code>
+
 
::强制指定机器人自杀。
+
;格式:<code>bot_mimic_inverse <''integer''></code>
;例子: <code>bot_kill bot01</code> 意为强制让机器人01号自杀。
+
;参数:
 +
:<code><''integer''></code>
 +
::''1'' 表示开启,''0'' 表示关闭(默认)。
 +
;例子:
 +
:<code>bot_mimic_inverse 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_mimic'''</big>}}
+
|{{nw|<big>'''<code>bot_mimic_yaw_offset</code>'''</big>}}
|机器人模拟玩家的动作。
+
|指定人机的朝向角度。
机器人会模仿玩家的按键行为,即模仿玩家的人物动作。例如例如移动、转身、跳跃、开火等。
+
人机将会朝向一个指定的方向,其方向根据玩家的位置而定。默认设置为 ''180'',此时所有的人机都会面朝着玩家。而将其设置 ''0'' 时,所有人机都会面朝玩家所朝向的方向。
  
这个指令的效果会覆盖指令<code>bot_forceattack</code>的效果,但不会覆盖指令<code>bot_dontmove</code>的效果。
+
;格式:<code>bot_mimic_yaw_offset <''0-360''></code>
 +
::以度为单位,指定人机的朝向角度。
 +
;例子:
 +
:<code>bot_mimic_yaw_offset 180</code>
 +
|-
 +
|{{nw|<big>'''<code>bot_randomnames</code>'''</big>}}
 +
|给予人机的随机的名字。
  
;指令语法: <code>bot_mimic <''0/1''></code>
+
;格式:<code>bot_randomnames <''integer''></code>
::''1''表示开启,''0''表示关闭。
+
;参数:
;例子: <code>bot_mimic 1</code> 意为机器人模仿玩家动作。
+
:<code><''integer''></code>
 +
::''1'' 表示开启,''0'' 表示关闭(默认)。
 +
;例子:
 +
:<code>bot_randomnames 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_mimic_yaw_offset'''</big>}}
+
|{{nw|<big>'''<code>bot_refill</code>'''</big>}}
|
+
|为所有的人机补满弹药(包括工程师的[[metal/zh-hans|金属]])和生命值。
指定机器人的朝向。
 
机器人会转身面向一个指定的方向,其方向根据玩家而定。如果角度设置为''180'',则所有机器人都会面向玩家。设置为''0''时,所有机器人都会面向玩家所面向的方向。
 
  
;指令语法: <code>bot_mimic_yaw_offset <''0-360''></code>
+
;格式:<code>bot_refill</code>
::设置机器人的朝向
 
;例子: <code>bot_mimic_yaw_offset 180</code>
 
 
|-
 
|-
|{{nw|<big>'''bot_randomnames'''</big>}}
+
|{{nw|<big>'''<code>bot_saveme</code>'''</big>}}
|赋予机器人随机名字,名字列表如下
+
|让所有人机呼叫医生,相当于向所有人机发出了指令<code>bot_command <''name''> "voicemenu 0 0"</code>。
  
===机器人名称===
+
;格式:<code>bot_saveme <''integer''></code>
游戏中的机器人已经有很多被设定好的名字,其中一些与Valve出品的某些游戏有联系。当然有些与军团要塞2本本身有联系。有些名字这是根据STEAM社区论坛成员的要求而添加的。如果您遇到了列表中没有出现的名字,请帮助我们补充,谢谢。 <!--如果您遇到了列表中没有出现的名字,请帮助我们补充,谢谢-->
+
;参数:
{{Bot names}}
+
:<code><''integer''></code>
;指令格式: <code>bot_randomnames <''0/1''></code>
+
::设置为 ''1'' 时所有人机都将呼叫医生,默认设置为 ''0''(禁用)。
::''1''为开启随机名字,''0''为关闭。
 
;例子: <code>bot_randomnames 1</code>
 
 
|-
 
|-
|{{nw|<big>'''bot_refill'''</big>}}
+
|{{nw|<big>'''<code>bot_selectweaponslot</code>'''</big>}}
|为所有机器人补充弹药,包括工程师的[[Metal/zh-hans|金属]]。  
+
|强制一个人机切换到指定的武器栏位。若要指定单独某个人机切换武器,请改用指令<code>''cc_bot_selectweapon''</code>
  
指令格式: <code>bot_refill</code>
+
;格式:<code>bot_selectweaponslot <''n''> </code>
 +
;参数:
 +
:<code><''n''></code>
 +
::将“''n''”设置为人机应该切换到的武器栏位。
 +
::0 表示主武器;1 表示副武器;2 表示近战武器;3 表示特殊武器(例如间谍的烟盒,工程师的PDA)。
 +
;例子:
 +
:<code>bot_selectweaponslot 2 </code>
 
|-
 
|-
|{{nw|<big>'''bot_saveme'''</big>}}
+
|{{nw|<big>'''<code>bot_teleport</code>'''</big>}}
|强制所有机器人呼叫医生,这相当于对所有机器人使用指令<code>bot_command <''botname''> "voicemenu 0 0"</code>
+
|将一个指定的人机传送到指定的坐标上。
指令格式: <code>bot_saveme <''0/1''></code>
+
在控制台中输入<code>Status</code>即可获取玩家当前所在位置的地图坐标。
::''1''为开启,''0''为关闭。
+
 
 +
;格式:<code>bot_teleport <''name''> <''X''> <''Y''> <''Z''> <''Pitch''> <''Yaw''> <''Roll''></code>
 +
::其中“''name''”处填写所要传送的人机的名字或 ID。
 +
;参数:
 +
:<code><''name''></code>
 +
::所要传送的人机的名字。
 +
:<code><''X''> <''Y''> <''Z''></code>  
 +
::人机将要被传送到的地图坐标。
 +
:<code><''Pitch''> <''Yaw''> <''Roll''></code>
 +
::人机传送后所要面朝的方向。
 +
;例子:
 +
:<code>bot_teleport bot01 -4815 1385 -447 0 0 0</code>,效果为将 bot01 传送到坐标 -4815 1385 -447,朝向为正前方。
 
|-
 
|-
|{{nw|<big>'''bot_selectweaponslot'''</big>}}
+
|{{nw|<big>'''<code>bot_whack</code>'''</big>}}
|让第一个加入的机器人切换指定的武器。
+
|将玩家造成的致命伤害给予指定的人机。
0 = 主武器; 1 = 副武器; 2 = 近战武器; 3 = 特殊武器(例如间谍的烟盒,工程师的PDA)
+
该指令基本是以当前选择的武器来秒杀人机的,可能是在开发过程中进行测试所用的。值得注意的是,只有当<code>mp_friendlyfire</code>设置为 1 时,玩家才能使用<code>bot_whack</code>来击杀队友,否则用来秒杀队友将不会有任何效果。
这个指令只对最先加入的机器人有效。而且目前并未发现能对特定机器人生效。
 
  
;指令格式: <code>bot_selectweaponslot <''n''></code>
+
;格式:<code>bot_whack <''name''></code>
::''n''为上面提到的武器种类代码。
+
;参数:
;例子: <code>bot_selectweaponslot 2</code> 意为让第一个机器人切换到近战武器。
+
:<code><''name''></code>
 +
::将要“秒杀”的人机的名字。
 +
;例子:
 +
:<code>bot_whack bot01</code>
 
|-
 
|-
|{{nw|<big>'''bot_teleport'''</big>}}
+
|{{nw|<big>'''<code>cc_bot_selectweapon</code>'''</big>}}
|传送指定的机器人到给定的坐标。
+
|强制人机切换到指定的武器栏位。
可以通过在控制台输入<code>Status</code>来查看玩家当前所在位置的地图坐标。
 
  
;指令格式: <code>bot_teleport <''botname''> <''X''> <''Y''> <''Z''> <''Pitch''> <''Yaw''> <''Roll''></code>
+
;格式:<code>cc_bot_selectweapon <''name''> <''n''> </code>
::''botname''指的是机器人的名字.
+
;参数:
::<code>''X'' ''Y'' ''Z''</code>指的是地图的坐标。
+
:<code><''n''></code>
::<code>''Pitch'' ''Yaw'' ''Roll''</code>指的是机器人传送后所要面对的方向。
+
::将“''n''”设置为人机应该切换到的武器栏位。
;例子: <code>bot_teleport bot01 -4815 1385 -447 0 0 0</code> 意为传送机器人01号到坐标-4815 1385 -447,朝向为正前方。
+
::0 表示主武器;1 表示副武器;2 表示近战武器;3 表示特殊武器。
 +
:<code><''name''></code>
 +
::将要切换武器栏位的人机的名字。
 +
;例子:
 +
:<code>cc_bot_selectweapon bot12 2</code>,效果为让名为 bot12 的人机切换到近战武器。
 
|-
 
|-
|{{nw|<big>'''bot_whack'''</big>}}
+
|{{nw|<big>'''{{code|bot_hurt}}'''</big>}}
|给予机器人致命的伤害。这种伤害类型取决于玩家当前所使用的武器,这条指令可能是在开发过程中进行测试所用的。
+
|对人机造成指定的伤害,可面向团队或全体执行。
  
;指令格式: bot_whack <''botname''>
+
;格式:{{code|bot_hurt [<''name''>] [<''team''>] [<''damage''>]}}
::''botname''指的是指定机器人的名字。
+
;参数:
;例子: bot_whack bot109 意为给予机器人109号致命的伤害。
+
:<code><''name''></code>
 +
::指定对其造成伤害的人机的名字。
 +
:<code><''team''></code>
 +
::指定对其造成伤害的人机的团队名称,此处可填写「''[[RED]]''」、「''[[BLU]]''」或「''all''」。
 +
:<code><''damage''></code>
 +
::指定人机将要受到的伤害。如果设置为负数,则人机将会获得生命值(包括[[overheal/zh-hans|超量治疗]])。
 +
:<code><''burn''></code>
 +
::使人机燃烧。但不会受到任何后续燃烧伤害。
 +
;例子:
 +
:<code>bot_hurt -name joe -team red -damage 150</code>,效果为使名为 joe 的红队人机受到 150 点伤害。
 
|}
 
|}
  
==参考文献==
+
== {{common string|Notes}} ==
<references/>  
+
* MvM人机也可以使用{{code|nb_}}进行控制(比如使用{{code|nb_select}}和{{code|nb_warp_selected_here}}来把人机传送到特定的位置)。但这一功能不适用于TF人机。
 +
 
 +
=={{common string|References}}==
 +
<references/>
  
 
[[Category:Customization/zh-hans]]
 
[[Category:Customization/zh-hans]]
 
[[Category:Gameplay/zh-hans]]
 
[[Category:Gameplay/zh-hans]]

Latest revision as of 07:30, 21 June 2024

一个士兵人机在Dustbowl训练地图上活动
本条目的主题是游戏《军团要塞2》中由电脑控制的玩家。
人类队友可能会对你指手画脚,但这些没有灵魂的人机会吗?会。它们又不是瞎子。但他们又是哑巴,所以你的无能将会是它们入土都说不出来的秘密。
士兵

人机 / Bot,又称机器人或电脑玩家,是服务器上被电脑控制的玩家。在军团要塞 2 中有两种人机:智能人机以及木偶人机。智能人机采用了复杂的人工智能编码,其目的是为了模拟玩家在游戏中的行为,可在未开启作弊的情况下使用。木偶人机没有人工智能编码,因此它们不会自动活动,但它们在游戏测试和训练的用途上很有帮助。木偶人机需要服务器开启作弊模式才能使用,并且此时也会禁用成就系统。

基础智能人机

基础智能人机,或者称为“TFBot”,是为了模仿人类玩家的游戏行为而设计出来的,并且不能受玩家直接控制。同时,它们都是以随机方式选择兵种的。他们使用的是基于《求生之路》系列中生还者人机以及被感染者 AI 所使用的复杂人工智能代码[1]。添加智能人机不需要服务器开启作弊功能,所以可以借此完成各种成就;不过有一个例外:人机在被击杀后并没有死亡定格照;因此也无法让玩家通过智能人机来达成与死亡定格照相关的成就。此外,用奇异属性的武器杀死人机也不会增加武器的杀敌计数,除非武器应用了奇异升级部件:机器人消灭数,在这种情况下,杀敌数会添加到奇异部件上,而非武器本身。

智能人机具有从简单到专家的四个技术水平等级。Sigsegv对该技术水平差异进行了[1]

智能人机在以下情况能够间接地被玩家进行一定程度的控制:

  • 准备阶段期间,被玩家准星所瞄准的任意一方人机都将做出嘲讽动作。
  • 当玩家使用语音指令“医生!”时,附近的友方医生人机就会前来提供治疗。
  • 当治疗玩家的医生人机的 ÜberCharge 就绪时,玩家使用“冲!冲!冲!”或者“激活 Ubercharge!”语音指令会让它立刻激活 ÜberCharge。
  • 如果医生人机的治疗目标或它自身受到重创时,它会立刻激活自己的 ÜberCharge。
  • 人机会尝试加入队友的同伴嘲讽(例如击掌!)或集体嘲讽(例如康茄舞)。

寻路

具备官方人机支持的地图

地图 游戏模式 文件名
Altitude 攻防型 cp_altitude
Dustbowl 攻防型 cp_dustbowl
Gorge 攻防型 cp_gorge
Gorge Event 攻防型 cp_gorge_event
Mann Manor 攻防型 cp_manor_event
Mercenary Park 攻防型 cp_mercenarypark
Mossrock 攻防型 cp_mossrock
Badlands 控制点 cp_badlands
Foundry 控制点 cp_foundry
Granary 控制点 cp_granary
Gullywash 控制点 cp_gullywash_final1
Metalworks 控制点 cp_metalworks
Process 控制点 cp_process_final
Snakewater 控制点 cp_snakewater_final1
Sunshine 控制点 cp_sunshine
Vanguard 控制点 cp_vanguard
Turbine 夺旗 ctf_turbine
Badlands 山丘之王 koth_badlands
Brazil 山丘之王 koth_brazil
Eyeaduct 山丘之王 koth_viaduct_event
Ghost Fort 山丘之王 koth_lakeside_event
Kong King 山丘之王 koth_king
Lakeside 山丘之王 koth_lakeside_final
Laughter 山丘之王 koth_slaughter_event
Lazarus 山丘之王 koth_lazarus
腐烂之林(Moldergrove) 山丘之王 koth_undergrove_event
Moonshine Event 山丘之王 koth_moonshine_event
Nucleus 山丘之王 koth_nucleus
Probed 山丘之王 koth_probed
Sawmill 山丘之王 koth_sawmill
Slasher 山丘之王 koth_slasher
Viaduct 山丘之王 koth_viaduct
Badwater Basin 推车 pl_badwater
Barnblitz 推车 pl_barnblitz
血水之盆(Bloodwater) 推车 pl_bloodwater
Camber 推车 pl_camber
Brimstone 推车 pl_fifthcurve_event
Embargo 攻防型 pl_embargo
Enclosure 推车 pl_enclosure_final
Goldrush 推车 pl_goldrush
Gravestone 推车 pl_rumble_event
Hoodoo 推车 pl_hoodoo_final
Pier 推车 pl_pier
Precipice 推车 pl_precipice_event_final
Swiftwater 推车 pl_swiftwater_final1
Thundermountain 推车 pl_thundermountain
Upward 推车 pl_upward
Pier 推车 pl_pier
Wutville 推车 pl_wutville_event

蓝队的电脑玩家会在其中一个蓝队出生点内卡住。因此,蓝队仅可能在那个特定出生点阶段内完全碾压或几乎不损兵折将的情况下才能获胜。

在不支持人机的地图上使用人机

参考:Navigation Meshes ,源于 Valve 开发者社区
  1. 导航网格编辑需要启用作弊,因此要在控制台中键入“sv_cheats 1”。
  2. 使用“nav_generate”指令构建初始导航网格。
  3. 等待游戏生成 AI 路径,可在控制台中跟踪进度。
  4. 地图将重新加载。
  5. 选择性地调整生成的导航网格,进而添加缺失的数据并移除错误的数据。使用“nav_edit 1”进入导航网格编辑模式。
  6. 重新加载/重启服务器(可选,但如果跳过这一步则会禁用成就功能)。
  7. 打开控制台,如上所示输入“tf_bot_add <数量>”来添加人机。

警告:如果你在启用人机的情况下编辑导航网格,游戏很可能会崩溃。

除了每次在需要添加人机时输入“tf_bot_add <数量>”指令外,人机可以在任何已执行上述步骤的地图上使用,而不必重复这些步骤。

在控制点,山丘之王,推车和夺旗模式的地图上自动生成的导航网格的效果最佳。在曼恩之力地图上,人机会主动承担夺旗的任务,但无法使用钩爪或智能地使用它们经过的增益。

将控制台命令“tf_bot_offense_must_push_time”的值设置为 0 可以让人机在地图中对战,而并没有它们可以识别的目标,除非地图没有任何重生区域实体。

不支持官方人机的默认地图

 ·  Hydro  ·  DeGroot Keep  ·  Hightower  ·  Frontier  ·  Pipeline  ·  Steel  ·  2Fort  ·  2Fort Invasion
 ·  Double Cross  ·  Landfall  ·  Sawmill(夺旗)  ·  Well(夺旗)  ·  5Gorge  ·  Coldfront  ·  Fastlane  ·  Freight
 ·  Powerhouse  ·  Sinshine  ·  Well  ·  Yukon  ·  Egypt  ·  Gravel Pit  ·  Junction  ·  Mountain Lab
 ·  Snowplow  ·  SnowVille  ·  Snowfall  ·  Steel  ·  Standin  ·  Borneo  ·  Cactus Canyon  ·  Frontier
 ·  Hellstone  ·  Snowycoast  ·  Swiftwater  ·  Banana Bay  ·  Helltower  ·  Hightower  ·  Nightfall  ·  Pipeline
 ·  Badlands(竞技场)  ·  Byre  ·  Granary(竞技场)  ·  Lumberyard  ·  Nucleus(竞技场)  ·  Offblast  ·  Ravine  ·  Sawmill
 ·  Watchtower  ·  Well(竞技场)  ·  Harvest  ·  Harvest Event  ·  Highpass  ·  Maple Ridge Event  ·  Suijin  ·  Carnival of Carnage
 ·  Doomsday  ·  Cloak(控制点)  ·  Bigrock  ·  Coal Town  ·  Decoy  ·  Ghost Town  ·  Mannhattan  ·  Mannworks
 ·  Rottenburg  ·  Asteroid  ·  Foundry(夺旗)  ·  Gorge(夺旗)  ·  Hellfire  ·  Brickyard  ·  District  ·  Timbertown
 ·  Pit of Death  ·  Watergate

智能人机指令

有关更全面的指令列表,请见军团要塞2控制台指令和变量一览表 ,源于 Valve 开发者社区

若要在已支持的地图上使用智能人机,服务器管理员应该在控制台中输入以下指令(有些指令可能需要将sv_cheats设置为 1 才能生效):

指令 说明
tf_bot_add 该指令将在双方队伍中随机添加一个或多个随机兵种的智能人机。游戏还会在默认名字集合中随机挑选一个名字分配给该人机。
格式:tf_bot_add [<count>] [<class>] [<team>] [<difficulty>] [<name>] [noquota]
参数:
<count>
添加指定数量人机。如果省略该参数,则每次只会添加一个人机。
如果玩家试图添加超过服务器最大玩家数量的人机,则会无法生效并在控制台中显示一条错误消息。
如果mp_teams_unbalance_limit太低,则往一个队伍添加更多的人机仍然有可能会触发自动平衡,从而使两队人数相等。
<class>
指定人机所选兵种的英文名称,其中class处可以填写「Demoman」、「Engineer」、「HeavyWeapons」、「Medic」、「Pyro」、「Scout」、「Soldier」、「Soldier」或「Spy
<team>
指定人机所加入的队伍的英文名称,其中team处可以填写「red」或者「blue」。
<difficulty>
设置人机的难度等级,其中difficulty处可以填写「easy」(简单)、「normal」(普通)、「hard」(困难)或「expert」(专家)。
<name>
设置所连接的人机的名字。
noquota
如果存在明确的‘noquota’短语,则人机将会被排除在人机配额管理系统之外。详见tf_bot_quota
例子:
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_fire_weapon_allowed 指定人机是否应该进行攻击。如果选择禁用,人机仍然可以使用某些不具备破坏性的武器,如医疗枪。但存在一个例外,即医生人机仍然会使用注射枪开火。此外,爆破手人机仍然可以引爆尚存的黏弹,但不会再放置新的黏弹。
格式:tf_bot_fire_weapon_allowed <integer>
参数:
<integer>
0 表示关闭,1 表示开启(默认)。
例子:
tf_bot_fire_weapon_allowed 0,效果为禁用人机的武器,但极个别武器除外。
tf_bot_force_class 如果设置为一个兵种名称,则所有人机都将作为该兵种重新生成。
格式:tf_bot_force_class <class>
参数:
<class>
class处可以填写「Demoman」、「Engineer」、「HeavyWeapons」、「Medic」、「Pyro」、「Scout」、「Soldier」、「Soldier」或「Spy」。默认为“”(即空白)。
例如:tf_bot_force_class medic,效果为让所有人机作为医生重新生成。
tf_bot_force_jump 如果启用,则强制人机反复进行跳跃。
格式:tf_bot_force_jump <integer>
参数:
<integer>
1 表示开启,0 表示关闭(默认)。
例子:
tf_bot_force_jump 1,效果为强制智能人机反复进行跳跃。
tf_bot_join_after_player 如果参数不为零,则人机将会在玩家加入游戏后才会跟随加入。该指令只适用于分配生成的人机。
格式:tf_bot_join_after_player <integer>
参数:
<integer>
0 表示关闭,1 表示开启(默认)。
例子:
tf_bot_join_after_player 0,效果为使 TFBot 在添加后便直接加入游戏,即使没有玩家处于任意一方团队中。
tf_bot_keep_class_after_death 如果参数为零,则人机将在每次重生时都会重新选择兵种。
格式:tf_bot_keep_class_after_death <integer>
参数:
<integer>
1 表示关闭,0 表示开启(默认)。
例子:
tf_bot_keep_class_after_death 1,效果为阻止 TFBot 更换兵种。
tf_bot_kick 该指令将会踢出单个或所有的智能人机。
格式:tf_bot_kick <name/all/team>
参数:
<name/all/team>
指定将要踢出的人机的名字,或是将要踢出的整个人机队伍的名称,或者全部的人机。
例子:
输入tf_bot_kick CEDA将会踢出名为「CEDA」的人机(如果它存在的话)。而如果要踢出名字中包含有两个及以上的单词的人机,如「Black Mesa」,则只需要用英文引号("")将其括起来,即tf_bot_kick "Black Mesa",就可以将名为「Black Mesa」的人机踢出。
tf_bot_kill 该指令将会杀死单个或所有的智能人机。
格式:tf_bot_kill <name/all/team>
参数:
<name/all/team>
指定将要杀死的人机的名字,或是将要杀死的整个人机队伍的名称,或者全部的人机。
例子:
输入tf_bot_kill CEDA将会杀死名为「CEDA」的人机(如果它存在的话)。同tf_bot_kick,如果要杀死名字中包含有两个及以上的单词的人机,如「Black Mesa」,则只需要用英文引号("")将其括起来,即tf_bot_kick "Black Mesa",就可以将名为「Black Mesa」的人机杀死。
tf_bot_melee_only 指定人机是否应该只能使用近战武器。
格式:tf_bot_melee_only <integer>
参数:
<integer>
1 表示开启,0 表示关闭(默认)。
例子:
tf_bot_melee_only 1,效果为使人机只能使用近战武器。
tf_bot_prefix_name_with_difficulty 如果参数不为零,则会在人机名字前面附加上该人机的技术等级的前缀。
格式:tf_bot_prefix_name_with_difficulty <integer>
参数:
<integer>
1 表示开启,0 表示关闭(默认)。
例子:
输入tf_bot_prefix_name_with_difficulty 1后,所添加的人机的名字会变为「Normal Aimbot」(普通难度)和「Expert Saxton Hale」(专家难度)。
tf_bot_quota 指定游戏中 TFBot 的总数。该指令只会在tf_bot_quota_mode的参数为「fill」或「match」时生效。
格式:tf_bot_quota <integer>
参数:
<integer>
介于 0 和服务器能容纳的最大玩家数之间的一个整数。默认值为 0。
例子:
在指令 tf_bot_quota_mode 设置为 match 时,输入tf_bot_quota 2的效果为每有 1 个玩家加入游戏时,就添加 2 个人机。
tf_bot_quota_mode 指定人机的分配类型。
格式:tf_bot_quota_mode<normal/fill/match>
参数:
normal/fill/match
如果为「normal」,服务器将不会添加或踢出任何人机,除非有明确的指令;此时指令bot_quota 也将无效。
如果为「fill」,服务器将会按照 1:1 的比例添加与玩家人数相匹配的 N 个数量的人机。其中 N 由 bot_quota 控制。
如果为「match」,服务器将会按照 1:N 的比例添加与玩家人数相匹配的数量的人机。其中 N 由 bot_quota 控制
例子:
tf_bot_quota_mode fill,效果为游戏中的人机数量将始终保持与玩家人数相同。
tf_bot_taunt_victim_chance 指定人机在杀死人类玩家后发起嘲讽的频率。
格式:tf_bot_taunt_victim_chance <integer>
参数:
<integer>
介于 0 到 100 之间的整数。默认值为 20。
例子:
tf_bot_taunt_victim_chance 0,效果为人机在杀死一名人类玩家后将不会发起嘲讽。
tf_bot_taunt_victim_chance 100,效果为人机在杀死一名人类玩家后将一定会发起嘲讽。
tf_bot_warp_team_to_me 将与你同队的人机传送到你的位置。需要sv_cheats 1前置。
格式:tf_bot_warp_team_to_me
参数:

智能人机现况

智能人机现在已经全面发布[需要来源链接]。目前,在经过无帽更新后,所有的兵种的智能人机都已经能正常运作,包括曾经有漏洞的间谍人机。智能人机只能适用于大部分官方山丘之王地图、部分推车地图、攻防型地图DustbowlGorge夺旗地图,以及 Mann Manor(在后两种地图中,智能人机只能通过在控制台输入tf_bot_add指令来添加)。玩家通过一些操作在不支持的地图上也可以使用智能人机;但这些人机并不会模仿人类玩家的游戏行为。

人机无法在任何推车竞赛地图上正常运作,因为它们要么跳不过Hightower上的栏杆,要么被困在出生点中的随机角落里;而且人机还会在任意一个推车地图上开舞会(该情况在未来可能会改变)[需要来源链接]

智能人机的行为

  • 人机目前只能使用基础的装备配置(尽管可以通过自定义模组/插件来让人机获得非默认武器)。
  • 简单难度的人机会很少会使用主武器以外的武器。而更高难度的人机会在主武器弹药耗尽后立即切换并使用它们的副武器,或者在距离不够的情况下用来补枪。
  • 人机目前还无法使用特殊的跳跃操作(如火箭跳)或者搬运建筑。
  • 人机在杀死玩家后,有几率立刻进行嘲讽,而且就算暴露在敌人火力下也会照做不误。而正在携带着情报的人机则不会出现这种行为。曼恩 vs. 机器模式里的机器人也存在有这类行为。
  • 间谍人机(和玩家)在伪装状态时会被其它人机完全忽略。然而,在“触碰”到任何敌方人机、瘫痪建筑物、开火或隐形时,所有目击到这些情景的人机会将间谍人机(或玩家)暴露为间谍,并且不会忘记其样貌,除非间谍在暗地里更换了伪装形象、该目击且暴露出间谍的人机死亡,或者是间谍使用死亡之铃进行假死。
  • 在非简单难度的游戏中,火焰兵人机会十分频繁地使用压缩气爆来反弹敌方的飞行物。
  • 医生人机的治疗目标是存在有优先级的,在大部分时候,比起治疗狙击手(以及优先级更低的工程师),它们会选择优先治疗其它的兵种,就算使用了“医生!”语音命令指令也是如此。
  • 医生人机更倾向于治疗机枪手、士兵、爆破手和火焰兵这类兵种,如果人类玩家也在游玩这类兵种,则医生会持续跟随治疗玩家。反之,如果人类玩家游玩上述以外的兵种,则医生会很少给玩家持续的治疗。
  • 当医生人机受到伤害时,它会立刻部署 ÜberCharge(如果有的话)。曼恩 vs. 机器模式里的 Über 医生也有存在有这类行为。
  • 除非首先受到了攻击,否则人机在准备阶段期间是不会攻击的(爆破手人机布置黏性炸弹除外)。
  • 工程师人机不会升级自己的传送装置(甚至不会移除电子工兵),有时候在还未交火的状态下设置还不会修复自己的步哨枪。
  • 工程师人机永远不会修复或升级友方工程师人机的建筑,除非该建筑挡住了该工程师人机的目标。
  • 除了工程师、间谍和狙击手人机以外,其他的人机在攻防型推车地图的准备阶段中会停留在出生点中不动。
  • 当间谍人机被另一个人机(或玩家)发现时,它将不会再尝试背刺目标,而是转为使用左轮手枪并边开枪边撤退。
  • 一旦爆破手人机获知了步哨枪的位置(一般是被这一步哨枪杀死后),它们会站在步哨枪的射程以外使用榴弹精确地瞄准并计算出合适的发射点,然后让榴弹准确地落在步哨枪的位置。不过,墙壁和天花板有时候可能会挡住榴弹的飞行路线。
  • 狙击手人机在搜索范围内没有找到敌方目标时,则会使用“不行”这一语音命令。
  • 友方的医生人机会治疗已伪装的敌方间谍。

漏洞

  • 人机有时候可能会试图穿过墙壁等无法穿过的物体。
  • 每当玩家/人机在隐身/解除隐身或伪装/解除伪装时,即使是背对着间谍的人机都会“目击”到身后的目标并转身攻击。但其原因并不是由玩家发出的任何声音(脚步声、各种武器的噪音等)所造成的。
  • 尽管情况很少见,人机在使用工程师的传送装置时可能会站在传送装置的另一端上,并被卡住(不会自行移动)。
  • 当人机使用语音命令(例如“间谍!”和“前进!”),文本栏里并不会显示这些命令的文字。
  • 正在治疗玩家的医生人机不会躲避敌人的火力攻击或寻找医疗包,就算它们的生命值非常的低。
  • 人机可以在嘲讽状态下移动,从而免疫了欢乐拳套的攻击。
  • 医生人机在短时间内受到攻击时经常会使用骨锯而非注射枪来对付非近战范围内的敌人,甚至在极少数情况下会切换出它们的医疗枪
  • 医生人机在使用注射枪时并不会抬高瞄点来补偿针头的下坠。其原因可能可能是注射枪在智能人机的代码中没有被准确识别为非即时命中武器。
  • 无论在什么游戏难度下,间谍人机都能够看到并跟踪已经隐身的间谍(智能人机或玩家)。
  • 不论间谍的所伪装的团队是敌是友(仅限玩家,因为人机无法伪装成队友),只要这名间谍撞到了敌人,该敌人仍然会指认出他是间谍。
  • 人机会遵守自动平衡规则。如果要在特定的团队中生成人机,那么你必须将mp_teams_unbalance_limit的参数设置为 0。
  • 工程师人机可能会无视它们的建筑,直到建筑被摧毁。
  • 机枪手人机有时会在弹药耗尽的情况下仍然试着用转轮机枪开火(尽管在低于高级的人机难度下,这种情况似乎会大量发生)。
  • 当附近没有敌人时,败方的医生人机偶尔会在羞辱期间自杀。而玩家自身就算使用指令也没法实现这一行为。
  • 将配置菜单的预览设置为蓝队时会导致红队人机出现在蓝队中。
  • 目前,人机无法在以下类型的游戏模式或地图上运行,即使该地图具备生成的导航网格(但间谍和狙击手人机可能会有效)。
  • 拿出近战武器的人机有时候不会切换回其他的武器,即使它们获取的弹药也还是一样。
    • 要修复这种情况可以直接杀死它们或者随缘。
  • 丛林炼狱更新之后,用特定参数(例如tf_bot_add 5 pyro blue normal)生成的人机会直接死在重生室里。这种情况可以通过指令tf_bot_reevaluate_class_in_spawnroom 0来阻止,并且需要将sv_cheats的参数设置为 1。

智能人机的名字

智能人机通过编程后都拥有不同的名字,其中的许多名字都与《军团要塞2》、Valve 的其他作品,以及计算机编程有各种关联。还有许多名字是应Steam 论坛上所提出的请求而被采纳的。

未使用的人机名称

在泄露的 TF2 源代码版本中发现了以下的人机名称,其中包含由于未知原因而从未被使用的名称。

  • 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


玩家也可以给智能人机输入自定义的名字,例如,tf_bot_add heavyweapons blue "Blu Hoovy";结果为在蓝队中添加了一个名为“Blu Hoovy”的蓝队机枪手

木偶人机

木偶人机没有AI程序,所以不会自行移动或操作。不过这类人机可以当作牵线木偶一样进行使用:玩家可以通过指令来操控它们的行为,比如例如跟随玩家并使用武器开火。木偶人机主要被用来参与测试,如果相应的指令操作恰当,也可利用它们创造出惊人的视觉效果。若要生成木偶人机,则必须将sv_cheats的参数设置为 1。

木偶人机指令

下列指令并非全部有效;也可能省略了一些有效的指令。

这些指令有可能对智能人机生效,也可能无效。

注:只输入指令的主体部分而不输入参数部分并不会使指令生效,并将显示指令的当前设置和一段简短说明。

指令 说明
bot 使用该指令将在特定团队中创建一个特定兵种和特定名字的人机。如果省略了团队或名字,则这些选项将会随机选择。
格式:bot [<teamname/number>] [<classname>] [<name>] [<number>]
参数:
<number>
指定要添加的人机的数量。
<teamname/number>
指定人机所加入的团队的名称或编号,此处可以填写「RED」或「1」、「BLU」或「0」。
<classname>
指定人机的兵种类型,此处可以填写「Demoman」、「Engineer」、「Heavy」、「Medic」、「Pyro」、「Scout」、「Soldier」、「Sniper」或「Spy」。
<teleport>
将生成的人机传送到玩家准星所瞄准的位置上。
<targetdummy>
阻止已生成的人机流失生命值。
<name>
name”处可以填写任意内容。如果出现多人同名的情况,则会在所有同名名字的开头增加一个带括号的数字(从 1 开始递增)来进行编号区分,从最早加入的人机开始编号。例如,joe、(1)joe、(2)joe,等等。如果没有指定名字,则该人机的名字将会以在“bot”一词的末尾加上数字(从 01 开始递增)进行命名;例如,第一个人机的名字是「bot01」,下一个则是「bot02」,依此类推。
例子:
bot -team red -class Engineer -name joe,效果为在红队添加一个名为 joe 的工程师人机。
bot_changeclass 强制所有人机更换为指定的兵种类型。
格式:bot_changeclass <name> <classname>
参数:
<name>
目标人机的名字。
<classname>
人机将要切换到的兵种的名称。默认为“”(即空白)。
例子:
bot_changeclass bot01 Soldier,效果为将名为 bot01 的人机的兵种强制更改为“士兵”。
bot_changeteams

让所有人机强制更换队伍。如果有一个人机在红队,那么执行指令后它将会被更换到蓝队,反之亦然。

bot_command 代表特定的人机发送特定的指令。
格式:bot_command <name/all> <console command>
参数:
<name/all>
指定将要向其发送指令的人机的名字或 ID。填写“all”将向所有人机发送指令。
<console command>
可以填写控制台指令中列出的任意一项指令,以及作弊码中的部分指令。
例子 1
bot_command bot01 "voicemenu 0 0",效果为使 bot01 使用语音菜单中的 0 0 选项。
例子 2
bot_command bot01 "taunt",效果为使 bot01 使用嘲讽动作。
使用bot_command无法实现指定物品栏(栏位1,栏位2,等等)的指令,但是用bot_forcefireweapon等效替代,即让该兵种中的所有人机都切换指定某一栏位的武器并开始攻击,然后使其停止攻击。只有某一兵种中的全部人机才可以实现该效果。
bot_dontmove 允许或禁止人机进行移动。当参数设置为 1 时,人机无法移动,但它们仍然可以转身和跳跃。注意配合指令bot_mimic一起使用,可以将人机移动到特定区域并让它们停留在原地。
格式:bot_dontmove <integer>
参数:
<integer>
当设置为 1 时,人机将被允许进行移动。默认值为 0(禁用)。
例子:
bot_dontmove 1
bot_forceattack 该指令将强制所有的人机以它们当前使用的任意武器自动进行攻击。如果bot_forceattack2的参数设置为 0,那么人机将执行主要攻击(primary_fire);如果参数为 1,那么人机将执行辅助攻击(secondary_fire)。

请注意,如果bot_mimic处于生效状态时(即参数为 1 ),则此操作将不会生效。

格式:bot_forceattack <integer>
参数:
<integer>
当设置为1时,所有人机都将开始攻击。默认值为 0(禁用)。
例子:
bot_forceattack 1
bot_forceattack2 bot_forceattack参数设置为 1 时,所有人机都将以它们当前使用的任意武器执行辅助攻击。
格式:bot_forceattack2 <integer>
参数:
<integer>
当设置为 1 时,人机将会执行其武器的辅助攻击(secondary_fire),当设置为 0 时,执行主要攻击(primary_fire)。
例子:
bot_forceattack2 1
bot_forceattack_down 指定人机的攻击方式,共有「点射」和「连射」这两种方式。如果参数设置为 0,人机就会表现得像是连续点击攻击键一样(适用于黏性炸弹发射器)。如果设置为 1,那么人机会表现得像是按住攻击键一样(适用于转轮机枪)。
格式:bot_forceattack_down <0/1>
参数:
<integer>
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 会使所有火焰兵人机切换到霰弹枪并反复开火,其他人机则原地待命。

若要让所有人机停止攻击,则只需输入一个游戏中不存在的武器的的文件名即可。任何未带有“tf_weapon”前缀的武器均不属于《军团要塞2》的武器,因此人机无法使用其进行攻击,例如bot_forcefireweapon ,,
bot_jump 强制所有人机反复进行跳跃。
格式:bot_jump <integer>
参数:
<integer>
当设置为 1 时,所有的人机都将反复进行跳跃。默认值为 0(禁用)。
例子:
bot_jump 1
bot_crouch 强制所有人机持续蹲伏。
格式:bot_crouch <integer>
参数:
<integer>
当设置为 1 时,所有的人机都将保持蹲伏状态。默认值为 0(禁用)。
例子:
bot_crouch 1
bot_kick 按其名字来移除某一个人机,或者移除整一队人机,又或者移除所有的人机。
格式:bot_kick <name/team>
使指定的人机自杀死亡。
例子:
bot_kick bot01,效果为踢出名为“bot01”的人机(如果它存在的话)。
bot_kick red,效果为踢出所有位于红队的人机。
bot_kick blue,效果为踢出所有位于蓝队的人机。
bot_kick all,效果为踢出服务器内所有的人机。
bot_kill 击杀指定的人机。
格式:bot_kill <name>
参数:
<name>
使指定的人机自杀。
例子:
bot_kill bot01
bot_mirror 指定的人机将会镜像了玩家的装备配置(兵种、饰品和武器)。该指令存在有部分漏洞;例如,如果一个爆破手玩家装备了靴子和任意盾牌,镜像人机将仍会持有榴弹发射器黏性炸弹发射器,尽管其模型上已经显示有靴子和盾牌。镜像人机死亡后将不会保留之前的配置,必须要再次使用bot_mirror才能恢复镜像。
格式:bot_mirror <name>
其中“name”处填写要镜像的人机的名字。
例子:
bot_mirror bot01
bot_mimic 人机将会通过 index 来执行玩家的用户命令行,即模仿玩家的行为。

人机将会执行玩家发出的所有按键行为,包括模仿玩家的移动、转身、跳跃、攻击等。但人机不会模仿玩家的呼叫医生、切换武器和嘲讽的行为。

请注意,该指令的效果将会覆盖指令bot_forceattack的效果,但不会覆盖bot_dontmove的效果。

格式:bot_mimic <integer>
参数:
<integer>
1 表示开启,0 表示关闭(默认)。
例子:
bot_mimic 1
bot_mimic_inverse 指定人机与玩家反向移动;玩家向左移动时,人机将会向右移动,玩家向前移动则人机向后移动,以此类推。

人机的视角方向则不受其影响。

格式:bot_mimic_inverse <integer>
参数:
<integer>
1 表示开启,0 表示关闭(默认)。
例子:
bot_mimic_inverse 1
bot_mimic_yaw_offset 指定人机的朝向角度。

人机将会朝向一个指定的方向,其方向根据玩家的位置而定。默认设置为 180,此时所有的人机都会面朝着玩家。而将其设置 0 时,所有人机都会面朝玩家所朝向的方向。

格式:bot_mimic_yaw_offset <0-360>
以度为单位,指定人机的朝向角度。
例子:
bot_mimic_yaw_offset 180
bot_randomnames 给予人机的随机的名字。
格式:bot_randomnames <integer>
参数:
<integer>
1 表示开启,0 表示关闭(默认)。
例子:
bot_randomnames 1
bot_refill 为所有的人机补满弹药(包括工程师的金属)和生命值。
格式:bot_refill
bot_saveme 让所有人机呼叫医生,相当于向所有人机发出了指令bot_command <name> "voicemenu 0 0"
格式:bot_saveme <integer>
参数:
<integer>
设置为 1 时所有人机都将呼叫医生,默认设置为 0(禁用)。
bot_selectweaponslot 强制一个人机切换到指定的武器栏位。若要指定单独某个人机切换武器,请改用指令cc_bot_selectweapon
格式:bot_selectweaponslot <n>
参数:
<n>
将“n”设置为人机应该切换到的武器栏位。
0 表示主武器;1 表示副武器;2 表示近战武器;3 表示特殊武器(例如间谍的烟盒,工程师的PDA)。
例子:
bot_selectweaponslot 2
bot_teleport 将一个指定的人机传送到指定的坐标上。

在控制台中输入Status即可获取玩家当前所在位置的地图坐标。

格式:bot_teleport <name> <X> <Y> <Z> <Pitch> <Yaw> <Roll>
其中“name”处填写所要传送的人机的名字或 ID。
参数:
<name>
所要传送的人机的名字。
<X> <Y> <Z>
人机将要被传送到的地图坐标。
<Pitch> <Yaw> <Roll>
人机传送后所要面朝的方向。
例子:
bot_teleport bot01 -4815 1385 -447 0 0 0,效果为将 bot01 传送到坐标 -4815 1385 -447,朝向为正前方。
bot_whack 将玩家造成的致命伤害给予指定的人机。

该指令基本是以当前选择的武器来秒杀人机的,可能是在开发过程中进行测试所用的。值得注意的是,只有当mp_friendlyfire设置为 1 时,玩家才能使用bot_whack来击杀队友,否则用来秒杀队友将不会有任何效果。

格式:bot_whack <name>
参数:
<name>
将要“秒杀”的人机的名字。
例子:
bot_whack bot01
cc_bot_selectweapon 强制人机切换到指定的武器栏位。
格式:cc_bot_selectweapon <name> <n>
参数:
<n>
将“n”设置为人机应该切换到的武器栏位。
0 表示主武器;1 表示副武器;2 表示近战武器;3 表示特殊武器。
<name>
将要切换武器栏位的人机的名字。
例子:
cc_bot_selectweapon bot12 2,效果为让名为 bot12 的人机切换到近战武器。
bot_hurt 对人机造成指定的伤害,可面向团队或全体执行。
格式:bot_hurt [<name>] [<team>] [<damage>]
参数:
<name>
指定对其造成伤害的人机的名字。
<team>
指定对其造成伤害的人机的团队名称,此处可填写「RED」、「BLU」或「all」。
<damage>
指定人机将要受到的伤害。如果设置为负数,则人机将会获得生命值(包括超量治疗)。
<burn>
使人机燃烧。但不会受到任何后续燃烧伤害。
例子:
bot_hurt -name joe -team red -damage 150,效果为使名为 joe 的红队人机受到 150 点伤害。

注释

  • MvM人机也可以使用nb_进行控制(比如使用nb_selectnb_warp_selected_here来把人机传送到特定的位置)。但这一功能不适用于TF人机。

参考内容