Moze ktos sprawdzic.. i powiedziec gdzie jest blad:
unit BOT;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
//adresy wartosci postaci
layer_ClubPerc = $613B00;
Player_SwordPerc = $613B04;
Player_AxePerc = $613B08;
Player_DistnacePerc = $613B0C;
Player_ShieldingPerc = $613B10;
Player_FishingPerc = $613B14;
Player_Fist = $613B18;
Player_Club = $613B1C;
Player_Sword = $613B20;
Player_Axe = $613B24;
Player_Distance = $613B28;
Player_Shielding = $613B2C;
Player_Fishing = $613B30;
Player_Cap = $613B40;
Player_Stamina = $613B48;
Player_Soul = $613B48;
Player_ManaMax = $613B4C;
Player_Mana = $613B50;
Player_MagicLevelPerc = $613B54;
Player_LevelPerc = $613B58;
Player_MagicLevel = $613B5C;
Player_Level = $613B60;
Player_Experience = $613B64;
Player_HpMax = $613B68;
Player_Hp = $613B6C;
Player_ID = $613B70;
//koniec - adresy wartosci postaci
implementation
{$R *.dfm}
// Funkcje czytające
function ReadMemInteger(Address: Cardinal): Cardinal; //Read adress:value
var
ProcId: Cardinal;
tProc: THandle;
NBR: Cardinal;
value:integer;
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;
function MemReadString(Address: Integer): String;
var
NB : LongWord;
Temp : ARRAY [1..255] OF Byte;
I : Byte;
IDProcess, proc_ID : Cardinal;
begin
GetWindowThreadProcessID(FindWindow('TibiaClient', nil), @proc_ID);
IDProcess := OpenProcess(PROCESS_ALL_ACCESS, false, proc_ID);
Result := '';
ReadProcessMemory(IDProcess, Ptr(Address), @Temp[1], 255, NB);
for I := 1 to 255 do
begin
if ((Temp[i] = 0) or (Temp[i] = $0F)) then
Break;
Result := Result + Chr(Temp[i]);
end;
end;
// Koniec - Funkcje czytające
end.
Zakładki