Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /home/iano/public_html/tpforums-vb5/forum/includes/class_core.php on line 5842

PHP Warning: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 588

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 612

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6
Tibia 9.8.1.0 (10-Feb-2013) Memory offsets locations
Results 1 to 7 of 7

Thread: Tibia 9.8.1.0 (10-Feb-2013) Memory offsets locations

  1. #1
    Junior Member
    Join Date
    Jan 2013
    Location
    Interwebz
    Posts
    22

    Post Tibia 9.8.1.0 (10-Feb-2013) Memory offsets locations

    Tibia 9.8.1.0 (10-Feb-2013) Memory offsets locations

    I have spent most of the past two days, reading up on the tutorials posted on here, and writing a simple program that reads most of the stats printed on the main UI of tibia. In the spirit of sharing i though i would post the memory locations i have found so far. There is nothing new here, but it should help give new members a kick start.

    I found most of them using Cheat Engine (http://cheatengine.org/)


    Off-Train: 3B6Ee4
    Max Mana: 3B6EF4 (XOR)
    Exp: 3B6F00
    Level: 3B6F2C (3B6F00+44)
    Soul: 3B6F30 (3B6F00+48)
    Magic Lv: 3B6F34 (3B6F00+52)
    % to next Magic Lv: 3B6F3C (3B6F00+60)
    Target: 3B6F40 (current target id)
    Mana: 3B6F44 (3B6F00+68)

    Fist Skill (%): 3B6F4C (3B6F00+76)
    Club Skill (%): 3B6F50 (3B6F00+80)
    Sword Skill (%): 3B6F54 (3B6F00+84)
    Axe Skill (%): 3B6F58 (3B6F00+88)
    Dist Skill (%): 3B6F5C (3B6F00+92)
    Shield Skill (%): 3B6F60 (3B6F00+96)
    Fish Skill (%): 3B6F64 (3B6F00+100)

    Stamina (minutes): 3B6F78 (3B6F00+120)

    Chase Monster: 3BE690
    Stance Flag: 3C0AC0
    Connected: 3C0CF8 (0 = loged-out, 9=logginin, 6=dont-know, 10=loged-in)

    CharListPtr: 549CE8 (???)
    CharList Index: 549D34

    HP: 54C000 (XOR)
    Cap: 583E94
    HP: 583E9C (XOR)
    XPos: 583EA8
    YPos: 583EAC
    ZPos: 583EB0

    Fist Skill (lvl): 583E78 (583E70+8)
    Club Skill (lvl): 583E7C (583E70+12)
    Sword Skill (lvl): 583E80 (583E70+16)
    Axe Skill (lvl): 583E84 (583E70+20)
    Distance Skill (lvl): 583E88 (583E70+24)
    Shield Skill (lvl): 583E8C (583E70+28)
    Fish Skill (lvl): 583E90 (583E70+32)

    Outfit: 54C1C8 (54C000+456)
    Hair Color: 54C1CC (54C000+460)
    Shirt Color: 54C1D0 (54C000+464)
    Pants Color: 54C1D4 (54C000+468)
    Shoe Color: 54C1D8 (54C000+472)
    Outfit Deco: 54C1DC (54C000+476)
    Mount: 54C1E0 (54C000+480)

    Life Bar (%): 54C1F4 (54C000+500)
    Walk Speed: 54C1F8 (54C000+504)


    Battle List:
    maxCreatures: = 0x5B5; // 0xFA;
    creatureDataSize: = 0xB0;
    battleListStartL: = 0x549CF8; //0x54C848;
    battleListEndL: = battleListStartL + (maxCreatures * creatureData);

    //These offsets are from the start of a BattleList item not the base address.
    ID = x + 0
    Name = x + 4
    pos.ZPos = x + 36
    pos.YPos = x + 40
    pos.XPos = x + 44
    WalkDir1 = x + 56
    YMove = x + 68
    XMove = x + 72
    TileWalkSpeed = x + 76
    IsWalking = x + 80
    WalkDir2 = x + 84
    HP = x + 140

    Couldn't have done it with out the help of the guys at

    http://tpforums.org
    http://www.blackdtools.com/forum/
    http://forum.cheatengine.org/
    Last edited by ResQue1980; 02-10-2013 at 11:46 AM.
    ResQue1980... Nom Nom Nom...
    "Reality is merely an illusion, albeit a very persistent one" - Einstein

  2. #2
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Well done dude, though there is already a thread for 9.81 addresses, here.

    Still, in spite of it already existing it's nice of you to think to share, so thanks for the consideration!

  3. #3
    Junior Member
    Join Date
    Jan 2013
    Location
    Interwebz
    Posts
    22
    Ye that list is much more complete than mine is, i would recommend people use that one.


    Pro-grammer post at the very end is a huge list, going to have to use a few of them my self. Took me all of yesterday to find mine :-(
    Last edited by ResQue1980; 02-10-2013 at 11:57 AM.
    ResQue1980... Nom Nom Nom...
    "Reality is merely an illusion, albeit a very persistent one" - Einstein

  4. #4
    Junior Member
    Join Date
    Dec 2012
    Posts
    19
    Thanks, this list is very complete

  5. #5
    Senior Member
    Join Date
    Oct 2010
    Posts
    146
    Quote Originally Posted by ResQue1980 View Post
    //These offsets are from the start of a BattleList item not the base address.
    ID = x + 0
    Name = x + 4
    pos.ZPos = x + 36
    pos.YPos = x + 40
    pos.XPos = x + 44
    WalkDir1 = x + 56
    YMove = x + 68
    XMove = x + 72
    TileWalkSpeed = x + 76
    IsWalking = x + 80
    WalkDir2 = x + 84
    HP = x + 140
    excuse me, so how would you read those? just "IsWalking = battleListStartL + 80"
    and another question pls, for what is the WalkDir2?

    btw, here you have some more:

    BattleListNext = 92;
    BattleListType = 3;

  6. #6
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Quote Originally Posted by Puterin View Post
    excuse me, so how would you read those? just "IsWalking = battleListStartL + 80"
    and another question pls, for what is the WalkDir2?

    btw, here you have some more:

    BattleListNext = 92;
    BattleListType = 3;
    Each creature has an offset, which is equal to the creatures position in the battle list, multiplied by the creature offset, added to the base address and the offset listed there, the code will look something like this:

    for (int i = 0; i < BListLength; i++)
    {
    hppc = ReadInt32(BaseAddress + BLStart + i * CreatureStepSize + hppcOffset);
    }

    You might want to calculate the creature offset for each creature, then add each variable offset as you go, e.g

    UInt32 COffset = BaseAddress + BLStart + i * CreatureStepSize;
    hppc = ReadInt32(COffset + hppcOffset);

    For more information check out my code on JAPI. Look at the BLGet() function... The addresses are for an older client as I didn't update them yet, but the code should work fine still.

  7. #7
    Senior Member
    Join Date
    Oct 2010
    Posts
    146
    Quote Originally Posted by XtrmJash View Post
    Each creature has an offset, which is equal to the creatures position in the battle list, multiplied by the creature offset, added to the base address and the offset listed there, the code will look something like this:

    for (int i = 0; i < BListLength; i++)
    {
    hppc = ReadInt32(BaseAddress + BLStart + i * CreatureStepSize + hppcOffset);
    }

    You might want to calculate the creature offset for each creature, then add each variable offset as you go, e.g

    UInt32 COffset = BaseAddress + BLStart + i * CreatureStepSize;
    hppc = ReadInt32(COffset + hppcOffset);

    For more information check out my code on JAPI. Look at the BLGet() function... The addresses are for an older client as I didn't update them yet, but the code should work fine still.
    :O thank you, yea... I was reading your code some days ago, quite nice dude!

    and here BListAdresses.Max would it be the maximun creatures that can be in your battlelist?

    and
    Code:
                    else if (batt.Id != 0 && idname == true)
                    {
                        batt.Id = ReadInt32(BListAdresses.Start + BListAdresses.IdOffset + CreatureOffset + Util.Base);
                        batt.Name = ReadString(BListAdresses.Start + BListAdresses.NameOffset + CreatureOffset + Util.Base);
                        bat[i] = batt;
                    }
    why just getting id and name? I read you did this for not updating (and lagging) the whole time.. but I don't get it, why would you be interested in just getting those 2 things?
    Last edited by Puterin; 03-20-2013 at 09:27 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •