Difference between revisions of "Bots/zh-hans"

From Team Fortress Wiki
Jump to: navigation, search
(Created page with 'right|thumb|300px|A [[Soldier bot in action on the Dustbowl Training map.]] {{Quotation|'''重机枪手机器人'''的自我…')
 
m (漏洞: imp)
 
(34 intermediate revisions by 12 users not shown)
Line 1: Line 1:
[[Image:Tr_dustbowl0003.jpg|right|thumb|300px|A [[Soldier]] bot in action on the [[Dustbowl (Training)|Dustbowl Training]] map.]]
+
{{DISPLAYTITLE:人机}}
{{Quotation|'''重机枪手机器人'''的自我描述|我的拳头可是用钢铁做的!|sound=Heavy_specialweapon01.wav}}
+
[[File:Tr_dustbowl0003.png|right|thumb|300px|一个{{cl|Soldier}}人机在[[Dustbowl (Training)/zh-hans|{{map name|Dustbowl}}训练]]地图上活动]]
 +
{{hatnote|本条目的主题是游戏《军团要塞2》中由电脑控制的玩家。
 +
* 关于由电脑控制的用于作弊/[[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|机器人]]。}}
  
在军团要塞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|隐身]]功能。Bots can only play as a Spy in [[List of game modes#Highlander|Highlander mode]], by typing ''"tf_bot_force_class Spy"'' into the [http://developer.valvesoftware.com/wiki/Developer_Console console], or by setting class restrictions with a third party program.
+
基础智能人机,或者称为“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|奇异升级部件]]:机器人消灭数,在这种情况下,杀敌数会添加到奇异部件上,而非武器本身。
AI Bots only work properly for most official [[King of the Hill]] maps, some [[Payload]] maps, [[Dustbowl]], and [[Mann Manor]] (bots can only be added by using the tf_bot_add command). The use of AI Bots on non-supported maps is possible by following certain steps; however, they will not emulate human players as well.
 
  
''Note: A [http://forums.steampowered.com/forums/showthread.php?t=1264447 pack of pre-made bot meshes] has been compiled for many popular maps.''
+
智能人机具有从简单到专家的四个技术水平等级。[https://steamcommunity.com/id/segmentation_fault Sigsegv]对该技术水平差异进行了[https://steamcommunity.com/sharedfiles/filedetails/?id=572409016|详细的阐述]
  
====Using Bots on Unsupported Maps====
+
智能人机在以下情况能够间接地被玩家进行一定程度的控制:
# Type "sv_cheats 1" in console
+
* 在[[Setup time/zh-hans|准备阶段]]期间,被玩家准星所瞄准的任意一方人机都将做出[[taunt/zh-hans|嘲讽]]动作。
# Type "nav_generate" in console
+
* 当玩家使用[[Voice commands/zh-hans|语音指令]]“医生!”时,附近的友方[[Medic/zh-hans|医生]]人机就会前来提供治疗。
# Wait while the game generates AI paths
+
* 当治疗玩家的医生人机的 [[ÜberCharge/zh-hans|ÜberCharge]] 就绪时,玩家使用“冲!冲!冲!”或者“激活 Ubercharge!”语音指令会让它立刻激活 ÜberCharge。
# Map will reload (navigation has been saved and the previous step doesn't need to be repeated)
+
* 如果医生人机的治疗目标或它自身受到重创时,它会立刻激活自己的 ÜberCharge。
# Open console and type ''"tf_bot_add <number>"'' as above
+
* 人机会尝试加入队友的同伴嘲讽(例如{{item link|High Five!}})或集体嘲讽(例如{{item link|Conga}})。
  
''Note: Bots do not work on [[Capture the Flag]] maps, even if the above tutorial is followed.''
+
=== 寻路 ===
 +
====具备官方人机支持的地图====
 +
{{Maps with bot support}}
  
====AI Bot Behavior====
+
====在不支持人机的地图上使用人机====
* Bots currently can not use or equip unlockable content, including: non-standard [[Weapons]], [[Hats]], or [[Miscellaneous items]].
+
{{hatnote|参考:{{vdc|Navigation Meshes}}}}
* Bots currently can not [[Jumping|jump]], [[Rocketjump#Rocket jumps|rocket jump]] or [[Stickyjump#Sticky jumps|sticky jump]].
+
# 导航网格编辑需要启用作弊,因此要在[[console/zh-hans|控制台]]中键入“<kbd>sv_cheats 1</kbd>”。
* If a bot kills a player, they roll a chance to taunt immediately after and if it succeeds, they will taunt even if they are under enemy fire.
+
# 使用“<kbd>nav_generate</kbd>”指令构建初始导航网格。
* When a bot sees a disguised enemy Spy, it will watch the Spy's movement. The bot will not attack the disguised Spy unless the Spy attacks or bumps into one of the bots.
+
# 等待游戏生成 AI 路径,可在控制台中跟踪进度。
* Pyro bots will use the [[Compression blast]] against projectiles regularly.
+
# 地图将重新加载。
 +
# 选择性地调整生成的导航网格,进而添加缺失的数据并移除错误的数据。使用“<kbd>nav_edit 1</kbd>”进入导航网格编辑模式。
 +
# 重新加载/重启服务器(可选,但如果跳过这一步则会禁用成就功能)。
 +
# 打开控制台,如上所示输入“<kbd>tf_bot_add <数量></kbd>”来添加人机。
 +
'''警告:如果你在启用人机的情况下编辑导航网格,游戏很可能会崩溃。'''
  
===AI Bot Commands===
+
除了每次在需要添加人机时输入“<kbd>tf_bot_add <数量></kbd>”指令外,人机可以在任何已执行上述步骤的地图上使用,而不必重复这些步骤。
To use AI bots on supported maps, the server administrator should type the following commands into the console:
+
 
 +
在控制点,山丘之王,推车和夺旗模式的地图上自动生成的导航网格的效果最佳。在[[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"
! class="header" | Command
+
! class="header" | 指令
! class="header" | Description
+
! class="header" | 说明
 
|-
 
|-
|{{nw|<big>'''tf_bot_add'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_add'''</code></big>}}
|This command will create one or more AI bots of random classes on random teams.  They will also be assigned amusing human-like names.
+
|该指令将在双方队伍中随机添加一个或多个随机兵种的智能人机。游戏还会在默认名字集合中随机挑选一个名字分配给该人机。
  
;Syntax: <code>tf_bot_add [<''count''>] [<''class''>] [<''team''>] [<''difficulty''>]</code>
+
;格式:<code>tf_bot_add [<''count''>] [<''class''>] [<''team''>] [<''difficulty''>] [<''name''>] [''noquota'']</code>
  
;Parameters:
+
;参数:
 
:<code><''count''></code>
 
:<code><''count''></code>
::Specifies the number of bots to spawn.  If omitted, one bot is spawned.
+
::添加指定数量人机。如果省略该参数,则每次只会添加一个人机。
::As of this writing, specifying a number greater than the maximum number of players, including any human players, causes the bots to freeze.  Thus if you have a 24 player server (the default), and one human player, do not spawn more than 23 bots.
+
::如果玩家试图添加超过服务器最大玩家数量的人机,则会无法生效并在控制台中显示一条错误消息。
 +
::如果<kbd>mp_teams_unbalance_limit</kbd>太低,则往一个队伍添加更多的人机仍然有可能会触发自动平衡,从而使两队人数相等。
  
 
:<code><''class''></code>
 
:<code><''class''></code>
::The ''classname'' of the class can be ''[[Demoman]]'', ''[[Engineer]]'', ''[[Heavy]]Weapons'', ''[[Medic]]'', ''[[Pyro]]'', ''[[Scout]]'', ''[[Soldier]]'', ''[[Sniper]]'', or ''[[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>
::Specifies the team name to assign the bot, where ''team'' can be ''[[red]]'' or ''[[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>
::Sets the difficulty level for the bot, where ''difficulty'' can be ''easy'', ''normal'', or ''hard''.
+
::如果存在明确的‘noquota’短语,则人机将会被排除在人机配额管理系统之外。详见<code>tf_bot_quota</code>。
  
;Example: <code>tf_bot_add red 3 heavyweapons easy</code> will add three Heavies to the RED team at the easy skill level.
+
;例子:
 +
:<code>tf_bot_add red 3 heavyweapons easy</code>,效果为在红队添加 3 个「简单」难度的机枪手人机。
 
|-
 
|-
|{{nw|<big>'''tf_bot_difficulty'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_difficulty</code>'''</big>}}
|Defines the skill of bots joining the game. 
+
|定义所要加入游戏的人机的基技术等级。
  
;Syntax: <code>tf_bot_difficulty <''level''></code>
+
;格式:<code>tf_bot_difficulty <''level''></code>
  
;Parameters:
+
;参数:
 
:<code><''level''></code>
 
:<code><''level''></code>
::Sets the difficulty level for the bots. Values are: 0=easy, 1=normal, 2=hard, 3=expert. Default is "Normal" (1).
+
::设置人机的的技术难度等级,以数字表示。取值分别为: 0 表示简单, 1 表示普通, 2 表示困难, 3 表示专家。默认等级为“普通”(1)。
  
;Example: <code>tf_bot_difficulty 2</code> will set all bots created after this command to "Hard" difficulty.
+
;例子:
 +
:<code>tf_bot_difficulty 2</code>,效果为将在执行该指令后所创建的所有人机的难度设置为“困难”。
 
|-
 
|-
|{{nw|<big>'''tf_bot_force_class'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_fire_weapon_allowed</code>'''</big>}}
|If set to a class name, all TFBots will respawn as that class.
+
|指定人机是否应该进行攻击。如果选择禁用,人机仍然可以使用某些不具备破坏性的武器,如{{item link|Medi Gun}}。但存在一个例外,即{{cl|Medic}}人机仍然会使用{{item link|Syringe Gun}}开火。此外,{{cl|Demoman}}人机仍然可以引爆尚存的黏弹,但不会再放置新的黏弹。
  
;Syntax: <code>tf_bot_force_class <''class''></code>
+
;格式:<code>tf_bot_fire_weapon_allowed <''integer''></code>
  
;Parameters:
+
;参数:
 +
:<code><''integer''></code>
 +
::0 表示关闭,1 表示开启(默认)。
 +
 
 +
;例子:
 +
:<code>tf_bot_fire_weapon_allowed 0</code>,效果为禁用人机的武器,但极个别武器除外。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_force_class</code>'''</big>}}
 +
|如果设置为一个兵种名称,则所有人机都将作为该兵种重新生成。
 +
 
 +
;格式:<code>tf_bot_force_class <''class''></code>
 +
 
 +
;参数:
 
:<code><''class''></code>
 
:<code><''class''></code>
::The ''classname'' of the class can be ''[[Demoman]]'', ''[[Engineer]]'', ''[[Heavy]]Weapons'', ''[[Medic]]'', ''[[Pyro]]'', ''[[Scout]]'', ''[[Soldier]]'', ''[[Sniper]]'', or ''[[Spy]]''. Default is "" (aka blank).
+
::''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]]''」。默认为“”(即空白)。
  
;Example: <code>tf_bot_force_class medic</code> will make all TFbots respawn as Medic.
+
;例如:<code>tf_bot_force_class medic</code>,效果为让所有人机作为医生重新生成。
 
|-
 
|-
|{{nw|<big>'''tf_bot_join_after_player'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_force_jump</code>'''</big>}}
|If nonzero, bots wait until a player joins before entering the game.
+
|如果启用,则强制人机反复进行跳跃。
  
;Syntax: <code>tf_bot_join_after_player <''integer''></code>
+
;格式:<code>tf_bot_force_jump <''integer''></code>
  
;Parameters:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::Either 1 or 0. Default is 1 (enabled).
+
::1 表示开启,0 表示关闭(默认)。
  
;Example: <code>tf_bot_join_after_player 0</code> will make TFBots join the game when added even if no players are on a team.
+
;例子:
 +
:<code>tf_bot_force_jump 1</var>,效果为强制智能人机反复进行跳跃。
 
|-
 
|-
|{{nw|<big>'''tf_bot_keep_class_after_death'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_join_after_player</code>'''</big>}}
|If zero, bots will always respawn as a different class.
+
|如果参数不为零,则人机将会在玩家加入游戏后才会跟随加入。该指令只适用于分配生成的人机。
  
;Syntax: <code>tf_bot_keep_class_after_death <''integer''></code>
+
;格式:<code>tf_bot_join_after_player <''integer''></code>
  
;Parameters:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::Either 1 or 0. Default is 0 (disabled).
+
::0 表示关闭,1 表示开启(默认)。
  
;Example: <code>tf_bot_keep_class_after_death 1</code> will prevent TFBots from changing class.
+
;例子:
 +
:<code>tf_bot_join_after_player 0</code>,效果为使 TFBot 在添加后便直接加入游戏,即使没有玩家处于任意一方团队中。
 
|-
 
|-
|{{nw|<big>'''tf_bot_kick'''</big>}}
+
|{{nw|<big>'''<code>tf_bot_keep_class_after_death</code>'''</big>}}
|
+
|如果参数为零,则人机将在每次重生时都会重新选择兵种。
This command will remove one or all AI bots.
+
 
 +
;格式:<code>tf_bot_keep_class_after_death <''integer''></code>
 +
 
 +
;参数:
 +
:<code><''integer''></code>
 +
::1 表示关闭,0 表示开启(默认)。
 +
 
 +
;例子:
 +
:<code>tf_bot_keep_class_after_death 1</code>,效果为阻止 TFBot 更换兵种。
 +
|-
 +
|{{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>}}
 +
|指定人机是否应该只能使用近战武器。
  
;Syntax: <code>tf_bot_kick <''name/all''></code>
+
;格式:<code>tf_bot_melee_only <''integer''></code>
  
;Parameters:
+
;参数:
:<code><''name/all''></code>
+
:<code><''integer''></code>
::Specifies the name of bot to remove or all.
+
::1 表示开启,0 表示关闭(默认)。
  
;Example: <code>tf_bot_kick CEDA</code> will kick the TFbot named "CEDA" if one exists.
+
;例子:
 +
:<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>}}
|If nonzero, append the skill level of the bot to the bot's name
+
|如果参数不为零,则会在人机名字前面附加上该人机的技术等级的前缀。
  
;Syntax: <code>tf_bot_prefix_name_with_difficulty <''integer''></code>
+
;格式:<code>tf_bot_prefix_name_with_difficulty <''integer''></code>
  
;Parameters:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::Either 1 or 0. Default is 0 (disabled).
+
::1 表示开启,0 表示关闭(默认)。
  
;Example: <code>tf_bot_prefix_name_with_difficulty 1</code> will cause added bots to have names like "1 Aimbot" (normal) and "3 Saxton Hale" (expert).
+
;例子:
 +
:输入<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>}}
|Determines the total number of tf bots in the game. Only has effect is "tf_bot_quota_mode" = "fill" or "match".
+
|指定游戏中 TFBot 的总数。该指令只会在<var>tf_bot_quota_mode</var>的参数为「<code>fill</code>」或「<code>match</code>」时生效。
  
;Syntax: <code>tf_bot_quota <''integer''></code>
+
;格式:<code>tf_bot_quota <''integer''></code>
  
;Parameters:
+
;参数:
 
:<code><''integer''></code>
 
:<code><''integer''></code>
::Whole number between 0 and how many players the server can hold. Default is 0.
+
::介于 0 和服务器能容纳的最大玩家数之间的一个整数。默认值为 0。
  
;Example: <code>tf_bot_quota 2</code>, if tf_bot_quota_mode = match, will add two bots to the server for every one human.
+
;例子:
 +
:在指令 <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>}}
|Determines the type of quota.
+
|指定人机的分配类型。
  
;Syntax: <code>tf_bot_quota_mode<''normal/fill/match''></code>
+
;格式:<code>tf_bot_quota_mode<''normal/fill/match''></code>
  
;Parameters:
+
;参数:
 
:<code>''normal/fill/match''</code>
 
:<code>''normal/fill/match''</code>
::If 'normal', the server will never add/remove TFbots without explicit commands and bot_quota has no effect.
+
::如果为「normal」,服务器将不会添加或踢出任何人机,除非有明确的指令;此时指令<var>bot_quota</var> 也将无效。
::If 'fill', the server will adjust bots to keep N players in the game, where N is bot_quota.
+
::如果为「fill」,服务器将会按照 1:1 的比例添加与玩家人数相匹配的 N 个数量的人机。其中 N 由 <var>bot_quota</var> 控制。
::If 'match', the server will maintain a 1:N ratio of humans to bots, where N is bot_quota.
+
::如果为「match」,服务器将会按照 1:N 的比例添加与玩家人数相匹配的数量的人机。其中 N 由 <var>bot_quota</var> 控制
 +
 
 +
;例子:
 +
:<code>tf_bot_quota_mode fill</code>,效果为游戏中的人机数量将始终保持与玩家人数相同。
 +
|-
 +
|{{nw|<big>'''<code>tf_bot_taunt_victim_chance</code>'''</big>}}
 +
|指定人机在杀死人类玩家后发起嘲讽的频率。
  
;Example: <code>tf_bot_quota_mode fill</code> will always keep (bot_quota - # of human players) bots in the game.
+
;格式:<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>
 +
 
 +
;参数:
 +
:无
 
|}
 
|}
  
==Puppet Bots==
+
===智能人机现况=== 
Puppet bots have no AI code and cannot move or act on their own. These bots can be used like puppets though, players can manipulate them to follow the player's commands such as following the player around and firing their weapons. Puppet Bots are mainly used for testing purposes and can also create stunning visuals if manipulated accordingly.
+
智能人机现在已经全面发布{{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。
 +
 
 +
===木偶人机指令===
 +
下列指令并非全部有效;也可能省略了一些有效的指令。
  
===Puppet Bot Commands===
+
这些指令有可能对智能人机生效,也可能无效。
Not all of the following commands work; for clarity, the complete list of commands is included.
 
  
''Note: entering the command without any values will display the command's current setting and a brief description.''
+
''注:只输入指令的主体部分而不输入参数部分并不会使指令生效,并将显示指令的当前设置和一段简短说明。''
  
 
{| class="wikitable grid"
 
{| class="wikitable grid"
! class="header" | Command
+
! class="header" | 指令
! class="header" | Description
+
! class="header" | 说明
 
|-
 
|-
|{{nw|<big>'''bot'''</big>}}
+
|{{nw|<big>'''<code>bot</code>'''</big>}}
|This command will create a bot on the given team with the specified class and name. If team or name is omitted, they will be assigned randomly.
+
|使用该指令将在特定团队中创建一个特定兵种和特定名字的人机。如果省略了团队或名字,则这些选项将会随机选择。
  
;Syntax: <code>bot -team <''teamname/number''> -class <''classname''> -name <''botname''></code>
+
;格式:<code>bot [<''teamname/number''>] [<''classname''>] [<''name''>] [<''number''>]</code>
  
;Parameters:
+
;参数:
:<code>-team ''teamname/number''</code>
+
:<code><''number''></code>
::Specifies the team name or number to assign the bot. Where ''name/number'' can be ''[[RED]]'' or ''1'', ''[[BLU]]'' or ''0''
+
::指定要添加的人机的数量。
:<code>-class ''classname''</code>
+
:<code><''teamname/number''></code>
::The ''classname'' of the class can be ''[[Demoman]]'', ''[[Engineer]]'', ''[[Heavy]]Weapons'', ''[[Medic]]'', ''[[Pyro]]'', ''[[Scout]]'', ''[[Soldier]]'', ''[[Sniper]]'', or ''[[Spy]]''
+
::指定人机所加入的团队的名称或编号,此处可以填写「''[[RED/zh-hans|RED]]''」或「''1''」、「''[[BLU/zh-hans|BLU]]''」或「''0''」。
:<code>-name ''botname''</code>
+
:<code><''classname''></code>
::''botname'' can be anything. If there is already someone with the same name, an incremental number (starting at 1) surrounded with parenthesis will be added to the beginning of the name. For example, joe, (1)joe, (2)joe, etc. If no name is given then the name will be "bot" followed by a number starting with 01; for example, the first bot will be bot01, the next bot02, and so on.
+
::指定人机的兵种类型,此处可以填写「''[[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]]''」。
;Example: <code>bot -team red -class Engineer -name joe</code>
+
:<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>}}
|Force all bots to change to the specified class.
+
|强制所有人机更换为指定的兵种类型。
''Does not seem to be implemented, nothing happens.''
+
 
 +
;格式:<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>}}
 
|
 
|
Make all bots change teams.
+
让所有人机强制更换队伍。如果有一个人机在红队,那么执行指令后它将会被更换到蓝队,反之亦然。
This forces all the bots to switch teams. If a bot was on the RED team then it will now be on the BLU team and vice versa.
 
 
|-
 
|-
|{{nw|<big>'''bot_command'''</big>}}
+
|{{nw|<big>'''<code>bot_command</code>'''</big>}}
|Sends specified command on behalf of specified bot.
+
|代表特定的人机发送特定的指令。
  
;Syntax: <code>bot_command <''botname''> <''console command''></code>
+
;格式:<code>bot_command <''name/all''> <''console command''></code>
::''botname'' is the name or id of the bot to send the command to.
 
::''console command'' can be any of the ones listed in [[Scripting#Console Commands]].
 
;Example 1: bot_command bot01 "voicemenu 0 0"
 
;Example 2: bot_command bot01 "taunt"
 
  
::The slot commands (slot1, slot2, etc.) do not work with bot_command, however with bot_forcefireweapon, you can make all bots in that class switch to that weapon and start firing, then make them stop. You can only make the entire group of bots in that class switch to that weapon, however.
+
;参数:
 +
:<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>}}
|Set to a team number, and that team will all keep their combat shields raised.
+
|允许或禁止人机进行移动。当参数设置为 1 时,人机无法移动,但它们仍然可以转身和跳跃。注意配合指令<code>bot_mimic</code>一起使用,可以将人机移动到特定区域并让它们停留在原地。
For instance, Heavies will spin their miniguns.
+
 
 +
;格式:<code>bot_dontmove <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为 1 时,人机将被允许进行移动。默认值为 0(禁用)。
 +
;例子:
 +
:<code>bot_dontmove 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_dontmove'''</big>}}
+
|{{nw|<big>'''<code>bot_forceattack</code>'''</big>}}
|Bots are allowed or prevented from moving.  When set to ''1'' the bots cannot move but they can still turn and jump.  Note with a combination of this command and <code>bot_mimic</code> you can move bots to where you want them and leave them there.
+
|该指令将强制所有的人机以它们当前使用的任意[[weapons/zh-hans|武器]]自动进行攻击。如果<code>bot_forceattack2</code>的参数设置为 ''0'',那么人机将执行主要攻击(primary_fire);如果参数为 ''1'',那么人机将执行辅助攻击(secondary_fire)。
  
;Syntax: <code>bot_dontmove <''0/1''></code>
+
请注意,如果<code>bot_mimic</code>处于生效状态时(即参数为 1 ),则此操作将不会生效。
::Bot is allowed to move, or not.
+
 
;Example: <code>bot_dontmove 1</code>
+
;格式:<code>bot_forceattack <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为1时,所有人机都将开始攻击。默认值为 0(禁用)。
 +
;例子:
 +
:<code>bot_forceattack 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_forceattack'''</big>}}
+
|{{nw|<big>'''<code>bot_forceattack2</code>'''</big>}}
|This will make all the bots automatically fire whatever [[weapon]] they currently have selected.  If <code>bot_forceattack2</code> is set to ''0'', then the bots will execute primary_fire.  If <code>bot_forceattack2</code> is set to ''1'', then the bots will execute secondary_fire.
+
|<code>bot_forceattack</code>参数设置为 ''1'' 时,所有人机都将以它们当前使用的任意[[weapons/zh-hans|武器]]执行辅助攻击。
  
Note this does nothing if <code>bot_mimic</code> is active (set to ''1'').
+
;格式:<code>bot_forceattack2 <''integer''></code>
 +
;参数:
 +
:<code><''integer''></code>
 +
::当设置为 ''1'' 时,人机将会执行其武器的辅助攻击(secondary_fire),当设置为 ''0'' 时,执行主要攻击(primary_fire)。
 +
;例子:
 +
:<code>bot_forceattack2 1</code>
 +
|-
 +
|{{nw|<big>'''<code>bot_forceattack_down</code>'''</big>}}
 +
|指定人机的攻击方式,共有「点射」和「连射」这两种方式。如果参数设置为 ''0'',人机就会表现得像是连续点击攻击键一样(适用于{{item link|Stickybomb Launcher}})。如果设置为 ''1'',那么人机会表现得像是按住攻击键一样(适用于{{item link|Minigun}})。
  
;Syntax: <code>bot_forceattack <''0/1''></code>
+
;格式:<code>bot_forceattack_down <''0/1''></code>
::Bot will not fire if set to ''0'' and fire repeatedly if set to ''1''.
+
;参数:
;Example: <code>bot_forceattack 1</code>
+
:<code><''integer''></code>
 +
::''1'' 为开启,''0'' 为关闭(默认)。
 +
;例子:
 +
:<code>bot_forceattack_down 1</code>
 
|-
 
|-
|{{nw|<big>'''bot_forceattack2'''</big>}}
+
|{{nw|<big>'''<code>bot_forcefireweapon</code>'''</big>}}
|This will make all the bots execute secondary_fire on whatever [[weapon]] they currently have selected when <code>bot_forceattack</code> is set to ''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}}并反复开火,其他人机则原地待命。
  
;Syntax: <code>bot_forceattack2 <''0/1''></code>
+
::若要让所有人机停止攻击,则只需输入一个游戏中不存在的武器的的文件名即可。任何未带有“tf_weapon”前缀的武器均不属于《军团要塞2》的武器,因此人机无法使用其进行攻击,例如<code>''bot_forcefireweapon ,,''</code>
::Bot will use its weapon's secondary_fire when set to ''1'', primary_fire when set to ''0''
 
;Example: <code>bot_forceattack2 1</code>
 
 
|-
 
|-
|{{nw|<big>'''bot_forceattack_down'''</big>}}
+
|{{nw|<big>'''<code>bot_jump</code>'''</big>}}
|When firing, don't tap fire, hold it down. If this is set to ''0'' then the bot will act like they are continuously tapping the fire button (useful for the [[Pistol]], but not for the [[Heavy]]'s [[Minigun]]). If this is set to ''1'' then the bot will act as if it is holding down the fire button (useful for the Heavy).
+
|强制所有人机反复进行跳跃。
 +
;格式:<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>'''<code>bot_kill</code>'''</big>}}
 +
|击杀指定的人机。
 +
;格式:<code>bot_kill <''name''></code>
 +
;参数:
 +
:<code><''name''></code>
 +
::使指定的人机自杀。
 +
;例子:
 +
:<code>bot_kill bot01</code>
 +
|-
 +
|{{nw|<big>'''<code>bot_mirror</code>'''</big>}}
 +
|指定的人机将会镜像了玩家的装备配置(兵种、饰品和武器)。该指令存在有部分漏洞;例如,如果一个{{cl|Demoman}}玩家装备了[[Booties/zh-hans|靴子]]和任意盾牌,镜像人机将仍会持有{{item link|Grenade Launcher}}和{{item link|Stickybomb Launcher}},尽管其模型上已经显示有靴子和盾牌。镜像人机死亡后将不会保留之前的配置,必须要再次使用<code>bot_mirror</code>才能恢复镜像。
  
;Syntax: <code>bot_forceattack_down <''0/1''></code>
+
;格式:<code>bot_mirror <''name''></code>
::On when set to ''1'', off when set to ''0''
+
::其中“''name''”处填写要镜像的人机的名字。
;Example: <code>bot_forceattack_down 1</code>
+
;例子:
 +
:<code>bot_mirror bot01</code>
 
|-
 
|-
|{{nw|<big>'''bot_forcefireweapon'''</big>}}
+
|{{nw|<big>'''<code>bot_mimic</code>'''</big>}}
|Forces all bots who have the specified weapon to switch to and fire it.
+
|人机将会通过 index 来执行玩家的用户命令行,即模仿玩家的行为。
If a bot does not have this weapon, nothing happens to it (unless it is firing a different weapon, in which it stops)
+
人机将会执行玩家发出的所有按键行为,包括模仿玩家的移动、转身、跳跃、攻击等。但人机不会模仿玩家的呼叫医生、切换武器和嘲讽的行为。
;Syntax: <code>bot_forcefireweapon <''weapon filename''></code>
 
::''filename'' is usually ''tf_weapon_ <weapon name>''.
 
;Examples: <code>bot_forcefireweapon tf_weapon_fists</code> makes all [[Heavy]] bots switch to and repeatedly attack with their [[Fists]], and all other bots stop attacking.
 
<code>bot_forcefireweapon tf_weapon_shotgun_pyro</code> makes all [[Pyro]] bots switch to and repeatedly fire their [[Shotgun]]s, and all other bots stop attacking.
 
  
::To make all bots stop attacking, simply specify a non-existent weapon filename. Anything without tf_weapon in it isn't a TF2 weapon, so the bots won't shoot it, for example ''bot_forcefireweapon ,,''
+
请注意,该指令的效果将会覆盖指令<code>bot_forceattack</code>的效果,但不会覆盖<code>bot_dontmove</code>的效果。
::Bots' loadouts cannot be changed, therefore you cannot make them fire unlockable weapons.
+
 
 +
;格式:<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>}}
|
+
|指定人机与玩家反向移动;玩家向左移动时,人机将会向右移动,玩家向前移动则人机向后移动,以此类推。
Kills the specified bot.
+
人机的视角方向则不受其影响。
;Syntax: <code>bot_kill <''bot name''></code>
+
 
::Makes the specified bot commit suicide.
+
;格式:<code>bot_mimic_inverse <''integer''></code>
;Example: <code>bot_kill bot01</code>
+
;参数:
 +
:<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>}}
|Bot uses usercmd of player by index.
+
|指定人机的朝向角度。
The bot will execute all keystrokes issued by a player, mimicking movements, turns, jumps, fire, etc.
+
人机将会朝向一个指定的方向,其方向根据玩家的位置而定。默认设置为 ''180'',此时所有的人机都会面朝着玩家。而将其设置 ''0'' 时,所有人机都会面朝玩家所朝向的方向。
  
Note this overrides <code>bot_forceattack</code> but does not override <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>}}
 +
|给予人机的随机的名字。
  
;Syntax: <code>bot_mimic <''0/1''></code>
+
;格式:<code>bot_randomnames <''integer''></code>
::On when set to ''1'', off when set to ''0''
+
;参数:
;Example: <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|金属]])和生命值。
Offsets the bots' yaw.
 
The bots will face in a direction this angle from the player. By default this is set to ''180'' so that all bots will face the player. Setting this to ''0'' will face the bots in the same direction as the player.
 
  
;Syntax: <code>bot_mimic_yaw_offset <''0-360''></code>
+
;格式:<code>bot_refill</code>
::Set the direction by specifying angle in degrees
 
;Example: <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>。
  
===AI Bot Names===
+
;格式:<code>bot_saveme <''integer''></code>
The AI Bots are programmed to have different names, with many of their names being references to Valve's other works. They also include some references to Team Fortress as well. Many of these names have been requested on the Steam forums. <!--If you encounter other names that aren't on the list, please add them-->
+
;参数:
{|
+
:<code><''integer''></code>
| valign="top" |
+
::设置为 ''1'' 时所有人机都将呼叫医生,默认设置为 ''0''(禁用)。
*[[Hacking#Aimbots|AimBot]]
 
*AmNot
 
*[http://half-life.wikia.com/wiki/Aperture_Science Aperture Science] Prototype XR7
 
*[[Sniper|A Professional With Standards]]
 
*BeepBeepBoop
 
*[[Meet the Engineer|Big Mean Mother Hubbard]]
 
*[http://half-life.wikia.com/wiki/Black_Mesa Black Mesa]
 
*[http://left4dead.wikia.com/wiki/Boomer_bile BoomerBile]
 
*Cannon Fodder
 
*[http://left4dead.wikia.com/wiki/CEDA CEDA]
 
*[http://half-life.wikia.com/wiki/Chell Chell]
 
*[[Scout|Chucklenuts]]
 
*[http://half-life.wikia.com/wiki/Companion_Cube Companion Cube]
 
*[[Engineer|CreditToTeam]]
 
*[[Damage|CRITRAWKETS]]
 
*[[Meet the Sniper|Crazed Gunman]]
 
*[http://half-life.wikia.com/wiki/Crowbar Crowbar]
 
*[[Heavy|CryBaby]]
 
*[[Heavy|CrySomeMore]]
 
*{{W|C++}}
 
*[http://half-life.wikia.com/wiki/Cake Delicious Cake]
 
*DeadHead
 
*{{W|Division_by_zero|Divide by Zero}}
 
*[http://half-life.wikia.com/wiki/Dog Dog]
 
*[[Force-A-Nature]]
 
*[[Scout|Freakin' Unbelievable]]
 
*[http://www.teamfortress.com/classless/hidden/hats/ Gentlemanne of Leisure]
 
| valign="top" |
 
*[http://www.teamfortress.com/classless/hidden/hats/ GENTLE MANNE of LEISURE]
 
*[http://half-life.wikia.com/wiki/Glados GlaDOS]
 
*[[Meet the Demoman|Grim Bloody Fable]]
 
*[[Demoman|GutsAndGlory!]]
 
*[[hats|Hat-Wearing MAN]]
 
*[[Demoman|Headful of Eyeballs]]
 
*[[Medic|Herr Doktor]]
 
*HI THERE
 
*[http://counterstrike.wikia.com/wiki/Hostage Hostage]
 
*Humans Are Weak
 
*[[Hacking|H@XX0RZ]]
 
*[[Heavy|I LIVE!]]
 
*[http://half-life.wikia.com/wiki/Ivan_the_Space_Biker IvanTheSpaceBiker]
 
*[[Demoman|Kaboom!]]
 
*LOS LOS LOS
 
*[[Soldier|Maggot]]
 
*[[Mann Co.]]
 
*Me
 
*[http://www.youtube.com/watch?v=LJbY4ixm_ZM Mentlegen]
 
*Mindless Electrons
 
*[[Meet the Engineer|MoreGun]]
 
*Nobody
 
*[[The Sandvich|Nom Nom Nom]]
 
*Not Me
 
*Numnutz
 
*[http://left4dead.wikia.com/wiki/Coach/Quotes#The_Fairgrounds One-Man Cheeseburger Apocalypse]
 
*[[Poopy Joe]]
 
| valign="top" |
 
*[[Showdown|Pow!]]
 
*[http://www.urbandictionary.com/define.php?term=ragequit RageQuit]
 
*[[Saxton Hale]]
 
*[[Soldier|Screamin' Eagles]]
 
*[http://www.teamfortress.com/classless/hidden/hats/ SMELLY UNFORTUNATE]
 
*[http://half-life.wikia.com/wiki/Still_Alive Still Alive]
 
*SomeDude
 
*Someone Else
 
*Soulless
 
*[http://left4dead.wikia.com/wiki/Tank TAAAAANK!]
 
*[[Training#Target|Target Practice]]
 
*ThatGuy
 
*[[The Administrator]]
 
*THEM
 
*[[Heavy|Tiny Baby Man]]
 
*Totally Not A Bot
 
*[http://half-life.wikia.com/wiki/Combine The Combine]
 
*[http://half-life.wikia.com/wiki/Freeman The Freeman]
 
*[http://half-life.wikia.com/wiki/G_Man The G-Man]
 
*trigger_hurt
 
*[http://left4dead.wikia.com/wiki/Witch WITCH]
 
*ZAWMBEEZ
 
*[[Medic|Ze Ubermensch]]
 
*[[Zepheniah Mann]]
 
*{{W|Hexspeak#Notable_magic_numbers|0xDEADBEEF}}
 
*{{W|Binary_numeral_system|10001011101}}
 
|};Syntax: <code>bot_randomnames <''0/1''></code>
 
::On when set to ''1'', off when set to ''0''
 
;Example: <code>bot_randomnames 1</code>
 
 
|-
 
|-
|{{nw|<big>'''bot_refill'''</big>}}
+
|{{nw|<big>'''<code>bot_selectweaponslot</code>'''</big>}}
|Refills all bots' Ammo counts, including [[Metal]] for Engineers.
+
|强制一个人机切换到指定的武器栏位。若要指定单独某个人机切换武器,请改用指令<code>''cc_bot_selectweapon''</code>。
  
Syntax: <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>}}
|This makes all the bots call for a Medic, equivalent to issuing <code>bot_command <''botname''> "voicemenu 0 0"</code> to every bot.
+
|将一个指定的人机传送到指定的坐标上。
Syntax: <code>bot_saveme <''0/1''></code>
+
在控制台中输入<code>Status</code>即可获取玩家当前所在位置的地图坐标。
::On when set to ''1'', off when set to ''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>}}
|This makes the first bot select weapon in specified weapon slot.
+
|将玩家造成的致命伤害给予指定的人机。
0 = primary; 1 = secondary; 2 = melee; 3 = special
+
该指令基本是以当前选择的武器来秒杀人机的,可能是在开发过程中进行测试所用的。值得注意的是,只有当<code>mp_friendlyfire</code>设置为 1 时,玩家才能使用<code>bot_whack</code>来击杀队友,否则用来秒杀队友将不会有任何效果。
Note this only works for the first bot spawned.  There doesn't seem to be a way to specify other bots.
 
  
;Syntax: <code>bot_selectweaponslot <''n''></code>
+
;格式:<code>bot_whack <''name''></code>
::Set ''n'' to weapon slot that bots should switch to.
+
;参数:
;Example: <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>}}
|Teleports a specified bot to a given coordinate.
+
|强制人机切换到指定的武器栏位。
Map coordinates of where you are standing can be found by typing <code>Status</code> in the console.
 
  
;Syntax: <code>bot_teleport <''botname''> <''X''> <''Y''> <''Z''> <''Pitch''> <''Yaw''> <''Roll''></code>
+
;格式:<code>cc_bot_selectweapon <''name''> <''n''> </code>
::Where ''botname'' is the bot name or id to teleport.
+
;参数:
::<code>''X'' ''Y'' ''Z''</code> are the map coordinates.
+
:<code><''n''></code>
::<code>''Pitch'' ''Yaw'' ''Roll''</code> is the direction the bot should face.
+
::将“''n''”设置为人机应该切换到的武器栏位。
;Example: <code>bot_teleport bot01 -4815 1385 -447 0 0 0</code>
+
::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>}}
|Delivers lethal damage from player to specified bot. This basically kills the bot with the currently selected weapon, probably used for testing during development.
+
|对人机造成指定的伤害,可面向团队或全体执行。
  
;Syntax: bot_whack <''botname''>
+
;格式:{{code|bot_hurt [<''name''>] [<''team''>] [<''damage''>]}}
::Where ''botname'' is the name of bot to "whack".
+
;参数:
;Example: bot_whack bot109
+
:<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 点伤害。
 
|}
 
|}
  
==References==
+
== {{common string|Notes}} ==
<references/>  
+
* MvM人机也可以使用{{code|nb_}}进行控制(比如使用{{code|nb_select}}和{{code|nb_warp_selected_here}}来把人机传送到特定的位置)。但这一功能不适用于TF人机。
 +
 
 +
=={{common string|References}}==
 +
<references/>
  
[[Category:Customization]]
+
[[Category:Customization/zh-hans]]
[[Category:Gameplay]]
+
[[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人机。

参考内容