;X jesteś dla mnie bogiem xd
A jeżeli chce np pod otsa to macro który ma inne grafiki skile itd (dragon ball legend)
to jeżeli będę postępował zgodnie z poradnikiem to on będzie działał ?
Wersja do druku
Tylko, jeśli ten OTS jest na tej samej wersji klienta tibii, z której adresów korzystasz.
(ots 8.0 - musisz mieć adresy do 8.0)
Grafika / wygląd - nie gra roli.
Mam Kod
A tu error:Cytuj:
unit Bot;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
//adresy wartosci postaci
Player_StrPerc = $H4A11D4;
Player_TpointsPerc = $H4A11D8;
Player_SwordPerc = $H4A11DC;
Player_AtackspeedPerc = $H4A11E0;
Player_KiblastPerc = $H4A11E4;
Player_DefPerc = $H4A11E8;
Player_EnePerc = $H4A11EC;
Player_Str = $H4A11F0;
Player_Tpoints = $H4A11F4;
Player_Sword = $H4A11F8;
Player_Atackspeed = $H4A11FC;
Player_Kiblast = $H4A11F0;
Player_Def = $H4A1204;
Player_Ene = $H4A1208;
Player_Cap = $H4A1218;
Player_Rage = $H4A121C;
Player_MaxKi = $H4A1220;
Player_Ki = $H4A1224;
Player_KiLevelPercent = $H4A1228;
Player_KiLevel = $H4A1230;
Player_PowerLevelPercent = $H4A122C;
Player_PowerLevel = $H4A1234;
Player_Experience = $H4A1238;
Player_MaxHealth = $H4A123C;
Player_Health = $H4A1240;
Player_ID = $H4A1244;
//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
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption:=inttostr(ReadMeminteger(Player_Pow erLevel));
label2.Caption:=inttostr(ReadMeminteger(Player_KiL evel));
label3.Caption:=inttostr(ReadMeminteger(Player_Hea lth));
label4.Caption:=inttostr(ReadMeminteger(Player_Ki) );
label5.Caption:=inttostr(ReadMeminteger(Player_Rag e));
end;
end.
Pomoże ktoś ? :)Cytuj:
[Error] bot.pas(29): ';' expected but identifier 'H4A11D4' found
[Error] bot.pas(30): Undeclared identifier: 'Player_TpointsPerc'
[Warning] bot.pas(30): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(31): Undeclared identifier: 'Player_SwordPerc'
[Warning] bot.pas(31): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(32): Undeclared identifier: 'Player_AtackspeedPerc'
[Warning] bot.pas(32): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(33): Undeclared identifier: 'Player_KiblastPerc'
[Warning] bot.pas(33): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(34): Undeclared identifier: 'Player_DefPerc'
[Warning] bot.pas(34): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(35): Undeclared identifier: 'Player_EnePerc'
[Warning] bot.pas(35): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(36): Undeclared identifier: 'Player_Str'
[Warning] bot.pas(36): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(37): Undeclared identifier: 'Player_Tpoints'
[Warning] bot.pas(37): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(38): Undeclared identifier: 'Player_Sword'
[Warning] bot.pas(38): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(39): Undeclared identifier: 'Player_Atackspeed'
[Warning] bot.pas(39): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(40): Undeclared identifier: 'Player_Kiblast'
[Warning] bot.pas(40): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(41): Undeclared identifier: 'Player_Def'
[Warning] bot.pas(41): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(40): Identifier redeclared: 'H4A11F0'
[Error] bot.pas(41): ';' expected but identifier 'H4A1204' found
[Error] bot.pas(42): Undeclared identifier: 'Player_Ene'
[Warning] bot.pas(42): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(43): Undeclared identifier: 'Player_Cap'
[Warning] bot.pas(43): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(44): Undeclared identifier: 'Player_Rage'
[Warning] bot.pas(44): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(45): Undeclared identifier: 'Player_MaxKi'
[Warning] bot.pas(45): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(46): Undeclared identifier: 'Player_Ki'
[Warning] bot.pas(46): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(47): Undeclared identifier: 'Player_KiLevelPercent'
[Warning] bot.pas(47): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(48): Undeclared identifier: 'Player_KiLevel'
[Warning] bot.pas(48): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(49): Undeclared identifier: 'Player_PowerLevelPercent'
[Warning] bot.pas(49): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(50): Undeclared identifier: 'Player_PowerLevel'
[Warning] bot.pas(50): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(51): Undeclared identifier: 'Player_Experience'
[Warning] bot.pas(51): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(52): Undeclared identifier: 'Player_MaxHealth'
[Warning] bot.pas(52): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(53): Undeclared identifier: 'Player_Health'
[Warning] bot.pas(53): Comparing signed and unsigned types - widened both operands
[Error] bot.pas(54): Undeclared identifier: 'Player_ID'
[Warning] bot.pas(54): Comparing signed and unsigned types - widened both operands
@edit
Błąd rozwiązany :)
witam
jeden z kolegów podał wcześniej linka do pliku packet.dll, założyłem tam konto, ale niestety nie mogę go pobrać. Mógłby go ktoś udostepnić (ver. 8.21)
pozdro
Co do pana mającego masę błędów w cosnstach:
W delphi nie ma "H" jest tylko "$" tak więc adres nie wygląda
tylkoKod:Player_ID = $H4A1244;
Kod:Player_ID = $4A1244;
Super poradniczek, bardzo przydatny dla tych, którzy mają czas się w to bawić. Wolałbym jednak wersję w języku C++ ;]
Skoro była prośba... a więc:
packet.dll pod 8.21
Speedyshare rehost
Rapidshare rehost
Oryginalny temat z plikiem
+Adresy do 8.21
Tak szczerze... Wiesz co ma ten kod na celu?
GetWindowThreadProcessID(FindWindow('TibiaClient', nil), #proc_ID);
*brązowe oznaczenie - uzyskanie uhwytu do okna Tibii. Każdy klient tibii (sama aplikacja), posiada klasę okna "TibiaCliwnt". Nie ma możliwości, żeby to była tego wina.
*zielone oznaczenie - uzyskanie ID procesu na podstawie uhwytu okna. W zmiennej Proc_ID, zostanie zapisana ta informacja.
Witam Bardzo Proszę o pomoc Bo jak robie wpisuje to pomiedzy Begin a end te adresy jak naciskam ctrl+f9 pisze ze error BLAGAM O POMOC DAM REPUTA!!!!
Bardzo ladny poradnik, zazdroszcze autorowi tekstu takiej wiedzy na ten temat.
Mam prośbę, może ktoś wrzucić tutaj packet.dll pod 8.22 - z góry dzieki.
pozdrawiam
No bardo fajny poradnik troche sie pomeczyle,m ale zrobilem
udało mi sie:D