Auto Boot Throw AHK Script

Posts 6171 of 71 · Page 5 of 5
uh...
Quote Originally Posted by vese View Post
Nice seems to work really well.
How do you know this if the servers have been down for almost 5 hours now? Just decided to post much later after testing? Lol


Waiting for the servers to go live and I will be giving it a shot. (fingers crossed that offsets aren't changed)

First post! Thanks for the submission

"
Edit : OFFSETS CREDIT TO PASHMINAL1
00961904

offset did not change, this adress also work for lava and choco
PS: i wont be updating pointer adress anymore, gonna move on to a new game
"
Cant test it, servers are down :|
Quote Originally Posted by die254 View Post
Cant test it, servers are down :|
They are up. Keep in mind there was a update. Things may not work.
Quote Originally Posted by Ghaly View Post
They are up. Keep in mind there was a update. Things may not work.
Have you recently checked?
The servers got shut down again due to database issues.
try this
Code:
#WinActivateForce

Numpad6::
WinGet, pidn, PID, A
pid := pidn
WinGet, hwnds, ID, A
Handle := hwnds
Lure := 9999
Base := getProcessBaseAddress()
WaterAddress := GetAddressWater(Base,0x00961904)
LavaAddress := GetAddressLava(Base,0x00961904)
ChocoAddress := GetAddressChoco(Base,0x00961904)

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
}
}
Imagesearch, Foundx, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 c:\boot.bmp
if errorlevel = 0
{
MouseClickDrag, Left, %FoundX%, %FoundY%, 779, 412
}
}
}
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
}
UPDATE - 31/07

 
Last working fishing bot with boot drop
#WinActivateForce

Numpad6::
WinGet, pidn, PID, A
pid := pidn
WinGet, hwnds, ID, A
Handle := hwnds
Lure := 9999
Base := getProcessBaseAddress()
WaterAddress := GetAddressWater(Base,0x00989230)
LavaAddress := GetAddressLava(Base,0x00989230)
ChocoAddress := GetAddressChoco(Base,0x00989230)

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
}
}
Imagesearch, Foundx, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *70 c:\boot.bmp
if errorlevel = 0
{
MouseClickDrag, Left, %FoundX%, %FoundY%, 779, 412
}
}
}
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
}


Base Adress thanks to @qztr
did it work for multiple client?
Quote Originally Posted by melekpek View Post
did it work for multiple client?
No, not yet.
Does this still work? I kinda want some confirmation before I use it.
Well, the script was implemented to all the bots around so you dont need to use it stand alone. But if you still want to use it make sure you follow the steps in the main post and you will be fine. anything else just ask
Would modding the boot to make it easier to detect works?

Like adding bright colors such as Pink and Blue on the boot model..


or probably detecting the game's boot id?
Posts 6171 of 71 · Page 5 of 5

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?