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.
User:Shuofthefieryheat/MyUtilitiesPage/Shu Enhanced Clicker
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