Page 1 of 1

New Fish Bot

Posted: December 1st, 2004, 11:49 am
by tault_Broden
This code is used in AutoIt

Alright people, this took 3 hours. It's not hard. This will cast the line, click the bobber when it splashes, get the item and then do it all again. If you don't catch anything, it waits until the progress bar disappears and recasts. It searches for the splash between the top of the chat "Bubble" icon and a little over halfway up the window. This requires that you have fishing in your action bar as "0" and your gamma is defaulted. I'm releasing the code so you guys can make changes as you need.
The Pause/Break key turns it off.

Code:
; AutoIt Version: 3.0
; Language: English
; Platform: WinXP
; Author: Mibz (Pantless Krab)
;
; Script Function:
; WoW FishBot.
;
; Wow Window Title - World of Warcraft
; WoW Window Size - w1032 x h795
; classname=GxWindowClassD3d
; Colour of splash - 0xA2A67D
; 0xC1AD7A
; 0xD0C08D
; Position of item - x:44 y:226
; Position of hotkey 0 - x:409 y:768


; Prompt the user to run the script using Yes/No prompt
$run = MsgBox(4, "FishBot", "Do you want to run FishBot?")


; Exit if "No"
If $run = 7 Then
Exit
EndIf

; Initial !@#$%^&*
$time = MsgBox(4, "FishBot - Time of Day?", "Yes = Day | No = Night")
WinActivate("World of Warcraft")
HotKeySet("{PAUSE}", "EndScript")

; Script Start
While 1
MouseClick("left", 409, 768, 1, 2)
MouseMove(500, 500)
$start = TimerInit()
$dif = TimerDiff($start)
While 1
If $time = 6 Then
$coord = PixelSearch (5, 300, 1024, 560, 0xF6F6F6, 30, 4)
Else
$coord = PixelSearch (5, 300, 1024, 560, 0xEEEEEE, 55, 3)
EndIf

; 5, 300 - 1024, 560 can be changed if you want to search a wider area.
; Not recommended though since you can just adjust your view to fit all
; the water in that space. The bigger the area, the less likely it is to
; detect it.
; If the splash isn't getting detected then change the hex colour to
; something a bit closer. Top one is day, bottom is night.

If UBound($coord)>1 Then
MouseClick("right", $coord[0], $coord[1], 1, 3)
Sleep(500)
MouseClick("right", 44, 226, 1, 5)
ExitLoop
Else
Sleep(250)
$dif = TimerDiff($start)
If $dif > 30000 Then
ExitLoop
EndIf
EndIf
WEnd
WEnd


; Function to exit script
Func EndScript()
$exit = MsgBox(4, "FishBot", "End FishBot?")
If $exit = 6 Then
Exit
EndIf
EndFunc


This bot works 99.9% of the time for me. Every 5th or 6th cast during the night won't be recognized but day works flawlessly for me. If it doesn't work, change it, don't bug me.

View Source Here:
http://www.danidoo.bizland.com/snarg/FishBot.zip


--------------------------------------------------------------------------------

I'll explain this a bit more.

Code:
If $time = 6 Then
$coord = PixelSearch (5, 300, 1024, 560, 0xF6F6F6, 30, 4)
Else
$coord = PixelSearch (5, 300, 1024, 560, 0xEEEEEE, 55, 3)
EndIf


(5, 300, 1024, 560, 0xF6F6F6, 30, 4)
Searches from coordinates 5, 300 to 1024, 560
Looks for pixel colour 0xF6F6F6 and anything within 30 shade variances from it.
It looks at every 4th pixel.

To improve accuracy you can decrease that 4 to a 2 or 3. This will make it run slower and, on some systems, cause graphic lag that can cause it to miss the splash all together. I suggest you zoom into first person mode when using this and try to have the horizon (Or at least the end of your pond) at halfway vertically up the window.

If it's clicking something else then it's seeing a colour within the shade variances. This shouldn't happen during the day as the splash is PURE WHITE. The variance is in there just incase.
During the night it might catch some well lit water. I suggest facing a direction where the water is as dark as possible.
DO NOT HAVE THE MOON IN YOUR SIGHT.
If it's still clicking random !@#$%^&* during the night, decrease the 55 to between 35 and 45.
If you're really smart, you'll using the AutoItSpy program to figure out exactly what colour the splash is.

For anyone that doesn't know how to compile this, here ya go.
Download AutoIt 3. I don't know the address off hand. Save the text as a .au3 file.
Use AutoIt to compile and run the file. Make changes as needed. When it works great for you and your fishing holes, use AutToExe to turn it into an exe.

For anyone COMPLETELY unsure on how this works, here's a quick rundown.

Once run, the program makes the WoW window active, moves the cursor to your action bar slot "0" and clicks. It then constantly monitors the target area looking for a pixel of the specified colour. When it finds that pixel it right clicks it, waits a split second then right clicks where the fish or item appears. It then clicks "0" again and does it over.

READ THE AUTOIT HELP FILE, IT'S DAMN HANDY!

Posted: December 1st, 2004, 12:57 pm
by tault_gunslinger210
Could you in theory have it check for green blue or purple in the item name? This way you only loot good stuff an tho the fish?

Posted: December 1st, 2004, 2:40 pm
by tault_slidez
This code was just released publicly by someone else. I have been testing around with it and its not a "set it and forget it" type bot. You will need to do some tweaking around depending on the area you are going to fish. Like the info says, it best to download Autoit 3 and take a screenshot of the area you would like to fish with the bobber splashing. You will then need to use the autoit spy and find a pixel color code of that splash. Edit the fishing.au3 file accordingly with that hex code.

As far as making this more efficent, instead of it clicking the 0 hotkey button, recode the script a little just to have it press the 0 key. It will speed up fishing a bit. I also increased the sleep(500) to 1000 to help with it being too fast.

This will not work IN ALL AREAS!

Depending on the time of day and colors, it will mistake pixel colors for other things on the screen, such as spell icons and etc using the same pixel color. My advice is to choose 2 areas and find a specific hex color and test it out to make sure it works.

Posted: December 1st, 2004, 4:46 pm
by tault_herzog
i can get this to work to click my icon and then move the mouse...but then...after i change the hex values and everything..it still doesnt click the bobber when a fish is hooked...any help?

Posted: December 2nd, 2004, 4:50 am
by tault_camaxtli
good basis for a fishing macro, the detection of the bobber pop is too inconsistant to do any good. if you have any tips on tweeking this macro please advise.

Posted: December 2nd, 2004, 5:39 am
by tault_camaxtli
I just thought of a possable way to get the splash to be very distinct.
Is there any way to modify the splash graphic. If so this would allow you to make the spash graphic something like a florecent pink which would be easy to find with autoit or with actool.

any ideas on how to do this?

Posted: December 2nd, 2004, 2:48 pm
by tault_slidez
The hex code included with the bot is actually a very good one he used as a basis. During the daytime he states that the pixel is pure white. That is problem the pixel he chose. Ive had good success with the default hex value he chose, but when I tried the same thing in forlorn cavern I had to choose my own hex value.

The code is supposed to choose the hex value and 30 different shades from it, so it should work relatively well as long as you have a good screenshot of the splash itself in the area you want to fish.

As far as editing the graphic to use pink, thats a good idea, im not even sure if WoW does file checks when connecting..

junk

Posted: August 22nd, 2008, 3:12 pm
by tommyboy1969
all it does is move my chars around
throws line out then runs around