Prosze dajcie linka do packet.dll bo tamte linki nie działają ;/
Wersja do druku
Prosze dajcie linka do packet.dll bo tamte linki nie działają ;/
Dzieki bardzo, ale mam problem.
Od 3 dni próbuje na podstawie poradniczka sklecić prosty program leczący z run UH. Ale nie wiem czy ja taki tempy jestem czy co, ale ciagle mi sie owy programik sypie.
I tu moja prośba: Cy mógłby ktoś dać hosta prostego programiku leczącego z run UH, ale żebym mógł cobie go w Delphi otworzyć. Bardzo by mi to pomogło i wreszcie bym zrozumiał istotę pisania botów.
Z góry wielkie thx.
bardzo bym prosil o funkcje ktora czyta nick gracza, bo ta na 1 stronie nie dziala nawet ze zmienionymi adresami help!! :(
Fajny Artykuł.
Ja dzięki niemu napisałem program który po wybraniu liczby z listboxa zmienia nam level.
Jak wyczytac nick zalogowanego gracza heeeeeeeeeelp!
Dlaczego jak próbuje się wbić na tibie 7.6 przez free proxy, to pokazuje się okno wyboru postaci i przy próbie zalogowanie wyskakuje "disconnet to server"
Ja mam pytanie jak sprawdzic za pomoca battle id potwora widzianego na ekranie mysle nad tym intensywnie ale nawet nie mam tej wizji..
przyda sie sproboje jeszcze dzisiaj zrobic :)
+ dla cibie..
Jesli tego nie wiecie to fajnie by bylo jak byscie napisali mi skrypt na auto attack mysle nad tym caly dzien i nie bardzo chce wyjsc;/
przejzyj snifferem pakiety otrzymywane/ wysylane podczas walki. Potem botem zasymuluj wyslanie pakietu odpowiadające za atak i cacy. Wiem ze mowie pobierznie ale mam nadzieje ze wskazalem Ci droge :)
Tyle to ja ziomus juz dawno zrobilem ale nie wiem jak sprawdzic id monstera ktory nas atakuju alebo ktory stoi obok
W battlelist jest jego name prawdopodobnie, id tez tam chyba znajdziesz. Trzeba tylko ustalic ktory to adres.
A myslisz ze to dobry temat??
PS.
Mam pytanie jak mam sprawdzic numer potwora z battle ktory mnie wlasnie atakuje ????
wystarczy ze raz sformułujecie pytanie :P Najwyrazniej nikt nie potrafi na nie odpowiedziec, polecam forum: tpforums.org/forum Jest to specjalne forum tylko i wylącznie dla twórców programów do Tibii ;p
elo mam problem z tym :
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;[/CODE]
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;
zawsze jak to wklejam do unitu to mi blad wyskakuje moze mi to ktos wyjasnic?
Mam pytanie dlaczego nie moge zalozyc tutaj konta? tpforums.org/forum
Moze mi ktos odpowiedziec na pytanie?? Ewentualnie jak ktos posiada juz konto prosil bym aby uzyczyl mi konta ;)
Yaboo umialbys napisac bota na wlasny klient ots ktory tylko zbiera kase? reszte amm w tibia auto
prosze napisz na gg 3663338 moge zaplacic ale jakas symboliczna kwote
Mam pytanie dotyczące tego programu freeproxy. Na tibii 8.1 łączy mi się normalnie jednak gdy chcę się połączyć z ots'em stojącym na wersji 7.6 wywala mi błąd:
Cannot connect to the server.
Error: Disconnect from server.
Wie ktoś o co chodzi?
a ja mam pytanie odnośnie pakietow.Mam pelna wersje BlackD i jak skanuje to niewiem jakie cyferki do pakietu wpisac.Dziekuje
//czekam na odpowiedz juz 3 tydzien ... ;/
//czy pod update z adresami zmieniaja sie rownierz pakiety?
pakiety, watpie, adresy napewno
ma ktos spis nowych adresów?
edit:
sam sobie odpowiedzialem
http://tpforums.org/forum/showthread.php?t=1844 ;p przyda sie pewnie i wam.
Mi tam teraz po zmianie adresów nie działa Trenowanie mlvl'a... Mógłby ktoś napisać kod cały na 8.2?
mógłby ktoś podać adresy pod tibie 8.2 ?
Z góry dzięki.
Adresy umieszczone dzięki uprzejmości Stiju.Kod:PLAYER_STATUS 0x00621BF8 //'Poisoned = 1, Burning = 2, Energized = 4, Drunk = 8, MagicShield = 16, Paralyzed = 32, Hasted = 64, Battle = 128, Drowning = 256, Frozen = 512, Dazzled = 1024, Cursed = 2048, None = 0 (Thanks to Farsa)
PLAYER_FIST_PERC 0x00621BFC
PLAYER_CLUB_PERC 0x00621C00
PLAYER_SWORD_PERC 0x00621C04
PLAYER_AXE_PERC 0x00621C08
PLAYER_DISTANCE_PERC 0x00621C0C
PLAYER_SHIELDING_PERC 0x00621C10
PLAYER_FISHING_PERC 0x00621C14
PLAYER_FIST 0x00621C18
PLAYER_CLUB 0x00621C1C
PLAYER_SWORD 0x00621C20
PLAYER_AXE 0x00621C24
PLAYER_DISTANCE 0x00621C28
PLAYER_SHIELDING 0x00621C2C
PLAYER_FISHING 0x00621C30
PLAYER_MOUSEOVER_ID 0x00621C34
PLAYER_FOLLOW_ID 0x00621C38
PLAYER_ATTACK_ID 0x00621C3C
PLAYER_CAP 0x00621C40
PLAYER_STAMINA 0x00621C44
PLAYER_SOULPOINT 0x00621C48
PLAYER_MANA_MAX 0x00621C4C
PLAYER_MANA 0x00621C50
PLAYER_MAGIC_LEVEL_PERC 0x00621C54
PLAYER_LEVEL_PERC 0x00621C58
PLAYER_MAGIC_LEVEL 0x00621C5C
PLAYER_LEVEL 0x00621C60
PLAYER_EXPERIENCE 0x00621C64
PLAYER_HEALTH_MAX 0x00621C68
PLAYER_HEALTH 0x00621C6C
PLAYER_ID 0x00621C70
PLAYER_GOTOZ 0x00621CAC
PLAYER_GOTOY 0x00621CB0
PLAYER_GOTOX 0x00621CB4
BATTLELIST_BEGIN 0x00621CD0
BATTLELIST_END 0x00627A90
PLAYER_HEAD_SLOT 0x0062A190
PLAYER_NECK_SLOT 0x0062A19C
PLAYER_CONTAINER_SLOT 0x0062A1A8
PLAYER_BODY_SLOT 0x0062A1B4
PLAYER_LEFT_HAND_SLOT 0x0062A1C0
PLAYER_LEFT_HAND_COUNT 0x0062A1C4
PLAYER_RIGHT_HAND_SLOT 0x0062A1CC
PLAYER_RIGHT_HAND_COUNT 0x0062A1D0
PLAYER_LEGS_SLOT 0x0062A1D8
PLAYER_FEET_SLOT 0x0062A1E4
PLAYER_RING_SLOT 0x0062A1F0
PLAYER_ARROW_SLOT 0x0062A1FC
PLAYER_ARROW_COUNT 0x0062A200
CONTAINER_BEGIN 0x0062A208
CONTAINER_END 0x0062C0C8
#Akyer:
Pakiety się nie zmieniają. Opcjonalnie powstają nowe, odpowiedzialne (np. w tym update): za kupienie przedmoitu u NPC.
Swoją drogą pakiety należy rozpracować samemu. WIelokrotnie powtarzaj jakąś czynność i patrz, które fragmety pakietu ulegają zmianie. Za co odpowiadają? - sam musisz do tego dojść.
Adresy oczywiście się zmieniają - widać to w poście powyżej.
BATTLELIST_START = $60EB30 + 4;
BATTLELIST_END = $6148F4;
Wiem że tu nigdy nie wchodzi już, ale jeżeli ktoś by weszedł to niech mi powie skąd mam wziąść te cyferki na tibie 8.2. Poradziłem sobie ze wszystkim innym yeah. :d
0x00 equal $Cytuj:
Damlox napisał
Sorrka nie doczytałem :P Mógłby mi ktoś jeszcze raz wytłumaczyć jak zrobić spell castera. Prosze. :)
//edit
sam doszedłem do tego skąd mam wziąść adressy np. sword fighting itp. ale niewiem jak mam uzyskać z tego dane do stworzenia zmiany outfity albo spell castera :/. Oczywiście poradnik 11/10 :D
Pordnik spoko i autor też. Może trochę skąplikowany ale mi pasuje.
Mogłby ktos dac pakiety na Account Number i Password? (Do auto loginu) ??? Czekam...
Jeżeli chodzi o spell caster, opiera się on na pakietach. Przykład takiego zastosowania zawarty został w pierwszym poście.
Aby zmienić outfit postaci, musisz przede wszystkim znaleźć ją na battlelist,
a następnie użyć funkcji zmieniającej wartość w danym adresie (w tym wypadku MemWriteInteger).
Przykład:
Kod:MemWriteInteger(battlelist_start+(i*160)+distance_outfit, 60, 2); // distance_outfit - odległość do adresu outfitu, 60 - nowy wygłąd, 2 - długość wartości
trzeba sciagnac tez nowego packet.dll ten stąd nie działa pod Tibie 8.2 sciagnolem new packet.dll zupdatowalem adresy i bot dzialal jak pod wczesniejsze wersje.
No niestety to za dużo na moją głowę. :P Ktoś tu podał nowy packet.dll ?
//edit
No właśnie trochę tego nie rozumiem. :/ Wiem, że Yooboo sie starał i inni też, no ale jakoś nie rozumiem.Cytuj:
Aby zmienić outfit postaci, musisz przede wszystkim znaleźć ją na battlelist,(...)
Bibliotekę packet.dll pod różne wersje klienta Tibii możemy znaleźć pod adresem - http://www.tpforums.org/forum/showth...ght=packet.dll
Hmm... teraz sprawa znajdywania pozycji gracza na battlelist.
W sumie można to zrobić na dwa sposoby:
- Dzięki ID gracza
- Dzięki nazwie gracza
Ten pierwszy sprawdza się, tylko jeżeli chcemy odwołać się do naszej postaci, gdyż znamy nasz ID
(player_id = $00624C70).
Taka funkcja wygląda następująco:
Kod:function findplayerbyid(id: integer);
var
i: integer;
begin
for i:=0 to 150 do
begin
if (ReadMemInteger(battlelist_start+(i*160)-4) = id) then
begin
Result :=i;
exit;
end;
end;
end;
Dzieki Damlox. Spróbuję od nova i za kilka dni wrzuce ssa co mi tam wyszło :PPP. Jeszcze jedno pytanko. Czy da się zmienić grafike w programie? Znaczy się np. ogrągłe okno, albo w org. stylu Vivynusa. :)))
#up:
Ofc - wszystko da się zmienić ;) Możesz do tego użyć gotowych komponentów, albo popróbować samemu (co jest jednak trochę trudniejsze). Sam kształt okna nie jest specialnie trudny do wykonania.
#edit,down:
nie ma go w standardzie. Możesz poszukać zestawu "Raize Components", abo samemu przygotować 2-kolorową bitmapę, położyć na formę i jeden z kolorów w ustawieniach formy oznaczyć jako "przezroczysty". Forma przybierze kształt pierwszego koloru bitmapy.
Który komponent? Jest w standardowej wersji Delphi 7 ?
Witam :)
Mój problem polega na tym:
[Fatal Error] Tibia_bot.dpr(5): Could not compile
[Error] bot.pas(61): Declaration expected but end of file found
Pozaznaczałem gdzie jest 5 linijka i 61 choć jej niema 0.o
Kod: oczywiście # została zamienione na "małpę"
[Error] bot.pas(61): Declaration expected but end of file found || tego niema bo linijek jest tylko 55 0.oKod:unit Bot;
interface
uses //Tutaj[Fatal Error] Tibia_bot.dpr(5): Could not compile used unit 'bot.pas'
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Funkcje czytające
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;
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;
O już mi się udało wystarczyło dodać pod spodem end. :)
O a teraz znowu mam problem bo mi nie wysletla okienka jak skomplikowalem i dalem F9
Kod:
Wyświetla mi sie takie duże okno i nic :<Kod: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;
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.
link: h t t p://www7.speedyshare.com/data/346765714/11944944/79817199/error.jpg
Poradnik swietny ale komu chce sie w to bawic,mozna przecierz jak jest jakis update i niemozna sie logonoc napisac z nudow.Poradnik przyda sie osobom ktrzy nie graja w tibie ale sa na forum.
Ocena:
9,5/10
#up:
Nic nie wniosłeś. Wogule nie wiem o co ci chodzi :|
#sokrates:
A co ty byś chciał?
Skompilowałeś program mający funkcje odnajdującą tibię, otwierającą jej procesz i funkcję bodajże czytającą liczby z pamięci.
Teraz dodaj pod jakimś przyciskiem obsługę tych funkcji. Program zadziałał - skompilował pustą formę, bo nic na nią nie położyłeś.
zacznijcie od jakichs prostych rzeczy (w stylu hello world, ew. kalkulatorek), po co komus zrobic bota, nie rozumiejac co wkleja ...
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;