The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.
If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.
Difference between revisions of "User:Shuofthefieryheat/MyUtilitiesPage/Shu Enhanced Clicker"
(New page: == Shuofthefieryheat Enhanced Clicker Page == '''Other Pages of Interest''' MyHomePage MyUtilitiesPage ==== Sh...) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
[[User:Shuofthefieryheat/MyUtilitiesPage | MyUtilitiesPage]] | [[User:Shuofthefieryheat/MyUtilitiesPage | MyUtilitiesPage]] | ||
+ | |||
+ | |||
+ | ==== Notes ==== | ||
+ | |||
+ | These macros where created and compiled on Vista x64 using AutoIt 3.0. If you are using a different OS or get an error when you run them, you need to get the AutoIt 3.0 compiler/editor utility and recompile the macro on your own system. The macro utilities and compilers can be found on the main macro page : [http://www.atitd.org/wiki/tale4/Macro Macros] | ||
==== Shu's Enhanced Clicker Macro ==== | ==== Shu's Enhanced Clicker Macro ==== | ||
− | This is an | + | This is an enhanced clicker based on '''Sithid's Clicker''' [http://www.atitd.org/wiki/tale4/User:Sithid/Macros/AutoIT/Clicker '''Sithid's Clicker''' ]. |
+ | |||
+ | |||
+ | To use the macro in game you click on the progam | ||
+ | Shu_One_Clicker_Enhanced_v2_0_d.exe | ||
+ | |||
+ | To Start the macro running do CTRL + p | ||
+ | |||
+ | To Exit the macro do CTRL + x | ||
+ | |||
+ | To see a help message do CTRL + h | ||
+ | |||
+ | The macro will prompt you for all the options. You can select the ones that make sense to have running. | ||
+ | |||
+ | It will repeatedly click a location that you designate. An icon or a line in a pinned menu. | ||
+ | |||
+ | It will monitor for Bright Red and skip clicking when its recognized. | ||
+ | |||
+ | It will also monitor for Green Stats and send you a msg when the food has run out. new: the status msg should properly display now | ||
+ | |||
+ | There is a counter for when you just want to collect X amount of something | ||
+ | new: option to display the counter status while collecting stuff | ||
+ | |||
+ | There is also a Delay Timer so you dont click too often. | ||
+ | |||
+ | You can use any or all of them at one time. | ||
+ | |||
+ | Once you have set the locations, you can RESET them to a NEW location by just hovering over the NEW location and doing the appropriate CTRL key for that item. | ||
+ | |||
+ | These are the options in the program | ||
+ | |||
+ | <pre> | ||
+ | Global $HelpMsg1 = "This clicker uses several controls: " | ||
+ | Global $HelpMsg2 = "CTRL+x = Exit " | ||
+ | Global $HelpMsg3 = "CTRL+p = Start/Pause " | ||
+ | Global $HelpMsg4 = "CTRL+1 = Set the Click Location " | ||
+ | Global $HelpMsg5 = "CTRL+2 = Set the Delay Timer " | ||
+ | Global $HelpMsg6 = "CTRL+3 = Red Spot Monitor " | ||
+ | Global $HelpMsg7 = "CTRL+4 = Green Spot Monitor " | ||
+ | Global $HelpMsg8 = "CTRL+5 = Set Counter " | ||
+ | Global $HelpMsg9 = "CTRL+h = This help message " | ||
+ | </pre> | ||
+ | |||
+ | ==== Shu's Enhanced Clicker Macro: Zip file with Source & EXE & Info File ==== | ||
+ | |||
+ | [http://www.atitd.org/wiki/tale4/Image:Shu_One_Clicker_Enhanced_v2_0_d.zip Shu's Enhanced Clicker Zip File ] | ||
+ | |||
+ | ==== Shu's Enhanced Clicker Macro Source ==== | ||
+ | |||
+ | <pre> | ||
+ | #cs -------------------------------------------------------------------------------------- | ||
+ | |||
+ | AutoIt Version 3.2.12.1 | ||
+ | |||
+ | Author: ShuoftheFieryHeat | ||
+ | Date: 03.13.09 | ||
+ | Version: 2.0.d | ||
+ | Script Function: | ||
+ | Repeat Clicker - With Prompt for Delay Time. | ||
+ | Changed all inputs to use the CTRL Key | ||
+ | so that two copies of this program can work | ||
+ | |||
+ | This version should allow you to pick 2 spots to monitor | ||
+ | 1 spot is for Bright Red | ||
+ | 2 spot is for Green | ||
+ | |||
+ | This allows you to skip performing an action when it cannot complete | ||
+ | and also sends a message that your food buffs are gone. | ||
+ | |||
+ | Added: a Counter = collect exactly what you want | ||
+ | Added: option to display counter status. | ||
+ | |||
+ | Bug Fix: Green Monitor Food Out Msg | ||
+ | |||
+ | Based on the work of Sithid. | ||
+ | |||
+ | Author: Sithid | ||
+ | Date: 07.12.08 | ||
+ | Version: 1.3 | ||
+ | |||
+ | Script Function: | ||
+ | Repeat Clicker - Automagical | ||
+ | |||
+ | |||
+ | #ce -------------------------------------------------------------------------------------- | ||
+ | |||
+ | #include <GUIConstants.au3> | ||
+ | #include <GUIConstantsEx.au3> | ||
+ | #include <WindowsConstants.au3> | ||
+ | #include <Misc.au3> | ||
+ | #Include <Array.au3> | ||
+ | |||
+ | Opt( "MustDeclareVars", 1 ) | ||
+ | |||
+ | GLOBAL $dll = DllOpen("user32.dll") | ||
+ | |||
+ | Global $Paused = False | ||
+ | |||
+ | Global $ClickPosSet = False | ||
+ | Global $ClickPos[2] | ||
+ | |||
+ | Global $RedPosSet = False | ||
+ | Global $RedPos[2] | ||
+ | Global $isRed = False | ||
+ | Global $BrightRed = 0xFF0000 | ||
+ | |||
+ | Global $GreenPosSet = False | ||
+ | Global $GreenPos[2] | ||
+ | Global $isGreen = False | ||
+ | Global $BrightGreen = 0x009900 | ||
+ | |||
+ | Global $ShowBuffMsg = False | ||
+ | Global $ShowBuffMsgTimes = 2 | ||
+ | Global $ShowBuffMsgCurrentCount = 0 | ||
+ | |||
+ | Global $Delay = 30000; time in ms between clicks about 30 seconds | ||
+ | |||
+ | Global $GoodToGo = False | ||
+ | |||
+ | Global $CountItems = False | ||
+ | Global $CurrentItemCount = 0 | ||
+ | Global $QuantityToCount = 0 | ||
+ | |||
+ | Global $DisplayCounterStatus = False | ||
+ | Global $DisplayCounterStatusFadeValue = 2000 ; have msg fade in 2 seconds | ||
+ | Global $FrequencyToShowCount = 10 | ||
+ | Global $msgholder ;changeable msg text | ||
+ | |||
+ | |||
+ | Global $HelpMsg1 = "This clicker uses several controls: " | ||
+ | Global $HelpMsg2 = "CTRL+x = Exit " | ||
+ | Global $HelpMsg3 = "CTRL+p = Start/Pause " | ||
+ | Global $HelpMsg4 = "CTRL+1 = Set the Click Location " | ||
+ | Global $HelpMsg5 = "CTRL+2 = Set the Delay Timer " | ||
+ | Global $HelpMsg6 = "CTRL+3 = Red Spot Monitor " | ||
+ | Global $HelpMsg7 = "CTRL+4 = Green Spot Monitor " | ||
+ | Global $HelpMsg8 = "CTRL+5 = Set Counter " | ||
+ | Global $HelpMsg9 = "CTRL+h = This help message " | ||
+ | |||
+ | HotKeySet( "^x", "Terminate" ) | ||
+ | HotKeySet( "^X", "Terminate" ) | ||
+ | |||
+ | HotKeySet( "^p", "TogglePause" ) | ||
+ | HotKeySet( "^P", "TogglePause" ) | ||
+ | HotKeySet("^{PAUSE}", "TogglePause") | ||
+ | |||
+ | ; These are now enabled when doing the setup | ||
+ | ;HotKeySet( "^1", "SetClickPos" ) | ||
+ | ;HotKeySet( "^2", "SetClickDelay" ) | ||
+ | ;HotKeySet( "^3", "SetRedPos" ) | ||
+ | ;HotKeySet( "^4", "SetGreenPos" ) | ||
+ | ;HotKeySet( "^5", "SetCounterAmount" ) | ||
+ | |||
+ | |||
+ | HotKeySet( "^h", "HelpMsg" ) | ||
+ | HotKeySet( "^H", "HelpMsg" ) | ||
+ | |||
+ | WinWaitActive( "eGenesis Client" ); | ||
+ | |||
+ | TogglePause() | ||
+ | |||
+ | SetupClickPositions() | ||
+ | |||
+ | Main() | ||
+ | |||
+ | |||
+ | Func HelpMsg() | ||
+ | ; Using a single set of messages to give instructions | ||
+ | Local $msg | ||
+ | |||
+ | $msg = ( $HelpMsg1 & @CRLF & @CRLF & @TAB & $HelpMsg2 & @CRLF & @TAB & $HelpMsg3 _ | ||
+ | & @CRLF & @TAB & $HelpMsg4 & @CRLF & @TAB & $HelpMsg5 & @CRLF & @TAB & $HelpMsg6 _ | ||
+ | & @CRLF & @TAB & $HelpMsg7 & @CRLF & @TAB & $HelpMsg8 & @CRLF & @TAB & $HelpMsg9 ) | ||
+ | |||
+ | MsgBox(0x40000,"Info Box", $msg) | ||
+ | EndFunc | ||
+ | |||
+ | Func MsgFoodOut() | ||
+ | ;send msg that the food buff is gone msg lasts 4 seconds | ||
+ | ;only do this 2 times - we don't need constant reminders | ||
+ | |||
+ | MsgBox( 0x40040, "Food All Gone", "Food buff is all gone." _ | ||
+ | & @CRLF & @CRLF & "This message will display twice. " & @CRLF & _ | ||
+ | "(" & "... message going away in 4 seconds...." & ")", 4 ) | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func MsgCountDone() | ||
+ | ;send msg that the count has been reached | ||
+ | |||
+ | MsgBox( 0x40000, "Count Complete", "You have collected: " _ | ||
+ | & $CurrentItemCount & " of " & $QuantityToCount) | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func ToolTipCounterStatus() | ||
+ | ;send tooltip with the current count | ||
+ | Local $WinPos [4] | ||
+ | Local $i = 0 | ||
+ | Local $DisplayToolTip = True | ||
+ | |||
+ | ;find the bottom right corner for the tooltip display | ||
+ | $WinPos = WinGetPos( "eGenesis Client" ); | ||
+ | |||
+ | For $i = 0 To 3 Step 1 | ||
+ | If $WinPos[$i] < 0 Then | ||
+ | ;window is minimized skip this | ||
+ | $DisplayToolTip = False | ||
+ | ExitLoop | ||
+ | EndIf | ||
+ | Next | ||
+ | |||
+ | If $DisplayToolTip Then | ||
+ | ; display the tip near the middle bottom of the screen | ||
+ | ToolTip("You have collected: " _ | ||
+ | & $CurrentItemCount & " of " & $QuantityToCount, int($WinPos[2]/2) , int($WinPos[3]-50) ,"Count Status", 1, 2 ) | ||
+ | |||
+ | ;wait just a bit and then clear the tooltip | ||
+ | Sleep($DisplayCounterStatusFadeValue) | ||
+ | ToolTip("") | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func SetupClickPositions() | ||
+ | ; The setup of this macro needs some user directions | ||
+ | |||
+ | HelpMsg() | ||
+ | |||
+ | SetRedLocation() | ||
+ | SetGreenLocation() | ||
+ | SetClickDelay() | ||
+ | SetCounterAmount() | ||
+ | SetClickLocation() | ||
+ | |||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func LookForInput_Red() | ||
+ | |||
+ | If _IsPressed(11) Then | ||
+ | If _IsPressed(33) Or _IsPressed(63) Then | ||
+ | Return(True) | ||
+ | Else | ||
+ | Return(False) | ||
+ | EndIf | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func LookForInput_Green() | ||
+ | |||
+ | If _IsPressed(11) Then | ||
+ | If _IsPressed(34) Or _IsPressed(64) Then | ||
+ | Return(True) | ||
+ | Else | ||
+ | Return(False) | ||
+ | EndIf | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func LookForInput_Location() | ||
+ | |||
+ | If _IsPressed(11) Then | ||
+ | If _IsPressed(31) Or _IsPressed(61) Then | ||
+ | Return(True) | ||
+ | Else | ||
+ | Return(False) | ||
+ | EndIf | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func SetRedLocation() | ||
+ | Local $yesno | ||
+ | |||
+ | $yesno = MsgBox(0x40004,"Red Spot Setup" ,"Do you want to monitor for Bright Red?") | ||
+ | |||
+ | If $yesno == 6 Then | ||
+ | |||
+ | MsgBox( 0x40000, "Red Spot Location", _ | ||
+ | "Please hover over the place you want to monitor for Bright RED conditon and press CTRL+3.") | ||
+ | |||
+ | While Not $RedPosSet | ||
+ | |||
+ | ; now we have to look for the CTRL + 3 keys | ||
+ | $GoodToGo = LookForInput_Red() | ||
+ | |||
+ | ;when captured set the position | ||
+ | If $GoodToGo Then | ||
+ | SetRedPos() | ||
+ | ;enable the hotkey for this feature | ||
+ | HotKeySet( "^3", "SetRedPos" ) | ||
+ | MsgBox(0x40000,"Red Spot", _ | ||
+ | "Red Spot has been recorded. You can now use CTRL+3 to reset it") | ||
+ | |||
+ | EndIf | ||
+ | WEnd | ||
+ | |||
+ | Else | ||
+ | MsgBox( 0x40000, "Red Spot Location", "Red will not be monitored. " ) | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func SetGreenLocation() | ||
+ | Local $yesno | ||
+ | |||
+ | $yesno = MsgBox(0x40004,"Green Spot Setup" ,"Do you want to monitor for Green?") | ||
+ | |||
+ | If $yesno == 6 Then | ||
+ | |||
+ | MsgBox( 0x40000, "Green Spot Location", _ | ||
+ | "Please hover over the place you want to monitor for GREEN conditon and press CTRL+4.") | ||
+ | |||
+ | While Not $GreenPosSet | ||
+ | |||
+ | ; now we have to look for the CTRL + 4 keys | ||
+ | $GoodToGo = LookForInput_Green() | ||
+ | |||
+ | ;when captured set the position | ||
+ | If $GoodToGo Then | ||
+ | SetGreenPos() | ||
+ | ;enable the hotkey for this feature | ||
+ | HotKeySet( "^4", "SetGreenPos" ) | ||
+ | MsgBox(0x40000,"Green Spot", _ | ||
+ | "Green Spot has been recorded. You can now use CTRL+4 to reset it") | ||
+ | |||
+ | EndIf | ||
+ | WEnd | ||
+ | |||
+ | Else | ||
+ | MsgBox(0x40000, "Green Spot Location", "Green will not be monitored. " ) | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func SetClickDelay() | ||
+ | Local $yesno | ||
+ | |||
+ | $yesno = MsgBox(0x40004,"Click Delay Setup" ,"Do you want to set a Click Delay?") | ||
+ | |||
+ | If $yesno == 6 Then | ||
+ | $Delay = InputBox( "Pause Delay", "Please enter the delay time between clicks. 30000 is about 30 seconds.", $Delay) | ||
+ | $Delay = Int($Delay) | ||
+ | HotKeySet( "^2", "SetClickDelay" ) | ||
+ | MsgBox( 0x40000, "Pause Delay", "The Pause Delay is now set for: " & $Delay & @CRLF & @CRLF & _ | ||
+ | "You can now use CTRL+2 to reset it") | ||
+ | Else | ||
+ | $Delay = 1 | ||
+ | MsgBox( 0x40000, "Pause Delay", "Pause Delay will not be used. " ) | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func SetClickLocation() | ||
+ | |||
+ | MsgBox(0x40000,"Click Location Setup" ,"You MUST set a Click Location." & @CRLF & @CRLF & _ | ||
+ | "Please hover over the place you want to repeat click and press CTRL+1.") | ||
+ | |||
+ | While Not $ClickPosSet | ||
+ | |||
+ | ; now we have to look for the CTRL + 1 keys | ||
+ | $GoodToGo = LookForInput_Location() | ||
+ | |||
+ | ;when captured set the position | ||
+ | If $GoodToGo Then | ||
+ | SetClickPos() | ||
+ | ;enable the hotkey for this feature | ||
+ | HotKeySet( "^1", "SetClickPos" ) | ||
+ | MsgBox(0x40000,"Click Location", _ | ||
+ | "Click Location has been recorded. You can now use CTRL+1 to reset it") | ||
+ | EndIf | ||
+ | WEnd | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func SetCounterAmount() | ||
+ | ; how much to gather | ||
+ | |||
+ | Local $yesno | ||
+ | |||
+ | $yesno = MsgBox(0x40004,"Counter Setup" ,"Do you want to set a Counter?") | ||
+ | |||
+ | If $yesno == 6 Then | ||
+ | $QuantityToCount = InputBox( "Counter", "Please enter the quanity you want to collect. 0 will be unlimited.", $QuantityToCount) | ||
+ | $QuantityToCount = Int($QuantityToCount) | ||
+ | |||
+ | If $QuantityToCount > 0 Then | ||
+ | $CountItems = True | ||
+ | $CurrentItemCount = 0 ;start counter over | ||
+ | SetCounterDisplay() ;get frequency of msg popups | ||
+ | Else | ||
+ | $CountItems = False | ||
+ | EndIf | ||
+ | |||
+ | ;enable the hotkey for this feature | ||
+ | HotKeySet( "^5", "SetCounterAmount" ) | ||
+ | MsgBox( 0x40000, "Counter Setting", "The Counter is now set for: " & $QuantityToCount &@CRLF & _ | ||
+ | $msgholder & @CRLF & @CRLF & "You can now use CTRL+5 to reset it") | ||
+ | Else | ||
+ | $CountItems = False | ||
+ | $QuantityToCount = 0 | ||
+ | MsgBox( 0x40000, "Counter", "A counter will not be used. " ) | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func SetCounterDisplay() | ||
+ | ; setup to show a running count | ||
+ | |||
+ | Local $yesno | ||
+ | |||
+ | $yesno = MsgBox(0x40004,"Counter Info Setup" ,"Do you want to monitor the status of the Count?") | ||
+ | |||
+ | If $yesno == 6 Then | ||
+ | $FrequencyToShowCount = InputBox( "Counter", "Please enter how often you want the count message to appear." & _ | ||
+ | @CRLF & "ex: 10 = when you've gathered every 10th item" & @CRLF & " 0 will be continuous updates.", $FrequencyToShowCount) | ||
+ | $FrequencyToShowCount = Int($FrequencyToShowCount) | ||
+ | |||
+ | If $FrequencyToShowCount >= 0 Then | ||
+ | $DisplayCounterStatus = True | ||
+ | ; add frequency to the confirmation MsgBox | ||
+ | $msgholder = ("The Counter Display Frequency is now set for: " & $FrequencyToShowCount) | ||
+ | Else | ||
+ | $DisplayCounterStatus = False | ||
+ | $msgholder = "" | ||
+ | EndIf | ||
+ | |||
+ | MsgBox( 0x40000, "Display Counter Frequency Setting", "The Counter Display Frequency is now set for: " & $FrequencyToShowCount) | ||
+ | Else | ||
+ | $DisplayCounterStatus = False | ||
+ | MsgBox( 0x40000, "Counter", "The counter will not be monitored. " ) | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func SetRedPos() | ||
+ | $RedPos = MouseGetpos() | ||
+ | $RedPosSet = True | ||
+ | EndFunc | ||
+ | |||
+ | Func SetGreenPos() | ||
+ | $GreenPos = MouseGetpos() | ||
+ | $GreenPosSet = True | ||
+ | EndFunc | ||
+ | |||
+ | Func SetClickPos() | ||
+ | $ClickPos = MouseGetpos() | ||
+ | $ClickPosSet = True | ||
+ | EndFunc | ||
+ | |||
+ | Func CheckforRed() | ||
+ | ;look for bright red | ||
+ | |||
+ | Local $OldMouseLoc[2] | ||
+ | Local $coord[2] | ||
+ | |||
+ | If $RedPosSet Then | ||
+ | $OldMouseLoc = MouseGetPos() | ||
+ | MouseMove( $RedPos[0], $RedPos[1], 1) | ||
+ | |||
+ | ; Find a pure red pixel or a red pixel within 50 shades variations of pure red | ||
+ | $coord = PixelSearch( $RedPos[0], $RedPos[1], $RedPos[0]+70, $RedPos[1]+5, $BrightRed, 50 ) | ||
+ | If Not @error Then | ||
+ | $isRed = True | ||
+ | ;MsgBox(0x40000, "X and Y are:", "Red was found at: " & $coord[0] & "," & $coord[1]) | ||
+ | Else | ||
+ | $isRed = False | ||
+ | ;MsgBox(0x40000, "X and Y are:", "Red was NOT found at: " & $RedPos[0] & "," & $RedPos[1]) | ||
+ | EndIf | ||
+ | |||
+ | ;return mouse to previous location | ||
+ | MouseMove( $OldMouseLoc[0], $OldMouseLoc[1], 1) | ||
+ | |||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func CheckforGreen() | ||
+ | ;look for bright green | ||
+ | |||
+ | Local $OldMouseLoc[2] | ||
+ | Local $coord[2] | ||
+ | |||
+ | If $GreenPosSet Then | ||
+ | $OldMouseLoc = MouseGetPos() | ||
+ | MouseMove( $GreenPos[0], $GreenPos[1], 1) | ||
+ | |||
+ | ; Find a pure green pixel or a green pixel within 50 shades variations of pure green | ||
+ | $coord = PixelSearch( $GreenPos[0], $GreenPos[1], $GreenPos[0]+70, $GreenPos[1]+5, $BrightGreen, 50 ) | ||
+ | If Not @error Then | ||
+ | $isGreen = True | ||
+ | $ShowBuffMsg = True | ||
+ | ;MsgBox(0x40000, "X and Y are:", "Green was found at: " & $coord[0] & "," & $coord[1]) | ||
+ | Else | ||
+ | $isGreen = False | ||
+ | ;MsgBox(0x40000, "X and Y are:", "Green was NOT found at: " & $GreenPos[0] & "," & $GreenPos[1]) | ||
+ | EndIf | ||
+ | |||
+ | ;return mouse to previous location | ||
+ | MouseMove( $OldMouseLoc[0], $OldMouseLoc[1], 1) | ||
+ | |||
+ | EndIf | ||
+ | |||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func DoClickLocation() | ||
+ | ; clicks the target location | ||
+ | |||
+ | Local $OldMouseLoc[2] | ||
+ | |||
+ | If $ClickPosSet Then | ||
+ | $OldMouseLoc = MouseGetPos() | ||
+ | |||
+ | MouseClick( "left", $ClickPos[0], $ClickPos[1], 1) | ||
+ | ;MsgBox(0x40000, "Location Click:", "Clicked location at: " & $ClickPos[0] & "," & $ClickPos[1]) | ||
+ | |||
+ | ;Count the item if counter is enabled | ||
+ | If $CountItems Then | ||
+ | CheckCounter() | ||
+ | |||
+ | ;If the counter has been turned off | ||
+ | ;then we got our quota and since we are done we should pause the script | ||
+ | If Not $CountItems Then | ||
+ | MsgCountDone() | ||
+ | |||
+ | MsgBox(0x40000, "Paused Now", "We have now gotten our quota so setting to Pause.") | ||
+ | TogglePause() | ||
+ | |||
+ | EndIf | ||
+ | |||
+ | EndIf | ||
+ | |||
+ | ;return mouse to previous location | ||
+ | MouseMove( $OldMouseLoc[0], $OldMouseLoc[1], 1) | ||
+ | |||
+ | Else | ||
+ | MsgBox(0x40000,"Location Click Error", "ERROR: Click Location is NOT set.") | ||
+ | |||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func CheckCounter() | ||
+ | ; count and check the values | ||
+ | |||
+ | If $CountItems Then | ||
+ | $CurrentItemCount += 1 | ||
+ | EndIf | ||
+ | |||
+ | If $QuantityToCount > $CurrentItemCount Then | ||
+ | DoCounterMsg() | ||
+ | Else | ||
+ | $CountItems = False | ||
+ | $DisplayCounterStatus = False | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func DoCounterMsg() | ||
+ | ; show the counter amount | ||
+ | Local $ModValue | ||
+ | |||
+ | If $DisplayCounterStatus Then | ||
+ | |||
+ | If $FrequencyToShowCount > 0 Then | ||
+ | $ModValue = Mod($CurrentItemCount, $FrequencyToShowCount) | ||
+ | If $ModValue == 0 Then | ||
+ | ToolTipCounterStatus() ;this is a tooltip msg | ||
+ | EndIf | ||
+ | Else | ||
+ | ToolTipCounterStatus() ;this is a tooltip msg | ||
+ | EndIf | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | |||
+ | Func DoBuffMsgOut() | ||
+ | ; display the buff out message 2 times | ||
+ | |||
+ | If $ShowBuffMsg Then | ||
+ | If $ShowBuffMsgCurrentCount < $ShowBuffMsgTimes Then | ||
+ | MsgFoodOut() | ||
+ | $ShowBuffMsgCurrentCount += 1 | ||
+ | Else | ||
+ | $ShowBuffMsg = False | ||
+ | $ShowBuffMsgCurrentCount = 0 | ||
+ | EndIf | ||
+ | EndIf | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func Main() | ||
+ | |||
+ | #cs | ||
+ | Work: | ||
+ | We have Red and Green to monitor | ||
+ | We have the Delay to wait | ||
+ | We have the Location to Click | ||
+ | |||
+ | Rule 1: When Red do not click | ||
+ | Rule 2: If Green is out then do BuffMsg | ||
+ | Rule 3: Wait for Timer to Click | ||
+ | #ce | ||
+ | |||
+ | Do | ||
+ | WinWaitActive( "eGenesis Client" ); | ||
+ | |||
+ | CheckforRed() | ||
+ | CheckforGreen() | ||
+ | |||
+ | If $GreenPosSet Then | ||
+ | If $isGreen Then | ||
+ | ; reset the current msg count at 0 | ||
+ | $ShowBuffMsgCurrentCount = 0 | ||
+ | Else | ||
+ | DoBuffMsgOut() | ||
+ | EndIf | ||
+ | EndIf | ||
+ | |||
+ | |||
+ | If $RedPosSet AND $isRed Then | ||
+ | ;skip | ||
+ | Else | ||
+ | DoClickLocation() | ||
+ | EndIf | ||
+ | |||
+ | Sleep( $Delay ) | ||
+ | |||
+ | Until 1 = 2 | ||
+ | |||
+ | EndFunc | ||
+ | |||
+ | Func TogglePause() | ||
+ | $Paused = Not $Paused ; this is a flipper | ||
+ | |||
+ | While $Paused | ||
+ | Sleep(100 ) | ||
+ | WEnd | ||
+ | EndFunc | ||
+ | |||
+ | Func Terminate() | ||
+ | DllClose($dll) | ||
+ | Exit | ||
+ | EndFunc | ||
+ | </pre> |
Latest revision as of 01:30, 19 April 2009
Shuofthefieryheat Enhanced Clicker Page
Other Pages of Interest
Notes
These macros where created and compiled on Vista x64 using AutoIt 3.0. If you are using a different OS or get an error when you run them, you need to get the AutoIt 3.0 compiler/editor utility and recompile the macro on your own system. The macro utilities and compilers can be found on the main macro page : Macros
Shu's Enhanced Clicker Macro
This is an enhanced clicker based on Sithid's Clicker Sithid's Clicker .
To use the macro in game you click on the progam
Shu_One_Clicker_Enhanced_v2_0_d.exe
To Start the macro running do CTRL + p
To Exit the macro do CTRL + x
To see a help message do CTRL + h
The macro will prompt you for all the options. You can select the ones that make sense to have running.
It will repeatedly click a location that you designate. An icon or a line in a pinned menu.
It will monitor for Bright Red and skip clicking when its recognized.
It will also monitor for Green Stats and send you a msg when the food has run out. new: the status msg should properly display now
There is a counter for when you just want to collect X amount of something new: option to display the counter status while collecting stuff
There is also a Delay Timer so you dont click too often.
You can use any or all of them at one time.
Once you have set the locations, you can RESET them to a NEW location by just hovering over the NEW location and doing the appropriate CTRL key for that item.
These are the options in the program
Global $HelpMsg1 = "This clicker uses several controls: " Global $HelpMsg2 = "CTRL+x = Exit " Global $HelpMsg3 = "CTRL+p = Start/Pause " Global $HelpMsg4 = "CTRL+1 = Set the Click Location " Global $HelpMsg5 = "CTRL+2 = Set the Delay Timer " Global $HelpMsg6 = "CTRL+3 = Red Spot Monitor " Global $HelpMsg7 = "CTRL+4 = Green Spot Monitor " Global $HelpMsg8 = "CTRL+5 = Set Counter " Global $HelpMsg9 = "CTRL+h = This help message "
Shu's Enhanced Clicker Macro: Zip file with Source & EXE & Info File
Shu's Enhanced Clicker Zip File
Shu's Enhanced Clicker Macro Source
#cs -------------------------------------------------------------------------------------- AutoIt Version 3.2.12.1 Author: ShuoftheFieryHeat Date: 03.13.09 Version: 2.0.d Script Function: Repeat Clicker - With Prompt for Delay Time. Changed all inputs to use the CTRL Key so that two copies of this program can work This version should allow you to pick 2 spots to monitor 1 spot is for Bright Red 2 spot is for Green This allows you to skip performing an action when it cannot complete and also sends a message that your food buffs are gone. Added: a Counter = collect exactly what you want Added: option to display counter status. Bug Fix: Green Monitor Food Out Msg Based on the work of Sithid. Author: Sithid Date: 07.12.08 Version: 1.3 Script Function: Repeat Clicker - Automagical #ce -------------------------------------------------------------------------------------- #include <GUIConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> #Include <Array.au3> Opt( "MustDeclareVars", 1 ) GLOBAL $dll = DllOpen("user32.dll") Global $Paused = False Global $ClickPosSet = False Global $ClickPos[2] Global $RedPosSet = False Global $RedPos[2] Global $isRed = False Global $BrightRed = 0xFF0000 Global $GreenPosSet = False Global $GreenPos[2] Global $isGreen = False Global $BrightGreen = 0x009900 Global $ShowBuffMsg = False Global $ShowBuffMsgTimes = 2 Global $ShowBuffMsgCurrentCount = 0 Global $Delay = 30000; time in ms between clicks about 30 seconds Global $GoodToGo = False Global $CountItems = False Global $CurrentItemCount = 0 Global $QuantityToCount = 0 Global $DisplayCounterStatus = False Global $DisplayCounterStatusFadeValue = 2000 ; have msg fade in 2 seconds Global $FrequencyToShowCount = 10 Global $msgholder ;changeable msg text Global $HelpMsg1 = "This clicker uses several controls: " Global $HelpMsg2 = "CTRL+x = Exit " Global $HelpMsg3 = "CTRL+p = Start/Pause " Global $HelpMsg4 = "CTRL+1 = Set the Click Location " Global $HelpMsg5 = "CTRL+2 = Set the Delay Timer " Global $HelpMsg6 = "CTRL+3 = Red Spot Monitor " Global $HelpMsg7 = "CTRL+4 = Green Spot Monitor " Global $HelpMsg8 = "CTRL+5 = Set Counter " Global $HelpMsg9 = "CTRL+h = This help message " HotKeySet( "^x", "Terminate" ) HotKeySet( "^X", "Terminate" ) HotKeySet( "^p", "TogglePause" ) HotKeySet( "^P", "TogglePause" ) HotKeySet("^{PAUSE}", "TogglePause") ; These are now enabled when doing the setup ;HotKeySet( "^1", "SetClickPos" ) ;HotKeySet( "^2", "SetClickDelay" ) ;HotKeySet( "^3", "SetRedPos" ) ;HotKeySet( "^4", "SetGreenPos" ) ;HotKeySet( "^5", "SetCounterAmount" ) HotKeySet( "^h", "HelpMsg" ) HotKeySet( "^H", "HelpMsg" ) WinWaitActive( "eGenesis Client" ); TogglePause() SetupClickPositions() Main() Func HelpMsg() ; Using a single set of messages to give instructions Local $msg $msg = ( $HelpMsg1 & @CRLF & @CRLF & @TAB & $HelpMsg2 & @CRLF & @TAB & $HelpMsg3 _ & @CRLF & @TAB & $HelpMsg4 & @CRLF & @TAB & $HelpMsg5 & @CRLF & @TAB & $HelpMsg6 _ & @CRLF & @TAB & $HelpMsg7 & @CRLF & @TAB & $HelpMsg8 & @CRLF & @TAB & $HelpMsg9 ) MsgBox(0x40000,"Info Box", $msg) EndFunc Func MsgFoodOut() ;send msg that the food buff is gone msg lasts 4 seconds ;only do this 2 times - we don't need constant reminders MsgBox( 0x40040, "Food All Gone", "Food buff is all gone." _ & @CRLF & @CRLF & "This message will display twice. " & @CRLF & _ "(" & "... message going away in 4 seconds...." & ")", 4 ) EndFunc Func MsgCountDone() ;send msg that the count has been reached MsgBox( 0x40000, "Count Complete", "You have collected: " _ & $CurrentItemCount & " of " & $QuantityToCount) EndFunc Func ToolTipCounterStatus() ;send tooltip with the current count Local $WinPos [4] Local $i = 0 Local $DisplayToolTip = True ;find the bottom right corner for the tooltip display $WinPos = WinGetPos( "eGenesis Client" ); For $i = 0 To 3 Step 1 If $WinPos[$i] < 0 Then ;window is minimized skip this $DisplayToolTip = False ExitLoop EndIf Next If $DisplayToolTip Then ; display the tip near the middle bottom of the screen ToolTip("You have collected: " _ & $CurrentItemCount & " of " & $QuantityToCount, int($WinPos[2]/2) , int($WinPos[3]-50) ,"Count Status", 1, 2 ) ;wait just a bit and then clear the tooltip Sleep($DisplayCounterStatusFadeValue) ToolTip("") EndIf EndFunc Func SetupClickPositions() ; The setup of this macro needs some user directions HelpMsg() SetRedLocation() SetGreenLocation() SetClickDelay() SetCounterAmount() SetClickLocation() EndFunc Func LookForInput_Red() If _IsPressed(11) Then If _IsPressed(33) Or _IsPressed(63) Then Return(True) Else Return(False) EndIf EndIf EndFunc Func LookForInput_Green() If _IsPressed(11) Then If _IsPressed(34) Or _IsPressed(64) Then Return(True) Else Return(False) EndIf EndIf EndFunc Func LookForInput_Location() If _IsPressed(11) Then If _IsPressed(31) Or _IsPressed(61) Then Return(True) Else Return(False) EndIf EndIf EndFunc Func SetRedLocation() Local $yesno $yesno = MsgBox(0x40004,"Red Spot Setup" ,"Do you want to monitor for Bright Red?") If $yesno == 6 Then MsgBox( 0x40000, "Red Spot Location", _ "Please hover over the place you want to monitor for Bright RED conditon and press CTRL+3.") While Not $RedPosSet ; now we have to look for the CTRL + 3 keys $GoodToGo = LookForInput_Red() ;when captured set the position If $GoodToGo Then SetRedPos() ;enable the hotkey for this feature HotKeySet( "^3", "SetRedPos" ) MsgBox(0x40000,"Red Spot", _ "Red Spot has been recorded. You can now use CTRL+3 to reset it") EndIf WEnd Else MsgBox( 0x40000, "Red Spot Location", "Red will not be monitored. " ) EndIf EndFunc Func SetGreenLocation() Local $yesno $yesno = MsgBox(0x40004,"Green Spot Setup" ,"Do you want to monitor for Green?") If $yesno == 6 Then MsgBox( 0x40000, "Green Spot Location", _ "Please hover over the place you want to monitor for GREEN conditon and press CTRL+4.") While Not $GreenPosSet ; now we have to look for the CTRL + 4 keys $GoodToGo = LookForInput_Green() ;when captured set the position If $GoodToGo Then SetGreenPos() ;enable the hotkey for this feature HotKeySet( "^4", "SetGreenPos" ) MsgBox(0x40000,"Green Spot", _ "Green Spot has been recorded. You can now use CTRL+4 to reset it") EndIf WEnd Else MsgBox(0x40000, "Green Spot Location", "Green will not be monitored. " ) EndIf EndFunc Func SetClickDelay() Local $yesno $yesno = MsgBox(0x40004,"Click Delay Setup" ,"Do you want to set a Click Delay?") If $yesno == 6 Then $Delay = InputBox( "Pause Delay", "Please enter the delay time between clicks. 30000 is about 30 seconds.", $Delay) $Delay = Int($Delay) HotKeySet( "^2", "SetClickDelay" ) MsgBox( 0x40000, "Pause Delay", "The Pause Delay is now set for: " & $Delay & @CRLF & @CRLF & _ "You can now use CTRL+2 to reset it") Else $Delay = 1 MsgBox( 0x40000, "Pause Delay", "Pause Delay will not be used. " ) EndIf EndFunc Func SetClickLocation() MsgBox(0x40000,"Click Location Setup" ,"You MUST set a Click Location." & @CRLF & @CRLF & _ "Please hover over the place you want to repeat click and press CTRL+1.") While Not $ClickPosSet ; now we have to look for the CTRL + 1 keys $GoodToGo = LookForInput_Location() ;when captured set the position If $GoodToGo Then SetClickPos() ;enable the hotkey for this feature HotKeySet( "^1", "SetClickPos" ) MsgBox(0x40000,"Click Location", _ "Click Location has been recorded. You can now use CTRL+1 to reset it") EndIf WEnd EndFunc Func SetCounterAmount() ; how much to gather Local $yesno $yesno = MsgBox(0x40004,"Counter Setup" ,"Do you want to set a Counter?") If $yesno == 6 Then $QuantityToCount = InputBox( "Counter", "Please enter the quanity you want to collect. 0 will be unlimited.", $QuantityToCount) $QuantityToCount = Int($QuantityToCount) If $QuantityToCount > 0 Then $CountItems = True $CurrentItemCount = 0 ;start counter over SetCounterDisplay() ;get frequency of msg popups Else $CountItems = False EndIf ;enable the hotkey for this feature HotKeySet( "^5", "SetCounterAmount" ) MsgBox( 0x40000, "Counter Setting", "The Counter is now set for: " & $QuantityToCount &@CRLF & _ $msgholder & @CRLF & @CRLF & "You can now use CTRL+5 to reset it") Else $CountItems = False $QuantityToCount = 0 MsgBox( 0x40000, "Counter", "A counter will not be used. " ) EndIf EndFunc Func SetCounterDisplay() ; setup to show a running count Local $yesno $yesno = MsgBox(0x40004,"Counter Info Setup" ,"Do you want to monitor the status of the Count?") If $yesno == 6 Then $FrequencyToShowCount = InputBox( "Counter", "Please enter how often you want the count message to appear." & _ @CRLF & "ex: 10 = when you've gathered every 10th item" & @CRLF & " 0 will be continuous updates.", $FrequencyToShowCount) $FrequencyToShowCount = Int($FrequencyToShowCount) If $FrequencyToShowCount >= 0 Then $DisplayCounterStatus = True ; add frequency to the confirmation MsgBox $msgholder = ("The Counter Display Frequency is now set for: " & $FrequencyToShowCount) Else $DisplayCounterStatus = False $msgholder = "" EndIf MsgBox( 0x40000, "Display Counter Frequency Setting", "The Counter Display Frequency is now set for: " & $FrequencyToShowCount) Else $DisplayCounterStatus = False MsgBox( 0x40000, "Counter", "The counter will not be monitored. " ) EndIf EndFunc Func SetRedPos() $RedPos = MouseGetpos() $RedPosSet = True EndFunc Func SetGreenPos() $GreenPos = MouseGetpos() $GreenPosSet = True EndFunc Func SetClickPos() $ClickPos = MouseGetpos() $ClickPosSet = True EndFunc Func CheckforRed() ;look for bright red Local $OldMouseLoc[2] Local $coord[2] If $RedPosSet Then $OldMouseLoc = MouseGetPos() MouseMove( $RedPos[0], $RedPos[1], 1) ; Find a pure red pixel or a red pixel within 50 shades variations of pure red $coord = PixelSearch( $RedPos[0], $RedPos[1], $RedPos[0]+70, $RedPos[1]+5, $BrightRed, 50 ) If Not @error Then $isRed = True ;MsgBox(0x40000, "X and Y are:", "Red was found at: " & $coord[0] & "," & $coord[1]) Else $isRed = False ;MsgBox(0x40000, "X and Y are:", "Red was NOT found at: " & $RedPos[0] & "," & $RedPos[1]) EndIf ;return mouse to previous location MouseMove( $OldMouseLoc[0], $OldMouseLoc[1], 1) EndIf EndFunc Func CheckforGreen() ;look for bright green Local $OldMouseLoc[2] Local $coord[2] If $GreenPosSet Then $OldMouseLoc = MouseGetPos() MouseMove( $GreenPos[0], $GreenPos[1], 1) ; Find a pure green pixel or a green pixel within 50 shades variations of pure green $coord = PixelSearch( $GreenPos[0], $GreenPos[1], $GreenPos[0]+70, $GreenPos[1]+5, $BrightGreen, 50 ) If Not @error Then $isGreen = True $ShowBuffMsg = True ;MsgBox(0x40000, "X and Y are:", "Green was found at: " & $coord[0] & "," & $coord[1]) Else $isGreen = False ;MsgBox(0x40000, "X and Y are:", "Green was NOT found at: " & $GreenPos[0] & "," & $GreenPos[1]) EndIf ;return mouse to previous location MouseMove( $OldMouseLoc[0], $OldMouseLoc[1], 1) EndIf EndFunc Func DoClickLocation() ; clicks the target location Local $OldMouseLoc[2] If $ClickPosSet Then $OldMouseLoc = MouseGetPos() MouseClick( "left", $ClickPos[0], $ClickPos[1], 1) ;MsgBox(0x40000, "Location Click:", "Clicked location at: " & $ClickPos[0] & "," & $ClickPos[1]) ;Count the item if counter is enabled If $CountItems Then CheckCounter() ;If the counter has been turned off ;then we got our quota and since we are done we should pause the script If Not $CountItems Then MsgCountDone() MsgBox(0x40000, "Paused Now", "We have now gotten our quota so setting to Pause.") TogglePause() EndIf EndIf ;return mouse to previous location MouseMove( $OldMouseLoc[0], $OldMouseLoc[1], 1) Else MsgBox(0x40000,"Location Click Error", "ERROR: Click Location is NOT set.") EndIf EndFunc Func CheckCounter() ; count and check the values If $CountItems Then $CurrentItemCount += 1 EndIf If $QuantityToCount > $CurrentItemCount Then DoCounterMsg() Else $CountItems = False $DisplayCounterStatus = False EndIf EndFunc Func DoCounterMsg() ; show the counter amount Local $ModValue If $DisplayCounterStatus Then If $FrequencyToShowCount > 0 Then $ModValue = Mod($CurrentItemCount, $FrequencyToShowCount) If $ModValue == 0 Then ToolTipCounterStatus() ;this is a tooltip msg EndIf Else ToolTipCounterStatus() ;this is a tooltip msg EndIf EndIf EndFunc Func DoBuffMsgOut() ; display the buff out message 2 times If $ShowBuffMsg Then If $ShowBuffMsgCurrentCount < $ShowBuffMsgTimes Then MsgFoodOut() $ShowBuffMsgCurrentCount += 1 Else $ShowBuffMsg = False $ShowBuffMsgCurrentCount = 0 EndIf EndIf EndFunc Func Main() #cs Work: We have Red and Green to monitor We have the Delay to wait We have the Location to Click Rule 1: When Red do not click Rule 2: If Green is out then do BuffMsg Rule 3: Wait for Timer to Click #ce Do WinWaitActive( "eGenesis Client" ); CheckforRed() CheckforGreen() If $GreenPosSet Then If $isGreen Then ; reset the current msg count at 0 $ShowBuffMsgCurrentCount = 0 Else DoBuffMsgOut() EndIf EndIf If $RedPosSet AND $isRed Then ;skip Else DoClickLocation() EndIf Sleep( $Delay ) Until 1 = 2 EndFunc Func TogglePause() $Paused = Not $Paused ; this is a flipper While $Paused Sleep(100 ) WEnd EndFunc Func Terminate() DllClose($dll) Exit EndFunc