Fishing is a popular feature in more and more MMOs. At least for the developers. With little effort, players are tied to the game for a while. A time in which they just wait for a trigger—a fish biting—and then press a key or solve a mini-game.
It’s fun for a bit, but boring over a longer period. But when great rewards are tied to fishing, it can get annoying. Either I don’t go to the water, or I miss out on the rewards. This is exactly what was introduced in Destiny 2 with the Season of the Deep. Catch fish, turn in the fish, get rewards and progress (for more rewards). But in the long run, it’s just a boring reaction game.
Unless, of course, you automate the fishing fun with AutoHotkey. I described how to install and set up AutoHotkey in the post “Using the right characters with AutoHotkey”. The script mentioned there is the exact fishing script I want to briefly introduce to you here.
You still shouldn’t be too far from your computer, at least on Nessus. If the fishing spot disappears for a public event, you’ll be standing in toxic water and die after a few seconds. Additionally, you’ll be kicked for being AFK after a while.
But just copying and running a script would be boring. So for those interested, here’s a brief explanation of how it works:
At the beginning, basic settings for handling pixels and mouse movements are set. These are relative to the current location, making the resolution irrelevant for some parts of the script. The DELETE key is then set as the trigger, and the Destiny 2 window is focused. From then on, the actual program runs in a loop until it is paused with the PageUp key, terminated with the End key, or closed via the interface.
But what happens in the loop? First, we specify coordinates. These are the coordinates where the symbol for pressing the E key is located for a perfect catch, which reels in the line. PixelSearch monitors this area for color changes. When a large part of the area takes on the color of the button, the individual actions are executed. E is pressed to reel in the fish, a sound is played, and then the line is cast again with a longer press of E. In between, I’ve packed in a few “unnecessary” actions to counteract an AFK kick. That’s the whole secret behind it.
The script below is designed for a resolution of 1920x1080; the coordinates must be adjusted for other resolutions.
CoordMode, Pixel, Relative
CoordMode, Mouse, Relative
Menu, Tray, Icon, shell32.dll, 14
Delete::
WinActivate, Destiny 2
Loop {
upperLeftX := 878
upperLeftY := 727
lowerRightX := 898
lowerRightY := 747
PixelSearch, X, Y, %upperLeftX%, %upperLeftY%, %lowerRightX%, %lowerRightY%, 0x333333, 0, fast
if(ErrorLevel=0) {
Send, e
SoundPlay, %A_WinDir%\Media\ding.wav
Sleep, 3250
send, c
Sleep, 250
Send {e down}
Sleep, 1500
Send {e up}
}
else {
}
}
return
PgUp::Pause
End::ExitApp