mozna by dodac auto uhanie i uhanie na hotkeyu (nie potrzebne dla nowszych wersji titi ale przyda sie pod stare otki)
Wersja do druku
mozna by dodac auto uhanie i uhanie na hotkeyu (nie potrzebne dla nowszych wersji titi ale przyda sie pod stare otki)
Macie te adresy na 8.10 od razu mowie że one nie są bezpośrednio pod delphi i trzeba najpierw wyciąć 0x00 żeby same liczby zostały
Kod:**player**
PLAYER_HP_MAX 0x00613B68
PLAYER_HP 0x00613B6C
PLAYER_MANA 0x00613B50
PLAYER_MANA_MAX 0x00613B4C
PLAYER_STAMINA 0x00613B48
PLAYER_CAP 0x00613B40
PLAYER_EXP 0x00613B64
PLAYER_LEVEL 0x00613B60
PLAYER_MAGIC_LEVEL 0x00613B5C
PLAYER_LEVEL_PERC 0x00613B58
PLAYER_MAGIC_PERC 0x00613B54
PLAYER_FIST 0x00613B18
PLAYER_CLUB 0x00613B1C
PLAYER_SWORD 0x00613B20
PLAYER_AXE 0x00613B24
PLAYER_DISTANCE 0x00613B28
PLAYER_SHIELDING 0x00613B2C
PLAYER_FISHING 0x00613B30
PLAYER_FIST_PERC 0x00613AFC
PLAYER_CLUB_PERC 0x00613B00
PLAYER_SWORD_PERC 0x00613B04
PLAYER_AXE_PERC 0x00613B08
PLAYER_DISTANCE_PERC 0x00613B0C
PLAYER_SHIELDING_PERC 0x00613B10
PLAYER_FISHING_PERC 0x00613B14
PLAYER_STAMINA 0x00613B44
PLAYER_SOUL is 0x00613B48
PLAYER_ID 0x00613B70
PLAYER_X 0x0061E9C8
PLAYER_Y 0x0061E9C4
PLAYER_Z 0x0061E9C0
PLAYER_GOTO_X 0x00613BB4
PLAYER_GOTO_Y 0x00613BB0
PLAYER_GOTO_Z 0x00613BAC
PLAYER_SLOT_HEAD 0x0061C058
PLAYER_SLOT_NECKLACE 0x0061C06C (I think, stuck on char with no necklace)
PLAYER_SLOT_CONTAINER 0x0061C070
PLAYER_SLOT_ARMOR 0x0061C07C
PLAYER_SLOT_RIGHT 0x0061C078
PLAYER_SLOT_LEFT 0x0061C094
PLAYER_SLOT_LEGS 0x0061C0A0
PLAYER_SLOT_FEET 0x0061C0AC
PLAYER_SLOT_RING 0x0061C0B8 (I think, stuck on char with no rings)
PLAYER_SLOT_AMMO 0x0061C0C4
PLAYER_SLOT_RIGHT_COUNT 0x0061C08C
PLAYER_SLOT_LEFT_COUNT 0x0061C098
PLAYER_SLOT_AMMO_COUNT 0x0061C0C8
Kod:**misc**
CURSOR 0x0076C328 (0 normal, 7 using (fish, rune)
MAP_POINTER 0x006234D8
VIPLIST_BEGIN 0x00611890
VIPLIST_END 0x00612128
STATUS_TEXT_TIMER 0x0076D924
STATUS_TEXT 0x0076D928
LAST_MESSAGE 0x0076DB78
BATTLELIST_BEGIN 0x00613BD0
BATTLELIST_END 0x00619990 (I think, can someone verify?)
CONTAINER_BEGIN 0x0061C0D0
CONTAINER_END 0x0061DF90 (Probably)
LEVELSPY_NOP 0x004C4FC0
LEVELSPY_ABOVE 0x004C4FBC
LEVELSPY_BELOW 0x004C4FC4
NAMESPY_NOP 0x004DF469
NAMESPY_NOP2 0x004DF473
SEE_ID 0x0076C370
SEE_COUNT 0x0076C374
SEE_Z 0x0076C308 (not sure how it works)
CLICK_ID 0x0076C370 (Same as SEE_ID? No idea how this works)
CONNECTION 0x0076c2c8 <0=not connected, 5=character just chosen, 6=login packet sent to gameserver, 8=connected to gameserver>
TARGET_ID 0x00613B3C
No to powodzenia w pisaniu botów
Witam, Yaboo ty się nieźle znasz, więc może mi pomożesz ;P. Poszukuje jakiegoś sposobu na wysyłanie danych na strone, do skryptu php który je zapisze, bez zbytniego obciążania komputera, poprzez program w Delphi.
Ew. może być sposób na zamykanie procesu o danej nazwie.
Potrzebuje tych rzeczy... do pewnego projektu ;P (bota) . Z góry dziękuje za pomoc.
Pozdrawiam, MeNi
delphi to rzeczywiscie shit, ale masz + za poradnik. Napewno sie przyda.
Jeszcze light ale tego nie znalazłem więc nie zmieniałemKod:Player_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;
BATTLELIST_START = $613BD0 + 4;
BATTLELIST_END = $619990;
Tu już podmienione pod 8.1
Nie za bardzo rozumiem o co chodzi z pakietami. W jaki sposób to działa? jak "przekonwenterować" text który ma wypowiedzieć na te.. cyferki xd Od czego to zależy, używasz może do tego jakiegoś programu, albo czegoś? Bo chciałbym przykładowo zrobić opcję otwierania dopiero co zabitego potwora. Skąd mój bot ma wiedzieć czy właśnie otworzył właściwego deda, czy może otworzył jednak jakiś bag leżący na ziemi, albo po prostu próbuje otworzyć trawę xd Jednym słowem potrzebuje więcej informacji dotyczących wysyłania pakietów.
@edit
Chodzi mi o to, jak np. wstawić do wysyłanego pakietu który odpowiada za otwieranie przedmiotów z ziemi pozycje itemu do otwarcia? Gdy pakiet wygląda tak:w nawiasach są kolejno pos.x itemu do otwarcia, pos.y , pos.z i id itemu. Jak uzupełnić to danymi które ja podam?Kod:0A 00 82 [64 7D] [B6 7D] [06] [25 0B] 01 01
btw. Jest jakiś (w miarę prosty mam nadzieje) sposób żeby zapobiec wysyłaniu pakietów przez tibie do servera? Chodzi mi tu o to żeby Tibia nie odpowiadała na ping (dało by to możliwość wylogowania się z gry nawet jeśli posiada się "miecze" (Battle Sign)
Z góry dzięki za pomoc,
Pozdrawiam, MeNi.
@down
A masz packet.dll ?
Yaboo, bot mi sie sypie przez, gdy próbuję wysłać text, wiesz dlaczego?
Cytuj:
procedure say(text:string);
var
PacketBuffer: array [0..200] of byte;
ProcessID: Cardinal;
begin
GetWindowThreadProcessId(FindWindow('TibiaClient', Nil), @ProcessID);
PacketBuffer[0] := Byte(Length(text) + 4);
PacketBuffer[1] := $00;
PacketBuffer[2] := $96;
PacketBuffer[3] := $01;
PacketBuffer[4] := Byte(Length(text));
PacketBuffer[5] := $00;
CopyMemory(@PacketBuffer[6], @text[1], Length(text));
SendPacket(ProcessID, @PacketBuffer, TRUE, FALSE);
end;
Jak masz tak i niedziała to wyślij jaki błąd wyskakuje, będzie łatwiej pomóc...
Musisz też sciągnąć packet.dll i wgrac do folderu z botem.Kod:(...)
implementation
(...) // tutaj inne funkcje, ReadMemInteger, MemReadString, etc...
procedure SendPacket(ProcessID: Cardinal; Packet: Pointer; Encrypt: Boolean; SafeArray: Boolean); stdcall; external 'packet.dll';
procedure say(text:string);
var
PacketBuffer: array [0..200] of byte;
ProcessID: Cardinal;
begin
GetWindowThreadProcessId(FindWindow('TibiaClient', Nil), @ProcessID);
PacketBuffer[0] := Byte(Length(text) + 4);
PacketBuffer[1] := $00;
PacketBuffer[2] := $96;
PacketBuffer[3] := $01;
PacketBuffer[4] := Byte(Length(text));
PacketBuffer[5] := $00;
CopyMemory(@PacketBuffer[6], @text[1], Length(text));
SendPacket(ProcessID, @PacketBuffer, TRUE, FALSE);
end;
// Po kliknieciu w Button1 mówi tekst
procedure TForm1.Button1Click(Sender: TObject);
begin
say('Plx Fri Itens');
end;
Odświeżam trochę ten temat, przy okazji pytam: Co tu jest źle?
Nie za bardzo rozumiem, więc zrobiłem to trochę na wyczucie: ta procedura miała (dobre słowo - "miała") podnosić baga z pozycji którą podam. Niestety, nie podnosi :( Jak to poprawinei zrobić?Kod:procedure podnies(posx: String; posy: String; posz: String);
var
PacketBuffer: array [0..200] of byte;
ProcessID: Cardinal;
intposx, intposy, intposz : integer;
begin
intposx := strtoint(posx);
intposy := strtoint(posy);
intposz := strtoint(posz);
GetWindowThreadProcessId(FindWindow('TibiaClient',Nil), @ProcessID); //pobranie id procesu Tibii
PacketBuffer[0] := $0F;
PacketBuffer[1] := $00;
PacketBuffer[2] := $78;
PacketBuffer[6] := $B0;
PacketBuffer[7] := $0D;
PacketBuffer[8] := $01;
PacketBuffer[9] := $FF;
PacketBuffer[10] := $FF;
PacketBuffer[11] := $40;
PacketBuffer[12] := $00;
PacketBuffer[13] := $01;
PacketBuffer[14] := $01;
CopyMemory(@PacketBuffer[3], @intposx, Length(posx));
CopyMemory(@PacketBuffer[4], @intposy, Length(posy));
CopyMemory(@PacketBuffer[5], @intposz, Length(posz));
SendPacket(ProcessID, @PacketBuffer, TRUE, FALSE); // tu program wysyla pakiet do programu z proces id = ProcessID
end;
Wzorowałem się na tym:
z tąd:Kod:CopyMemory(@PacketBuffer[8],1234,4);
http://www.xcreations.net/~tpforums/forum/showthread.php?t=1080
bardzo ciekawy poradnik...już odpalam delphi i sprubuję zrobić BOta ;]
poradnik jest bardzo przydatny ,gdyż po zrobieniu własnoręcznie takiego BOTa będziemy mieć pewność 10%% że nie jest zainfekowany.
@edit
w tym momencie się zgubiłem....jak napisać? gdzie napisać? jak to się robi?Cytuj:
Ale dane są zapisane w różny sposób, nick to string, hp integer itp. Żeby odczytać te dane trzeba napisać 2 różne funkcje.
Odczytanie tekstu (string)
@down
co to jest? i z czym to się je?
@up Wszystkie funkcje, procedury wpisujemy po
Kod:implementation
Hmm... ładny poradnik, to wogóle był mój pierwszy program jaki napisałem, więc poradnik jest tak prosty, że nawet ktoś nie znający się na programowaniu sobie poradzi.
to wstępna wersja:
http://foteka.pl/full/1969c281853445...6a1fa94a88.jpg
@2down
w google wpisujesz delphi 7 proffesional i klikasz w trzeci link
Przenosze
@Pluton
Fajnie, że naprawiłeś temat, myślałem, że tylko ja sie w takie coś bawie ; D
wiem ze mozecie mne uznac za nooba ale skad moge wziasc ten Delphi?
pozdro
nieumiem tego pobrac... podpowiedzcie cos plx ^^...
megapliki./plik-298-delphi-7-personal.html
Naciskasz na "Pobierz plik" i ci się sciąga. Zaprawdę szatanistyczna sztuczka!
#Topic
Nigdy nie byłem dobry w programowaniu totez teraz dobrnąłem do ligthacka tylko. Jakoś jak sie loguje, naciskam Start to nie śiweci xd Ale będę jeszcze próbował. Oczywiście 10/10.