So as I promised, here's a video of the rapid fire cheat I was working on. It took me several days of studying the ASM and tracing the origins of the shooting function, but I finally landed it. It isn't perfect, I set it to automatically fire when you hold the right mouse button or press the left mouse button, but it works nonetheless. If anyone knows C++, you can use the code supplied to add it to your trainer, or just modify the instructions in memory with a program like CheatEngine to get it to work. Or, maybe someone will be nice enough to convert it to CLEO since I know nothing about that.
The recoil is a little annoying, I'll have to fix that so all bullets go perfectly straight. Enjoy though!
[media=]
[/media]
void enableRapidFire()
{
WriteProcessMemory(gtaProcess, (LPVOID)rapidFire1, &enableRapidFire1, 2, NULL);
WriteProcessMemory(gtaProcess, (LPVOID)rapidFire2, &enableRapidFire2, 2, NULL);
}
void disableRapidFire()
{
WriteProcessMemory(gtaProcess, (LPVOID)rapidFire1, &disableRapidFire1, 2, NULL);
WriteProcessMemory(gtaProcess, (LPVOID)rapidFire2, &disableRapidFire2, 2, NULL);
}
Declarations:
DWORD rapidFire1 = 0x00624f00; //These are the addresses in memory that you'll want to modify
DWORD rapidFire2 = 0x00624F06;
BYTE enableRapidFire1[3] = "\x90\x90"; //These are the bytes you'll use to enable rapid fire
BYTE enableRapidFire2[3] = "\x75\x0A";
BYTE disableRapidFire1[3] = "\x75\x24"; //These are the bytes you'll use to disable rapid fire
BYTE disableRapidFire2[3] = "\x74\x0A";