MpPassiveFishingBot v1.9 : Auto-updating pointer
Hey guys !
This is a fishing bot for Trove ! It works well and is really useful if you want to fish a lot ! It supports multiple accounts ! It's purpose is to be a light and fast bot ! No hotkeys ! No setup needed !
Requierments : AutoHotKey (last version I guess)
How it works :
Just grab the source code and paste it in a .ahk file and start it! You can also download it directly. (wait for @Psychotic @Danny @Dexter approval)
Start it (Tutorial here : http://www.mpgh.net/forum/showthread.php?t=1150041)
Press F on some water/lava/chocolate !
You can start it on as many accounts as you need !
If you want it to stop fishing just early reel the fishing rod ! (before a fish comes)
To close the bot simply close the tray icon !
Updating pointers
This version should self-update pointers, however I will have to find them before so it could take some time (less than 2-3h after a patch usually)
You can still find them by yourself or check the forums : I guess Nippy's Fishbot pointers should work. Edit the config file in the same directory as the .ahk file. Then restart the script.
Here is a tutorial for finding pointers : http://www.mpgh.net/forum/showthread.php?t=1150085
/!\ This won't work if you renamed Trove's window (Some account launchers are doing that, care)
/!\ People seems to have hurdles on non-english versions
/!\ Your fishing hotkey must be 'F'

Special thanks :
@reppin Who let me make a bot and use part of it's memory-reading code ! Check out his awesome fishing bot !
Disclaimer :
I will not add any bootdrop/destroy and loot-collect thing any soon ! This is a bot made for 5-min botting session when you go eating or to the toilets mid-game.
I will not be responsible of any ban you get by using this !
There are the virus scans :
https://virusscan.jotti.org/fr-FR/fi...job/xrstxt9fma
https://www.virustotal.com/en/file/2...is/1470252360/

NOTE : Old thread can be closed
This is a fishing bot for Trove ! It works well and is really useful if you want to fish a lot ! It supports multiple accounts ! It's purpose is to be a light and fast bot ! No hotkeys ! No setup needed !
Requierments : AutoHotKey (last version I guess)
How it works :
Just grab the source code and paste it in a .ahk file and start it! You can also download it directly. (wait for @Psychotic @Danny @Dexter approval)
Start it (Tutorial here : http://www.mpgh.net/forum/showthread.php?t=1150041)
Press F on some water/lava/chocolate !
You can start it on as many accounts as you need !
If you want it to stop fishing just early reel the fishing rod ! (before a fish comes)
To close the bot simply close the tray icon !
Updating pointers
This version should self-update pointers, however I will have to find them before so it could take some time (less than 2-3h after a patch usually)
You can still find them by yourself or check the forums : I guess Nippy's Fishbot pointers should work. Edit the config file in the same directory as the .ahk file. Then restart the script.
Here is a tutorial for finding pointers : http://www.mpgh.net/forum/showthread.php?t=1150085
/!\ This won't work if you renamed Trove's window (Some account launchers are doing that, care)
/!\ People seems to have hurdles on non-english versions
/!\ Your fishing hotkey must be 'F'
Source code
Code:
#SingleInstance force
#Persistent
SplashTextOn, 500,25, mpPassiveFishingBot, Initializing and updating pointers, please wait...
SetWorkingDir %A_ScriptDir%
Reeled := Object()
WaitRelauch := Object()
global Ver:=1.9
global _Motd:=""
global _Version:=1
global _Pointer:="0x00BAB82C"
global _wOffset:="0x8+0xb4+0x28+0x22c"
global _lOffset:="0x8+0xb4+0x28+0x6e8"
global _cOffset:="0x8+0xb4+0x28+0x488"
global iniFile := A_ScriptDir . "/config.ini"
global rld := 0
if (FileExist(iniFile)){
IniRead, _Version, %iniFile%, Global, _Version
IniRead, _Pointer, %iniFile%, Global, _Pointer
IniRead, _wOffset, %iniFile%, Global, _wOffset
IniRead, _lOffset, %iniFile%, Global, _lOffset
IniRead, _cOffset, %iniFile%, Global, _cOffset
IniRead, _Motd, %iniFile%, Global, _Motd
}
url := "https://dl.dropb" + "oxusercontent.com/u/52517919/MpFishingBotPointer.txt"
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("GET", url)
WebRequest.Send()
Contents := StrSplit(WebRequest.ResponseText, "$")
if (Contents[1] > _Version){
global _Version:=Contents[1]
global _Pointer:=Contents[2]
global _wOffset:=Contents[3]
global _lOffset:=Contents[4]
global _cOffset:=Contents[5]
TrayTip ,mpPassiveFishingBot, % "Values updated to :`nPointer : " _Pointer "`nWater offset : " _wOffset "`nLava offset : "_lOffset "`nChocolate offset : " _cOffset
Sleep, 10
}
global _newMotd:=Contents[8]
if (_Motd != _newMotd){
TrayTip ,mpPassiveFishingBot, %_newMotd%
Sleep, 10
}
if (Contents[6] > Ver){
num := Contents[7]
url = http://www.mpgh.net/forum/showthread.php?t=%num%
MsgBox, 4,, New version available, go to MPGH topic ? (press Yes or No)
IfMsgBox Yes
Run %url%
}
IniWrite, %_Version%, %iniFile%, Global, _Version
IniWrite, %_Pointer%, %iniFile%, Global, _Pointer
IniWrite, %_wOffset%, %iniFile%, Global, _wOffset
IniWrite, %_lOffset%, %iniFile%, Global, _lOffset
IniWrite, %_cOffset%, %iniFile%, Global, _cOffset
IniWrite, %_newMotd%, %iniFile%, Global, _Motd
Gui, 1:New
Gui 1:-Resize -MinimizeBox
Gui, 1:Add, Text,, Current version : %Ver%`n`nPointer : %_Pointer%`nWater offsets : %_wOffset%`nLava offset : %_lOffset%`nChocolate offset : %_cOffset%
Gui, 1:Add, Text, vAccounts w200
Gui, 1:Add, Text, vReeled w200
Gui, 1:Add, Button, gDebug , &Debug
Gui, 2:New
Gui 2:-Resize -MinimizeBox
Gui, 2:Add, ListView, w650, Window PID|Base Address|Water Adress|Water Value|Lava Adress|Lava Value|Chocolate Adress|Chocolate Value
Gui, 1:Show,,mpPassiveFishingBot
SetTimer, Scan, 999
SetTimer, Relaunch, 1999
SetTimer, UpdateGui, 250
SplashTextOff
TrayTip ,mpPassiveFishingBot, Bot started ! Press "f" on water/lava/chocolate !
return
Scan:
WinGet, l, list, Trove
Loop %l%
{
d := l%a_index%
WinGet, pid, PID, ahk_id %d%
WinGet, Handle, ID, ahk_pid %pid%
Base := getProcessBaseAddress(Handle)
wAddress := GetAddress(pid, Base, _Pointer, _wOffset)
wValue := ReadMemory(wAddress, pid)
lAddress := GetAddress(pid, Base, _Pointer, _lOffset)
lValue := ReadMemory(lAddress, pid)
cAddress := GetAddress(pid, Base, _Pointer, _cOffset)
cValue := ReadMemory(cAddress, pid)
if (cValue=1||lValue=1||wValue=1){
found := 0
for i, p in Reeled{
if (p=pid)
found := 1
}
for i, p in WaitRelauch{
if (p=pid)
found := 1
}
if (found = 0){
ControlSend, , {f down}, ahk_pid %pid%
Sleep, 90
ControlSend, , {f up}, ahk_pid %pid%
rld ++
Reeled.Insert(pid)
}
}
}
return
Relaunch:
WaitRelauch := Reeled
Reeled := Object()
Sleep, 2000
for i, p in WaitRelauch{
ControlSend, , {f down}, ahk_pid %p%
Sleep, 90
ControlSend, , {f up}, ahk_pid %p%
}
return
UpdateGui:
C := 0
WinGet, l, list, Trove
Loop %l%
C ++
GuiControl, 1:, Accounts, Active accounts : %C%
GuiControl, 1:, Reeled, Fish reeled : %rld%
return
GuiClose:
ExitApp
Debug:
SetTimer, UpdateDebugGui, 250
Gui, 2:Show, , mpPassiveFishingBotDebug
return
UpdateDebugGui:
Gui, 2:Default
LV_DELETE()
WinGet, l, list, Trove
Loop %l%
{
d := l%a_index%
WinGet, pid, PID, ahk_id %d%
WinGet, Handle, ID, ahk_pid %pid%
BaseAddress := getProcessBaseAddress(Handle)
BaseAddressHex := FHex(BaseAddress)
wAddress := GetAddress(pid, Base, _Pointer, _wOffset)
wAddressHex := FHex(wAddress)
wValue := ReadMemory(wAddress, pid)
lAddress := GetAddress(pid, Base, _Pointer, _lOffset)
lAddressHex := FHex(lAddress)
lValue := ReadMemory(lAddress, pid)
cAddress := GetAddress(pid, Base, _Pointer, _cOffset)
cAddressHex := FHex(cAddress)
cValue := ReadMemory(cAddress, pid)
LV_Add("", PID, BaseAddressHex, wAddressHex, wValue, lAddressHex, lValue, cAddressHex, cValue)
}
return
2GuiClose:
SetTimer, UpdateDebugGui, Off
Gui, 2:Hide
return
FHex( int, pad=0 ){
Static hx := "0123456789ABCDEF"
If !( 0 < int |= 0 )
Return !int ? "0x0" : "-" FHex( -int, pad )
s := 1 + Floor( Ln( int ) / Ln( 16 ) )
h := SubStr( "0x0000000000000000", 1, pad := pad < s ? s + 2 : pad < 16 ? pad + 2 : 18 )
u := A_IsUnicode = 1
Loop % s
NumPut( *( &hx + ( ( int & 15 ) << u ) ), h, pad - A_Index << u, "UChar" ), int >>= 4
Return h
}
getProcessBaseAddress(Handle){
Return DllCall( A_PtrSize = 4
? "GetWindowLong"
: "GetWindowLongPtr"
, "Ptr", Handle
, "Int", -6
, "Int64")
}
GetAddress(PID, Base, Address, Offset){
pointerBase := base + Address
y := ReadMemory(pointerBase,PID)
OffsetSplit := StrSplit(Offset, "+")
OffsetCount := OffsetSplit.MaxIndex()
Loop, %OffsetCount%{
if (a_index = OffsetCount) {
Address := (y + OffsetSplit[a_index])
}Else
if(a_index = 1) {
y := ReadMemory(y + OffsetSplit[a_index],PID)
}Else{
y := ReadMemory(y + OffsetSplit[a_index],PID)
}
}
Return Address
}
ReadMemory(MADDRESS, pid){
VarSetCapacity(MVALUE,4,0)
ProcessHandle := DllCall("OpenProcess", "Int", 24, "Char", 0, "UInt", pid, "UInt")
DllCall("ReadProcessMemory", "UInt", ProcessHandle, "Ptr", MADDRESS, "Ptr", &MVALUE, "Uint",4)
Loop 4
result += *(&MVALUE + A_Index-1) << 8*(A_Index-1)
Return, result
}
Screenshot

Version history
Code:
V1.0 (2670b): Initial release v1.1 (2781b): Timer correction Hard optimisation v1.2 (3659b): Now automatically updating pointers ! Few issues corrected v1.3 (3649b): Splash text Tray messages added (no longer messages box) Few optimisations v1.4 (3830b): Edited timer setup Less hurdles with bot stuck (reeling while fishing) v1.5 (4231b): Check for updates and open related thread MOTD added (for changelogs) Edited timer setup Less hurdles with bot stuck (reeling while fishing) v1.6 (4697b): GUI Added Removed useless stuff Now counting found accounts and reeled fish v1.7 (6237b): Debug added v1.8 (6267b): Corrected a cross-GUI fix v1.9 (6266b): Fixed a closing bug
Special thanks :
@reppin Who let me make a bot and use part of it's memory-reading code ! Check out his awesome fishing bot !
Disclaimer :
I will not add any bootdrop/destroy and loot-collect thing any soon ! This is a bot made for 5-min botting session when you go eating or to the toilets mid-game.
I will not be responsible of any ban you get by using this !
There are the virus scans :
https://virusscan.jotti.org/fr-FR/fi...job/xrstxt9fma
https://www.virustotal.com/en/file/2...is/1470252360/
NOTE : Old thread can be closed
