How can we make delphi read through the hp of char pointers
?
:mad::confused:
?
:mad::confused:
function THostchar.HP: TBounds; var HP, HPM: Cardinal; eax, written, Base: cardinal; begin ReadProcessMemory(Self.Handle, ptr(self.Offsets.Addresses_base_Address), @eax, 4, written); ReadProcessMemory(Self.Handle, ptr(eax + $1C), @eax, 4, written); ReadProcessMemory(Self.Handle, ptr(eax + self.Offsets.Structural_Character), @Base, 4, written); ReadProcessMemory(Self.Handle, ptr(Base + self.Offsets.Character_HP), @HP, 4, written); ReadProcessMemory(Self.Handle, ptr(Base + self.Offsets.Character_Max_HP), @HPM, 4, written); result.Current := HP; result.Max := HPM; Try result.Percent := Round((HP / HPM) * 100); except result.Percent := 0; End; end;
var
H, TI, PI, W, rw: DWORD;
eax, written, Base: cardinal;
HP, HPM: DWORD;
begin
H := FindWindow(nil, 'Element Client');
if (H <= 0) then
exit;
try
ReadProcessMemory(Self.Handle, ptr($00B3B24C), @eax, 4, written); //BASE
ReadProcessMemory(Self.Handle, ptr(eax + $1C), @eax, 4, written);
ReadProcessMemory(Self.Handle, ptr(eax + $34), @Base, 4, written);
ReadProcessMemory(Self.Handle, ptr(Base + $494), @HP, 4, written); //pointer HP
ReadProcessMemory(Self.Handle, ptr(Base + $4DC), @HPM, 4, written); //Pointer Hp Max
label1.Caption := IntToStr(HP);
label2.Caption := IntToStr(HPM);
finally
end;
is something wrong?Quote:
var
H, TI, PI, W, rw, GameHandle: DWORD;
eax, written, Base: cardinal;
HP, HPM: DWORD;
ProcessId: Integer;
begin
H := FindWindow(nil, 'Element Client');
GetWindowThreadProcessId(H, @ProcessId);
GameHandle := OpenProcess(PROCESS_VM_READ, False, ProcessId);
if (H <= 0) then
exit;
try
ReadProcessMemory(GameHandle, ptr($00B3B24C), @eax, 4, written); //BASE
ReadProcessMemory(GameHandle, ptr(eax + $1C), @eax, 4, written);
ReadProcessMemory(GameHandle, ptr(eax + $34), @Base, 4, written);
ReadProcessMemory(GameHandle, ptr(Base + $494), @HP, 4, written); //pointer HP
ReadProcessMemory(GameHandle, ptr(Base + $4DC), @HPM, 4, written); //Pointer Hp Max
label1.Caption := IntToStr(HP);
label2.Caption := IntToStr(HPM);
finally
end;
(H := FindWindow(nil, 'Element Client');