ArrowOutdatedMpPassiveFishingBot v1.6 : Auto-updating pointer

Posts 115 of 77 · Page 1 of 6
MpPassiveFishingBot v1.6 : 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 :
Start it and 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 heck 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.


Well providing screenshots would be useless, let me know if you think about something to improve.

How you get this ?
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)

/!\ This won't work if you renamed Trove's window (Some account launchers are doing that, care)

 
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.6
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
	}

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, Add, Text,, Current version : %Ver%`n`nPointer : %_Pointer%`nWater offsets : %_wOffset%`nLava offset : %_lOffset%`nChocolate offset : %_cOffset%
Gui, Add, Text, vAccounts w200
Gui, Add, Text, vReeled w200
Gui -Resize -MinimizeBox
Gui, Show,,mpPassiveFishingBot

SetTimer, Scan, 999
SetTimer, Relaunch, 1999
SetTimer, UpdateGui, 250

SplashTextOff

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%
	}

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,, Accounts, Active accounts : %C%
	GuiControl,, Reeled, Fish reeled : %rld%
	return

GuiClose:
	ExitApp

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


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://www.virustotal.com/en/file/0...is/1469188676/
https://virusscan.jotti.org/fr-FR/fi...job/k6hu9xb2uq

NOTE : Old thread can be closed
mpPassiveFishingBotv1.6_mpgh.net.zip2 KB · 623 downloads Clean
Invalid Attachment specified. If you followed a valid link, please notify the administrator.
what??
Quote Originally Posted by chmin5230 View Post
Invalid Attachment specified. If you followed a valid link, please notify the administrator.
what??
Wait for approval
Or copy source code
Thanks as always, i'll download it tomorrow when i wake up!
If this works on multiple accounts, why do they randomly stop fishing?
Yeah, i tought only i had the "Problem". The fisher just RANDOMLY stoped, and i'm using it only on 1 account
I have it running and it just randomly stops. Why?
That's weird, I don't have this problem.
What does the GUI shows when it stops (number of client and reeled) ?
On how many accounts do you run it at the same time ?
The GUI shows that i have 1 account, and yes i'm using it on 1 account. 75+ fish and it stopped.
Quote Originally Posted by Zastava_101 View Post
The GUI shows that i have 1 account, and yes i'm using it on 1 account. 75+ fish and it stopped.
it is not really intended to be left for 40 min ^^"
I'll look forward tho
I run 4 at a time. Want me to supply a screen shot?
I probably shouldn't do this but i have it running for hours on end, haven't been banned yet.
Thanks dude you are the best :O
Bon travail, mais serait-il possible de faire toutes les X minutes, un checking et s'il y a des bottes les supprimaient ? Je plussoie que ce n'est pas une chose aisée à mettre en place.
Posts 115 of 77 · Page 1 of 6
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?