Game Bot Range/Routing/Mob Detection system?

08/17/2014 14:49 .Chakratos#1
Hey,
ich wollte mal fragen wie das mit den proffesionellen Bot´s und dem Range/Routing system aussieht.

Mit Range meine ich das sie sich nicht über eine bestimmte schwelle bewegen.

Mit Routing system ist die navigation gemeint, z.b leere dein inventar in der stadt bevor du weiterlevelst.

Zum Schluss würde mich noch interessieren wie es mit der Gegner Detection aussieht, einen simplen farbwert suchen kann jeder aber wie ließt man die gegner aus der memory aus?

LG Chakratos
08/17/2014 15:23 .StarSplash#2
Naja, um Gegner zu erkennen gibt es viele Möglichkeiten, um was für ein Spiel geht es denn?

Eine Range, in der sich dein Bot bewegt, lässt sich wohl am einfachsten über Koordinaten lösen, falls dein Spiel dir die zur Verfügung stellt ;o (Und wenn es sie dir nicht direkt zur Verfügung stellt, findest du sie bestimmt irgendwo im Speicher).
08/17/2014 16:31 .Chakratos#3
Ein bestimmtes Spiel habe ich nicht im Sinn, nur frage ich mich schon seit jahren wie die großen bot´s das machen wie z.b M2Bob(Metin2), Honorbuddy(WoW) usw

LG Chakratos
08/17/2014 16:55 .StarSplash#4
Man könnte sich beispielsweise ein Netz von Knotenpunkten auf der Karte erstellen, auf dem Netz kann der Bot garantiert ohne Behinderung laufen, wenn du mit dem Netz alle Punkte abdeckst, zu denen du eventuell mal hin möchtest, kannst du nachher mittels Dijkstra-Algortihmus o.Ä. immer den schnellsten Weg zu einem beliebigen Ziel finden.

Eventuell gibt es bessere Möglichkeiten, das hängt aber sehr stark vom Spiel ab.
08/17/2014 20:10 ​Tension#5
Quote:
Originally Posted by .Chakratos View Post
Hey,
ich wollte mal fragen wie das mit den proffesionellen Bot´s und dem Range/Routing system aussieht.

Mit Range meine ich das sie sich nicht über eine bestimmte schwelle bewegen.

Mit Routing system ist die navigation gemeint, z.b leere dein inventar in der stadt bevor du weiterlevelst.

Zum Schluss würde mich noch interessieren wie es mit der Gegner Detection aussieht, einen simplen farbwert suchen kann jeder aber wie ließt man die gegner aus der memory aus?

LG Chakratos
Du kannst waypoints setzen in dem du die Koordinaten speicherst und dich dann später dorthin bewegen/teleportieren.

Routing system wie du es beschreibst ist einfach nur eine Abfolge von Aufgaben z.B:
  1. Gehe ins Gebiet X
  2. Töte soviele Monster bis das Inventar voll ist
  3. Gehe zum Händler in der Stadt
  4. Verkaufe alle aus dem Inventar
und das halt dann in einer Endlosschleife.

eigentlich hat jedes Spiel sowas wie eine Entity-List vielleicht auch mehrere ( ich spreche jetzt mal von 4Story weil ich dafür einen Bot geschrieben hab ).

Also für 4Story gibt es afaik 2 Entity-Listen.
Spieler im Gebiet
Monster im Gebiet

Diese sind in einem Vektor gespeichert ( also zweit Vektoren einmal für Monster und einmal für die Spieler ), den du einfach nur durch iterieren musst, dadurch erhälst du die Adressen für jeden Mob welche lediglich ein Pointer auf die Monster-Klasse ist wo du jegliche Informationen über das Monster bekommst.

Ich hoffe du verstehst was ich meine, du kannst mir sonst auch eine Private Nachricht schreiben.
08/17/2014 20:45 .Chakratos#6
Das es nur eine abfolge von befehlen ist, ist mir klar. Doch frage ich mich welche art der bewegung man nutzt um auch sicher zum gewünschten punkt zu kommen:
Einfache W,A,S,D befehle wären zu ungenau.
Teleport zu aufällig.
Pakete sind mir zu hoch^^.

und mehr fällt mir auch nicht ein :/

LG Chakratos
08/17/2014 20:53 ​Tension#7
Ich hab mir die Funktion welche für das Klicken auf der Map verantwortlich ist rausgesucht und rufe diese dann mit meinen eigenen Punkten auf.
08/17/2014 20:56 .StarSplash#8
Quote:
Originally Posted by ​Tension View Post
Du kannst waypoints setzen in dem du die Koordinaten speicherst und dich dann später dorthin bewegen/teleportieren.
Das ist wohl das schwierigste an einem Bot.

@TE: Wieso soll WASD zu ungenau sein? Das einzige Problem sehe ich darin, dass man eventuell sehr auffällige Bewegungen macht um die Richtung zu korrigieren.
08/17/2014 21:14 .Chakratos#9
Nun gut, wenn man vorher den blickwinkel hat könnte man ja sagen in welche richtung er dabei schauen soll.
Das mit der funktion hört sich auch sehr interessant an.

LG Chakratos
08/17/2014 21:28 .StarSplash#10
Ja, wenn es so eine Funktion denn gibt. Nicht bei jedem Spiel kann man sich via Klicken fortbewegen.
08/17/2014 21:51 .Chakratos#11
Wie würde man denn an die funktion kommen?
Ich denke an Ollydbg aber Assembler ist mir leider fremd.

LG Chakratos
08/17/2014 21:59 ​Tension#12
Ohne Reverse Engineering Kenntnisse wirst du da wohl leider nicht ran kommen.
08/17/2014 23:28 .Chakratos#13
Das heißt ich sollte erstmal ASM lernen bevor ich mich mit dem Thema weiter beschäftige?

LG Chakratos
08/18/2014 00:44 .StarSplash#14
Könntest du, aber dann mach dich auf was gefasst.

Persönlich kann ich nicht besonders viel mit Assembler anfangen, wenn ich mal unbedingt was brauchte, hab ich das meinen Vater machen lassen, der hats schließlich gelernt und arbeitet täglich damit D:

Aber bisher bin ich noch fast immer ohne hingekommen, es gibt wohl fast immer auch noch einen alternativen Weg ;)
08/18/2014 01:20 ​Tension#15
Quote:
Originally Posted by .StarSplash View Post
Könntest du, aber dann mach dich auf was gefasst.
Auf was gefasst machen?
Assembler ist nicht schwere zu lernen als eine andere Sprache.