The offset to sUnitFields is actually the offset where it's allocated (iirc).
You need the static playerBase offset.
So, when I am doing my first read, I should use the offset for the playerBase?
That is, it would look like
Code:
$pBasePointer01 = mem_read(0x12D4EA8,$WoWProcess,'ptr') ; <----- Static Player offset
$pBasePointer02 = mem_read($pBasePointer01 + 0x34,$WoWProcess,'ptr')
$pBasePointer = mem_read($pBasePointer02 + 0x24,$WoWProcess,'ptr')
$pStorage = mem_read($pBasePointer + 0x8,$WoWProcess,'ptr')
$Health = mem_read($pStorage + 0x17*4,$WoWProcess,'ptr')
Is that right?