Metin2 Monsterposition auslesen

04/17/2011 22:24 V8II#1
Hi,
Hat jemand von euch einen guten Denkansatz wie man in Metin2 die Position eines Monsters ermitteln kann ?(bitte kommt mir jetzt nicht mit Pixelsearch ^^ am Besten währe etwas über Memoryadressen).

Lg V8II
04/17/2011 23:48 MoepMeep#2
Recv.
04/18/2011 07:38 V8II#3
Danke für deine Antwort aber könntest du das etwas genauer erläutern?
(Ich programmiere normalerweise mit AutoIt in C++ bin ich ein noob ^^)

Edit: Ich habe jetzt kurz gegoogelt und herausgefunden , dass man Recv zum empfangen von Daten verwendet, ich bin auch in autoit auf Recv gestoßen, aber kann man hiermit theoretisch alle Daten die vom Server gesendet werden auslesen? So könnte man echt perfekte Bots machen ...
04/18/2011 10:25 MrSm!th#4
Natürlich könnte man so perfekte Bots machen, die besten Bots funktionieren ja auch nicht durch Memory Auslesen und Rumklicken, sondern mit Packets ;O

Du müsstest die spielinterne Funktion für das Empfangen von Daten finden (dafür wurde hier mal ein Tutorial geposted), die die Daten auch gleich entschlüsselt (wenn du es direkt per Recv machen würdest, hättest du verschlüsselte Daten und könntest damit nichts anfangen).
Ohne C++ wirst du ab jetzt nicht mehr wirklich weiter kommen, das ist in Autoit in einem so extrem hohen Aufwand (und auch nur bedingt) möglich, dass es sich einfach nicht lohnt.
Du hookst/detourst (Tutorials gibts auch genug, falls du noch nicht weißt, wie das geht) die spielinterne Recv Funktion und liest die Empfangenen Daten die ganze Zeit mit.
Sollte das Packet ankommen, das die Position eines Mobs enthält (dafür müsstest du erstmal ein bisschen aufmerksam viele Packets analysieren (am besten dafür einen kleinen Packet Logger schreiben, der also die mitgelesenen Packets in eine Textdatei schreibt) und herausfinden, wie das Packet aufgebaut ist und welche ID es hat (wenn das nicht schon durch die ganzen PServer öffentlich bekannt ist) ) liest du daraus die Position aus und machst damit, was auch immer du damit machen willst.

Der nächste Schritt (wenn es ein Attack-Bot sein soll), wäre dann auch, das Attack Packet eigenständig zu senden, sodass du auch nicht irgendwie den Bot rumklicken lassen musst (alternativ könntest du durch eine injizierte Dll die spielinterne Attack-Funktion aufrufen (dazu gibts glaube ich ein Tutorial, nur eben mit der UseItem Funktion).

Das ganze sehr viel umfangreicher und für alle benötigten Packets, die ein reibungsloser Spielablauf benötigt, würde dann ermöglichen, dass man deinen Bot so laufen lassen kann, ohne das Metin2 selbst laufen muss (nur müsstest du dann eben das Login mit einbauen).
Deshalb sind wie gesagt wirklich gute Packet Bots 1000 Mal besser als Pixelsearch&Memory&Klick-Bots ;O
04/18/2011 12:47 V8II#5
Okay, danke für die Umfangreiche Info. Ich denke, ich lasse lieber die Finger davon, ich kenne mich mit Packets kaum aus. Trotzdem danke!
04/18/2011 14:29 Prestino#6
Glaubst du die richtig guten Coder kannten sich direkt damit aus ?
Setz dich doch erstmal damit auseinander, dann wird das schon :>