The ZoneID being passed in for LDoN zones is huge (over 1,000,000,000) this causes problems with lookups.
I changed the GetFullZone function to look like :
Code: Select all
PCHAR GetFullZone(DWORD ZoneID)
{
PZONELIST *pZone = NULL;
if (ZoneID > 10000) return NULL;
if (!EQADDR_ZONELIST) return NULL;
if (!*EQADDR_ZONELIST) return NULL;
pZone = (PZONELIST*) (((DWORD)*EQADDR_ZONELIST) + ZONELIST_STARTOFFSET);
return (*pZone[ZoneID]).LongName;
}





