struct Player
{
public:
Table* p_Table() { return *(Table**)(this + 0x4); }
};
struct Table
{
TablePtr* p_TablePtr() { return *(TablePtr**)(this + 0x14); }
};
struct TablePtr
{
Actor* p_Actor() { return (Actor*)(this + 0x0); }
};
//////////КОД КАК Я ПЕРЕБИРАЮ ТАБЛИЦУ////////////
void Hack()
{
Player* LocalPlayer = (Player*)(baseAddress + 0xA3A9FC);
char debug[256];
if (IsBadHugeReadPtr(LocalPlayer, 4))goto exit_mem0;
if (IsBadHugeReadPtr(LocalPlayer->p_LocalOwner(), 4))goto exit_mem0;
sprintf(debug, "LocalPlayer %X", LocalPlayer);
for (int i = 0; i < 32; i++)
{
if (IsBadHugeReadPtr(LocalPlayer->p_Table(), 4))goto exit_mem1;
if (IsBadHugeReadPtr(LocalPlayer->p_Table()->p_TablePtr(), 4))goto exit_mem1;
if (IsBadHugeReadPtr(LocalPlayer->p_Table()->p_TablePtr()[i].p_Actor(), 4))goto exit_mem1;
sprintf(debug, "%i - %X", i, LocalPlayer->p_Table()->p_TablePtr()[i].p_Actor());
exit_mem1:;
}
OutputDebugStringA(debug);
exit_mem0:;
}
//////////КОНЕЦ////////////
{
public:
Table* p_Table() { return *(Table**)(this + 0x4); }
};
struct Table
{
TablePtr* p_TablePtr() { return *(TablePtr**)(this + 0x14); }
};
struct TablePtr
{
Actor* p_Actor() { return (Actor*)(this + 0x0); }
};
//////////КОД КАК Я ПЕРЕБИРАЮ ТАБЛИЦУ////////////
void Hack()
{
Player* LocalPlayer = (Player*)(baseAddress + 0xA3A9FC);
char debug[256];
if (IsBadHugeReadPtr(LocalPlayer, 4))goto exit_mem0;
if (IsBadHugeReadPtr(LocalPlayer->p_LocalOwner(), 4))goto exit_mem0;
sprintf(debug, "LocalPlayer %X", LocalPlayer);
for (int i = 0; i < 32; i++)
{
if (IsBadHugeReadPtr(LocalPlayer->p_Table(), 4))goto exit_mem1;
if (IsBadHugeReadPtr(LocalPlayer->p_Table()->p_TablePtr(), 4))goto exit_mem1;
if (IsBadHugeReadPtr(LocalPlayer->p_Table()->p_TablePtr()[i].p_Actor(), 4))goto exit_mem1;
sprintf(debug, "%i - %X", i, LocalPlayer->p_Table()->p_TablePtr()[i].p_Actor());
exit_mem1:;
}
OutputDebugStringA(debug);
exit_mem0:;
}
//////////КОНЕЦ////////////