[C#] Hilfe bei WoW Bot mit Blackmagic.dll

03/12/2013 19:08 Renschy19#1
Hallo,

wie bereits erwähnt möchte ich einen Bot für WoW 3.3.5 schreiben. Ich habe allerdings Probleme dabei meinen Charakter an eine bestimmte Stelle zu bewegen. Charaktername wird schon ausgegeben und mit diesem Code:

Code:
playerx = wow.ReadFloat(playerbase + 0x798); // Read players xlocation
playery = wow.ReadFloat(playerbase + 0x79C); // Read players ylocation
playerz = wow.ReadFloat(playerbase + 0x7A0); // Read players zlocation
playerr = wow.ReadFloat(playerbase + 0x7A8); // Read players rlocation
move_tb_x.Text = playerx.ToString();
move_tb_y.Text = playery.ToString();
move_tb_z.Text = playerz.ToString();
move_tb_r.Text = playerr.ToString();
wird in einem Timer alle 100ms die neue Location ausgegeben.

Wenn ich aber dann neue Koordinaten eingebe dann bewegt sich der Charakter nur gerade aus. Er bleibt auch nicht stehen, er läuft einfach weiter.

Hier der Code:

Code:
wow.WriteFloat(0x00CA11D0 + 0x80, float.Parse(move_tb_newx.Text)); // x pos from prompt
wow.WriteFloat(0x00CA11D0 + 0x84, float.Parse(move_tb_newy.Text)); // y pos from prompt
wow.WriteInt(0x00CA11F4, 4);   //makes character walk
Kann mir bitte jemand den Fehler sagen? Oder habe ich einfach nur die falschen Offsets benutzt?

lg
03/13/2013 15:45 SwarN#2
Ich nehme an du hast die aktuellen Werte von deinem Player Charakter.

Wenn du wo hinlaufen möchtest brauchst du die Speicheradresse von der CTM-Funktion (ClickToMove). Diese lässt sich auch ohne Probleme finden und sollte natürlich in der nähe deiner Charakter Position Adresse liegen.

Du kannst diese natürlich auch mit CheatEngine suchen indem du es ähnlich handhabst wie du deine Charakter Position gefunden hast. Wenn du nämlich Recht's mit der Maus-Clickst um dich fortzubewegen, dann ist das deine CTM funkion in die immer wenn du mit der rechten Maustaste wohinklickst und läufst neue Werte geschrieben werden.

Also relativ easy.
03/13/2013 22:30 Renschy19#3
Danke für deine Antwort.

Ich kenne mich mit CheatEngine leider nicht so gut aus, aber eigentlich müsste doch 0x00CA11D0 die Adresse der CTM Funktion sein. Oder liege ich da falsch?
Ich habe mir die ganzen Adressen in diesem Forum ([Only registered and activated users can see links. Click Here To Register...]) gesucht, und da steht das zumindest so geschrieben.
03/14/2013 09:59 SwarN#4
Was ist der Sinn daran Offset zu nehmen die du nicht verstehst?

Erst durchs selber finden/lernen wirst du verstehen wie das alles zusammenhängt und nur dann kannst du auch WIRKLICH einen Bot schreiben der "funktioniert".

Der umgang mit CheatEngine ist dabei fast unumgänglich ( ja fast unumgänglich manche benutzen auch gleich Debugger wie OllyDBG, aber man fängt ja in der Regel immer erst mal mit dem leichten an ).

Es gibt genügend Tutorials für CheatEngine und Pointer/Offsets zu finden. Am besten versuchst du dich gleich einmal daran. Dein Verständnis wird es dir danken :).

BTW, kann ich die Seite nicht öffnen da sie ausge *** ist. Das tut aber auch nicht's zur Sache. Nochmal für dich deine AKTUELLE CHARAKTER POSITION != deine CTM-Funktion X/Y/Z-Werte.
03/14/2013 22:21 Renschy19#5
Ok, dann werde ich mal fleißig Tutorials schauen. :D
03/25/2013 00:52 Endecs#6
Wie ich sehe, schreibst du X/Y, du musst aber Z mit schreiben.
Du "kannst" nicht einem 3 Dimensionalen Spiel nur 2 Dimensionale Koordinaten geben und sagen, dass er sich dann bewegen soll, obwohl Z bei WoW nicht viel ausmacht, hab ich es bislang nicht getestet und nur gelesen, dass die Leute, als sie Z rein schrieben, es funktioniert hat,

greets,
Endecs