DWORD GameEngine = 0x18FDB3C;
DWORD Offset_GamePlayer = 0x4FC;
//OFFSETS
DWORD Offset_Actor = 0x40;
DWORD Offset_WorldInfo = 0x00E4;
DWORD Offset_Pawn = 0x01D8;
DWORD Offset_PawnList = 0x0460;
DWORD Offset_NextPawn = 0x01F8;
DWORD Offset_PlayerReplicationInfo = 0x0354;
DWORD Offset_PlayerName = 0x01E0;
class ULocalPlayer
{
public:
static int GamePlayers()
{
return Mem.ReadMem<int>(Mem.ReadMem<int>(Mem.ReadMem<int>(GameEngine) + Offset_GamePlayer) + 0x0);
}
};
VOID CallTest()
{
auto LocalPlayer = ULocalPlayer::GamePlayers();
if (!LocalPlayer)
printf("Error LocalPlayer\n");
auto pController = Mem.ReadMem<int>(LocalPlayer + Offset_Actor);
auto LocalPawn = Mem.ReadMem<int>(pController + Offset_Pawn);
auto WorldInfo = Mem.ReadMem<int>(pController + Offset_WorldInfo);
auto PlayerReplicationInfo = Mem.ReadMem<int>(pController + Offset_PlayerReplicationInfo);
if (!LocalPawn || !WorldInfo || !PlayerReplicationInfo)
printf("Error\n");
auto Target = Mem.ReadMem<int>(WorldInfo + Offset_PawnList);
while (Target != NULL)
{
auto PlayerName = Mem.ReadStr(Mem.ReadMem<int>(PlayerReplicationInfo + Offset_PlayerName), 32);
printf("%s\n", PlayerName.c_str());
Target = Mem.ReadMem<int>(Target + Offset_NextPawn);
}
}