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 85

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

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
[update] Tibia 9.41 - Page 2
Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 29

Thread: [update] Tibia 9.41

  1. #11

    RE: [update] Tibia 9.41

    There are 3 different flags which determine where an item sits on a tile.

    This is what is in my notes.

    Code:
    Ok, set of rules comes too:
    	1. We use the item on the tile which has the highest value in "Orders"
    	2. We ignore players when doing this..
    	3. Anything with a "topitem" or so flag breaks rule 1. These items are always the ones used 
    	4. Doors, archyways, etc break rule 1. The will have highest order but still cannot be used unless they are the only thing on the tile. Guessing its another dat flag
    
    Rule 3 is triggered by the Top_Order_2 flag
    Rule 4 is triggered by the Top_Order_3 flag
    
    stack == 0-index of the item on the tile
    
    Undetermined: the rule for the "Top_Order_1" flag
    Actual Code
    Code:
    int tMap::getTileTopItemIndex(tTile* tile, bool includeCreatures)
    {
    	int highestOrder = -1;
    	int tileIndex = -1;
    	for (int stack = 0; stack < tile->count; stack++)
    	{
    		if (tile->items[stack].id > 99 || (includeCreatures && tile->items[stack].id == 99)) //we need to look at this... could be causing debugs letting id 99 through
    		{
    			if (tibiaClient::checkItemFlag(tile->items[stack].id, Consts::ITEM_FLAG_ALWAYSUSE) == 1)
    			{
    				tileIndex = stack;
    				break;
    			}
    			else if (stack == 1 && tile->count == 2 && tibiaClient::checkItemFlag(tile->items[stack].id, Consts::ITEM_FLAG_USEIFONLY) == 1)
    			{
    				tileIndex = stack;
    				break;
    			}
    			else if ((int)tile->orders[stack] > highestOrder && tibiaClient::checkItemFlag(tile->items[stack].id, Consts::ITEM_FLAG_USEIFONLY) == 0)
    			{
    				highestOrder = (int)tile->orders[stack];
    				tileIndex = stack;
    			}
    		}
    	}
    
    	return tileIndex;
    }

  2. #12
    Senior Member
    Join Date
    Aug 2010
    Posts
    532

    RE: [update] Tibia 9.41

    Thanks for these informations DarkStar, it will help a lot.

    Look's like that some new items flags were added in this update, I'm still trying to figure it out since the old way to check the items flag isn't working.

    Thank you again.

  3. #13
    Junior Member
    Join Date
    Dec 2011
    Posts
    25

    RE: [update] Tibia 9.41

    What about the address for your account status? (free/premium). I need to read the number of premium days my account has.

    Thanks.

  4. #14
    Senior Member
    Join Date
    Aug 2010
    Posts
    532

    RE: [update] Tibia 9.41

    Quote Originally Posted by matzen
    What about the address for your account status? (free/premium). I need to read the number of premium days my account has.

    Thanks.
    I'm almost sure that it isn't stored in the memory.

  5. #15
    Super Moderator
    Join Date
    May 2007
    Posts
    1,191

    RE: [update] Tibia 9.41

    Quote Originally Posted by maozao
    Quote Originally Posted by matzen
    What about the address for your account status? (free/premium). I need to read the number of premium days my account has.

    Thanks.
    I'm almost sure that it isn't stored in the memory.
    If you can see it in the client, it must be in memory somewhere.

  6. #16
    Senior Member
    Join Date
    Aug 2010
    Posts
    532

    RE: [update] Tibia 9.41

    Yeah, I didn't try to find it yet.

    Here, premmy days address: Tibia.exe+44A9D0

  7. #17
    Junior Member
    Join Date
    Dec 2011
    Posts
    25

    RE: [update] Tibia 9.41

    Quote Originally Posted by maozao
    Yeah, I didn't try to find it yet.

    Here, premmy days address: Tibia.exe+44A9D0
    Unfortunately that doesn't seem to be the address:




    It's always the same value, regardless of whether my account is free, or premium.

  8. #18
    Senior Member
    Join Date
    Aug 2010
    Posts
    532

    RE: [update] Tibia 9.41

    Remember that the Address is:

    Tibia.exe+44A9D0

    Tibia.exe means -> Tibia base address. ASLR disable it is ALWAYS 0x400000, so you must to check the address 0x400000+44A9D0 if you are using Windows XP or using a client with ASLR disabled.

  9. #19
    Super Moderator
    Join Date
    May 2007
    Posts
    1,191

    RE: [update] Tibia 9.41

    Quote Originally Posted by matzen
    What about the address for your account status? (free/premium). I need to read the number of premium days my account has.

    Thanks.
    Just like other things in the character list, it's all stored in a sequence. Premium days is part of this sequence.

    All values are stored as 4 bytes:
    Premium days
    Selected index
    Pointer to character list
    Amount of characters

  10. #20
    Junior Member
    Join Date
    Dec 2011
    Posts
    25

    RE: [update] Tibia 9.41

    Quote Originally Posted by maozao
    Remember that the Address is:

    Tibia.exe+44A9D0

    Tibia.exe means -> Tibia base address. ASLR disable it is ALWAYS 0x400000, so you must to check the address 0x400000+44A9D0 if you are using Windows XP or using a client with ASLR disabled.
    Thank you, I found it! 400000 + 44A9D0 = 84A9D0, so we got:



    This is correct, the account has 17 days left of premium time. BUT!... what do you mean by ASLR disabled? And what does Windows XP have to do with the address? Yes, I am using WinXP, but does this mean the address will be different in WinVista or Win7?

    Now you got me worried!

    Quote Originally Posted by Blaster_89
    Quote Originally Posted by matzen
    What about the address for your account status? (free/premium). I need to read the number of premium days my account has.

    Thanks.
    Just like other things in the character list, it's all stored in a sequence. Premium days is part of this sequence.

    All values are stored as 4 bytes:
    Premium days
    Selected index
    Pointer to character list
    Amount of characters
    I don't know how to find such addresses. It's not simple for me (is it for you? how do you do it?). Strings are much more easier -- or values in 4 or 8 bytes whose lenght is atleast 4 numbers long, such as your char's experience. These are not UNICODE strings but are really easy to find out.

    The problem is the character name. The names that you find by searching for a string are not static, and you cannot search 4 and 8 bytes hex characters (only numbers, such as your char's exp, mana etc.) in T-Search, so it is still a grey area for me to find the character name address in the memory process.

    If you see the image above, I blacked out the string containing the password, and now I know that the premium days are stored close to it, i.e. some addresses behind.

    After the game updates, I suppose it will stay pretty much the same: the premium days are stored a few addresses behind the password one, correct?

Posting Permissions

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