Not sure if it's what you need. Just look through it)
Code:
DWORD GetPlayerBase()
{
DWORD dwObjMgr=GetOM();
if ( dwObjMgr == NULL ) return 0;
unsigned __int64 LocalGuid,guid;
DWORD dwFirstObject;
DWORD dwCurObject;
ReadProcessMemory( hProc, (LPVOID)(dwObjMgr + 0xAC), (LPVOID)&dwFirstObject, 4, NULL );
LocalGuid=GetLocalGUID();
dwCurObject = dwFirstObject;
while ( dwCurObject!=0 && (dwCurObject&1) == 0 )
{
dwCurObject=dwCurObject;
ReadProcessMemory( hProc, (LPVOID)(dwCurObject + 0x30),(LPVOID)&guid, 8, NULL );
if (guid==LocalGuid)
return dwCurObject;
dwFirstObject = dwCurObject;
ReadProcessMemory( hProc, (LPVOID)(dwFirstObject + 0x3C),(LPVOID)&dwCurObject, 4, NULL );
if ( dwCurObject == dwFirstObject )
break;
}
return 0;
}