Fixed items are part of the ItemType.dat structure, as are uni, elite, ref etc, so thats easy to do.
The way these work, is a number added to their ItemTypeID. 0:Fixed, 3-5:Normal 6:Ref, 7:Uni, 8:Elite, 9:Super.
So you just do ItemTypeID
modulus 10 for the quality. It works for anything that is equipment, but obviously, not quest items and otehr ****.
(check out my itemtype.dat editor source to see the full info for the file)
+1 info, bless, enchant, sockets are completely independant of ItemType.dat. They are specific to individual items and not the ItemType.
We receive all the information for each item in a 0x3f0 packet, and it is stored in memory, I think, dynamically assigned. You'd need to defeat DMA to get item locations, which could be challegning, or another way would be to search an area of memory with the ItemID, which should find the whole info on that item.
Anyway, the 0x3f0 packet
Code:
typedef struct packet0x3f0 {
* *WORD size;
* *WORD PType; //0x3f0
* *DWORD Identifier; //PlayerID or ItemID, decided by Mode
* *DWORD ItemTypeId;
* *WORD MaxDura;
* *WORD RemainingDura;
* *WORD Mode;
* *BYTE EquipSlot; //0 for inventory
* *BYTE Socket1;
* *BYTE Socket2;
* *WORD RebornEffect;
* *BYTE Compositon;
* *BYTE Bless;
* *BYTE Enchant;
* *BYTE Padding[6];
} ItemInfoPacket;
/*
Modes
0x01: Item is on your person (when receiving)
0x02: Item appears in trade window
0x03: Item is on your person (When upgrading/changing etc)
0x04: Item is on another person (View euipment)
*/