Monster per Memory findbar machen?

01/07/2014 16:04 /-/µR€#1
Heeeey Coder's c:
Ich hab' mal wieder ein Problem. Und zwar bin ich dabei einen Bot für ein Spiel zu schreiben, welcher Monster ausfindig machen kann und sie dann anklickt, um anzugreifen.

Das Problem ist leider, dass ich absolut nicht weiß, wie ich ein Monster per AutoIT ausfindig machen kann. Ich hab mich bereits erkundigt, aber konnte nur rausfinden, dass es per Memory möglich sei, jedoch weiss ich nicht wie.

Hat jemand bereits Erfahrung mit Memory? Villeicht kann mir ja jemand von euch ein Beispielcode schreiben, damit ich ungefähr weiss, wie ich den Bot zu konstruieren hab.

Falls die Monster-ID oder Ähnliches von nöten ist, habe ich diese sogar schon herausfinden können, nur fragt sich ob es damit irgendwie machbar ist..

LG
01/07/2014 16:40 alpines#2
Hmm, wenn sich die Monster bewegen dann haben sie doch andere Koordinaten oder nicht?
CE an, Search for initial value und dann einfach nach changed / unchanged je nach Position suchen. Wenn du die Position vom Mob findest dann wird der Name des Mobs sicherlich auch irgendwo in der Nähe im RAM stehen. Memory View <-
01/07/2014 16:50 /-/µR€#3
Quote:
Originally Posted by alpines View Post
Hmm, wenn sich die Monster bewegen dann haben sie doch andere Koordinaten oder nicht?
CE an, Search for initial value und dann einfach nach changed / unchanged je nach Position suchen. Wenn du die Position vom Mob findest dann wird der Name des Mobs sicherlich auch irgendwo in der Nähe im RAM stehen. Memory View <-
Danke erstmal für deine Antwort.

Kann ich nicht einfach den Namen des Mob's in CE suchen und dann irgendwie den Basepointer rausfinden? Nehmen wir mal an ich stelle mich im Spiel an einem Ort, wo 10 Ochsen sind. Wenn ich jetzt im CE nach dem String "Ochse" suche, findet er also 10 verschiedene Adressen mit der Value "Ochse".
Das bedeutet also, dass jeder Ochse, eine andere Adresse hat, obwohl es die selben Monster sind.
In Prinzip muss ich doch nur die Base-Adresse herausfinden, um diese dann irgendwie per AutoIT anklicken zu lassen.
Oder gibt es da einen anderen weg? Das Monster muss auf jeden Fall angeklickt werden, damit man es angreifen kann.

Ich hatte es schon mit Pixelsearch versucht, aber das scheint nicht so professionell zu funktionieren, wie ich es mir vorstellte ._.
01/07/2014 17:20 alpines#4
Haha, versuch es doch mal...
Nicht nur die Monster heißen Ochse sondern andere Sachen z.B. auch.
Nur weil da 10 sind heißt das nicht das du 10 findest bzw weniger.
01/07/2014 20:01 Doktor.#5
Bin mir nicht sicher ob dies mit AutoIt geht, aber ich meine es sollte möglich sein.

Ich würde es ja so machen das man die Funktion für auswählen eines Mobs sucht und die dann wieder aufruft.
Bräuchtest dafür aber wahrscheinlich die Addis der einzelnen Mobs und eben die richtige Funktion.

Solltest dich am besten mit Olly vertraut machen, sofern es überhaupt in AutoIt möglich ist. :b
01/07/2014 21:32 lolkop#6
Um welches Spiel geht es denn?
01/07/2014 22:43 /-/µR€#7
Quote:
Originally Posted by lolkop View Post
Um welches Spiel geht es denn?
Flyff.

Irgendwie muss das ja zu schaffen sein ...
01/07/2014 22:53 lolkop#8
Quote:
Originally Posted by /-/µR€ View Post
Flyff.

Irgendwie muss das ja zu schaffen sein ...
die auflistung von objekten in spielen läuft über einen nachbau der clientinternen funktionen. relativ einfach wird das ganze, wenn minimaps oder ähnliche genutzt werden um mobs darzustellen bzw aufzulisten.
hier gilt es die funktion zu finden und die relvanten informationen zu extrahieren.

die letztendliche selektierung kann je nach implementierung im spiel sehr einfach (zb über das setzen eines einzelnen wertes), oder aber auch recht kompliziert über eine client interne funktion mit mindestens einem parameter funktionieren.
01/08/2014 03:29 /-/µR€#9
Eine Minimap ist soweit vorhanden. Aber wie kann ich mir das zum Vorteil nutzen? Die Monster werden auf der Minimap als gelber Punkt angezeigt, aber man kann sie per Klick auf den jeweiligen gelben Punkt nicht anvisieren... ich bin echt am verzweifeln..
01/08/2014 11:10 lolkop#10
Quote:
Originally Posted by /-/µR€ View Post
Eine Minimap ist soweit vorhanden. Aber wie kann ich mir das zum Vorteil nutzen? Die Monster werden auf der Minimap als gelber Punkt angezeigt, aber man kann sie per Klick auf den jeweiligen gelben Punkt nicht anvisieren... ich bin echt am verzweifeln..
wie gesagt sobald du weist, wo im client objekte ohnehin durchlaufen werden (wie zb in der minimap funktion), kannst du beginnen diese in autoit nachzubauen...

vor etwa 3 jahren habe ich im stealthex forum mal beschrieben, wie ich das ganze in silkroad gemacht habe: