Reklama
Strona 26 z 33 PierwszaPierwsza ... 162425262728 ... OstatniaOstatnia
Pokazuje wyniki od 376 do 390 z 486

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

  1. #376
    Avatar LGTK
    Data rejestracji
    2009
    Położenie
    Podlaskie, Białystok
    Wiek
    33
    Posty
    267
    Siła reputacji
    16

    Domyślny

    Sorry za post pod postem ale 24h mineły
    Packet.dll pod 8.55
    Kod :
    tpforums.org/forum/attachment.php?aid=624
    Adresy
    Kod :
     case "8.55":
    BattleList.Start = 0x63D350;
    BattleList.StepCreatures = 0xA8;
    BattleList.MaxCreatures = 250;
    BattleList.End = BattleList.Start + (BattleList.StepCreatures * BattleList.MaxCreatures);
    
    Client.StartTime = 0x7DDCB8;
    Client.XTeaKey = Client.RecvStream + 0x10;
    Client.SocketStruct = 0x796DB8;
    Client.RecvPointer = 0x5B75DC;
    Client.SendPointer = 0x5B7608;
    Client.FrameRatePointer = 0x79AF9C;
    Client.FrameRateCurrentOffset = 0x60;
    Client.FrameRateLimitOffset = 0x58;
    Client.MultiClient = 0x50B874;
    Client.Status = 0x79A450;
    Client.SafeMode = 0x79720C;
    Client.FollowMode = Client.SafeMode + 4;
    Client.AttackMode = Client.FollowMode + 4;
    Client.ActionState = 0x79A4B0;
    Client.ActionStateFreezer = 0x51CBB4;
    Client.LastMSGText = 0x7DDF28;
    Client.LastMSGAuthor = Client.LastMSGText - 0x28;
    Client.StatusbarText = 0x7DDCD8;
    Client.StatusbarTime = Client.StatusbarText - 4;
    Client.ClickId = 0x79A4F0;
    Client.ClickCount = Client.ClickId + 4;
    Client.ClickZ = Client.ClickId - 0x68;
    Client.SeeId = Client.ClickId + 12;
    Client.SeeCount = Client.SeeId + 4;
    Client.SeeZ = Client.SeeId - 0x68;
    Client.ClickContextMenuItemId = 0x79A4FC;
    Client.ClickContextMenuItemGroundId = 0x79A500;
    Client.ClickContextMenuCreatureId = 0x79A4F8;
    Client.LoginServerStart = 0x791D20;
    Client.StepLoginServer = 112;
    Client.DistancePort = 100;
    Client.MaxLoginServers = 10;
    Client.RSA = 0x5B7610;
    Client.LoginCharList = 0x79A404;
    Client.LoginCharListLength = 0x79A408;
    Client.LoginSelectedChar = 0x79A400;
    Client.GameWindowRectPointer = 0x649784;
    Client.GameWindowBar = 0x7DDCCC;
    Client.DatPointer = 0x796E04;
    Client.EventTriggerPointer = 0x51EC50;
    Client.DialogPointer = 0x64CAEC;
    Client.DialogLeft = 0x14;
    Client.DialogTop = 0x18;
    Client.DialogWidth = 0x1C;
    Client.DialogHeight = 0x20;
    Client.DialogCaption = 0x50;
    Client.LastRcvPacket = 0x792598;
    Client.DecryptCall = 0x45C1B5;
    Client.LoginAccountNum = 0;
    Client.LoginPassword = 0x79A40C;
    Client.LoginAccount = Client.LoginPassword + 32;
    Client.LoginPatch = 0;
    Client.LoginPatch2 = 0;
    Client.LoginPatchOrig = new byte[] { 0xE8, 0x0D, 0x1D, 0x09, 0x00 };
    Client.LoginPatchOrig2 = new byte[] { 0xE8, 0xC8, 0x15, 0x09, 0x00 };
    Client.ParserFunc = 0x45C180;
    Client.GetNextPacketCall = 0x45C1B5;
    Client.RecvStream = 0x796DD4;
    
    Container.Start = 0x64A238;
    Container.StepContainer = 492;
    Container.StepSlot = 12;
    Container.MaxContainers = 16;
    Container.MaxStack = 100;
    Container.DistanceIsOpen = 0;
    Container.DistanceId = 4;
    Container.DistanceName = 16;
    Container.DistanceVolume = 48;
    Container.DistanceAmount = 56;
    Container.DistanceItemId = 60;
    Container.DistanceItemCount = 64;
    Container.End = Container.Start + (Container.MaxContainers * Container.StepContainer);
    
    ContextMenus.AddContextMenuPtr = 0x4520F0;
    ContextMenus.OnClickContextMenuPtr = 0x44E700;
    ContextMenus.OnClickContextMenuVf = 0x5BCBD0;
    ContextMenus.AddSetOutfitContextMenu = 0x453022;
    ContextMenus.AddPartyActionContextMenu = 0x45349C;
    ContextMenus.AddCopyNameContextMenu = 0x45354D;
    ContextMenus.AddTradeWithContextMenu = 0x452C99;
    ContextMenus.AddLookContextMenu = 0x452B4F;
    
    Creature.DistanceId = 0;
    Creature.DistanceType = 3;
    Creature.DistanceName = 4;
    Creature.DistanceX = 36;
    Creature.DistanceY = 40;
    Creature.DistanceZ = 44;
    Creature.DistanceScreenOffsetHoriz = 48;
    Creature.DistanceScreenOffsetVert = 52;
    Creature.DistanceIsWalking = 76;
    Creature.DistanceWalkSpeed = 140;
    Creature.DistanceDirection = 80;
    Creature.DistanceIsVisible = 144;
    Creature.DistanceBlackSquare = 132;
    Creature.DistanceLight = 120;
    Creature.DistanceLightColor = 124;
    Creature.DistanceHPBar = 136;
    Creature.DistanceSkull = 148;
    Creature.DistanceParty = 152;
    Creature.DistanceWarIcon = 160;
    Creature.DistanceIsBlocking = 164;
    Creature.DistanceOutfit = 96;
    Creature.DistanceColorHead = 100;
    Creature.DistanceColorBody = 104;
    Creature.DistanceColorLegs = 108;
    Creature.DistanceColorFeet = 112;
    Creature.DistanceAddon = 116;
    
    DatItem.Width = 0;
    DatItem.Height = 4;
    DatItem.Unknown1 = 8;
    DatItem.Layers = 12;
    DatItem.PatternX = 16;
    DatItem.PatternY = 20;
    DatItem.PatternDepth = 24;
    DatItem.Phase = 28;
    DatItem.Sprite = 32;
    DatItem.Flags = 36;
    DatItem.CanLookAt = 40;
    DatItem.WalkSpeed = 44;
    DatItem.TextLimit = 48;
    DatItem.LightRadius = 52;
    DatItem.LightColor = 56;
    DatItem.ShiftX = 60;
    DatItem.ShiftY = 64;
    DatItem.WalkHeight = 68;
    DatItem.Automap = 72;
    DatItem.LensHelp = 76;
    
    DrawItem.DrawItemFunc = 0x4B4CF0;
    
    DrawSkin.DrawSkinFunc = 0x4B8BE0;
    
    Hotkey.SendAutomaticallyStart = 0x797408;
    Hotkey.SendAutomaticallyStep = 0x01;
    Hotkey.TextStart = 0x797430;
    Hotkey.TextStep = 0x100;
    Hotkey.ObjectStart = 0x797378;
    Hotkey.ObjectStep = 0x04;
    Hotkey.ObjectUseTypeStart = 0x797258;
    Hotkey.ObjectUseTypeStep = 0x04;
    Hotkey.MaxHotkeys = 36;
    
    Map.MapPointer = 0x651640;
    Map.StepTile = 168;
    Map.StepTileObject = 12;
    Map.DistanceTileObjectCount = 0;
    Map.DistanceTileObjects = 4;
    Map.DistanceObjectId = 0;
    Map.DistanceObjectData = 4;
    Map.DistanceObjectDataEx = 8;
    Map.MaxTileObjects = 10;
    Map.MaxX = 18;
    Map.MaxY = 14;
    Map.MaxZ = 8;
    Map.MaxTiles = 2016;
    Map.ZAxisDefault = 7;
    Map.NameSpy1 = 0x4F2119;
    Map.NameSpy2 = 0x4F2123;
    Map.NameSpy1Default = 19061;
    Map.NameSpy2Default = 16501;
    Map.LevelSpy1 = 0x4F3FCA;
    Map.LevelSpy2 = 0x4F40CF;
    Map.LevelSpy3 = 0x4F4150;
    Map.LevelSpyPtr = 0x649784;
    Map.LevelSpyAdd1 = 28;
    Map.LevelSpyAdd2 = 0x2A88;
    Map.FullLightNop = 0x4EA8B9;
    Map.FullLightAdr = 0x4EA8BC;
    Map.FullLightNopDefault = new byte[] { 0x7E, 0x05 };
    Map.FullLightNopEdited = new byte[] { 0x90, 0x90 };
    Map.FullLightAdrDefault = 0x80;
    Map.FullLightAdrEdited = 0xFF;
    
    
    Player.Exp = 0x63D2E4;
    Player.Flags = Player.Exp - 108;
    Player.Id = Player.Exp + 12;
    Player.HP = Player.Exp + 8;
    Player.HPMax = Player.Exp + 4;
    Player.Level = Player.Exp - 4;
    Player.MagicLevel = Player.Exp - 8;
    Player.LevelPercent = Player.Exp - 12;
    Player.MagicLevelPercent = Player.Exp - 16;
    Player.Mana = Player.Exp - 20;
    Player.ManaMax = Player.Exp - 24;
    Player.Soul = Player.Exp - 28;
    Player.Stamina = Player.Exp - 32;
    Player.Cap = Player.Exp - 36;
    Player.FistPercent = 0x63D27C;
    Player.ClubPercent = Player.FistPercent + 4;
    Player.SwordPercent = Player.FistPercent + 8;
    Player.AxePercent = Player.FistPercent + 12;
    Player.DistancePercent = Player.FistPercent + 16;
    Player.ShieldingPercent = Player.FistPercent + 20;
    Player.FishingPercent = Player.FistPercent + 24;
    Player.Fist = Player.FistPercent + 28;
    Player.Club = Player.FistPercent + 32;
    Player.Sword = Player.FistPercent + 36;
    Player.Axe = Player.FistPercent + 40;
    Player.Distance = Player.FistPercent + 44;
    Player.Shielding = Player.FistPercent + 48;
    Player.Fishing = Player.FistPercent + 52;
    Player.SlotHead = 0x64A1C0;
    Player.SlotNeck = Player.SlotHead + 12;
    Player.SlotBackpack = Player.SlotHead + 24;
    Player.SlotArmor = Player.SlotHead + 36;
    Player.SlotRight = Player.SlotHead + 48;
    Player.SlotLeft = Player.SlotHead + 60;
    Player.SlotLegs = Player.SlotHead + 72;
    Player.SlotFeet = Player.SlotHead + 84;
    Player.SlotRing = Player.SlotHead + 96;
    Player.SlotAmmo = Player.SlotHead + 108;
    Player.MaxSlots = 11;
    Player.DistanceSlotCount = 4;
    Player.CurrentTileToGo = 0x63D2F8;
    Player.TilesToGo = 0x63D2FC;
    Player.GoToX = Player.Exp + 80;
    Player.GoToY = Player.GoToX - 4;
    Player.GoToZ = Player.GoToX - 8;
    Player.RedSquare = 0x63D2BC;
    Player.GreenSquare = Player.RedSquare - 4;
    Player.WhiteSquare = Player.GreenSquare - 8;
    Player.AccessN = 0;
    Player.AccessS = 0;
    Player.TargetID = Player.RedSquare;
    Player.TargetBListID = Player.TargetID - 8;
    Player.TargetBListType = Player.TargetID - 5;
    Player.TargetType = Player.TargetID + 3;
    Player.Z = 0x64CB28;
    
    TextDisplay.PrintName = 0x4F5133;
    TextDisplay.PrintFPS = 0x45A058;
    TextDisplay.ShowFPS = 0x63AF94;
    TextDisplay.PrintTextFunc = 0x4B4130;
    TextDisplay.NopFPS = 0x459F94;
    
    Vip.Start = 0x63B010;
    Vip.StepPlayers = 0x2C;
    Vip.MaxPlayers = 200;
    Vip.DistanceId = 0;
    Vip.DistanceName = 4;
    Vip.DistanceStatus = 34;
    Vip.DistanceIcon = 40;
    Vip.End = Vip.Start + (Vip.StepPlayers * Vip.MaxPlayers);
    PIŻMAG

  2. #377
    chore

    Domyślny Tibia 8.55 Atakowanie Dozwolone

    Czesc chcial bym sie dowiedziec jak rozroznic przy atakowaniu potwora czy jest on osiagalny (widac go na ekranie i mozna do niego podejsc) czy tez (widac go na ekranie ale jest za sciana i nie mozna podejsc) bo z tym mam problem ?

  3. #378
    Avatar LGTK
    Data rejestracji
    2009
    Położenie
    Podlaskie, Białystok
    Wiek
    33
    Posty
    267
    Siła reputacji
    16

    Domyślny

    to jest mniej więcej tak
    w cliencie jest func która sprawdza czy x,y,z jest osiągalny więc można tego użyć ona zwraca albo 1 albo 0 więc można tego użyć
    PIŻMAG

  4. Reklama
  5. #379
    chore

    Domyślny Tibia 8.55 Atakowanie Dozwolone

    Tak domyslam sie ze jest taka funkcja tylko zapomnialem dopisac ze chodzi mi o to jak znalesc jej adres w pamieci chyba ze ktos juz znalazl to prosil bym :)

  6. #380

    Data rejestracji
    2009
    Położenie
    Giżycko
    Posty
    258
    Siła reputacji
    17

    Domyślny

    Cytuj chore napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Tak domyslam sie ze jest taka funkcja tylko zapomnialem dopisac ze chodzi mi o to jak znalesc jej adres w pamieci chyba ze ktos juz znalazl to prosil bym :)
    Hm, ja nie mam pojęcia jak znaleźć ten adres jednak odeślę Cię na strone, która może Ci się przydać:

    http://code.google.com/p/tibiaapi/source/browse/trunk/tibiaapi/Addresses/

  7. #381
    Avatar LGTK
    Data rejestracji
    2009
    Położenie
    Podlaskie, Białystok
    Wiek
    33
    Posty
    267
    Siła reputacji
    16

    Domyślny

    Do tego cza debugera pozdro :D
    PIŻMAG

  8. Reklama
  9. #382
    menemene

    Domyślny

    Witam czy jest mozliwosc napisania bota pod klienta linuxowego ?

  10. #383
    Avatar LGTK
    Data rejestracji
    2009
    Położenie
    Podlaskie, Białystok
    Wiek
    33
    Posty
    267
    Siła reputacji
    16

    Domyślny

    tak są różnice w biblioteczkach itp. najlepiej bota pod linuxa pisać w c\c++
    Kod :
    NoNameProxy sprawdź obowiązkowo ;p
    code google . com / p / nonameproxy
    Kod :
    Na temat języka najlepszego dla Linuxa
    tpforums . org / forum / thread-6249-page-1 . html
    Kod :
    skaner pamięci dla linuxa
    www . tpforums . org / forum / thread-4371 . html
    PIŻMAG

  11. #384
    menemene

    Domyślny

    skaner przetestowalem (: wylapuje akcje klienta linuxowego :D co do języka prubuje zrobic cos w Lazarusie (delphi 7 po polskiemu i w dodatku za free :D )

  12. Reklama
  13. #385
    Avatar LGTK
    Data rejestracji
    2009
    Położenie
    Podlaskie, Białystok
    Wiek
    33
    Posty
    267
    Siła reputacji
    16

    Domyślny

    @up
    Lazarus nie wiem jak na linuxie ale na windzie prosta aplikacja to jakieś 5-6 mb dokładnie nie pamiętam ile
    PIŻMAG

  14. #386
    xenis

    Domyślny proxy

    Chce zrobic bota pod tibie 7.4 mam w sumie wszyskie informacje, wiem co gdzie i jak zrobic, iumiem pisac aplikacje w delphim, tylko nie wiem jak przechwycic pakiety wysylane z clienta do servera, program freeproxy nie dziala dlatego iż jest dostepny od tibi 7.6 /\.
    Jakieś pomysły w czym to przechwycic?

  15. #387
    Avatar LGTK
    Data rejestracji
    2009
    Położenie
    Podlaskie, Białystok
    Wiek
    33
    Posty
    267
    Siła reputacji
    16

    Domyślny

    jeśli freeproxy jest open-s to zaaktualizuj addresy. z drugiej strony one nie powinny ulec zmiane tz pakiety
    PIŻMAG

  16. Reklama
  17. #388

    Data rejestracji
    2009
    Położenie
    Giżycko
    Posty
    258
    Siła reputacji
    17

    Domyślny

    Jak już wszyscy piszą w tym temacie to i ja zapytam, jak odczytać ilosc hp potwora, którego właśnie atakuje ?
    Czekam na informację, dzięki z góry :)

  18. #389

    Data rejestracji
    2006
    Położenie
    Zambrów
    Posty
    59
    Siła reputacji
    19

    Domyślny

    Siema. Mam mały problem z procedurą Say. Sama procedura działa elegancko, ale pojawia się tylko pierwsza litera całego wyrazu. Nie mam zielonego pojęcia, czym może to być spowodowane.

    Kod :
      procedure SendPacket(ProcessID: Cardinal; Packet: Pointer); stdcall; external 'packet.dll';
    Kod :
    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); // tu program wysyla pakiet do programu z proces id = ProcessID
    end;
    Kod :
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Say('Hello!');
    end;
    Gdy naciskam button na ekranie widzę tylko "H". Próbowałem bawić się długością pakietu, ale bez skutku. Jakieś pomysły?

  19. #390
    Avatar LGTK
    Data rejestracji
    2009
    Położenie
    Podlaskie, Białystok
    Wiek
    33
    Posty
    267
    Siła reputacji
    16

    Domyślny

    Cytuj Kambel napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Jak już wszyscy piszą w tym temacie to i ja zapytam, jak odczytać ilosc hp potwora, którego właśnie atakuje ?
    Czekam na informację, dzięki z góry :)
    Możesz odczytać z clienta tylko % hp najpierw cza znaleść go na bl potem proste
    Kod :
    Function FindPlayerByID(TPlayer:TChar) : TChar;
    var
      Current: Integer;
    begin
      Result.Found:=False;
      for Current := 0 to BL_Max do
      begin
        if ( ReadMemInt(BattleList_Start+(Current*BL_Size)+BL_Dist_ID) = TPlayer.ID ) then
        begin
          Result.X := ReadMemInt(BattleList_Start+(Current*BL_Size)+BL_Dist_X);
          Result.Y := ReadMemInt(BattleList_Start+(Current*BL_Size)+BL_Dist_Y);
          Result.Z := ReadMemInt(BattleList_Start+(Current*BL_Size)+BL_Dist_Z);
          Result.ID := ReadMemInt(BattleList_Start+(Current*BL_Size)+BL_Dist_ID);
          Result.Speed := ReadMemInt(BattleList_Start+(Current*BL_Size)+BL_Dist_Speed);
          Result.Moving := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Moving);
          Result.Dir := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Dir);
          Result.Outfit := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Outfit);
          Result.Head := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Head);
          Result.Body := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Body);
          Result.Legs := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Legs);
          Result.Feet := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Feet);
          Result.Addon := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Addon);
          Result.Light := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Light);
          Result.Light_Color := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Light_Color);
          Result.HPBar := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_HPBar);
          Result.Visible := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Visible);
          Result.Skull := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Skull);
          Result.Party := ReadMemByte(BattleList_Start+(Current*BL_Size)+BL_Dist_Party);
          Result.Name := ReadMemStr(BattleList_Start+(Current*BL_Size)+BL_Dist_Name);
          Result.BL := Current;
          Result.Found := True;
          exit;
        end;
      end;
    end;
    Stare ale może podziała
    PIŻMAG

  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
  •