Reklama
Strona 7 z 33 PierwszaPierwsza ... 5678917 ... OstatniaOstatnia
Pokazuje wyniki od 91 do 105 z 486

Temat: [Poradnik] Jak napisać własne macro do Tibii

  1. #91
    Avatar MeNi
    Data rejestracji
    2007
    Położenie
    我在波兰华沙
    Wiek
    32
    Posty
    134
    Siła reputacji
    18

    Domyślny

    Kod :
    SendPacket(ProcessID, (TU WSTAW MAŁPĘ)PacketBuffer, TRUE, FALSE);
    tak powinno wyglądać to ostatnie. Jak już ktoś mówił, trzeba pozamieniać '#' na "małpę". Pisałem już o tym adminom, powiedzieli że to tymczasowe i że i tak nas łagodnie potraktowali wprowadzając to (Bóg wie co by było jak by nas potratowali mniej łagodnie =o). Drugą sprawą jest to, że adresy które są w artykule są błędne (stare). Ja podałem chyba 2 strony temu dobre adresy. Jak zmienisz to co powiedziałem, Wszystko powinno śmigać.

    Pozdrawiam, MeNi.

  2. #92
    konto usunięte

    Domyślny

    Cytuj MeNi napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Kod :
    SendPacket(ProcessID, (TU WSTAW MAŁPĘ)PacketBuffer, TRUE, FALSE);
    tak powinno wyglądać to ostatnie. Jak już ktoś mówił, trzeba pozamieniać '#' na "małpę". Pisałem już o tym adminom, powiedzieli że to tymczasowe i że i tak nas łagodnie potraktowali wprowadzając to (Bóg wie co by było jak by nas potratowali mniej łagodnie =o). Drugą sprawą jest to, że adresy które są w artykule są błędne (stare). Ja podałem chyba 2 strony temu dobre adresy. Jak zmienisz to co powiedziałem, Wszystko powinno śmigać.

    Pozdrawiam, MeNi.
    I tak mi nie hodzi pozmienialem 'ap' na @, ale i tak nic sie nie dzieje. Przesle to co mam moze kts mi pmoze, WIEM ZE NAMIESZALEM ( NAPEWNO):|:

    unit BOT;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls, Spin;

    type
    TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Button3: TButton;
    Button4: TButton;
    Edit1: TEdit;
    Button5: TButton;
    SpinEdit1: TSpinEdit;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;
    const
    //adresy wartosci postaci
    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;
    //koniec - adresy wartosci postaci
    const
    BATTLELIST_START = $60EB30 + 4;
    BATTLELIST_END = $6148F4;
    const
    Distance_ID= -4;
    Distance_Type = -1;
    Distance_Name= -0;
    Distance_X = 32;
    Distance_Y = 36;
    Distance_Z = 40;
    Distance_HorizScreenOffset = 44;
    Distance_VertScreenOffset = 48;
    Distance_Chameleon = 60;
    Distance_Chameleon2 = 92;
    Distance_IsWalking = 72;
    Distance_Direction = 76;
    Distance_Outfit = 92;
    Distance_OutfitHead = 96;
    Distance_OutfitBody = 100;
    Distance_OutfitLegs = 104;
    Distance_OutfitFeet = 108;
    Distance_OutfitAddon = 112;
    Distance_LightColor1 = 121;
    Distance_LightColor2 = 122;
    Distance_LightPattern = 123;
    Distance_BlackSquare = 128;
    Distance_HP = 132;
    Distance_WalkSpeed = 136;
    Distance_IsVisible = 140;
    Distance_Skull = 144;
    Distance_Party = 148;
    const
    DISTANCE_LIGHT = $74;
    DISTANCE_LIGHTCOLOR = $78;

    implementation

    {$R *.dfm}

    procedure say(text:string);
    var
    PacketBuffer: array [0..200] of byte;
    ProcessID: Cardinal;

    begin
    GetWindowThreadProcessId(FindWindow('TibiaClient', Nil), @ProcessID); //pobranie id procesu Tibii

    PacketBuffer[0] := Byte(Length(text) + 4); //tu okreslana jest dlugosc pakietu bez 0 i 1
    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); // tu program wysyla pakiet do programu z proces id = ProcessID
    end;
    // 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
    //BattleList - Czytanie
    function pozycja:integer;
    var
    i,id_battle,id:integer;
    begin
    id:=readmeminteger(Player_id); //odczytanie naszego id z adresu
    for i:=1 to 149 do //przeszukanie wszystkich pozycji na battle list (minimalna 1 maxymanlna 149
    Begin
    id_battle:=Readmeminteger(Battlelist_start + (i*160)-4); //czytanie id z pozycji
    if id_battle=ID then //jezeli id z battle list zgadza sie z id z adresu
    Begin
    Result :=i; //wtedy wynikiem funkcji jest nasza pozycja na battle
    exit;
    end;
    end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Timer1.Enabled:=true;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    Timer1.Enabled:=false;
    end;

    procedure TForm1.Timer1Timer(Sender: TObject);

    end;

    procedure TForm1.Button3Click(Sender: TObject);
    begin
    showmessage(MemReadString(BattleList_Start+pozycja *160+Distance_name));
    end;

    procedure TForm1.Button5Click(Sender: TObject);
    begin
    If (Button4.Caption = 'Start') then
    begin
    Button4.Caption := 'Stop';
    end
    Else
    if (Button4.Caption = 'Stop') then
    begin
    Button4.Caption := 'Start';
    end;
    end;

    end.

    HELP HELP HELP HELP HELP HELP

  3. #93
    Avatar MeNi
    Data rejestracji
    2007
    Położenie
    我在波兰华沙
    Wiek
    32
    Posty
    134
    Siła reputacji
    18

    Domyślny

    Przeszukaj cały kod, i pozmieniaj każdy # na małpę.

  4. Reklama
  5. #94
    konto usunięte

    Domyślny

    LOLs, juz to dawno pozmienialem ale i tak jest cos zle.

    Mam problem przy light:
    MemWriteInteger(battlelist_start+pozycja*160+dista nce_lightcolor,250,3);
    MemWriteInteger(battlelist_start+pozycja*160+dista nce_light,15,2);

    Prosze o fast odpowiedz

  6. #95
    konto usunięte

    Domyślny

    Tez mam problem : debuger 'steka' na widok wiekszosci przecinkow oddzielajacych parametry, lub w deklaracjach zmiennych. Nie steka np. w deklarowaniu uses. Co z tym zrobic? Mam jako taka wiedze o pascalu, ale na ile to rozumiem (do samego delphi zasiadlem wczoraj :D ) to powinno byc dobrze. Czekam na odpowiedz.

  7. #96
    Avatar Akyer
    Data rejestracji
    2008
    Położenie
    Salvador, Bahia
    Posty
    42
    Siła reputacji
    0

    Domyślny

    prosze o rehosta kodu zrodlowego w celu dokladniejszego zrozumienia biblioteczki ; )

  8. Reklama
  9. #97
    konto usunięte

    Domyślny

    GetWindowThreadProcessId(FindWindow('TibiaClient', nil) #ProcId);

    Ehm.. co ja tu żle robie? próbowałem zmieniać na małpe (@) itp ale nic to nie daje :/ Może ktoś mi pomóc?

    Pozdro
    Ostatnio zmieniony przez Xevix17 : 16-01-2008, 15:47

  10. #98
    konto usunięte

    Domyślny

    bardzo chcialbm zrobic macro, które posiada 1 opcje: Zmiana Outfitu. Tle ze jakos tego poradnika mi sie nei udaje. Móglby ktos mi powiedziec jak sie to trzeba zrbic? O ile ktos tu jeszze zaglada...

  11. #99
    Zizevolo

    Domyślny

    Cytuj Killavus napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    ;ddddd.

    No bo tak. Delphi nie kompiluje się pod Linuksem, jest wolne i zabugowane. Sądze, że C++ to lepszy język.

    Pozdrawiam,
    Killavus.
    pod linuksa jest klient nie jest juz rozwijany ale mozna by bylo zrobic to samo co pod winda przy odrobinie wiedzy. sadzisz ze c++ lepszy i masz racje po czesci jest lepszy do przetwarzanai grafiki itp rzeczy, do innych zastosowan jak programy laboratoryjne czytajace i przetwarzajace duze porcji danych delphi wydaje sie lepsze.
    Odsylam na 4programmers.net tam przez kilkaset postow swego czasu toczyla sie dyskusja nad wyzszoscia i roznicami.

    Btw co do poradnika wywal tego timera i zrob osobny watek dziala szybciej zre mniej pamieci ladniej wyglada, nie zamula

    nie chce mi sie przegladac calego ale gratulacje do zrobienia bota samo expiacego jeszcze troche ale latqwo mozna z tego zrobic bota co bedzie podnosil rzeczy z potworkow

  12. Reklama
  13. #100
    konto usunięte

    Domyślny

    pomozcie mi napisac skrypt który po wlaczeniu BOTA sprawdza czy istnieje proces lub okno. jezeli istnieje [proces lub okno]program sie nie wylacza jezeli nie ma [okna lub procesu] program sie zamyka

    [[delphi]]


    chodzi mi o to aby bot nie wlaczyl sie gdy tibia nie jest wyłączona i pojawil sie komunikat "Run Tibia First"

    jezeli tibia bedzie wlaczona i zechcemy wlaczyc bota , bot uruchomi sie!


    begin
    if CheckProcess('Tibia.exe') then // tu wyskakuje blad
    begin
    <-----------co tu ma byc?
    end
    else
    begin
    showmessage('Run tibia first');
    close;
    end;
    end;

    niewiem jak to ma byc pomozcie napisac
    Ostatnio zmieniony przez Darksystem : 17-01-2008, 14:40

  14. #101
    konto usunięte

    Domyślny

    Cytuj Zizevolo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    pod linuksa jest klient nie jest juz rozwijany ale mozna by bylo zrobic to samo co pod winda przy odrobinie wiedzy. sadzisz ze c++ lepszy i masz racje po czesci jest lepszy do przetwarzanai grafiki itp rzeczy, do innych zastosowan jak programy laboratoryjne czytajace i przetwarzajace duze porcji danych delphi wydaje sie lepsze.
    Odsylam na 4programmers.net tam przez kilkaset postow swego czasu toczyla sie dyskusja nad wyzszoscia i roznicami.

    Btw co do poradnika wywal tego timera i zrob osobny watek dziala szybciej zre mniej pamieci ladniej wyglada, nie zamula

    nie chce mi sie przegladac calego ale gratulacje do zrobienia bota samo expiacego jeszcze troche ale latqwo mozna z tego zrobic bota co bedzie podnosil rzeczy z potworkow

    LoL? ^^ O czym my tutaj mówimy ;D Ja ich chciałem nauczyć odczytać id z battle listy a Ty mówisz o wątku xddd Większość z czytających na oczy Delphi nie widziało :P Daj im trochę czasu.

    A co do tego GZ, "Samo expiącego" bota właśnie kończę pisać, może go wydam :P

  15. #102
    konto usunięte

    Domyślny

    ma ktos pomysl na ten skrypt?

  16. Reklama
  17. #103
    Avatar Johnny from Rook
    Data rejestracji
    2007
    Położenie
    Łóć
    Posty
    189
    Siła reputacji
    18

    Domyślny

    Cytuj Vivynus napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    I tak mi nie hodzi pozmienialem 'ap' na #, ale i tak nic sie nie dzieje. Przesle to co mam moze kts mi pmoze, WIEM ZE NAMIESZALEM ( NAPEWNO):|:


    const
    //adresy wartosci postaci
    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;
    //koniec - adresy wartosci postaci
    const
    BATTLELIST_START = $60EB30 + 4;
    BATTLELIST_END = $6148F4;
    const
    Distance_ID= -4;
    Distance_Type = -1;
    Distance_Name= -0;
    Distance_X = 32;
    Distance_Y = 36;
    Skasuj te pozostałe const i zostaw tylko jedno powinno pójść

  18. #104
    Wizuto Fene

    Domyślny

    A ja czytam i czytam ale nie czaje za duzo... czy ktos nie mogl by opisac krok po kroku z najwazniejszymy rzeczaki + screeny... albo po prostu dac linka do gotowego bota :D

  19. #105
    Wizuto Fene

    Domyślny

    Czy ktos mi moze pomuc.. kiedy wpisuje

    label1.Caption:=inttostr(ReadMeminteger(Player_Lev el));
    label2.Caption:=inttostr(ReadMeminteger(Player_Mag icLevel));
    label3.Caption:=inttostr(ReadMeminteger(Player_HP) );
    label4.Caption:=inttostr(ReadMeminteger(Player_Man a));
    label5.Caption:=inttostr(ReadMeminteger(Player_Sou l));

    miedzy "begin" i "end;" wyskakuje mi blad...
    [Error] Unit1.pas(31): Undeclared identifier: 'ReadMeminteger'
    [Error] Unit1.pas(31): Undeclared identifier: 'Player_Level'
    [Error] Unit1.pas(32): Undeclared identifier: 'Player_MagicLevel'
    [Error] Unit1.pas(33): Undeclared identifier: 'Player_HP'
    [Error] Unit1.pas(34): Undeclared identifier: 'Player_Mana'
    [Error] Unit1.pas(35): Undeclared identifier: 'Player_Soul'
    [Fatal Error] Tibia_bot.dpr(6): Could not compile used unit '..\..\..\Program Files\Borland\Delphi7\Projects\Unit1.pas'

    i nie wiem co tu jest grane.. Pomoze mi ktos :P

  20. Reklama
Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Jak napisać powieść w 30 minut
    Przez konto usunięte w dziale Artyści
    Odpowiedzi: 1
    Ostatni post: 05-12-2012, 16:49
  2. [Inne] Jak napisać bota?
    Przez t3hp0wn w dziale Tibia
    Odpowiedzi: 1
    Ostatni post: 06-03-2011, 12:10
  3. Jak napisać temat, aby otrzymać jak najszybciej pomoc?
    Przez Killavus w dziale Strefa developerska
    Odpowiedzi: 0
    Ostatni post: 29-05-2010, 11:51
  4. [Poradnik] <Jak napisac scrypt do Blackd>
    Przez Lee of Honera w dziale Tibia
    Odpowiedzi: 5
    Ostatni post: 08-03-2009, 15:08

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •