Rockin, thanks guys.
So... I have a loop cruisin' through my objects. And added this:
Code:
if (type == 5)
{
DWORD ITEM_FIELD_OWNER = 0x6;
DWORD ITEM_FIELD_CREATOR = 0xA;
ULONG UnitInfo = ReadDword(Current + 0x08);
ULONGLONG Owner = ReadDword(UnitInfo + ITEM_FIELD_OWNER * 4);
ULONGLONG Creator = ReadDword(UnitInfo + ITEM_FIELD_CREATOR * 4);
printf("\tOwner: %I64x Creator: %I64x\n", Owner, Creator);
}
which is really similar to my code to grab current/max hitpoints. It seems to work, in as much as my player guid is showing up as the owner for my bobber. (w00t!). However... I fear I got lucky, and don't actually know what I am doing
What I am calling UnitInfo... should that be named something else?
I am having a hard time understanding the relationship between the "type"... and the layout of memory. Like, It would appear that all objects in the list have a their guid at 0x30... but I assume other offsets vary by type? Or is ObjectBase+0x08 always a pointer to data that is specific to each type?
I realize that
[07:14:50]: UNIT_FIELD_HEALTH = 0x17
is an offset (times 4 bytes) from UnitInfo (which I got at via [ObjectsBase+0x08]), but if I look at other offsets from Cypher's sticky... say...
[07:14:51]: ITEM_FIELD_CREATOR = 0xA
that offset is from.. what?
Thanks. And sorry for my n00bness

-Silly