Bots

From Team Fortress Wiki
< Bots
Revision as of 03:52, 24 October 2010 by Sn4k3l (talk | contribs)
Jump to: navigation, search

Existem 2 tipos de bots no TF2:

  • O primeiro tipo é o Bot com IA (Inteligência Artificial). Eles são codificados com uma inteligência artificial sofisticada projetada para simular ações dos jogadores em um jogo. O uso normal destes bots não desativa as proezas (achievements).
  • O segundo tipo é o Bot Fantoche. Eles não possuem IA codificada, e são úteis para testes e treinos. Eles necessitam que o servidor tenha trapaças habilitadas, impedindo as proezas.

Bots com IA

Bots com IA podem ocupar o lugar de jogadores humanos. Eles só podem ser inseridos manualmente, e não podem ser diretamente controlados. Além disso, você não pode selecionar a classe que o bot utilizará -- Elas são escolhidas aleatoriamente pelo jogo. Eles usam código de IA sofisticado, baseado no "PlayerBot" e no AI Infectado da série Left 4 Dead [1]. Eles não requerem que o servidor tenha cheats (trapaças) habilitadas, possibilitando que jogadores humanos ganhem proezas (achievements) enquanto jogam com eles.

Entretando, bots podem ser indiretamente controlados, até um certo ponto:

  • Qualquer bot amistoso fará uma provocação caso você permaneça com a mira sobre ele durante o tempo de preparação.
  • Um bot de Médico irá curá-lo se você utilizar o comando de voz "Medic!".
  • Se um Bot de Médico tiver a ÜberCharge pronta enquanto o cura, usar os comandos de voz "Go go go!" ou "Activate Charge!" irá forcár o Bot a ativar a sua ÜberCharge carregada.

Situação atual do Bot com IA

  • Ainda está em fase de teste beta. Sendo assim, eles são incompletos e se tornarão mais sofisticados conforme forem atualizados.
  • Nem todas as classes possuem IA própria; um exemplo perfeito disso é o Spy. Quando jogando com bots, o Spy só será usado: quando jogar nos modos Highlander , digitando tf_bot_force_class Spy no Console, ou se forem estabelecidas restrições de classes com um programa externo.
  • Bots com IA só funcionam corretament em certos mapas King of the Hill oficiais, e Dustbowl, além das duas variantes de Harvest. Em outros mapas, eles vão simplesmente ficar parados no local inicial e atacar qualquer inimigo que entre.
  • Atualmente, bots não podem usar ou equipar itens destravados: incluindo quaisquer armas do sistema de queda de itens, chapéus, itens miscelâneos ou qualquer outro item cosmético.
  • É possível usar bots com IA em mapas não suportados, mas os resultados podem variar. Para fazer isso, o servidor deve ter trapaças habilitadas (jogadores não poderão ganhar achievements), e será preciso marcar o caminho que os bots deverão percorrer.

O método para usar bots em mapas não suportados:

  1. Digite sv_cheats 1
  2. Digite nav_generate
  3. Aguarde alguns minutos enquanto o jogo calcula onde e como usar os bots
  4. O mapa irá fechar e abrir novamente (navegação é salva, então não é necessário repetir o último passo)
  5. Abra o console e digite tf_bot_add <number> conforme acima

Comportamento do bot com IA

  • É muito fácil distinguir um bot de Spy disfarçado de um bot regular. Bots de Spy disfarçados irão fugir do jogador ou de outros bots inimigos enquanto permanece de frente para eles caso se aproximarem. Eles também nunca vão usar a Invisibilidade e são terríveis para emboscar.
  • Bots atualmente não podem, e nem irão pular, pular com foguete ou pular com sticky de nenhuma forma.
  • Eles reagem com armas destraváveis da mesma forma que fariam com a arma que a substitui no equipamento padrão. Entretanto, certos itens podem causar confusão. (Ex. Ativar uma ÜberCharge quando a G.R.U for usada.)
  • Não importa sua condição de batalha (se estão queimando ou não), Bots não hesitarão em provocá-lo quando o matarem.
  • Quando um bot vê um jogador que é um Spy inimigo disfarçado, ele tende a observar cada movimento do espião, como se já soubesse que ele é um Spy. Apesar disso, eles não atacarão o espião disfarçado a menos que faça qualquer movimento hostil, ou esbarre em um dos bots.

Comandos do Bot com IA

Para usar Bots com IA em mapas suportados, o administrador do servidor deve abrir o console e digitar os seguintes comandos:

Comando Descrição
tf_bot_add Este comando irá criar um ou mais Bots com IA com quaisquer classes e em times aleatórios. Eles também receberão nomes engraçados baseados em nicks humanos.
Síntese
tf_bot_add [<count>] [<class>] [<team>] [<difficulty>]
Parâmetros
<count>
Especifica o número de bots que serão inseridos. Se omitido, um bot será inserido.
Também, especificar um número maior do que o permitido, incluindo quaisquer jogadores humanos, fará os bots congelarem. Sendo assim, if você tiver um servidor com capacidade para 24 jogadores (o padrão), e um jogador humano, não insira mais do que 23 bots.
<class>
O classname (nome da classe) pode ser Demoman, Engenheiro, HeavyWeapons, Médico, Pyro, Scout, Soldier, Sniper, ou Spy
<team>
Especifica o nome do time que o bot estará, onde team pode ser red ou blue.
<difficulty>
Ajusta o nível de dificuldade para o bot, onde difficulty pode ser easy, normal, ou hard.
Exemplo
tf_bot_add red 3 heavyweapons easy irá acrescentar três Heavies no time RED na dificuldade fácil.
tf_bot_difficulty Define a habilidade dos bots que entrarão no jogo.
Síntese
tf_bot_difficulty <level>
Parâmetros
<level>
Ajusta o nível de dificuldade dos bots. Os valores são: 0=fácil, 1=normal, 2=difícil, 3=expert. O padrão é "Normal" (1).
Exemplo
tf_bot_difficulty 2 irá modificar todos os bots criados após o comando para a dificuldade "Hard" (Difícil).
tf_bot_force_class Se um nome de classe for inserido, todos os Bots irão selecionar essa classe.
Síntese
tf_bot_force_class <class>
Parâmetros
<class>
The classname of the class can be Demoman, Engenheiro, HeavyWeapons (ArmasPesadas), Médico, Pyro, Scout, Soldier, Sniper, ou Spy. Padrão é "" (em branco).
Exemplo
tf_bot_force_class medic fará todos os bots surgirem como médicos.
tf_bot_join_after_player Se não for zero, bots irão aguardar até o jogador entrar antes de começarem.
Síntese
tf_bot_join_after_player <integer>
Parâmetros
<integer>
Entre 1 ou 0. Padrão é 1 (habilitado).
Exemplo
tf_bot_join_after_player 0 fará todos os bots entrarem no jogo quando inseridos mesmo que não haja ninguém no time.
tf_bot_keep_class_after_death Se o valor for zero, bots sempre surgirão com uma classe diferente.
Syntax
tf_bot_keep_class_after_death <integer>
Parameters
<integer>
Entre 1 ou 0. Padrão é 0 (desabilitado).
Example
tf_bot_keep_class_after_death 1 irá prevenir os bots de mudar a classe.
tf_bot_kick

Este comando irá remover um ou todos os bots.

Syntax
tf_bot_kick <name/all>
Parameters
<name/all>
Especifica qual bot será removido, ou todos.
Example
tf_bot_kick CEDA irá kickar o bot chamado "CEDA" se existir algum.
tf_bot_prefix_name_with_difficulty Se não for zero, altera o nível de habilidade do bot pelo nome
Syntax
tf_bot_prefix_name_with_difficulty <integer>
Parameters
<integer>
Entre 1 ou 0. Padrão é 0 (desabilitado).
Exemplo
tf_bot_prefix_name_with_difficulty 1 fará com que os bots tenham nomes como "1 Aimbot" (normal) e "3 Saxton Hale" (expert).
tf_bot_quota Determina o total number de tf bots no jogo. Só possui efeito com "tf_bot_quota_mode" = "fill" ou "match".
Syntax
tf_bot_quota <integer>
Parameters
<integer>
Número inteiro entre 0 e de quantos jogadores será a capacidade do servidor. Padrão é 0.
Exemplo
tf_bot_quota 2, se tf_bot_quota_mode = match, irá acrescentar dois bots ao servidor a cada 1 humano.
tf_bot_quota_mode Determina o tipo de cota.
Síntese
tf_bot_quota_mode<normal/fill/match>
Parâmetros
normal/fill/match
Se 'normal', o servidor nunca acrescentará/removerá TFbots sem comandos explícitos e bot_quota não terá efeito.
Se 'fill', o servidor irá ajustar os bots para manter N jogadores no jogo, onde N é a bot_quota.
Se 'match', o servidor irá manter uma taxa de 1:N humanos para bots, onde N é a bot_quota.
Exemplo
tf_bot_quota_mode fill irá sempre manter (bot_quota - # de jogadores humanos) bots no jogo.

Notas

Bots Fantoches

Bots Fantoches não possuem código de IA, e assim não podem substituir jogadores humanos. Eles não podem mover ou agir por si mesmos. Mas, você pode utilizá-los como fantoches, manipulando-os para fazer coisas como segui-lo e atirar com suas armas.

Eles são úteis principalmente para testes, mas também podem ser usados simplesmente pela diversão de manipular grupos para ataques coreografados.

Por necessitarem de trapaças ativadas no servidor, as proezas são desativadas.

Comandos do Bot Fantoche

Algun desses comandos funcionarão e outros não. Para esclarecimento, a lista completa está incluída. Note que para todos os comandos, inserí-los sem quaisquer opções irá exibir a configuração atual deste comando e um pequeno texto de ajuda.

Comando Descrição
bot Este comando criará um bot com um time, classe e nome específico. Se o time ou o nome for omitido, eles serão selecionados aleatoriamente.
Síntese
bot -team <teamname/number> -class <classname> -name <botname>
Parâmetros
-team teamname/number
Specifies the team name or number to assign the bot. Where name/number can be RED or 1, BLU or 0
-class classname
The classname of the class can be Demoman, Engineer, HeavyWeapons, Medic, Pyro, Scout, Soldier, Sniper, or Spy
-name botname
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.
Example
bot -team red -class Engineer -name joe
bot_changeclass Force all bots to change to the specified class.

Does not seem to be implemented, nothing happens.

bot_changeteams

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.

bot_command Sends specified command on behalf of specified bot.
Syntax
bot_command <botname> <console command>
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.
bot_defend Set to a team number, and that team will all keep their combat shields raised.

For instance, Heavies will spin their miniguns.

bot_dontmove 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 bot_mimic you can move bots to where you want them and leave them there.
Syntax
bot_dontmove <0/1>
Bot is allowed to move, or not.
Example
bot_dontmove 1
bot_forceattack This will make all the bots automatically fire whatever weapon they currently have selected. If bot_forceattack2 is set to 0, then the bots will execute primary_fire. If bot_forceattack2 is set to 1, then the bots will execute secondary_fire.

Note this does nothing if bot_mimic is active (set to 1).

Syntax
bot_forceattack <0/1>
Bot will not fire if set to 0 and fire repeatedly if set to 1.
Example
bot_forceattack 1
bot_forceattack2 This will make all the bots execute secondary_fire on whatever weapon they currently have selected when bot_forceattack is set to 1.
Syntax
bot_forceattack2 <0/1>
Bot will use its weapon's secondary_fire when set to 1, primary_fire when set to 0
Example
bot_forceattack2 1
bot_forceattack_down 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).
Syntax
bot_forceattack_down <0/1>
On when set to 1, off when set to 0
Example
bot_forceattack_down 1
bot_forcefireweapon Forces all bots who have the specified weapon to switch to and fire it.

If a bot does not have this weapon, nothing happens to it (unless it is firing a different weapon, in which it stops)

Syntax
bot_forcefireweapon <weapon filename>
filename is usually tf_weapon_ <weapon name>.
Examples
bot_forcefireweapon tf_weapon_fists makes all Heavy bots switch to and repeatedly attack with their Fists, and all other bots stop attacking.

bot_forcefireweapon tf_weapon_shotgun_pyro makes all Pyro bots switch to and repeatedly fire their Shotguns, 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 ,,
Bots' loadouts cannot be changed, therefore you cannot make them fire unlockable weapons.
bot_kill

Kills the specified bot.

Syntax
bot_kill <bot name>
Makes the specified bot commit suicide.
Example
bot_kill bot01
bot_mimic Bot uses usercmd of player by index.

The bot will execute all keystrokes issued by a player, mimicking movements, turns, jumps, fire, etc.

Note this overrides bot_forceattack but does not override bot_dontmove.

Syntax
bot_mimic <0/1>
On when set to 1, off when set to 0
Example
bot_mimic 1
bot_mimic_yaw_offset

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
bot_mimic_yaw_offset <0-360>
Set the direction by specifying angle in degrees
Example
bot_mimic_yaw_offset 180
bot_randomnames

This will add text to bot names, apparently used for testing during development, some examples: "Yet more Bot names, medium size," "Another bot," "This is a medium Bot," "This is a super long bot name t"

AI Bot Names

The AI bots are programmed to have different names. A lot of their names are references to many of Valve's works, such as, but not limited to, Portal, Left 4 Dead and its sequel, and the Half-Life series. They also include some references to Team Fortress and the fandom as well. Many of these names have been requested on the Steam forums.

  • Pow!
  • RageQuit
  • Screamin' Eagles
  • Still Alive
  • SomeDude
  • Someone Else
  • Soulless
  • TAAAAANK!
  • Target Practice
  • ThatGuy
  • THEM
  • Tiny Baby Man
  • Totally Not A Bot
  • The Combine
  • The Freeman
  • The G-Man
  • trigger_hurt
  • WITCH
  • ZAWMBEEZ
  • Ze Ubermensch
  • Zepheniah Mann
  • 0xDEADBEEF
  • 10001011101
;Syntax: bot_randomnames <0/1>
On when set to 1, off when set to 0
Example
bot_randomnames 1
bot_refill Refills all bots' Ammo counts, including Metal for Engineers.

Syntax: bot_refill

bot_saveme This makes all the bots call for a Medic, equivalent to issuing bot_command <botname> "voicemenu 0 0" to every bot.

Syntax: bot_saveme <0/1>

On when set to 1, off when set to 0
bot_selectweaponslot This makes the first bot select weapon in specified weapon slot.

0 = primary; 1 = secondary; 2 = melee; 3 = special Note this only works for the first bot spawned. There doesn't seem to be a way to specify other bots.

Syntax
bot_selectweaponslot <n>
Set n to weapon slot that bots should switch to.
Example
bot_selectweaponslot 2
bot_teleport Teleports a specified bot to a given coordinate.

Map coordinates of where you are standing can be found by typing Status in the console.

Syntax
bot_teleport <botname> <X> <Y> <Z> <Pitch> <Yaw> <Roll>
Where botname is the bot name or id to teleport.
X Y Z are the map coordinates.
Pitch Yaw Roll is the direction the bot should face.
Example
bot_teleport bot01 -4815 1385 -447 0 0 0
bot_whack Delivers lethal damage from player to specified bot. This basically kills the bot with the currently selected weapon, probably used for testing during development.
Síntese
bot_whack <botname>
Onde botname é o nome do bot para "esmagar".
Exemplo
bot_whack bot109

Referências