If you iterate at object list by structure like this:
Code:
struct TObject{
DWORD dummy0;
DWORD dummy2;
DWORD UnitData;
DWORD dummy3;
DWORD count;
DWORD ObjectType;
DWORD dummy5;
DWORD dummy6;
DWORD dummy7;
DWORD dummy8;
DWORD dummy10;
DWORD dummy11;
__int64 GUID;
DWORD dummy12;
DWORD NextPtr;
};
ObjectType contain decimal object type like this:
1 - Item
2 - Container
3 - Mob
4 - Player
5 - Game object
6 - Dynamic object
7 - Corpse
Detailed info about type of object located if read next structure at address TObject.UnitData
For example i use structure like this:
Code:
struct TUnitData{
__int64 guid;
DWORD type; //8
DWORD entry; //12
float scale; //16
DWORD padding; //20
__int64 charm; //24
__int64 summon; //32
__int64 charmedBy; //40
__int64 summonedBy; //48
__int64 createdBy; //56
__int64 target; //64
__int64 persuaded; //72
__int64 channelObj; //80
DWORD health; //88
DWORD mana; //92
DWORD rage; //96
DWORD focus; //100
DWORD energy; //104
DWORD power5; //108
DWORD maxHealth; //112
DWORD maxMana; //116
DWORD maxRage; //120
DWORD maxPower3; //124
DWORD maxEnergy; //128
DWORD maxPower5; //132
DWORD level; //136
DWORD faction; //140
char bytes0[4];
DWORD virtualItemSlotDisplay[3];
char virtualItemInfo[24];
DWORD flags;
DWORD flags2;
DWORD aura[56];
char auraFlags[56];
char auraLevels[56];
DWORD auraState;
DWORD baseAttackTime[2];
DWORD rangedAttackTime;
float boundingRadius;
float combatReach;
DWORD displayID;
DWORD nativeDisplayID;
DWORD mountDisplayID;
float minDamage;
float maxDamage;
float minOffhandDamage;
float maxOffhandDamage;
char bytes1[4];
DWORD petNumber;
DWORD petNameTimestamp;
DWORD petExperience;
DWORD petNextLevelExp;
DWORD dynamicFlags;
DWORD channelSpell;
float modCastSpeed;
DWORD createdBySpell;
DWORD npcFlags;
DWORD npcEmoteState;
int trainingPoints;
DWORD str;
DWORD agi;
DWORD sta;
DWORD int_;
DWORD spi;
DWORD gainStr;
DWORD gainAgi;
DWORD gainSta;
DWORD gainInt;
DWORD gainSpi;
DWORD lossStr;
DWORD lossAgi;
DWORD lossSta;
DWORD lossInt;
DWORD lossSpi;
DWORD resistances[7];
DWORD gainResistances[7];
DWORD lossResistances[7];
DWORD baseMana;
DWORD baseHealth;
char bytes2[4];
DWORD attackPower;
int attackPowerMods;
float attackPowerMultiplier;
DWORD rangedAttackPower;
int rangedAttackPowerMods;
float rangedAttackPowerMultiplier;
float minRangedDamage;
float maxRangedDamage;
DWORD powerCostModifer[7];
DWORD powerCostMultiplier[7];
__int64 duelArbiter;
DWORD playerFlags;
DWORD playerGuildID;
DWORD playerGuildRank;
char playerBytes[12];
};