Boty

From Team Fortress Wiki
Jump to: navigation, search


Bot żołnierza(Solider) na mapie Dustbowl
Moje pięści! Są zrobione ze stali!
Bot Grubego podczas samorealizacji.

Istnieją dwa typy botów w Team Fortress 2, są to AI Bots oraz Puppet Bots. Boty AI mają zakodowaną sztuczną inteligencje zaprojektowaną do naśladowania zachowań graczy w grze. Puppet Bots nie posiadają sztucznej inteligencji, ale są za to przydatne do testów i treningów. Wymagają serwera z włączonymi oszustwami (cheats), tym samym z wyłączonymi osiągnięciami (achievements).

Boty AI

Boty AI są stworzone po to, aby naśladować graczy i nie są bezpośrednio kontrolowane. Dodatkowo ich klasy są wybierane losowo. Używają wyrafinowanego kodu - AI Code, w oparciu o PlayerBot oraz infected AI występującym w serii Left 4 Dead. Boty AI nie wymagają serwera z włączonymi oszustwami (cheats) w związku z czym osiągnięcia są dostępne podczas gry z nimi.

Boty mogą być kontrolowane bezpośrednio w zakresie:

  • Każdy przyjazny bot na którego najedziesz celownikiem podczas "Setupa" będzie używał drwiny
  • Bot-Medyk będzie Cię leczyć gdy go zawołasz (domyślnie klawisz E)
  • Gdy Bot-Medyk Cię leczy i ma gotowy ładunek ÜberCharge używając komendy głosowej "Ruchy, ruchy, ruchy!" lub "Aktywuj ładunek!" spowodujesz aktywacje ÜberCharge

Obecny status botów AI

Boty AI są w fazie testów (BETA), będą bardziej "sprytni" gdy zrobisz Update. Obecnie nie wszystkie klasy mają wsparcie AI - na przykład Szpieg. Bot-Szpieg ucieka od gracza jeżeli zostanie zauważony i nigdy nie używa kamuflażu. Boty mogą grać jako szpieg w trybie Highlander poprzez wpisanie "tf_bot_force_class Spy" w konsoli lub poprzez użycie innego programu. Boty AI działają poprawnie tylko na wiekszości oficjalnych map King of the Hill, Payload, Dustbowl i Mann Manor (boty mogą tylko być dodane poprzez komendę "tf_bot_add"). Używanie botów na niewspomaganych mapach jest możliwe po wykonaniu poniższych czynności, lecz nie będą dobrze "udawać" zachowań człowieka. Gotowa paczka botów jest dostepna dla wielu popularnych map.

Używanie botów na niewspomaganej mapie

  1. Wpisz "sv_cheats 1" w konsoli.
  2. Wpisz "nav_generate".
  3. Poczekaj dopóki gra nie stworzy "Ścieżek AI"
  4. Mapa się przeładuje, powyższe czynności nie będą musiały być wykonywane ponownie.
  5. Włącz konsole i wpisz "tf_bot_add <ilość>".

Zachowanie botów

  • Boty nie mogą obecnie użyć zawartości odblokowywanej - bronie, czapki i różne dodatki.
  • Boty nie wykonują specjalnych skoków (rakietowy i bombowy).
  • Gdy bot zabije gracza to losuje czy ma go wyśmiać, bot będzie wyśmiewać gracza nawet podczas ostrzału.
  • Gdy bot zobaczy ukrytego wrogiego Szpiega to będzie oglądać jego ruchy. Bot nie zaatakuje ukrytego szpiega dopóki szpieg nie zaatakuje, albo nie wpadnie na wrogiego bota.
  • Boty nie przenoszą konstrukcji.
  • Boty Pyro będą regularnie używać strumienia sprężonego powietrza, aby odbić rakiety.
  • Gdy często będzie zabijany dany bot opuści on drużynę.
  • Na drugim poziomie mapy Dustbowl boty Szpiega oraz Inżyniera próbują przejść na pierwszy poziom mapy.

Komendy do botów

Żeby używać botów na obsługiwanych mapach, administrator serwera musi wpisać te komendy w konsoli:

Command Description
tf_bot_add To polecenie stworzy dodatkowego bota losowej klasy oraz drużyny. Zostanie mu dodany nick.
Wzór
tf_bot_add [<ilość>] [<klasa>] [<drużyna>] [<trudność>]
Parametry
<ilość>
Ustawia ilość botów, które się zrespawnują.
Jeżeli ustawisz ilość botów większą niż maximum slotów na serwerze spowoduje to, że boty "zamarzną". Jeżeli chcesz grać sam z botami ustaw 23.
<klasa>
Nazwy klas mogą być następujące: Demoman, Engineer, HeavyWeapons, Medic, Pyro, Scout, Soldier, Sniper, lub Spy
<drużyna>
Ustawia drużynę, do której ma dołączyć bot, może to być red lub blue.
<poziom trudności>
Ustawia poziom trudności. Poziomy trudności są takie: easy, normal, i hard.
Przykład
tf_bot_add red 3 heavyweapons easy - doda trzech Grubych do drużyny RED na łatwym poziomie trudności.
tf_bot_difficulty Ustawia poziom trudności botów włączających się do gry.
Wzór
tf_bot_difficulty <poziom>
Parametry
<pziom>
Ustawia poziom trudności botów - tak jak wyżej tylko wykorzystuje się cyfry. Można użyć następujących: 0=easy, 1=normal, 2=hard, 3=expert. Domyślne ustawienie to "normal" (1).
Przykład
tf_bot_difficulty 2 - wszystkie zrespawnowane boty po użyciu tej komendy będą miały poziom trudności "Hard".
tf_bot_force_class Ta komenda ustawia klasę wszystkim botom.
Wzór
tf_bot_force_class <klasa>
Parametry
<klasa>
Ustawia klasę, ich nazwy są następujące: Demoman, Engineer, HeavyWeapons, Medic, Pyro, Scout, Soldier, Sniper, lub Spy
Przykład
tf_bot_force_class medic - wszystkie boty zrespią się jako Medycy.
tf_bot_join_after_player Jeżeli liczba nie jest zerem to boty poczekają z wejściem do gry dopóki gracz nie zacznie grać.
Wzór
tf_bot_join_after_player <cyfra>
Parametry
<cyfra>
Należy wpisać cyfrę 1 lub 0.
Przykład
tf_bot_join_after_player 0 - spowoduje to, że boty wejdą do gry przed graczem nie czekając na niego.
tf_bot_keep_class_after_death Jeżeli wartość wynosi 0 to boty zawsze się odrodzą z inną klasą.
Wzór
tf_bot_keep_class_after_death <cyfra>
Parametry
<cyfra>
Należy wpisać cyfrę 1 lub 0. Domyślna wartość to 0.
Przykład
tf_bot_keep_class_after_death 1 - bot po śmierci nie zmienia klasy.
tf_bot_kick

Wpisanie tej komendy wyrzuci jednego bota.

Wzór
tf_bot_kick <nick/all>
Parametry
<nick/all>
Wpisujesz albo nick bota albo "all", żeby wyrzucić wszystkie.
Przykład
tf_bot_kick CEDA - wyrzuci bota o nicku "CEDA", jeżeli taki jest w grze.
tf_bot_prefix_name_with_difficulty Jeżeli wybierzemy 1 to przy nicku botów będzie widoczny ich poziom trudności.
Wzór
tf_bot_prefix_name_with_difficulty <cyfra>
Parametry
<cyfra>
Należy wpisać cyfrę 1 lub 0. Domyślna wartość to 0.
Przykład
tf_bot_prefix_name_with_difficulty 1 - spowoduje to, że nicki botów będą zależne od poziomu trudności, na przykład: "1 Aimbot" (normal), czy "3 Saxton Hale" (expert).
tf_bot_quota Określa całkowitą liczbę botów w grze. Działa tylko, jeżeli "tf_bot_quota_mode" = "fill" albo "match".
Wzór
tf_bot_quota <cyfra>
Parametry
<cyfra>
Numery powyżej 0. Określa ile graczy może umieścić serwer. Domyślnie 0.
Przykład
tf_bot_quota 2, if tf_bot_quota_mode = match - doda dwa boty do serwera za dwóch ludzi.
tf_bot_quota_mode Okresla typ czesci.
Wzór
tf_bot_quota_mode<normal/fill/match>
Parametry
normal/fill/match
Jeżeli 'normal', to serwer nie doda, ani nie usunie żadnego bota z gry, a więc tf_bot_quota nie zadziała.
Jeżeli 'fill', to serwer postara się dostosować ilość graczy do N, gdzie N jest tf_bot_quota.
Jeżeli 'match', to serwer będzie utrzymywał stosunek 1:N w ilości ludzi i botów, gdzie N to tf_bot_quota.
Przykład
tf_bot_quota_mode fill - serwer będzie utrzymywał (tf_bot_quota - ilość ludzi na serwerze) botów w grze.

Boty Puppet

Te boty nie mają kodu AI, nie mogą się ruszać ani atakować. Te boty mogą być używane jako lalki, gracze mogą nimi manipulować - kazać iść za sobą czy strzelać. Ten typ botów jest używany do rożnych celów. Umiejętne manipulowanie nimi może stworzyć ładną scenkę.

Komendy Botów Puppet

Nie wszystkie poniższe komendy działają.

Notka: wpisywanie komend bez żadnych wartości spowoduje wyświetlenie krótkiego opisu.

Command Description
bot 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
bot -team <teamname/number> -class <classname> -name <botname>
Parameters
-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

Imiona botów

Boty mają zaprogramowane różne imiona, wiele z nich zostało nadane przez Valve. Zawierają zawsze trochę odniesień do TF2. ich imiona zostały także określone na forum Steam.

Unused bot names

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

  • John Spartan
  • Leeloo Dallas Multipass
  • Sho'nuff
  • Bruce Leroy
  • CAN YOUUUUUUUUU DIG IT?!?!?!?!
  • Big Gulp, Huh?
  • Stupid Hot Dog
  • I'm your huckleberry
  • The Crocketeer
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.
Syntax
bot_whack <botname>
Where botname is the name of bot to "whack".
Example
bot_whack bot109

References