Bots

From Team Fortress Wiki
< Bots
Revision as of 12:34, 14 June 2020 by Sergeant Soldier (talk | contribs) (Did some translations.)
Jump to: navigation, search
Um Soldier bot em ação no mapa Dustbowl (Treinamento).

Existem 2 tipos de bots no TF2:

  • O primeiro tipo de Bots são aqueles possuem 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 o ganho de conquistas.
  • 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 o ganho de conquistas.

Bots com IA

Bots com IA podem ocupar o lugar de jogadores humanos. Eles podem ser inseridos manualmente ou através do menu de treino ao selecionar um mapa, e não podem ser diretamente controlados. 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 trapaças habilitadas, possibilitando que jogadores humanos ganhem conquistas enquanto jogam com eles, mas com a exceção de conquistas relacionadas com a deathcam, e também não podem ser utilizados para subir o nível de armas estranhas, a não ser que a arma tenha a peça estranha: Robôs destruidos.

Entretanto, 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 Medic irá curá-lo se você utilizar o comando de voz "Medic!".
  • Se um bot de Médico tiver a ÜberCarga pronta enquanto o cura, usar os comandos de voz "Vai vai vai!" ou "Ativar Übercarga!" irá forçar o bot a ativar a sua ÜberCarga carregada.

Situação atual do Bot com IA

  • Está completo, e todas a classes funcionam bem.
  • 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 corretamente em certos mapas Rei do Pedaço oficiais, Dustbowl, e Payload 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 obtenção 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 conquistas), e será preciso marcar o caminho que os bots deverão percorrer.

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

  1. Entre no mapa desejado digitando map nomedomapa no console
  2. Após entrar no mapa, digite sv_cheats 1 no console
  3. Logo após, digite nav_generate no console
  4. Aguarde alguns minutos enquanto o jogo calcula onde e como usar os bots no mapa
  5. O servidor com o mapa especificado irá fechar e abrir novamente (o arquivo de IA para os bots é salvo, então não é necessário repetir esse passo novamente)
  6. Após carregar o mapa, abra o console e digite tf_bot_add numerodebots

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 reagiriam com armas normais. Entretanto, certos itens podem causar confusão. (Ex. Ativar uma ÜberCarga quando a G.R.U for usada.)
  • Bots nunca provocaram ao matar um jogador
  • Quando um bot vê um jogador que é um Spy inimigo disfarçado, ele tende a observar cada movimento do Spy inimigo, como se já soubesse que ele é um Spy. Apesar disso, eles atacarão o Spy inimigo.

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 não especificado o número de bots, apenas 1 será adicionado.
Também, especificar um número maior do que o permitido, incluindo quaisquer jogadores humanos, fará os bots congelarem. Sendo assim, se você tiver um servidor com capacidade para 24 jogadores (o padrão), e um jogador humano, um bot será kickado para liberar espaço para o jogador humano.
<class>
O classname (nome da classe) pode ser Demoman, Engineer, Heavyweapons, Medic, Pyro, Scout, Soldier, Sniper, ou Spy
<team>
Especifica o nome do time que o bot estará, onde team pode ser red ou blu.
<difficulty>
Ajusta o nível de dificuldade para o bot, onde difficulty pode ser easy, normal, hard ou expert
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=muito difícil. 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>
Em class pode ser Demoman, Engineer, heavy, Medic, 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.
Síntese
tf_bot_keep_class_after_death <integer>
Parâmetros
<integer>
Entre 1 ou 0. Padrão é 0 (desabilitado).
Exemplo
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.

Síntese
tf_bot_kick <name/all>
Parâmetros
<name/all>
Especifica qual bot será removido, ou todos.
Exemplo
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
Síntese
tf_bot_prefix_name_with_difficulty <integer>
Parâmetros
<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 número total de bots com IA no jogo. Só possui efeito com "tf_bot_quota_mode" = "fill" ou "match".
Síntese
tf_bot_quota <integer>
Parâmetros
<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 quota.
Síntese
tf_bot_quota_mode<normal/fill/match>
Parâmetros
normal/fill/match
Se 'normal', o servidor nunca acrescentará/removerá bots com IA sem comandos explícitos e tf_bot_quota não terá efeito.
Se 'fill', o servidor irá ajustar os bots para manter N jogadores no jogo, onde N é a tF_bot_quota.
Se 'match', o servidor irá manter uma taxa de 1:N humanos para bots, onde N é a tf_bot_quota.
Exemplo
tf_bot_quota_mode fill irá sempre manter (tf_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

Alguns 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
Especifica o nome do time ou o número para ordenar o bot. Onde name/number pode ser RED ou 1, BLU ou 0
-class classname
O classname da classe pode ser Demoman, Engineer, heavy, Medic, Pyro, Scout, Soldier, Sniper, ou Spy
-name botname
botname não possui restrições. Se já houver alguém com o mesmo nome, será acrescentado um número entre parênteses no início dele. Por exemplo, joe, (1)joe, (2)joe, etc. Se nenhum nome for dado, ficará "bot" seguido por um número começando por 01; por exemplo, o primeiro bot será bot01, e assim por diante.
Exemplo
bot -team red -class Engineer -name joe
bot_changeclass Força todos os bots a mudarem para uma classe específica.

Não parece funcionar no momento.

bot_changeteams

Faz todos os bots mudarem de time. Força os bots a mudarem de time. Se um bot estava no time Red, agora estará no BLU e vice-versa.

bot_command Envia um comando para um bot específico.
Síntese
bot_command <botname> <console command>
botname é o nome ou id do bot que receberá a ordem.
console command pode ser quaisquer das opçoes listadas em Comandos do Console.
Exemplo 1
bot_command bot01 "voicemenu 0 0"
Exemplo 2
bot_command bot01 "taunt"
Os comandos de compartimento (slot1, slot2, etc.) não funcionam com bot_command, mas, com bot_forcefireweapon, você pode fazer todos os bots daquela classe mudarem para essa arma e começarem a atirar, e então fazê-los parar. Você só pode fazer o grupo inteiro de bots de uma classe trocarem de arma de uma vez.
bot_defend Insira um número para um time, e esse time ficará pronto para defender um local.

Por exemplo, Heavies irão preparar (rodar) suas miniguns.

bot_dontmove Bots são habilitados ou desabilitados de se moverem. Quando for inserido 1 os bots não se movem mas ainda viram e pulam. Note que com uma combinação deste comando e bot_mimic você pode mover os bots aonde quiser e deixá-los lá.
Síntese
bot_dontmove <0/1>
Bot pode se mover, ou não.
Exemplo
bot_dontmove 1
bot_forceattack Isto fará com que todos os bots automaticamente atirem com qualquer arma que estiverem usando no momento. Se bot_forceattack2 for configurado para 0, os bots executarão primary_fire (atirar com a função primária da arma). Se bot_forceattack2 for configurado para 1, então os bots executarão secondary_fire (atirar com a função secundária).

Note que isso não terá efeito se bot_mimic estiver ativo (Configurado em 1).

Síntese
bot_forceattack <0/1>
Bots não irá atirar se for usado 0 e atirará repetidamente se for usado 1.
Exemplo
bot_forceattack 1
bot_forceattack2 Isto fará com que todos os bots atirem com suas armas secundárias com qualquer arma que estiverem usando quando bot_forceattack for 1.
Síntese
bot_forceattack2 <0/1>
Bot utilizará a secondary_fire (função secundária da arma) quando usado 1, primary_fire quando for 0
Exemplo
bot_forceattack2 1
bot_forceattack_down Quando estiver atirando, não pressionará repetidamente o botão de tiro, mas sim mantê-lo pressionado. Se for configurado em 0 o bot irá agir como se estivesse repetidamente pressionando o botão de tiro (útil com a Pistola, mas não com a Metralhadora Giratória do Heavy ). Se for 1, o bot irá agir como se estivesse segurando o botão de tiro (útil para o Heavy).
Síntese
bot_forceattack_down <0/1>
Ativado quando configurado em 1, desativado se for 0
Exemplo
bot_forceattack_down 1
bot_forcefireweapon Força todos os bots que possuem a arma especificada a selecionarem essa arma e atirarem com ela.

Se um bot não possuir a arma, nada acontece a ele (a menos que esteja atirando com uma arma diferente, que nesse caso pára)

Síntese
bot_forcefireweapon <weapon filename>
filename é normalmente tf_weapon_ <nome da arma>.
Exemplos
bot_forcefireweapon tf_weapon_fists faz todos os bots do Heavy trocarem para e repetidamente atacarem com socos, e todos os outros pararem de atacar.

bot_forcefireweapon tf_weapon_shotgun_pyro faz todos os bots do Pyro trocarem para e repetidamente atirarem com suas shotguns, e todos os outros pararem de atacar.

Para fazer todos os bots pararem de atacar, simplesmente especifice um nome de arma não existente. Qualquer coisa sem tf_weapon junto não é uma arma do TF2, então os bots não atirarão, por exemplo bot_forcefireweapon ,,
Os equipamentos dos bots não podem ser alterados, e sendo assim você não pode fazê-los atirar armas destraváveis.
bot_kill

Mata o bot especificado.

Síntese
bot_kill <bot name>
Faz o bot especificado cometer suicídio.
Exemplo
bot_kill bot01
bot_mimic O bot usa o usercmd do jogador por padrão.

O bot irá executar todas as teclas pressionadas por um jogador, imitando movimentos, pulos, tiros, etc.

Note que isso substitui bot_forceattack, mas não substitui bot_dontmove.

Síntese
bot_mimic <0/1>
Ativado quando 1, desativado quando 0
Exemplo
bot_mimic 1
bot_mimic_yaw_offset

Compensa os movimentos do bot. Os bots ficarão de frente em uma direção do jogador até o ângulo formado. Por padrão isso é configurado em 180 para que todos os bots fiquem de frente para o jogador. Configurando isso para 0 fará os bots ficarem na mesma direção que o jogador.

Síntese
bot_mimic_yaw_offset <0-360>
Ajusta a direção especificando o ângulo em graus
Exemplo
bot_mimic_yaw_offset 180
bot_randomnames

Isso irá acrescentar um texto ao nome do bot, aparentemente usado em testes, alguns exemplos: "Yet more Bot names, medium size," "Another bot," "This is a medium Bot," "This is a super long bot name t"

Nomes dos Bots com IA

Os Bots com IA são programados para ter nomes diferentes. Muitos dos seus nomes são referências a vários dos trabalhos da Valve, como, mas não limitado a, Portal, Left 4 Dead e sua continuação, e a série Half-Life. Eles também incluem algumas referências ao Team Fortress e ao conteúdo dos fans. Muitos desses nomes foram requisitados nos fóruns do Steam.

Nomes de bots não utilizados

Os seguintes nomes de bots foram encontrados em uma versão do código Source do TF2 que foi vazada, contendo nomes de botes que nunca foram produzidos por razões desconhecidas.

  • 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
Síntese
bot_randomnames <0/1>
Ativado quando 1, desativado quando 0
Exemplo
bot_randomnames 1
bot_refill Completa a munição de todos os bots, incluindo Metal para os Engenheiros.

Síntese: bot_refill

bot_saveme Isso faz com que todos os bots chamem um Médico, o equivalente a utilizar bot_command <nome do bot> "voicemenu 0 0" em cada bot.

Syntax: bot_saveme <0/1>

Ativado quando 1, desativado quando 0
bot_selectweaponslot Faz com que o primeiro bot selecione a arma do compartimento especificado.

0 = primário; 1 = secundário; 2 = arma corpo a corpo (espada, luvas, etc); 3 = especial Note que isso funciona somente para os primeiros bots inseridos. Não parece haver uma forma de especificar os outros bots.

Síntese
bot_selectweaponslot <n>
Configure n para o compartimento de arma que os bots devem selecionar.
Exemplo
bot_selectweaponslot 2
bot_teleport Teleporta um bot especificado a uma dada coordenada.

Coordenadas no mapa de onde você está podem ser encontradas digitando Status no console.

Síntese
bot_teleport <botname> <X> <Y> <Z> <Pitch> <Yaw> <Roll>
Onde botname é o nome do bot ou id para teleportar.
X Y Z são o mapa e as coordenadas.
Pitch Yaw Roll é a direção em que o bot ficará de frente.
Exemplo
bot_teleport bot01 -4815 1385 -447 0 0 0
bot_whack Executa dano letal do jogador no bot especificado. Isso basicamente mata o bot com a arma selecionada, provavelmente usado para testes durante a criação do jogo.
Síntese
bot_whack <botname>
Onde botname é o nome do bot que receberá o dano.
Exemplo
bot_whack bot109

Histórico de Atualizações

Atualização de 17 de dezembro de 2009 (Atualização WAR!)
  • Adicionados Bots em teste de mapas KOTH.

Atualização de 10 de junho de 2010 (Atualização Mac)

  • Adicionado modo de Prática Offline, com suporte para mapas KOTH e Dustbowl.
  • [Não documentado] Olhar para um bot por alguns segundos faz ele provocar.

Atualização de 11 de junho de 2010

  • Corrigido um caso onde servidores poderiam ser presos em um loop infinito ao criar bots.
  • Corrigida uma quebra ao mudar de nível relacionada a meshes de navegação de bots.

Atualização de 14 de junho de 2010

  • Corrigida uma quebra de servidor relacionada a bots e kits de vida.

Atualização de 16 de junho de 2010

  • Bots Medics agora respondem a chamados de humanos por Medics.
  • Se um Bot Medic está curando você e tem uma ÜberCarga pronta, usar os comandos de voz "Go go go!" ou "Activate Charge!" irão forçá-lo a ativar a ÜberCarga.

Atualização de 23 de agosto de 2011

  • Corrigida quebra com Bots Demomen tentando detonar stickybombs que já haviam sido destruídas
  • Adicionado comando do console tf_bot_kill (sintaxe idêntica ao tf_bot_kick)
  • Bots obedecem ao modo de somente armas corpo-a-corpo melhor
  • Adicionado func_nav_avoid para permitir a criadores de mapas controlar onde bots "gostam" de ir
  • Corrigido problema com o Bot Demoman recarregando entre cada stickybomb que ele atira, fazendo ele ficar muito lento em destruir Sentry Guns
  • Bots agora nunca provocam enquanto carregam a bandeira
  • Lógica de mira para Bots Snipers usando o Huntsman
  • Bots Sniper priorizam Snipers inimigos mais agressivamente, assim como Engineers inimigos
  • Melhorado bombeamento de Sentry Guns com stickybombs de Demomen
  • Bots não tentam mais usar entidades de vida feitas para o inimigo
  • Adicionados comportamentos simples para o Chargin' Targe e vários itens consumíveis (Bonk, Sandvich, etc)
  • Bots Medics ficam um pouco mais perto de seus pacientes agora
  • Bots Snipers vão atrás de inimigos bem perto com suas armas corpo-a-corpo agora
  • Adicionada entidade func_tfbot_hint para permitir a criadores de mapas definirem melhores lugares para Bots Snipers ficarem
  • Bots Snipers atiram aleatoriamente em alvos viáveis que encontram enquanto vão ao lugar desejado
  • Bots Spies são mais agressivos sobre darem backstabs em Engineers antes de sapearem suas construções

Atualização de 6 de setembro de 2011

  • Corrigida uma trava no servidor relacionada a bots

Atualização de 26 de janeiro de 2012

  • Alterado o modo como a contagem de bots é mostrada no browser de servidores: a coluna de bots agora está próxima à coluna de jogadores e é sempre visível. A contagem de bots * não é mais subtraída do maxplayers.

Atualização de 9 de fevereiro de 2012

  • Corrigidos bots do Heavy não aparecendo em mapas comentados

Atualização de 1º de março de 2012

  • Comportamento dos bots foram melhorados.

Referências