Code:
void GetNearbyPlayerInfo()
{
HBAI.CurrentWoWInstance = 0;
HBAI.Handle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,HBAI.Instance[HBAI.CurrentWoWInstance].PID);
DWORD ClientConnectionAddress = 0x011CA260;
DWORD ClientConnection;
ReadProcessMemory(HBAI.Handle,(LPCVOID)ClientConnectionAddress,&ClientConnection,4,&HBAI.BytesRead);
DWORD ObjectManagerAddress = ClientConnection + 0x2864;
DWORD ObjectManager;
ReadProcessMemory(HBAI.Handle,(LPCVOID)ObjectManagerAddress,&ObjectManager,4,&HBAI.BytesRead);
DWORD CurrentObjectAddress = ObjectManager + 0xAC;
DWORD CurrentObject;
ReadProcessMemory(HBAI.Handle,(LPCVOID)CurrentObjectAddress,&CurrentObject,4,&HBAI.BytesRead);
DWORD LocalObjectAddress = CurrentObject;
DWORD GUIDOffset = 0x0;
DWORD NameOffset;
DWORD LevelOffset = 0x35;
DWORD RaceOffset;
DWORD ClassOffset;
DWORD CurrentHPOffset = 0x17;
DWORD MaxHPOffset = 0x1F;
DWORD CurrentPowerOffset;
DWORD MaxPowerOffset;
DWORD AliveOffset;
DWORD XOffset;
DWORD YOffset;
DWORD ZOffset;
DWORD FacingOffset;
DWORD TargetOffset = 0x12;
int i = 0;
ReadProcessMemory(HBAI.Handle,(LPCVOID)CurrentObjectAddress,&CurrentObject,4,&HBAI.BytesRead);
while (CurrentObject != 0)
{
DWORD ObjectTypeAddress = CurrentObject + 0x14;
DWORD ObjectType;
ReadProcessMemory(HBAI.Handle,(LPCVOID)ObjectTypeAddress,&ObjectType,4,&HBAI.BytesRead);
if(ObjectType == 4)
{
LocalObjectAddress = CurrentObject + 0x8;
ReadProcessMemory(HBAI.Handle,(LPCVOID)(LocalObjectAddress),&HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].GUID,4,&HBAI.BytesRead); // GUID
ReadProcessMemory(HBAI.Handle,(LPCVOID)(LocalObjectAddress+CurrentHPOffset),&HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].CurrentHP,4,&HBAI.BytesRead); // CurrentHP
ReadProcessMemory(HBAI.Handle,(LPCVOID)(LocalObjectAddress+MaxHPOffset),&HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].MaxHP,4,&HBAI.BytesRead); // MaxHealth
if (HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].MaxHP > 0)
{
HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].PercentHP = ((HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].CurrentHP / HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].MaxHP) *100); // Calculate Percent HP
}
i++;
if (HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData[i].PercentHP != 0)
{
MsgBox(HBAI.Instance[HBAI.CurrentWoWInstance].PlayerObjectData.PercentHP.ToString());
}
}
CurrentObject = CurrentObject + 0x3C;
}
}