Artykuł jest poniekąd zabytkowy, i wątpię żeby na chwilę obecną cokolwiek z niego działało, tym bardziej oświadczam że postanowiłem kategorycznie skończyć z Tibią już jakiś czas temu gdyż i bez tego mam masę zajęć, więc proszę nie pytajcie mnie już o tego bota. Z Delphi (akurat wersja 7 Personal, ale na 2005 też pewnie by poszło) też dawno nie miałem styczności, więc raczej wam nie pomogę.
Sorry!
PS. Kod zawiera kilka błędów, jeżeli znajdzie się ktoś kto je poprawi będzie miło (za dużo parametrów przekazywanych do MemoryReadInt), ja nie mam niestety czasu.
function MemoryReadInt(Address: Cardinal): Longword;
var
ProcId: Cardinal;
tProc: THandle;
NBR: Cardinal;
value: Longword;
begin
GetWindowThreadProcessId(FindWindow('TibiaClient', Nil), @ProcId);
tProc:= OpenProcess(PROCESS_ALL_ACCESS, False, ProcId);
ReadProcessMemory(tProc, Ptr(Address), @value, 4, NBR);
CloseHandle(tProc);
Result := Value;
end;
i może się przydac:
function MemoryWriteInt(Address, Int: Cardinal): Longword;
var
ProcId: Cardinal;
tProc: THandle;
NBR: Cardinal;
value: Longword;
begin
GetWindowThreadProcessId(FindWindow('TibiaClient', Nil), @ProcId);
tProc:= OpenProcess(PROCESS_ALL_ACCESS, False, ProcId);
WriteProcessMemory(tProc, Ptr(Address), @Int, 4, NBR);
CloseHandle(tProc);
Result := Value;
end;
wystarczy pokombinować aby napisac funkcję MemoryWriteString (podpowiedz: najpierw napisz sobie funckję memoryWriteChar, zapisująca po jednym bajcie, nie zapomnij zmienic w ReadProcessMemory 4 na 1)