PLEASE READ THE HOW TO USE BELOW BEFORE ASKING
How to use:
- Copy the code below and and save it as .ahk format
- make sure you have lures in your inventory
- make sure you are playing as WINDOWED MODE
- numpad 3 to activate anti-afk
- numpad 6 to activate fishing
- numpad 9 to disable the script if you r running antiafk and want to change to fishing just hit numpad 3 dont have to close the script and run again
- numpad 7 to force-disabled the script
- You can run it multiples script just copy and change the file name
P/S: If you appreciated what I have done please press the thanks button :P, that is what keep me going
CREDITS:
- Zog for the script for my initial release.
- HaHaItsJake for info on his script and some cheatengine info
- Me for update it
WATER:
LAVA:Code:#WinActivateForce Numpad6:: WinGet, pidn, PID, A pid := pidn WinGet, hwnds, ID, A Handle := hwnds ;InputBox, Lure, Lure's, How many Lure's do you have in inventory Lure := 9999 Base := getProcessBaseAddress() WaterAddress := GetAddressWater(Base,0x009570DC) Loop %Lure% { ControlSend, , {c down}, ahk_pid %pid% Sleep, 86 ControlSend, , {c up}, ahk_pid %pid% Sleep, 1000 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Sleep, 2000 CaughtWater := ReadMemory(WaterAddress) Timer := 0 While Timer = 0 { Loop { If (CaughtWater = 1) { Break } if Timer = 40 { ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Break } Sleep, 1000 CaughtWater := ReadMemory(WaterAddress) Timer := Timer + 1 } } Timer := 0 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Sleep, 2000 } ExitApp Numpad7:: ExitApp getProcessBaseAddress() { Global Handle return DllCall( A_PtrSize = 4 ? "GetWindowLong" : "GetWindowLongPtr" , "Ptr", Handle , "Int", -6 , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit ; If DLL call fails, returned value will = 0 } GetAddressWater(Base, Address) { pointerBase := base + Address y1 := ReadMemory(pointerBase) y2 := ReadMemory(y1 + 0x144) y3 := ReadMemory(y2 + 0xe4) Return WaterAddress := (y3 + 0x70) } ReadMemory(MADDRESS) { Global pid VarSetCapacity(MVALUE,4,0) ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt") ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0) DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4) Loop 4 result += *(&MVALUE + A_Index-1) << 8*(A_Index-1) return, result }
CHOCO:Code:#WinActivateForce Numpad6:: WinGet, pidn, PID, A pid := pidn WinGet, hwnds, ID, A Handle := hwnds ;InputBox, Lure, Lure's, How many Lure's do you have in inventory Lure := 9999 Base := getProcessBaseAddress() LavaAddress := GetAddressLava(Base,0x009570DC) Loop %Lure% { ControlSend, , {c down}, ahk_pid %pid% Sleep, 86 ControlSend, , {c up}, ahk_pid %pid% Sleep, 1000 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Sleep, 2000 CaughtLava := ReadMemory(LavaAddress) Timer := 0 While Timer = 0 { Loop { If (CaughtLava = 1) { Break } if Timer = 40 { ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Break } Sleep, 1000 CaughtLava := ReadMemory(LavaAddress) Timer := Timer + 1 } } Timer := 0 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Sleep, 2000 } ExitApp Numpad7:: ExitApp getProcessBaseAddress() { Global Handle return DllCall( A_PtrSize = 4 ? "GetWindowLong" : "GetWindowLongPtr" , "Ptr", Handle , "Int", -6 , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit ; If DLL call fails, returned value will = 0 } GetAddressLava(Base, Address) { pointerBase := base + Address y1 := ReadMemory(pointerBase) y2 := ReadMemory(y1 + 0x144) y3 := ReadMemory(y2 + 0xe4) Return LavaAddress := (y3 + 0x514) } ReadMemory(MADDRESS) { Global pid VarSetCapacity(MVALUE,4,0) ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt") ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0) DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4) Loop 4 result += *(&MVALUE + A_Index-1) << 8*(A_Index-1) return, result }
Code:#WinActivateForce Numpad6:: WinGet, pidn, PID, A pid := pidn WinGet, hwnds, ID, A Handle := hwnds ;InputBox, Lure, Lure's, How many Lure's do you have in inventory Lure := 9999 Base := getProcessBaseAddress() ChocoAddress := GetAddressChoco(Base,0x009570DC) Loop %Lure% { ControlSend, , {c down}, ahk_pid %pid% Sleep, 86 ControlSend, , {c up}, ahk_pid %pid% Sleep, 1000 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Sleep, 2000 CaughtChoco := ReadMemory(ChocoAddress) Timer := 0 While Timer = 0 { Loop { If (CaughtChoco = 1) { Break } if Timer = 40 { ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Break } Sleep, 1000 CaughtChoco := ReadMemory(ChocoAddress) Timer := Timer + 1 } } Timer := 0 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Sleep, 2000 } ExitApp Numpad7:: ExitApp getProcessBaseAddress() { Global Handle return DllCall( A_PtrSize = 4 ? "GetWindowLong" : "GetWindowLongPtr" , "Ptr", Handle , "Int", -6 , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit ; If DLL call fails, returned value will = 0 } GetAddressChoco(Base, Address) { pointerBase := base + Address y1 := ReadMemory(pointerBase) y2 := ReadMemory(y1 + 0x144) y3 := ReadMemory(y2 + 0xe4) Return ChocoAddress := (y3 + 0x2c0) } ReadMemory(MADDRESS) { Global pid VarSetCapacity(MVALUE,4,0) ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt") ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0) DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4) Loop 4 result += *(&MVALUE + A_Index-1) << 8*(A_Index-1) return, result }
Code:#WinActivateForce Numpad6:: WinGet, pidn, PID, A pid := pidn WinGet, hwnds, ID, A Handle := hwnds Lure := 9999 Base := getProcessBaseAddress() WaterAddress := GetAddressWater(Base,0x0097E114) LavaAddress := GetAddressLava(Base,0x0097E114) ChocoAddress := GetAddressChoco(Base,0x0097E114) LureCount := 0 Loop %Lure% { LureCount := LureCount +1 ControlSend, , {c down}, ahk_pid %pid% Sleep, 86 ControlSend, , {c up}, ahk_pid %pid% Sleep, 500 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Catch := 0 PoleCheck := 40 Loop { If (Catch = 1) { break } else { If (PoleCheckN = PoleCheck) { ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% LureCount := 0 } else { } CaughtWater := ReadMemory(WaterAddress) CaughtLava := ReadMemory(LavaAddress) CaughtChoco := ReadMemory(ChocoAddress) If (CaughtWater = 1 or CaughtLava = 1 or CaughtChoco = 1) { ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Random, Wait, 2000, 3500 Sleep, %Wait% Catch := 1 } else { PoleCheckN := PoleCheckN +1 Sleep, 1000 } } } } ExitApp Numpad7:: ExitApp GetAddressWater(Base, Address) { pointerBase := base + Address y1 := ReadMemory(pointerBase) y2 := ReadMemory(y1 + 0x144) y3 := ReadMemory(y2 + 0xe4) Return WaterAddress := (y3 + 0x70) } GetAddressLava(Base, Address) { pointerBase := base + Address y1 := ReadMemory(pointerBase) y2 := ReadMemory(y1 + 0x144) y3 := ReadMemory(y2 + 0xe4) Return LavaAddress := (y3 + 0x514) } GetAddressChoco(Base, Address) { pointerBase := base + Address y1 := ReadMemory(pointerBase) y2 := ReadMemory(y1 + 0x144) y3 := ReadMemory(y2 + 0xe4) Return ChocoAddress := (y3 + 0x2c0) } getProcessBaseAddress() { Global Handle return DllCall( A_PtrSize = 4 ? "GetWindowLong" : "GetWindowLongPtr" , "Ptr", Handle , "Int", -6 , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit ; If DLL call fails, returned value will = 0 } ReadMemory(MADDRESS) { Global pid VarSetCapacity(MVALUE,4,0) ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt") ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0) DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4) Loop 4 result += *(&MVALUE + A_Index-1) << 8*(A_Index-1) return, result }
Code:#WinActivateForce Numpad3:: WinGet, PID, PID, A WinGet, HWND, ID, A Break := 0 Loop { ControlSend, , {c down}, ahk_pid %PID% Sleep, 86 ControlSend, , {c up}, ahk_pid %PID% Random, SleepTime, 3000, 6000 Sleep, %SleepTime% If (Break = 1) { break } else { Sleep, 30 } } return Numpad6:: WinGet, PID, PID, A WinGet, HWND, ID, A Address := 0x00961904 Base := getProcessBaseAddress(HWND) WaterAddress := GetAddressWater(PID, Base, Address) LavaAddress := GetAddressLava(PID, Base, Address) ChocoAddress := GetAddressChoco(PID, Base, Address) Break := 0 Loop { If (Break = 1) { Break } else { Sleep, 30 } ControlSend, , {c down}, ahk_pid %pid% Sleep, 86 ControlSend, , {c up}, ahk_pid %pid% Sleep, 1000 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Timer := 0 While Timer = 0 { Loop { CaughtWater := ReadMemory(PID, WaterAddress) CaughtLava := ReadMemory(PID, LavaAddress) CaughtChoco := ReadMemory(PID, ChocoAddress) If (CaughtWater = 1 or CaughtLava = 1 or CaughtChoco = 1) { Break } if Timer = 40 { Break } Sleep, 1000 Timer := Timer + 1 } } Timer := 0 ControlSend, , {f down}, ahk_pid %pid% Sleep, 86 ControlSend, , {f up}, ahk_pid %pid% Sleep, 2000 } return Numpad9:: Break := 1 return Numpad7:: ExitApp GetAddressWater(PID, Base, Address) { pointerBase := base + Address y1 := ReadMemory(PID, pointerBase) y2 := ReadMemory(PID, y1 + 0x144) y3 := ReadMemory(PID, y2 + 0xe4) Return WaterAddress := (y3 + 0x70) } GetAddressLava(PID, Base, Address) { pointerBase := base + Address y1 := ReadMemory(PID, pointerBase) y2 := ReadMemory(PID, y1 + 0x144) y3 := ReadMemory(PID, y2 + 0xe4) Return LavaAddress := (y3 + 0x514) } GetAddressChoco(PID, Base, Address) { pointerBase := base + Address y1 := ReadMemory(PID, pointerBase) y2 := ReadMemory(PID, y1 + 0x144) y3 := ReadMemory(PID, y2 + 0xe4) Return ChocoAddress := (y3 + 0x2c0) } getProcessBaseAddress(HWND) { return DllCall( A_PtrSize = 4 ? "GetWindowLong" : "GetWindowLongPtr" , "Ptr", HWND , "Int", -6 , "Int64") ; Use Int64 to prevent negative overflow when AHK is 32 bit and target process is 64bit ; If DLL call fails, returned value will = 0 } ReadMemory(PID, MADDRESS) { VarSetCapacity(MVALUE,4,0) ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", PID, "UInt") ;DllCall("ReadProcessMemory","UInt",ProcessHandle,"UInt",MADDRESS,"Str",MVALUE,"UInt",4,"UInt *",0) DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4) Loop 4 result += *(&MVALUE + A_Index-1) << 8*(A_Index-1) return, result }
Update log:
- 16/07/2015: added fishing in water, lava, choco script. Update the address for the newest patch. Added anti AFK
- 24/07/2015: Update the address for the newest patch. Update the code better than Zog's, no longer use Zog's fishing script. Combine Lava, Water and Choco into 1 script
- 29/07/2015: Update the address for the newest patch. Update the code now with ANTI-AFK function.
To-do-list:
- Get the auto drop boot working
- Auto HP