Item count [F# keys]

06/03/2018 22:07 One Tap#1
Time to move on.
06/04/2018 02:23 giacometti#2
If I remember well, these itens at FKeys uses the same memory struct of itens at your inventory.

So, this may help you:
Code:
class T_Itembag {			//SIZE OF 0x328 
public:
	DWORD dwConstantPtr;	//vtable pointer
	char szUnknown0[8];
	DWORD dwItemUniqueID;	
	char szUnknown1[12];
	DWORD dwItemID;
	DWORD dwUnknown1;
	char szNamePointer[16];	//if len is >15 then this become a pointer to a long name //just a std::string type
	DWORD dwNameLength;			
	char szUnknown2[4];
	BYTE bClass;
	BYTE wUnknown1;
	WORD wLevel;
	char szUnknown2b[12];	
	DWORD dwPrice;
	char szUnknown3[23];
	BYTE b1stsocket;		//0=no socket, 255=socket, anyother number represent a gem. 13 = sdg, 20 = rrg, etc
	BYTE b2ndsocket;
	char szUnknown4[8];
	BYTE bCompositionPlus;
	char szUnknown5[38];
	char szTypeName[16];	//rareitem, gem, quest, gift, etc...
	DWORD dwTypeNameLength;
	char szUnknown6[8];
	char szDescription[16];		//Description~don't~use~spaces.
	DWORD dwDescriptionLength;
	char szUnknown6b[368];
	DWORD dwShowTipNote;
	char szUnknown7[28];
	DWORD dwStackNumber;
        .
        .
        .
You can get the pointers offset by counting the bytes used before the variable dwStackNumber (this is what you are looking for). So, for example, if you can get pointer to itemtypeid (dwItemID in the class above), just count the bytes and you are good to go. Good luck!
06/04/2018 09:57 One Tap#3
Quote:
Originally Posted by giacometti View Post
If I remember well, these itens at FKeys uses the same memory struct of itens at your inventory.

So, this may help you:

You can get the pointers offset by counting the bytes used before the variable dwStackNumber (this is what you are looking for). So, for example, if you can get pointer to itemtypeid (dwItemID in the class above), just count the bytes and you are good to go. Good luck!
Thanks for responding!

I have tried with diffrent pointers of the item structure no luck getting a base/green adress yet ( the hotkeybar have diffrent offsets than the inventory item struct)

Code:
class Pointers
{
    
    public enum CItem : uint
    {
        fkStaticBase = 0x091AC4AC,
        // Offsets
    	fkItemID = 0x16F4,
	fkStackNumber = 0x4D8
    }
}
06/09/2018 04:16 { Angelius }#4
The information you are seeking can be found in the client log files. You just have to read it.

The folder path would look something like this: Log\ServerName\CharacterName

You transform the character name like this:

uint result = 0;
foreach (var c in "PlayerName")
result = result * 33 + c;

So if your in game character name is "OneTap" and your server is "Libra" it would look like this: Log\Libra\3225871783\Setup.ini

And the info you are looking for in the .ini is: QItem1Record to QItem9Record.

Good luck.
06/09/2018 13:47 giacometti#5
Angelius, these "QItemXRecord" are just the itemtypeids... He want the stack number of them (he showed in his spoiler).

Interesting formula tq uses for identify char in log folder... I wonder why they just didnt put playerId there instead...
06/10/2018 01:35 { Angelius }#6
Quote:
Originally Posted by giacometti View Post
Angelius, these "QItemXRecord" are just the itemtypeids... He want the stack number of them (he showed in his spoiler).

Interesting formula tq uses for identify char in log folder... I wonder why they just didnt put playerId there instead...
Oh my bad, I only read this
Quote:
Originally Posted by One Tap View Post
(is there actually an item etc):
And then it's just TL;DR and I gave a quick answer :P