Hello,
I was wondering where you obtained the values for ITEM_FIELD_ENCHANTMENT. I’ve been analyzing the MirrorInitialize function at 0x04F5720 in IDA, and I’ve dumped the descriptor offsets directly from there while the game is running.
It’s also possible to write a tool to dump these descriptors live during runtime.
Below are the offsets I retrieved for ItemFields:
Code:
enum ItemFields
{
ITEM_FIELD_OWNER = 0x0006,
ITEM_FIELD_CONTAINED = 0x0008,
ITEM_FIELD_CREATOR = 0x000A,
ITEM_FIELD_GIFTCREATOR = 0x000C,
ITEM_FIELD_STACK_COUNT = 0x000E,
ITEM_FIELD_DURATION = 0x000F,
ITEM_FIELD_SPELL_CHARGES = 0x0010,
ITEM_FIELD_FLAGS = 0x0015,
ITEM_FIELD_ENCHANTMENT_1_1 = 0x0016,
ITEM_FIELD_ENCHANTMENT_1_3 = 0x0018,
ITEM_FIELD_ENCHANTMENT_2_1 = 0x0019,
ITEM_FIELD_ENCHANTMENT_2_3 = 0x001B,
ITEM_FIELD_ENCHANTMENT_3_1 = 0x001C,
ITEM_FIELD_ENCHANTMENT_3_3 = 0x001E,
ITEM_FIELD_ENCHANTMENT_4_1 = 0x001F,
ITEM_FIELD_ENCHANTMENT_4_3 = 0x0021,
ITEM_FIELD_ENCHANTMENT_5_1 = 0x0022,
ITEM_FIELD_ENCHANTMENT_5_3 = 0x0024,
ITEM_FIELD_ENCHANTMENT_6_1 = 0x0025,
ITEM_FIELD_ENCHANTMENT_6_3 = 0x0027,
ITEM_FIELD_ENCHANTMENT_7_1 = 0x0028,
ITEM_FIELD_ENCHANTMENT_7_3 = 0x002A,
ITEM_FIELD_ENCHANTMENT_8_1 = 0x002B,
ITEM_FIELD_ENCHANTMENT_8_3 = 0x002D,
ITEM_FIELD_ENCHANTMENT_9_1 = 0x002E,
ITEM_FIELD_ENCHANTMENT_9_3 = 0x0030,
ITEM_FIELD_ENCHANTMENT_10_1 = 0x0031,
ITEM_FIELD_ENCHANTMENT_10_3 = 0x0033,
ITEM_FIELD_ENCHANTMENT_11_1 = 0x0034,
ITEM_FIELD_ENCHANTMENT_11_3 = 0x0036,
ITEM_FIELD_ENCHANTMENT_12_1 = 0x0037,
ITEM_FIELD_ENCHANTMENT_12_3 = 0x0039,
ITEM_FIELD_PROPERTY_SEED = 0x003A,
ITEM_FIELD_RANDOM_PROPERTIES_ID = 0x003B,
ITEM_FIELD_DURABILITY = 0x003C,
ITEM_FIELD_MAXDURABILITY = 0x003D,
ITEM_FIELD_CREATE_PLAYED_TIME = 0x003E,
ITEM_FIELD_PAD = 0x003F,
ITEM_END = 0x0040
};