У тебя оффсет не корректный. Замени 0x5240 на 0x52C0.
UPD: Не помогло, сам протестил. Так что я заменил твою функцию на рабочую.
Спойлер: код
struct player_info_s
{
__int64 unknown; //0x0000
union
{
__int64 steamID64; //0x0008 - SteamID64
struct
{
__int32 xuid_low;
__int32 xuid_high;
};
};
char szName[128]; //0x0010 - Player Name
int userId; //0x0090 - Unique Server Identifier
char szSteamID[20]; //0x0094 - STEAM_X:Y:Z
char pad_0x00A8[0x10]; //0x00A8
unsigned long iSteamID; //0x00B8 - SteamID
char szFriendsName[128];
bool fakeplayer;
bool ishltv;
unsigned int customfiles[4];
unsigned char filesdownloaded;
};
player_info_s getName(int index)
{
DWORD clientState = readMem<DWORD>(engine + dwClientState);
DWORD userInfoTable = readMem<DWORD>(clientState + 0x52C0);
DWORD items = readMem(readMem<DWORD>(userInfoTable + 0x40) + 0xC);
return readMem<player_info_s>(readMem<DWORD>(items + 0x28 + 0x34 * index));
}