Seite 5 von 7
Verfasst: 26.05.2008 23:10
von XXcD
hallo,
kann mir vielleicht einer weiterhelfen?
Ich versuche gerade die Info aus Silkroad auszulesen,
soweit funtzt auch alles nur wenn ich das Playerlevel auslesen will kommt da nen komischer Wert raus: 60994160
Das ist der Code vielleicht kann mir einer sagen woran das liegt:
Code: Alles auswählen
procedure TForm15.Button4Click(Sender: TObject);
var
haWindow : THandle;
caThread : Cardinal;
caOpen : Cardinal;
caPuffer : Cardinal;
iPoints : Integer;
iBase : Integer;
begin
haWindow := FindWindow(nil, 'SRO_Client');
GetWindowThreadProcessId(haWindow, @caThread);
caOpen := OpenProcess(PROCESS_ALL_ACCESS, False, caThread);
ReadProcessMemory( caOpen, Pointer($CEDB54) , @iBase, Sizeof(iBase), caPuffer );
ReadProcessMemory( caOpen, Pointer(iBase + $820) , @iPoints, 4, caPuffer );
closehandle(caOpen);
Edit4.Text := inttostr(iPoints);
end;
Verfasst: 27.05.2008 00:51
von Bisonte
da sieht nicht wirklich nach Purebasic aus...
Tippe da auf VBasic... Falsches Forum ?
aber das
Code: Alles auswählen
ReadProcessMemory( caOpen, Pointer(iBase + $820) , @iPoints, 4, caPuffer );
könntest du mal mit
Code: Alles auswählen
ReadProcessMemory( caOpen, Pointer(iBase + $820) , @iPoints, 1, caPuffer );
austauschen. Ich denke mal du willst da zuviele Daten lesen.
Also ich habe 1 als Wert an der Stelle wo du die 4 hast. Ist ja nur ein Wert der kleiner als 256 (Oder ist silkroad schon über Level 256

? ) ist.
Verfasst: 27.05.2008 01:10
von edel
Bisonte hat geschrieben:da sieht nicht wirklich nach Purebasic aus...
Tippe da auf VBasic... Falsches Forum ?
Delphi.
Verfasst: 27.05.2008 09:36
von Bisonte
NAja das mit Form und sowas kenn ich nur von VB.
Aber mit Delphi hab ich ja auch noch nie nich was gemacht
wieder was dazu gelernt...
Verfasst: 27.05.2008 13:32
von XXcD
Jo das ist Delphi.
Mit der 1 das funktioniert nicht, da kommt komischerweise immernoch nen wert raus der weit über dem eigentlichen Level ist.
So ne Zahl wie: 63058574
Ich verstehe auch nicht warum alles andere funktioniert und das mit dem Level nicht.
Kann es sein, dass mein Offset doch irgendwie falsch ist?
Kann mir vielleicht jemand nen Code geben, wie ich die Koordianten auslesen kann? Das verstehe ich noch nicht so ganz.
Verfasst: 27.05.2008 15:16
von Bisonte
Koordinaten sind ein ganz heisses Eisen....
So wie ich das verstanden habe ist da der Basis Offset, dann die X,Y,Z Koordinaten die wiederum durch eine mathematische Formel laufen.
Ansonsten kann ich mir diese merkwürdigen ausleseergebnisse nicht erklären.
Aber das mit dem Level auslesen klappt so bei mir.(PID=ProcessID)
ID=OpenProcess_(#PROCESS_ALL_ACCESS,0,PID)
ReadProcessMemory_(ID,CharBase + curLVL_Offset ,@Lvl,1,0)
Alle anderen werte lese ich mit 2 aus (bis auf XP die mit 4)
Was bedeutet denn in Delphi die Zeile
caOpen : Cardinal;
Vielleicht ist dort dann der Hund begraben ?
Verfasst: 27.05.2008 17:17
von XXcD
caOpen : Cardinal; ist der Prozess der geöffnet wird und aus dem dann die Werte ausgelesen werden.
Und habe glaube ein Problem, heute morgen gab es ein Update und die BaseAddress stimmt nicht mehr.
Ob die gesamten Offsets nicht stimmen, weiß ich nicht.
Woher könnte ich denn die aktuellen Offsets bekommen?
Oder hat die vielleicht einer, hier im Forum?
Verfasst: 28.05.2008 02:00
von Bisonte
Die frage nach den Offsets ist berechtigt.... Pumuky hat sie hier immer reingetan ....
Ich hab sie uebernommen... und es ging... nun schon wieder ein update ? da kommt man ja aus den updates gar nich raus....

Verfasst: 28.05.2008 23:16
von Pumuky
im try to do some aplett in c++ but im not a developer

im only a very interested player.
I taking some code of 0x33 forum this source read all sro imformation and print this information in screen, and take some source of logitech SDK examples, now im working in a mix of this 2 sources, then i need to make a g15 window and progress bars.
I dont have much time and dont have idea of sources but im study and work hard, if some day i finish this aplet i put here for all pll with source i think the source of this litle programs is not a secret and all can be use for yourself, im only want this aplet for play SRO and pherhaps i can help some noob than me to make his aplets.
Im try to do this apl in c++ becuz i dont know any code and c++ is free, pureboard is shareware and i just start of 0 dont have some code for help me to start. sorry for all pll here (this a purebasic forum) but in purebasic i dont have much examples of aplets of g15 for noobs
Sorry i need to talk in poor english, i cant speak in German.
THX to Bisonte you are the reazon that i buy my G15 im very hapy with this and if you not continued with your work i search new forms for make another aplet.
Verfasst: 28.05.2008 23:56
von edel
Warum programmiert ihr das ganze nicht so, das die Daten von aussen
gelesen werden, dann brauchste da auch nicht so viel updaten.