| User |
 |
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
jahf wrote: 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/ # ## Usage: # ... 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 # alt+z. # ## Documentation: # ... 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. # ## CHANGELIST: # * 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 Opt("WinTitleMatchMode", 3) #include <GUIConstants.au3> #Include <Misc.au3> 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") GUISetBkColor(0x9966CC) $SplashPreview = GUICtrlCreateLabel("Splash color ... can change with the drop-down below.", 10, 65, 200, 75, -1, $WS_EX_CLIENTEDGE) GUICtrlSetBkColor($SplashPreview, $Splash) $ColorSelect = GUICtrlCreateCombo("", 10, 145, 205, 25) GUICtrlSetData($ColorSelect,$SplashColors,$SplashDefault) GUICtrlSetColor($ColorSelect, 0x800080) $WindowDisplay = GUICtrlCreateInput("Window Not Found", 10, 10, 205, 20, BitOR($ES_CENTER, $ES_AUTOHSCROLL, $ES_READONLY)) GUICtrlSetColor($WindowDisplay, 0x800080) $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() GUISetState(@SW_SHOW) Global $MaxTime = $Sec * 1000 While 1 GUI() Sleep(5) WEnd GUIDelete($FishGUI) Exit Func Bot() WinActivate("World of Warcraft") WinWaitActive("World of Warcraft") Sleep(3000) Local $WindowPosition = WinGetPos("World of Warcraft") Local $BHeight = 23 Local $BWidth = 4 $ScreenSize = WinGetClientSize("World of Warcraft") ReDim $ScreenSize[4] $ScreenSize[2] = $WindowPosition[0] + $BWidth $ScreenSize[3] = $WindowPosition[1] + $BHeight $Top = $ScreenSize[3] + (.15 * $ScreenSize[1]) $Bottom = $Top + (.40 * $ScreenSize[1]) - 1 $Left = $ScreenSize[2] + (.05 * $ScreenSize[0]) $Right = $Left + $ScreenSize[0] - (.10 * 2.0 * $ScreenSize[0]) - 1 MouseMove($Left, $Top, 2) MouseMove($Right, $Top, 2) MouseMove($Right, $Bottom, 2) MouseMove($Left, $Bottom, 2) Send("{SPACE}") Do 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 EndIf $StatsTime = Mod($StatsTime, 3600) $StatsMins = Int($StatsTime / 60) if $StatsMins < 10 Then $StatsMins = "0" & $StatsMins EndIf $StatsSecs = Mod($StatsTime, 60) if $StatsSecs < 10 Then $StatsSecs = "0" & $StatsSecs EndIf $StatsTimeDiff = $StatsHours & ":" & $StatsMins & ":" & $StatsSecs $StatsCasts += 1 $StatsText = "Statistics Elapsed Time: " & $StatsTimeDiff & " Total Casts: " & $StatsCasts GUICtrlSetData($Stats,$StatsText) $Timer = TimerInit() WinActivate("World of Warcraft") MouseMove(100, 100, 10) Sleep(2000) Send("1") Sleep(3000) Do GUI() Sleep(5) $BobberPos = PixelSearch($Left, $Top, $Right, $Bottom, $Splash, 10, 3) CheckTimer(@error) Until @error <> 1 If IsArray($BobberPos) Then MouseMove($BobberPos[0], $BobberPos[1], 5) $SLeft = $BobberPos[0] - 35 $SRight = $SLeft + 60 $STop = $BobberPos[1] - 35 $SBottom = $STop + 65 MouseClick("right") EndIf Sleep(1000) Do GUI() Sleep(5) $SplashPos = PixelSearch($SLeft, $STop, $SRight, $SBottom, $Splash, 20, 2) CheckTimer(@error) Until @error <> 1 If IsArray($SplashPos) Then MouseClick("right", $SplashPos[0], $SplashPos[1], 1, 0) Sleep(3000) WEnd Until $Loop = 0 EndFunc ;==>Bot Func Window() Local $Old = $SetWin Select Case WinExists("World of Warcraft") And WinGetProcess("World of Warcraft") = ProcessExists("WoW.exe") $SetWin = 1 Case Else $SetWin = 0 EndSelect Select Case $Old = $SetWin ; Do Nothing (Window has not changed) Case $SetWin = 0 GUICtrlSetData($WindowDisplay, "") GUICtrlSetData($WindowDisplay, "Window Not Found") Case $SetWin = 1 GUICtrlSetData($WindowDisplay, "") GUICtrlSetData($WindowDisplay, "FOUND : " & WinGetTitle("World of Warcraft")) EndSelect EndFunc ;==>Window Func CheckTimer($PixelError) If TimerDiff($Timer) >= $MaxTime Then SetError(0) Return -1 EndIf SetError($PixelError) EndFunc ;==>CheckTimer Func GUI() Local $Msg = GUIGetMsg() Select Case $Msg = $GUI_EVENT_CLOSE MsgBox(0, "Exit...", "Thank you for using World of Warcraft Fisher!") GUIDelete($FishGUI) Exit Case _IsPressed("1B") And $Loop = 1 Or $Msg = $STop And $Loop = 1 $Loop = 0 WinActivate($MyName) WinWaitActive($MyName) MsgBox(0, $MyName, "Fisher has stopped.") Case $Msg = $Start And $Loop = 0 $Loop = 1 Bot() Case $OldSelect <> GUICtrlRead($ColorSelect) And $Msg = $ColorSelect $Splash = GUICtrlRead($ColorSelect) $OldSelect = GUICtrlRead($ColorSelect) GUICtrlSetBkColor($SplashPreview, $Splash) EndSelect Window() EndFunc ;==>GUI
|
|