Bots

From Team Fortress Wiki
Jump to: navigation, search
Ein Soldier-Bot in Aktion auf der Dustbowl-Trainingsmap
Auf dieser Seite geht es um Bots in Team Fortress 2. Für Bots im Team Fortress Wiki, siehe hier. Für Bots in Team Fortress Classic, siehe hier. Für die im Mann vs. Machine Update eingeführten Roboter, siehe Roboter.
Meine Fäuste, sie sind aus Stahl!
Heavy Bot über Selbstverwirklichung

Es gibt zwei Arten von Bots in Team Fortress 2: KI-Bots und "Puppet-Bots". KI Bots sind mit komplexer künstlicher Intelligenz programmiert, die Spielerverhalten emulieren soll. Werden diese Bots verwendet, können sogar Errungenschaften freigeschaltet werden. Puppet-Bots besitzen keine KI-Programmierung, sind aber nützlich für Test- und Trainingszwecke. Letztere können nur verwendet werden, wenn der Server Cheats erlaubt, wodurch Errungenschaften deaktiviert werden.


KI Bots

KI Bots sind so programmiert, dass sie menschliches Spielerverhalten nachahmen und werden nicht direkt gesteuert. Die Klasse der Bots wird zufällig gewählt. Die komplexe KI basiert auf der Programmierung der Spieler-Bots und Infizierten-Bots aus Left 4 Dead. [1] KI-Bots können ohne Cheats aktiviert werden, verhindern also nicht, dass Errungenschaften freigeschaltet werden. Es gibt allerdings eine Ausnahme; da Bots keine Todeskamera sehen, können dazugehörige Errungenschaften nicht freigeschaltet werden. Außerdem wird bei einer Waffe seltsamer Qualität der Tötungszähler nicht verändert.

KI-Bots können indirekt bis zu einem gewissen Grad kontrolliert werden:

  • Jeder freundliche Bot auf den Sie während der Vorbereitungszeit mit Ihrem Fadenkreuz zielen, führt eine Verspottung aus.
  • Ein Medic-Bot wird Sie heilen, wenn Sie den "Medic!"-Sprachbefehl benutzen.
  • Werden Sie von einem Medic mit voller Überladung geheilt, können Sie den Bot mit den Sprachbefehlen "Los! Los! Los!" oder "Aktiviere die Ladung!" dazu bringen, seine Überladung zu benutzen.
  • Ein Medic-Bot wird eine zur Aktivierung bereite Überladungs einsetzen, sobald er verletzt wird.
  • Ein verbündeter Bot, der den Spieler in der High Five-Position sieht, wird den High Five zurückgeben.

Momentaner Status der KI-Bots

KI-Bots befinden sich noch in der Beta-Phase und werden mit zukünftigen Updates noch weiter verfeinert. Momentan sind alle Klassen dank des Hutloses Update vollständig programmiert. KI-Bots funktionieren nur auf den meisten, offiziellen King of the Hill-Maps, einigen Frachtbeförderungs-Maps, Dustbowl und Mann Manor. Es gibt Anleitungen die beschreiben, wie sich Bots auch auf nicht-unterstützten Maps verwenden lassen, in diesem Fall wird das Verhalten der Bots aber nicht dem menschlicher Spieler ähneln.

Für viele beliebte Maps hat die Community eine Sammlung von "bot meshes", also Dateien die das Verhalten von Bots auf diesen Karten verbessert, bereitgestellt (Englisch).

Botnamen

Die Bots wurden mit verschiedenen Namen implementiert, die viele Anspielungen auf Team Fortress 2, Valves sonstige Arbeit und Programmierung allgemein enthalten. Viele dieser Namen wurden in den Steam-Benutzerforen gewünscht.

Unbenutzte Bot-Namen

Die folgenden Bot-Namen wurden im geleaktem Quellcode von TF2 gefunden. Aus unbekannten Gründen gelangten die nie ins finale Produkt.

  • 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


Bots auf nicht-unterstützten Karten

  1. Geben Sie "sv_cheats 1" in die Konsole ein
  2. Geben Sie "nav_generate" in die Konsole ein
  3. Warten Sie bis das Spiel die KI-Wege berechnet hat
  4. Die Map wird neu starten (die berechneten Wege für diese Map werden gespeichert werden; dieser Schritt muss nicht wiederholt werden)
  5. Geben Sie "tf_bot_add <Anzahl>" in die Konsole ein

Hinweis: Bots funktionieren nicht auf Flagge-Erobern-Maps, selbst wenn diese Anleitung befolgt wird.

Karten mit offizieller Bot-Unterstützung

KI-Bot-Verhalten

  • Momentan sind Bots nicht in der Lage, freischaltbare Items (wie Waffen, Hüte oder Verschiedene Items) zu verwenden.
  • Bots auf einfachen Schwierigkeitsgrad werden, wenn überhaupt, nur sehr selten andere Waffen als ihre Primärwaffen verwenden. Auf höherer Schwierigkeit werden sie zu ihrer Sekundärwaffe wechseln und sie auch benutzen, wenn ihre Primärmunition aufgebraucht ist.
  • Auf leichter Schwierigkeitsstufe werden keine Sniper oder Spys erscheinen, nur auf normal oder darüber.
  • Bots können nicht springen oder Raketensprünge bzw. Sticky-Sprünge ausführen.
  • Bots führen immer Verspottungen aus, wenn sie den Spieler töten, selbst wenn die Bots dabei angegriffen werden.
  • Sieht ein Bot einen verkleideten gegnerischen Spy, wird der Bot den Spy beobachten, aber nicht angreifen, bis der Spy einen Angriff ausführt oder mit einem anderen Bot zusammenstößt.
  • Pyro-Bots setzen den Kompressionsdruck gegen feindliche Projektile sehr oft ein.
  • Medics werden alle anderen Klassen vor einem Sniper heilen und Engineere auch nur in einen bestimmten Umfang, selbst wenn der "MEDIC!"-Ruf benutzt wird.
  • Medics, die zur Aktivierung einer Überladung bereit sind, werden sie einsetzen, sobald sie verwundet werden.
  • Sieht ein verkleideter Spy auf dem Experten-Schwierigekeitsgrad einen Feind sich tarnen, wird er ihm folgen, egal, ob die Tarnung blinkt oder nicht.
  • Bots werden nicht während der Vorbereitungszeit kämpfen, mit Ausnahme des Demoman, der Haftbomben platzieren wird.
  • Engineer-Bots bauen ihre Sentrys teilweise an seltsamen Stellen, bevor sie sie sofort zerstören und sie woanders wieder aufbauen.
  • Engineere tendieren dazu, ihre Teleporter nicht aufzuwerten und reparieren ihre Gebäude teilweise auch dann nicht, wenn sie nicht beschossen werden.
  • Alle Bots, außer Engineere, Sniper und Spys, werden sich während der Vorbereitungszeit auf Angriff/Verteidigungs- und Frachtbeförderungs-Karten nicht bewegen.

Fehler

  • Von Bots benutzte Sprachbefehle (wie "Spy!" und "Vorwärts!") werden nicht in Textform angezeigt.
  • Engineer-Bots können in ihren eigenen Geäuden stehen.
  • Bots können sich während bewegen, während sie verspotten.
  • Soll ein Bot in ein bestimmtes Team gespawnt werden, muss zuvor der automatische Ausgleich deaktiviert werden.
  • Engineer-Bots ignorieren manchmal ihre Gebäude, bis sie zerstört werden.
  • Teilweise versuchen Bots, durch unbewegliche Gegenstände wie Wände durchzugehen oder zu schießen.
  • Selten kann es passieren, dass durch das Benutzen eines Teleporters eines Engineers Bots des gleichen Teams ineinander hängen bleiben und sich nicht mehr bewegen können.
  • Im Moment funktionieren Bots bei folgenden Spielmodi nicht, selbst wenn für die Karten KI-Wege berechnet wurden:

KI-Bot-Befehle

Um KI-Bots auf unterstützeten Maps zu verwenden, kann der Server-Administrator folgende Befehle in die Konsole eingeben:


Befehl Beschreibung
tf_bot_add Dieser Befehl erzeugt einen oder mehrere KI-Bots mit zufällig gewählten Klassen in einem zufällig gewählten Team. Diesen Bots werden witzige, "menschenähnliche" Namen zugewiesen.
Syntax
tf_bot_add [<Anzahl>] [<Klasse>] [<Team>] [<Schwierigkeit>]
Parameter
<Anzahl>
Gibt an, wie viele Bots gespawnt werden. Ohne Angabe wird nur ein Bot erzeugt.
Werden mehr Bots gespawnt als der Server zulässt - den Spieler eingeschlossen - frieren die Bots ein. Wenn sich also auf einem 24-Spieler Server ein menschlicher Spieler befindet, sollten nicht mehr als 23 Bots erzeugt werden.
<Klasse>
Der Klassenname der Klasse, also Demoman, Engineer, Heavyweapons, Medic, Pyro, Soldier, Scout,Sniper, oder Spy
<Team>
Gibt an welchem Team der Bot zugewiesen wird. Team kann dabei red oder blue sein.
<Schwierigkeit>
Gibt den Schwierigkeitsgrad der Bots an. Kann easy, normal, oder hard sein.
Beispiel
tf_bot_add red 3 heavyweapons easy erzeugt drei Heavies im Team RED mit einem leichten Schwierigkeitsgrad.
tf_bot_difficulty Legt den Schwierigkeitsgrad der Bots fest, die dem Spiel zugefügt werden
Syntax
tf_bot_difficulty <Schwierigkeitsgrad >
Parameter
<Schwierigkeitsgrad >
Legt den Schwierigkeitsgrad der Bots fest. Werte sind: 0=einfach, 1=normal, 2=schwer, 3=Experte. Standard ist "Normal"
Beispiel
tf_bot_difficulty 2 legt alle Bots, die nach diesem Befehl erzeugt werden, auf den "schweren" Schwierigkeitsgrad fest.
tf_bot_force_class Wird ein Klassenname angegeben, werden alle Bots als diese Klasse erzeugt
Syntax
tf_bot_force_class <Klasse>
Parameter
<Klasse>
Der Klassenname der Klasse, also Demoman, Engineer, Heavyweapons, Medic, Pyro, Scout, Soldier, Scout,Sniper, oder Spy. Standard ist is "" (aka leer).
Beispiel
tf_bot_force_class medic zwingt alle Bots als Medics zu respawnen.
tf_bot_join_after_player Wenn nicht auf Null gesetzt, treten Bots erst bei wenn ein Spieler das Spiel betritt
Syntax
tf_bot_join_after_player <Wert>
Parameter
<Wert>
Entweder 1 oder 0. Standard ist 1, also aktiviert
Beispiel
tf_bot_join_after_player 0 zwingt Bots dem Spiel beizutreten, selbst wenn kein menschlicher Spieler im Spiel ist.
tf_bot_keep_class_after_death Wenn auf Null gesetzt respawnen Bots immer als eine andere Klasse.
Syntax
tf_bot_keep_class_after_death <Wert>
Parameter
<Wert>
Entweder 1 oder 0. Standard ist 0 (deaktiviert).
Beispiel
tf_bot_keep_class_after_death 1 verhindert, dass Bots die Klasse wechseln.
tf_bot_kick Dieser Befehl entfernt einen oder alle KI-Bots.
Syntax
tf_bot_kick <Name/all>
Parameter
<Name/all>
Gibt den Namen des Bots an, der entfernt werden soll oder entfernt alle.
Beispiel
tf_bot_kick CEDA entfernt den Bot mit dem Namen "CEDA" falls dieser auf dem Server existiert.
tf_bot_prefix_name_with_difficulty Wenn nicht Null, wird der Schwierigkeitsgrad des Bots vor dessen Namen angezeigt
Syntax
tf_bot_prefix_name_with_difficulty <integer>
Parameter
<Wert>
Entweder 1 oder 0. Standard ist 0 (deaktiviert).
Example
tf_bot_prefix_name_with_difficulty 1 legt fest, dass hinzugefügte Bots Namen wie "1 Aimbot" (Normal) oder "3 Saxton Hale" (Experte) haben.
tf_bot_quota Gibt die gesamte Anzahl der Bots im Spiel an. Funktioniert nur, wenn "tf_bot_quota_mode" auf "fill" oder "match" gesetzt ist
Syntax
tf_bot_quota <Wert>
Parameter
<Wert>
Ganze Zahl zwischen 0 und der maximalen Anzahl der Spieler auf dem Server. Standard ist 0.
Beispiel
tf_bot_quota 2, wenn tf_bot_quota_mode = match, werden für jeden menschlichen Spieler zwei Bots hinzugefügt
tf_bot_quota_mode Legt die Art der Quotierung fest.
Syntax
tf_bot_quota_mode<normal/fill/match>
Parameter
normal/fill/match
normal: Der Server wird nie automatisch Bots hinzufügen, es sei denn es werden explizite Befehle gegeben. tf_bot_quota hat keine Wirkung.
fill: der Server verwaltet Bots automatisch, damit immer X Spieler im Spiel sind. X wird über tf_bot_quota festgelegt.
match: der Server wird ein Verhältnis von menschlichen Spielern zu Bots von 1:X beibehalten. X wird über tf_bot_quota festgelegt.
Beispiel
tf_bot_quota_mode fill legt fest, dass immer (tf_bot_quota minus Anzahl menschlicher Spieler) Bots im Spiel sind

Puppet-Bots

Puppet-Bots besitzen keine KI-Programmierung und können nicht selbstständig handeln. Diese Bots können jedoch wie Puppen verwendet werden, der Spieler kann sie manipulieren und Befehle folgen lassen. Diese Bots dienen hauptsächlich Testzwecken und können, wenn richtig manipuliert, interessante Effekte verursachen.

Puppet-Bot-Befehle

Nicht alle dieser Befehle funktionieren. Die Liste ist aus Gründen der Klarheit vollständig.

Hinweis: werden diese Befehle ohne Werte eingegeben, wird die momentane Einstellung und eine kurze Beschreibung des Befehls ausgegeben.

Befehl Beschreibung
bot Dieser Befehl spawnt einen Befehl im angegebenen Team mit der aufgeführten Klasse bzw. Namen. Wird das Team oder Name ausgelassen, werden diese Werte zufällig entschieden.
Syntax
bot -team <Teamname/Teamnummer> -class <Klassenname> -name <Botname>
Parameter
-team Teamname/Teamnummer
Gibt das Team an, dem der Bot beitritt. Teamname/Teamnummer kann RED bzw. 1 oder BLU bzw. 0 sein.
-class Klassenname
Der Klassenname der Klasse, also Demoman, Engineer, Heavyweapons, Medic, Pyro, Scout, Soldier, Scout,Sniper, oder Spy.
-name Botname
Botname kann alles sein. Befindet sich bereits jemand mit dem angegebenen Namen auf dem Server, wird eine bei 1 beginnende Zahl in Klammern vor den Namen gesetzt. Beispiel: joe, (1)joe, (2)joe, etc. Wird kein Name angegeben, wird der Name "bot" mit einer angehängten Zahl, beginnend bei 01 verwendet. Der erste Bot wird bot01, der zweite bot02 usw. genannt.
Beispiel
bot -team red -class Engineer -name joe
bot_changeclass Zwingt alle Bots auf die angegebene Klasse zu wechseln.

Scheinbar nicht eingebaut, hat keine Wirkung.

bot_changeteams Zwingt alle Bots das Team zu wechseln. Wenn ein Bot im Roten Team war, wird er in das Blaue Team wechseln und umgekehrt.
bot_command Führt einen Befehl für den Bot aus
Syntax
bot_command <Botname> <Konsolenbefehl>
Botname ist der Name des Bots, für den der Befehl ausgeführt werden soll.
Konsolenbefehl kann jeder der Befehle sein, die unter Scripting aufgegührt sind.
Beispiel 1
bot_command bot01 "voicemenu 0 0" (führt dazu, dass der angegebene Bot den Sprachbefehl "Medic!" ausführt)
Example 2
bot_command bot01 "taunt"
Die slot-Befehle (slot1, slot2, etc.) funktionieren nicht in Verbindung mit bot_command. Mit bot_forcefireweapon kann man Bots einer Klasse dazu zwingen, auf die mit dem Befehl angegebene Waffe zu wechseln und diese abzufeuern. Allerdings lässt sich nur allen Bots der entsprechenden Klasse der Befehl erteilen.
bot_defend Zwingt Bots des angegebenen Teams in den defensiven Modus zu wechseln. Heavys zum Beispiel werden ihre Minigun schußbereit machen.
bot_dontmove Erlaubt oder verbietet es Bots, sich zu bewegen. Auf 1 gesetzt bleiben Bots stehen, können sich aber noch umdrehen und springen. In Verbindung mit bot_mimic können Bots an eine bestimmte Stelle navigiert und dort stehengelassen werden.
Syntax
bot_dontmove <0/1>
Erlaubt/verbietet es dem Bot, sich zu bewegen.
Beispiel
bot_dontmove 1
bot_forceattack Zwingt Bots, die Waffe die sie gerade ausgewählt haben, abzufeuern. Ist bot_forceattack2 auf 0 gesetzt, werden Bots die Primärfunktion der Waffe verwenden. Ist bot_forceattack2 auf 1 gesetzt, nutzen Bots die Sekundärfunktion.

Dieser Befehl ist wirkungslos wenn bot_mimic aktiv ist (also auf 1 gesetzt wurde).

Syntax
bot_forceattack <0/1>
Bots feuern nicht wenn auf 0 und feuern wenn auf 1.
Beispiel
bot_forceattack 1
bot_forceattack2 Zwingt Bots die Sekundärfunktion der gerade ausgewählten Waffe zu verwenden wenn bot_forceattack auf 1 gesetzt wurde.
Syntax
bot_forceattack2 <0/1>
Bots verwenden die Sekundärfunktion ihrer Waffen wenn auf 1 und Primärfunktion wenn auf 0
Beispiel
bot_forceattack2 1
bot_forceattack_down Bots feuern ununterbrochen, als würden sie die Angriffstaste gedrückt halten. Wenn auf 0 feuern die Bots indem sie schnell die Feuertaste drücken (nützlich für z.B. die Pistole, weniger nützlich für die Minigun) Wenn auf 1 feuern die Bots so, als würden sie die Angriffstaste gedrückt halten (nützlich für z.B. die Minigun)
Syntax
bot_forceattack_down <0/1>
Aktiviert wenn auf 1, deaktiviert wenn auf O
Beispiel
bot_forceattack_down 1
bot_forcefireweapon Zwingt Bots, auf die angegebene Waffe zu wechseln (sofern sie diese besitzen) und diese abzufeuern. Besitzt ein Bot diese Waffe nicht, bleibt der Befehl wirkungslos es sei denn der Bot feuert bereits eine andere Waffe - in diesem Fall stellt er das Feuer ein.
Syntax
bot_forcefireweapon <Waffen-Dateiname>
Dateiname ist meist tf_weapon_ <Waffenname>.
Beispiel
bot_forcefireweapon tf_weapon_fists zwingt alle Heavys auf ihre Fäuse zu wechseln und dauerhaft mit diesen anzugreifen. Alle anderen Bots stellen ihre Angriffe ein.

bot_forcefireweapon tf_weapon_shotgun_pyro zwingt alle Pyros auf ihre Schrotflinte zu wechseln und diese dauerhaft abzufeuern, alle anderen Bots stellen Angriffe ein.

Um die Angriffe aller Bots zu unterbrechen kann eine nicht-existierende Waffe angegeben werden, zum Beispiel bot_forcefireweapon ,,
Die Ausrüstung der Bots lässt sich nicht ändern, also lassen sich auch keine freischaltbaren Waffen verwenden.
bot_kill

Tötet den angegebenen Bot.

Syntax
bot_kill <Botname>
Zwingt den Bot, Selbstmord zu begehen.
Beispiel
bot_kill bot01
bot_mimic Bot ahmt die Befehle des Spielers nach. Der Bot wird alle Befehle des Spielers ausführen, Bewegungen, Sprünge, Angriffe, etc. nachahmen.

Dies überschreibt bot_forceattack aber nicht bot_dontmove.

Syntax
bot_mimic <0/1>
Aktiviert wenn auf 1, deaktiviert wenn auf 0.
Example
bot_mimic 1
bot_mimic_yaw_offset

Verändert die "Gierung" des Bots. Der Bot schaut in die angegene Richtung. Standard ist 180, schaut also den Spieler direct an. Wird dies auf 0 eingestellt, schaut der Bot in dieselbe Richtung wie der Spieler.

Syntax
bot_mimic_yaw_offset <0-360>
Gibt die Blickrichtung in Grad an.
Example
bot_mimic_yaw_offset 180
bot_randomnames

KI-Bot-Namen

Die KI-Bots sind so programmiert, dass ihnen verschiedene Namen zugewiesen werden. Viele davon sind Anspielungen an andere Spiele von Valve oder TF2 selbst. Viele Namen wurden in den Steam Nutzerforen angefordert.

Unbenutzte Bot-Namen

Die folgenden Bot-Namen wurden im geleaktem Quellcode von TF2 gefunden. Aus unbekannten Gründen gelangten die nie ins finale Produkt.

  • 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>
Aktiviert wenn 1, deaktiviert wenn 0
Beispiel
bot_randomnames 1
bot_refill Füllt Munition der Bots auf, betrifft auch Metall des Engineers

Syntax: bot_refill

bot_saveme Zwingt Bots nach einem Medic zu rufen. Gleiche Wirkung wie bot_command <Botname> "voicemenu 0 0" für jeden Bot.

Syntax: bot_saveme <0/1>

Aktiviert wenn 1, deaktiviert wenn 0
bot_selectweaponslot Zwingt den ersten Bot auf den angegebenen Waffenslot zu wechseln. 0 = Primärwaffe; 1 = Sekundärwaffe; 2 = Melee; 3 = Spezialwaffe

Dies funktioniert nur für den ersten Bot der gespawnt wird. Es scheint keinen Weg zu geben, diesen Befehl an andere Bots zu geben.

Syntax
bot_selectweaponslot <X>
X ist hierbei der Waffenslot, auf den der Bot wechseln soll.
Beispiel
bot_selectweaponslot 2
bot_teleport Teleportiert den Bot an die angegebenen Koordinaten. Die Map-Koordinaten des Spielers lassen sich mit Status in der Konsole erfragen.
Syntax
bot_teleport <Botname> <X> <Y> <Z> <Pitch> <Yaw> <Roll>
Botname ist der Name oder die id des Bots, der teleportiert werden soll.
X Y Z sind die Map-Koordinaten.
Pitch Yaw Roll ist die Richtung in die der Bot schaut.
Beispiel
bot_teleport bot01 -4815 1385 -447 0 0 0
bot_whack Fügt dem Bot tödlichen Schaden "im Auftrag" des Spielers zu, was dazu führt, dass der Bot mit der momentan ausgewählten Waffe des Spielers getötet wird. Dient wahrscheinlich Testzwecken.
Syntax
bot_whack <Botname>
Botname ist der Name des Bots, der getötet werden soll.
Example
bot_whack bot109

Referenzen