Between your help and Interest's, I finally figured I had an offset or two off and wasn't reading the memory right...Quote:
0xF10 is the let's say "normal" inventory structure, 0xF18 is the "quest" inventory structure and 0xF14 is the "gear" inventory structure. Under 0xF14 you can find the gear listed under 0xC. 0x0 is the weapon, 0x4 is the hat, 0x8 is the necklace, 0xC is the robe and so on......
currentDur = [[[[[[[realBaseAddress] + 0x1C] + 0x2C] + 0xF14] + 0xC] + 0x0] + 0x74]
maxDur = [[[[[[[realBaseAddress] + 0x1C] + 0x2C] + 0xF14] + 0xC] + 0x0] + 0x78]
The durability is calculated using CEIL(currentDur/100) and CEIL(maxDur/100).
If anyone else is looking for a snippet, this works at the moment:
Code:
Global $realbaseaddress = 0xc7662c Global $baseaddress = _MemoryRead($realbaseaddress, $vOpen) + 0x1c Global $handle = WinGetHandle($APP_TITLE, "") Global $vOpen = _MemoryOpen(ProcessExists($EXE_TITLE)) Global $baseoffset = 0x1c Global $vReadBase = _MemoryRead($vBaseAdress, $vOpen, "dword") + $vBaseOffset Global $vReadBaseplayer = _MemoryRead($vReadBase, $vOpen, "dword") + $vplayeroffset Global $dur1 = _MemoryRead($vReadBaseplayer, $vOpen) + 0xF14; Global $dur2 = _MemoryRead($dur1, $vOpen) + 0xC; Global $dur3 = _MemoryRead($dur2, $vOpen) + 0x0 $dur4 = _MemoryRead(_MemoryRead($dur3, $vOpen) + 0x74, $vOpen) $dur = $dur4 $durdisplay = $dur/100