I know some hate it.
Quake Champions and Quake Live has it feature incorporated.
For me (and at least many others) autohop/bunnyhop are very comfortable, because i don’t need to constantly press the space (or whatever key you have binded to +moveup).
Making more enjoyable to make some acrobatics or simply move fastly around the maps.
I’ve done it inyecting the following code to Quake 3 1.32 vanilla…
#include "pch.h"
DWORD FL_ONGROUND = (DWORD)GetModuleHandle(L"quake3.exe") + 0x75A74C;
int* ground = (int*)FL_ONGROUND;
DWORD JUMP = (DWORD)GetModuleHandle(L"quake3.exe") + 0x80B7B0;
int* jump = (int*)JUMP;
DWORD WINAPI BunnyHop(LPVOID x)
{
while (1)
{
if (GetKeyState(VK_SPACE) & 0X80000)
{
if (*ground < 1)
{
*jump = 1;
}
else
{
*jump = 0;
}
}
else
{
*ground = 0;
*jump = 0;
}
Sleep(1);
}
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
CreateThread(NULL, 0, BunnyHop, NULL, 0, NULL);
}
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Here’s and example of gameplays:
Quake 3 DLL injected bunny hop
But the DLL injection don’t work perfectly.
Because the iteration is interrupted when we press backward [+back ]
So the auto bunnyhop stop and even the jump function don’t respond sometimes.
But, if we press forward [ +forward ] or left or right [ +moveleft / +moveright ] the code will work again and auto bunnyhop comeback correctly.
I think some other memory function are relationed with jump action [ +moveup ]
Quake Live bunny hop
Quake Champions bunny hop
Quake Live manage this with two cvars:
pmove_bunnyhop 1/0
pmove_autohop 1/0
Is feasible do this?