Working fishing bot?

Posts 115 of 26 · Page 1 of 2
Working fishing bot?
The others here are bugged for me after the patch yesterday

- - - Updated - - -

Is there any working bot?
#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,0x00964208)
Loop %Lure%
{
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
}
Quote Originally Posted by xNyx View Post
#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,0x00964208)
Loop %Lure%
{
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
}

this one is working fine for me
Quote Originally Posted by xNyx View Post
#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,0x00964208)
Loop %Lure%
{
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
}

thanks ! working fine for me ( boots thrower dont work for me/ or im 2 stupud :/)
Fishing bot with auto boots throw away:
showthread.php?p=10746376#post10746376
they dont work, dont know why
Anyone have a idea what i have to do ?
Slightly improved from die254's script.

Instructions:
  • Ctrl + j to start the bot
  • Ctrl + k to stop it
  • If you stop it mid fishing, it will catch the current fish and then stop.
  • Fishing will work on background, it simply wont drop boots unless trove is in focus.



Code:
#WinActivateForce

^j::
  shouldRun = 1
  if !setupDone
  {
    WinGet, pidn, PID, A
    pid := pidn
    WinGet, hwnds, ID, A
    Handle := hwnds
    Base := getProcessBaseAddress()
    WaterAddress := GetAddressWater(Base,0x00964208) 
    LavaAddress := GetAddressLava(Base,0x00964208) 
    ChocoAddress := GetAddressChoco(Base,0x00964208) 
    setupDone = 1
  }
  Loop
  {
    if shouldRun
    {
      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

      While Catch = 0 
      {
        If (PoleCheckN = PoleCheck)
        {
          ControlSend, , {f down}, ahk_pid %pid%
          Sleep, 86
          ControlSend, , {f up}, ahk_pid %pid%
        }
        
        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
        }
        
        FindAndDropBoots()
      }
    }
    else
    {
      Return
    }
  }
Return

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
}

FindAndDropBoots()
{
  Imagesearch, Foundx, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 c:\boot.bmp
  
  While errorlevel = 0
  {
    MouseClickDrag, Left, %FoundX%, %FoundY%, 779, 412
    Imagesearch, Foundx, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 c:\boot.bmp
  }
}

^k::
  shouldRun = 0
Return
Quote Originally Posted by nilotaviano View Post
Slightly improved from die254's script.

Instructions:
  • Ctrl + j to start the bot
  • Ctrl + k to stop it
  • If you stop it mid fishing, it will catch the current fish and then stop.
  • Fishing will work on background, it simply wont drop boots unless trove is in focus.



Code:
#WinActivateForce

^j::
  shouldRun = 1
  if !setupDone
  {
    WinGet, pidn, PID, A
    pid := pidn
    WinGet, hwnds, ID, A
    Handle := hwnds
    Base := getProcessBaseAddress()
    WaterAddress := GetAddressWater(Base,0x00964208) 
    LavaAddress := GetAddressLava(Base,0x00964208) 
    ChocoAddress := GetAddressChoco(Base,0x00964208) 
    setupDone = 1
  }
  Loop
  {
    if shouldRun
    {
      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

      While Catch = 0 
      {
        If (PoleCheckN = PoleCheck)
        {
          ControlSend, , {f down}, ahk_pid %pid%
          Sleep, 86
          ControlSend, , {f up}, ahk_pid %pid%
        }
        
        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
        }
        
        FindAndDropBoots()
      }
    }
    else
    {
      Return
    }
  }
Return

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
}

FindAndDropBoots()
{
  Imagesearch, Foundx, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 c:\boot.bmp
  
  While errorlevel = 0
  {
    MouseClickDrag, Left, %FoundX%, %FoundY%, 779, 412
    Imagesearch, Foundx, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *50 c:\boot.bmp
  }
}

^k::
  shouldRun = 0
Return
its work!!!ty
when i press the hotkeys nothing happn.
Quote Originally Posted by SlaiiZ View Post
when i press the hotkeys nothing happn.
Make sure you run the AHK Script as administrator, that's the only thing i can think of right now.
Quote Originally Posted by akke92 View Post
Make sure you run the AHK Script as administrator, that's the only thing i can think of right now.
tried it already. but nothing help
i got it. its work. but it didnt throw boots from my inv
Quote Originally Posted by SlaiiZ View Post
i got it. its work. but it didnt throw boots from my inv
For it to throw out the boots you need to download the boot.bmp that "Die254" uploaded in his thread
and make sure you save the picture inside C:\
Quote Originally Posted by akke92 View Post
For it to throw out the boots you need to download the boot.bmp that "Die254" uploaded in his thread
and make sure you save the picture inside C:\
"C:\" is it okay when i have the script and the .bmp on the desktop ?
Posts 115 of 26 · Page 1 of 2

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?