EDIT: Updated Source, might be better
Features:
No Fall Damage: On
SuperJump: CTRL
No Bounds: On
No Spread: On
No Recoil: On
All Slots: On
Code:
#define cpp_cpp
#include <stdio.h>
#include <windows.h>
#define ADR_PlayerPointer 0x00C62388
#define ADR_ServerPointer 0x00B5D0F8
#define ADR_NoBounds1 0x00B0D9D8
#define ADR_NoBounds2 0x00B0D9DC
#define ADR_NoSpread 0x00AE330C
#define OFS_PlayerGravity 0xC49C
#define OFS_NoRecoil1 0x001C
#define OFS_NoRecoil2 0x0020
#define OFS_NoRecoil3 0x0024
#define OFS_NoFallDMG 0x103A4
#define OFS_SLOT5 0x1021A4
#define OFS_SLOT6 0x1021A5
#define OFS_SLOT7 0x1021A6
#define OFS_SLOT8 0x1021A7
void NoFallDamage(DWORD dwPlayerPointer)
{
*(float*)(dwPlayerPointer+OFS_NoFallDMG) = -20000;
}
void SuperJump(DWORD dwPlayerPointer)
{
if(GetAsyncKeyState(VK_CONTROL))
{
*(float*)(dwPlayerPointer+OFS_PlayerGravity) = 800; // Smooth :D
}
}
void NoBounds()
{
*(int*)ADR_NoBounds1 = 0;
*(int*)ADR_NoBounds2 = 0;
}
void NoSpread()
{
*(float*)ADR_NoSpread = 0;
}
void NoRecoil(DWORD dwPlayerPointer)
{
*(float*)(dwPlayerPointer+OFS_NoRecoil1) = 0;
*(float*)(dwPlayerPointer+OFS_NoRecoil2) = 0;
*(float*)(dwPlayerPointer+OFS_NoRecoil3) = 0;
}
void AllSlots(DWORD dwServerPointer)
{
*(int*)(dwServerPointer+OFS_SLOT5) = 1;
*(int*)(dwServerPointer+OFS_SLOT6) = 1;
*(int*)(dwServerPointer+OFS_SLOT7) = 1;
*(int*)(dwServerPointer+OFS_SLOT8) = 1;
}
void HookList()
{
for (;;)
{
DWORD dwPlayerPointer = *(DWORD*)ADR_PlayerPointer;
if(dwPlayerPointer)
{
NoFallDamage(dwPlayerPointer);
SuperJump(dwPlayerPointer);
NoRecoil(dwPlayerPointer);
}
DWORD dwServerPointer = *(DWORD*)ADR_ServerPointer;
if(dwServerPointer)
{
AllSlots(dwServerPointer);
NoBounds();
NoSpread();
}
Sleep(50);
}
}
BOOL WINAPI DllMain(HINSTANCE hModule,DWORD DERP,LPVOID lpReserved)
{
if(DERP == DLL_PROCESS_ATTACH)
{
CreateThread(0,0,(LPTHREAD_START_ROUTINE)HookList,0,0,0);
}
return TRUE;
}
Everything should work, addresses should be updated /