Joined: Thu Sep 27, 2007 6:04 pm
Does anyone have an updated version for AutoIt 3? Some of the variables used before no longer work.
Or a download of AutoIt 2?
Starting up WoW again, on a new server, and I'm cashless
Ok I decided to modify alot of things. I'm posting the version I'm using now. This is NOT a slight change to the original script, there are alot of changes.
First and foremost: you can use this version without any files from the original version.
Second: triggers on the splash now, not the bobber.
Third: Read the comments at the top of the script for more information.
Fourth: Be careful when pasting this, linewraps may need to be repaired.
Fifth: The basics for setting up the original WoW Fisher are the same. In other words, "fish" should be on the "1" key. I may have removed the "8" macro (I think I did, its late) it can be put back in fairly easily.
I hope this is useful to someone.
## Modified version of AutoIt Smith's "WoW Fisher" script
## Requires: AutoIt (probably requires v3) ... http://www.autoitscript.com/autoit3/
# ... EDIT the window name, see "Global $MyName = " lines 70-72 below
# ... To add/edit splash detection colors, edit $SplashColors lines 73-85
# Finding the value of the colors is a bit beyond this document.
# ... Since I'm skipping the use of a .ini file and I don't want to
# try to figure out AutoIt's arrays, there is no friendly color
# name. However the colors should be far less realm-specific
# So just cycle through them until you find one that works.
# Hint: Use a capture program like Gimp/Photoshop/etc
# You may need a video capture program to see the splash
# (my reflexes never caught the splash with a screen grabber)
# ... Turn off Hardware Cursor in your Video options
# ... Put your character somewhere that is facing a good spot to fish
# ... Go into first-person view
# ... Cast a couple of times to make sure you're hitting the water
# ... Start the script (must have AutoIt installed!)
# ... If the cursor seems to float to a spot in your GUI and then re-cast
# and repeats that over and over, it is probably catching the splash
# color in the GUI. Try a new splash color or hide the GUI with
# ... this thread: http://www.edgeofnowhere.cc/viewtopic.php?t=337317&start=195
# ... its sparse, yes, but deal. That link will start you on the page
# where I posted the first incarnation of THIS modification, but
# scour the thread from page 1 to get the background information
# on where it came from.
# ... No really, see that thread, and download the original WoW Fisher
# .zip file from AutoIt Smith's links and read README.TXT if you
# don't get it working.
# ... Post questions there. I'm not taking email nor PMs about this
# as I don't expect to use it all that much. I took this as an
# opportunity to play with a new scripting language.
## Purpose: to simplify the WoW Fisher AutoIt script and to make it easier
# to post everything that is needed in a single script.
# * Made the script self-contained. There was a LOT of goodness
# in the original package, and you might want to inspect it
# for ideas on setting up a macro, but things like the Update didn't work
# and people seem to want to be able to post modifications easily.
# * Removed the bit that tried to spot the bobber based on a custom color
# * Now simply matches the splash.
# ... Simply put if you don't catch the splash it wouldn't matter
# if you found the bobber.
# * Will work without selecting a color by using a default splash color
# * Made statistics work a little
# * Removed the anti-AFK jump
# ... you won't go afk since your mouse is moving and you are doing actions
# ... makes you look a tad less robotic
# ... I did put 1 jump in at the beginning of the program to make sure
# we're not sitting down.
# * Moved all color preferences into this script so that it can all be posted in 1 place
# * Will re-select the WoW window before every cast
# ... This may be annoying at first, but it prevents other windows popping
# up and taking focus, like an IM window, thus stopping your fishing.
## NOT DONE:
# Use the pause button instead now if you want to work in another
# window (or do something like a VMWare instance of WoW :).
# * Pause button
## Feel free to add it if you want, wasn't worth it to me to finish that bit
## "Stop" doesn't seem to work for me either but I can live.
## Info on an AutoIt Pause concept: http://www.autoitscript.com/forum/index.php?showtopic=33376
## The name you want to give your program.
# NOTE: CHANGE THIS! It will help prevent detection by Warden.
Global $MyName = "WoW I'm Fishy!"
## Default splash color we're looking for below. 0xF6F6F6 seems to work well
# NOTE: Any color may be interfered with by your GUI, for instances 0xF6F6F6
# will see parts of my inventory and my combat window and think those
# are splashes (I solve this by closing those areas when fish farming).
# You'll have to test to see which splash color gives you the best combination
# of caught fish vs. not being faked out by the UI.
# ALSO ... ANY color WILL fail to catch fish SOME of the time.
# Especially if you fish in many areas.
# To add new colors, just insert the hex code into the following string
# separating each color with a | (pipe).
Global $SplashColors = "0xF6F6F6|0xFEFEFE|0xF2FEFF"
## This is the line that fires off the warning when you first run the Fisher.
# NOTE: To stop the warning, just put a # at the beginning of the next line
MsgBox(64, $MyName, "Modified version, see script comments for more information.")
## No editing SHOULD be needed below this point
## Editing below this point can be bad.
Global $SplashDefault = 0xF6F6F6
Global $Splash = $SplashDefault
#Tidy_Parameters = /pr 1 /tc 0 /gd 0 /rels 1 /sci 1
Global $SetWin = 0, $Loop = 0, $OldSelect, $Casted = 0, $Sec = 28, $Timer, $SLeft, $SRight, $STop, $SBottom
$FishGUI = GUICreate($MyName, 225, 350)
GUISetFont(9, 800, 0, "MS Sans Serif")
$SplashPreview = GUICtrlCreateLabel("Splash color ... can change with the drop-down below.", 10, 65, 200, 75, -1, $WS_EX_CLIENTEDGE)
$ColorSelect = GUICtrlCreateCombo("", 10, 145, 205, 25)
$WindowDisplay = GUICtrlCreateInput("Window Not Found", 10, 10, 205, 20, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY))
$Start = GUICtrlCreateButton("Start", 10, 35, 100, 25, 0)
$STop = GUICtrlCreateButton("Stop", 115, 35, 100, 25, 0)
$Stats = GUICtrlCreateEdit("Statistics", 10, 175, 205, 170, BitOR($ES_READONLY, $WS_VSCROLL))
Global $StatsCasts = 0
Global $StatsTimeBegin = TimerInit()
Global $MaxTime = $Sec * 1000
WinActivate("World of Warcraft")
WinWaitActive("World of Warcraft")
Local $WindowPosition = WinGetPos("World of Warcraft")
Local $BHeight = 23
Local $BWidth = 4
$ScreenSize = WinGetClientSize("World of Warcraft")
$ScreenSize = $WindowPosition + $BWidth
$ScreenSize = $WindowPosition + $BHeight
$Top = $ScreenSize + (.15 * $ScreenSize)
$Bottom = $Top + (.40 * $ScreenSize) - 1
$Left = $ScreenSize + (.05 * $ScreenSize)
$Right = $Left + $ScreenSize - (.10 * 2.0 * $ScreenSize) - 1
MouseMove($Left, $Top, 2)
MouseMove($Right, $Top, 2)
MouseMove($Right, $Bottom, 2)
MouseMove($Left, $Bottom, 2)
While $Loop = 1
local $StatsHours, $StatsMins, $StatsSecs, $StatsTime, $StatsText, $StatsTimeDiff
$StatsHours = 0
$StatsMins = 0
$StatsSecs = 0
$StatsTimeDiff = TimerDiff($StatsTimeBegin)
$StatsTime = Int($StatsTimeDiff / 1000)
$StatsHours = Int($StatsTime / 3600)
if $StatsHours < 10 Then
$StatsHours = "0" & $StatsHours
$StatsTime = Mod($StatsTime, 3600)
$StatsMins = Int($StatsTime / 60)
if $StatsMins < 10 Then
$StatsMins = "0" & $StatsMins
$StatsSecs = Mod($StatsTime, 60)
if $StatsSecs < 10 Then
$StatsSecs = "0" & $StatsSecs
$StatsTimeDiff = $StatsHours & ":" & $StatsMins & ":" & $StatsSecs
$StatsCasts += 1
$StatsText = "Statistics Elapsed Time: " & $StatsTimeDiff & " Total Casts: " & $StatsCasts
$Timer = TimerInit()
WinActivate("World of Warcraft")
MouseMove(100, 100, 10)
$BobberPos = PixelSearch($Left, $Top, $Right, $Bottom, $Splash, 10, 3)
Until @error <> 1
If IsArray($BobberPos) Then
MouseMove($BobberPos, $BobberPos, 5)
$SLeft = $BobberPos - 35
$SRight = $SLeft + 60
$STop = $BobberPos - 35
$SBottom = $STop + 65
$SplashPos = PixelSearch($SLeft, $STop, $SRight, $SBottom, $Splash, 20, 2)
Until @error <> 1
If IsArray($SplashPos) Then MouseClick("right", $SplashPos, $SplashPos, 1, 0)
Until $Loop = 0
Local $Old = $SetWin
Case WinExists("World of Warcraft") And WinGetProcess("World of Warcraft") = ProcessExists("WoW.exe")
$SetWin = 1
$SetWin = 0
Case $Old = $SetWin
; Do Nothing (Window has not changed)
Case $SetWin = 0
GUICtrlSetData($WindowDisplay, "Window Not Found")
Case $SetWin = 1
GUICtrlSetData($WindowDisplay, "FOUND : " & WinGetTitle("World of Warcraft"))
If TimerDiff($Timer) >= $MaxTime Then
Local $Msg = GUIGetMsg()
Case $Msg = $GUI_EVENT_CLOSE
MsgBox(0, "Exit...", "Thank you for using World of Warcraft Fisher!")
Case _IsPressed("1B") And $Loop = 1 Or $Msg = $STop And $Loop = 1
$Loop = 0
MsgBox(0, $MyName, "Fisher has stopped.")
Case $Msg = $Start And $Loop = 0
$Loop = 1
Case $OldSelect <> GUICtrlRead($ColorSelect) And $Msg = $ColorSelect
$Splash = GUICtrlRead($ColorSelect)
$OldSelect = GUICtrlRead($ColorSelect)