OutdatedZog's Fish Script v.1

Posts 1–15 of 122 · Page 1 of 9
Zog's Fish Script v.1

Decided to release a free script. Download it once approved or save the code below as .ahk format
You will need AutoHotkey as that's what its coded in

Not going to bother making a fancy post just yet.
- Use it the same as others, numpad 9 to activate
- You can run it multiple times if you copy + paste it
- It's not very efficient at the moment because it uses timers instead of actual checks that its fishing. The old method I used seems to have changed and I haven't been bothered to change it to the changed one


If you want improvements then you need to leave messages here about any issues you have

Code:
#WinActivateForce
Numpad9::
	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
	Base := getProcessBaseAddress()
	WaterAddress := GetAddressWater(Base, 0x009DD4DC)
	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

CheckFishingState(base)
{
	global FishingState
	pointerBase := base + 0x008EB8EC
    y1 := ReadMemory(pointerBase)
    y2 := ReadMemory(y1 + 0x234)
    y3 := ReadMemory(y2 + 0x80)
    y4 := ReadMemory(y3 + 0x458)
	y5 := ReadMemory(y4 + 0x410)
    y6 := y5 + 0x18
    Return FishingState := ReadMemory(y6)    
}



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 + 0x5D8)
    y3 := ReadMemory(y2 + 0x550)
    y4 := ReadMemory(y3 + 0x784)
	y5 := ReadMemory(y4 + 0x36C)
    Return WaterAddress := (y5 + 0x510)    
}

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 log:
V.1
- Initial release


Virus scans:
https://www.virustotal.com/en/file/d...is/1434231221/
http://virusscan.jotti.org/en/scanre...ba511c52ff7b46
Zog's Fish Script_mpgh.net.rar1005 B · 909 downloads Clean
Really nice! Works like a charm!
The only thing thats quite anooying is the fact that you get overrun by boots.... Would it be possible to make it auto-remove boots?
Good day.
Quote Originally Posted by matrx300 View Post
Really nice! Works like a charm!
The only thing thats quite anooying is the fact that you get overrun by boots.... Would it be possible to make it auto-remove boots?
Good day.
Yes I have a version with boot dropping but I am thinking of selling it as a private script. I can however make it play a beep sound when your inventory is full, is that something that would want?
Quote Originally Posted by Zoglono View Post
Yes I have a version with boot dropping but I am thinking of selling it as a private script. I can however make it play a beep sound when your inventory is full, is that something that would want?
Well i guess the sound would be better than nothing except the fact that i usually let these bots run over night so it wouldn't really help much...
Would prefer if you used the fishing check over a timer for efficiency. Besides that great script zog. Would be nice if we had the boot dropping but oh well.
Quote Originally Posted by darkjesse413 View Post
Would prefer if you used the fishing check over a timer for efficiency. Besides that great script zog. Would be nice if we had the boot dropping but oh well.
Quote Originally Posted by matrx300 View Post
Well i guess the sound would be better than nothing except the fact that i usually let these bots run over night so it wouldn't really help much...
It worked about a week ago, the pointer scan works for about 1-2 client restarts then it just stops. There is other values to check but I just haven't gotten around to it. I have checked and there is a lot of other values available to try so perhaps next patch/update.

I have some people wanting to buy the boot dropping version so it wouldn't be fair to them to also release it for free. Perhaps soon I will release it, nothing is definite yet.
Quote Originally Posted by Zoglono View Post
It worked about a week ago, the pointer scan works for about 1-2 client restarts then it just stops. There is other values to check but I just haven't gotten around to it. I have checked and there is a lot of other values available to try so perhaps next patch/update.

I have some people wanting to buy the boot dropping version so it wouldn't be fair to them to also release it for free. Perhaps soon I will release it, nothing is definite yet.
If you did release it i would be very grateful because these boots are really anooying, but it is your script, so do with it as you wish friend
As for buying, i can't really pay with anything since i don't have a bank account or anything of that sort just yet...
also does not seem to work in lava/chocolate.
Could you maybe add the functionality for that as well, or make 2 more scripts for them?
Thanks!
Quote Originally Posted by matrx300 View Post
also does not seem to work in lava/chocolate.
Could you maybe add the functionality for that as well, or make 2 more scripts for them?
Thanks!
next patch/update I will add both, I didn't really think people fished in them
Quote Originally Posted by Zoglono View Post
next patch/update I will add both, I didn't really think people fished in them
If anyone cares, here's some offsets for these for the current patch:

Common static offset for all of them: 0x9dd4dc

Offsets to tell if you're fishing in--
Water: 0x5d8, 0x7d8, 0x434
Lava: 0x5d8, 0x7d8, 0x1e4
Chocolate: 0x5d8, 0x7d8, 0x684

Offsets to tell if your lure is bobbing in--
Water: 0x2a8, 0x8c, 0x24c
Lava: 0x2a8, 0x8c, 0x6f0
Chocolate: 0x2a8, 0x8c, 0x49c

I might have swapped lava and chocolate in both. Of course, his current script already does water.
Quote Originally Posted by knismaps View Post
If anyone cares, here's some offsets for these for the current patch:

Common static offset for all of them: 0x9dd4dc

Offsets to tell if you're fishing in--
Water: 0x5d8, 0x7d8, 0x434
Lava: 0x5d8, 0x7d8, 0x1e4
Chocolate: 0x5d8, 0x7d8, 0x684

Offsets to tell if your lure is bobbing in--
Water: 0x2a8, 0x8c, 0x24c
Lava: 0x2a8, 0x8c, 0x6f0
Chocolate: 0x2a8, 0x8c, 0x49c

I might have swapped lava and chocolate in both. Of course, his current script already does water.
what value do you use for what you're currently fishing in
Quote Originally Posted by Zoglono View Post
what value do you use for what you're currently fishing in
I just check all three of the "tell if you're fishing in" in order until I find a 1. I haven't attempted to find a single memory value to differentiate.
Quote Originally Posted by Zoglono View Post

Decided to release a free script. Download it once approved or save the code below as .ahk format
You will need AutoHotkey as that's what its coded in

Not going to bother making a fancy post just yet.
- Use it the same as others, numpad 9 to activate
- You can run it multiple times if you copy + paste it
- It's not very efficient at the moment because it uses timers instead of actual checks that its fishing. The old method I used seems to have changed and I haven't been bothered to change it to the changed one


If you want improvements then you need to leave messages here about any issues you have

Code:
#WinActivateForce
Numpad9::
	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
	Base := getProcessBaseAddress()
	WaterAddress := GetAddressWater(Base, 0x009DD4DC)
	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

CheckFishingState(base)
{
	global FishingState
	pointerBase := base + 0x008EB8EC
    y1 := ReadMemory(pointerBase)
    y2 := ReadMemory(y1 + 0x234)
    y3 := ReadMemory(y2 + 0x80)
    y4 := ReadMemory(y3 + 0x458)
	y5 := ReadMemory(y4 + 0x410)
    y6 := y5 + 0x18
    Return FishingState := ReadMemory(y6)    
}



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 + 0x5D8)
    y3 := ReadMemory(y2 + 0x550)
    y4 := ReadMemory(y3 + 0x784)
	y5 := ReadMemory(y4 + 0x36C)
    Return WaterAddress := (y5 + 0x510)    
}

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 log:
V.1
- Initial release

I can't get multi client to work, it works for a couple mins than stops randomly. ive copied the fishing script and made another one. so i have two different instances of AHK running.. any idea?
Quote Originally Posted by darkjesse413 View Post
I can't get multi client to work, it works for a couple mins than stops randomly. ive copied the fishing script and made another one. so i have two different instances of AHK running.. any idea?
no reason why it should do that, numpad 7 stops all scripts so if you are pressing that maybe? Try put the different instances on different keys by changing 'Numpad9::' in the code
Posts 1–15 of 122 · Page 1 of 9
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?