#define FL_ONGROUND ( 1 << 0 )
struct Player
{
DWORD Base()
{
return RM<DWORD>(Offsets::Client + Offsets::dwLocalnigga);
}
int Jump()
{
return RM<int>(Offsets::Client + Offsets::dwniggajump);
}
int Flags()
{
DWORD Base = this->Base();
return RM<int>(Base + Offsets::niggaFlags);
}
void SetJump(int v)
{
WM<int>(Offsets::Client + Offsets::niggajump, v);
}
};
struct Player* pPlayer;
DWORD WINAPI Loop(PVOID pThreadParameter)
{
for (;; Sleep(7)) {
if (pPlayer->Jump() == 5) {
while (GetAsyncKeyState(VK_SPACE)) {
if (pPlayer->Flags() & FL_ONGROUND)
pPlayer->SetJump(5);
else
pPlayer->SetJump(4);
}
}
if (!FindWindow(NULL, "Counter-Strike: Global Offensive"))
exit(0);
}
}
int main()
{
if (!FindWindow(NULL, "Counter-Strike: Global Offensive")) {
cout << "\n > Start csgo first\n";
system("pause");
exit(0);
}
while (!Offsets::Client) {
pMemory->FindProcess("csgo.exe");
Offsets::Client = pMemory->ModulePointer("client_panorama.dll");
}
Console();
HANDLE Threads[] = {
CreateThread(0, 0, &Loop, 0, 0, 0),
};
WaitForMultipleObjects(sizeof(Threads) / sizeof(HANDLE), Threads, TRUE, INFINITE);
return 0;
}
Сам оффсеты поменяешь, если хоть что-то понимаешь