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:Cegaiel/Macros/SkillsTimer/Code"

From A Tale in the Desert
Jump to navigationJump to search
 
(11 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
;Ctrl+P to pause script and Ctrl+P again to resume
 
;Ctrl+P to pause script and Ctrl+P again to resume
 
;The AHK icon in system tray will turn red while paused.
 
;The AHK icon in system tray will turn red while paused.
 +
;Hold F2 for 1 second, while script is running, to pause script and reset click counter to zero.
 
;Ctrl+R to reload script
 
;Ctrl+R to reload script
;Date: 3/06/2010
+
;Date: June 20, 2010
 +
;Author: Cegaiel
  
  
Line 10: Line 12:
 
^p::Pause
 
^p::Pause
 
^!w::
 
^!w::
 +
 +
;X/Y mouse coordinates of a popup box's OK button (yellowish part of the OK button, not the black text)
 +
;530,479 is the position of OK button in 1024x768 resolution
 +
;You can find out your position, at your resolution, with a free tool called Magnify at:
 +
;http://www.atitd.org/wiki/tale4/User:Cegaiel/Macros#Tool:_Magnify_.28Windows_Executable.29
 +
;The purpose of this, is when popup boxes occurs (ie error message when you dont have enough materials to repair a mine)
 +
;The script will make a Windows Error sound and then pause script.
 +
;Once you figure out the problem, Ctrl+P, to resume/unpause where you left of at.
 +
 +
PopX = 530
 +
PopY = 479
  
 
counter = 0
 
counter = 0
Line 18: Line 31:
 
Gui, Add, Text,, Eating Grilled Food?`n(Automatically eat every 10 Teppy Min)
 
Gui, Add, Text,, Eating Grilled Food?`n(Automatically eat every 10 Teppy Min)
 
Gui, Add, DropDownList, vEat Choose1, No|Yes
 
Gui, Add, DropDownList, vEat Choose1, No|Yes
 
 
Gui, Add, Button, gStart, Next
 
Gui, Add, Button, gStart, Next
 
Gui, Show
 
Gui, Show
Line 33: Line 45:
 
WinActivate, eGenesis Client
 
WinActivate, eGenesis Client
 
SetDefaultMouseSpeed, 0
 
SetDefaultMouseSpeed, 0
 
+
SetMouseDelay, -1
  
 
loop
 
loop
Line 51: Line 63:
 
if state = D
 
if state = D
 
{
 
{
 +
color = 0x000000
 
MsgBox Skills text location recorded, now its time to record the click location.`n`nHover where you want to click and press F2.`n`nFor a dig (or other skills related tasks), pin up the Dig Hole menu and set the click to the word Dig.`n`nFor limestone/dirt set the click position on the icon.`n`nClick OK to proceed...
 
MsgBox Skills text location recorded, now its time to record the click location.`n`nHover where you want to click and press F2.`n`nFor a dig (or other skills related tasks), pin up the Dig Hole menu and set the click to the word Dig.`n`nFor limestone/dirt set the click position on the icon.`n`nClick OK to proceed...
 
Tooltip
 
Tooltip
Line 63: Line 76:
 
{
 
{
 
MouseGetPos, ClickX, ClickY
 
MouseGetPos, ClickX, ClickY
Msgbox, Click location recorded!`n`nNote: you can hit Ctrl+P to PAUSE script anytime and Ctrl+P again to RESUME`n`nHit F2, while the script runs, to see how many clicks you've done so far.`n`nClick OK to continue...
+
Msgbox, Click location recorded!`n`nNote: you can hit Ctrl+P to PAUSE script anytime and Ctrl+P again to RESUME`n`nHold F2, while the script is running, to pause and reset click numbers.`nThen just Ctrl+P to unpause script and continue at 0 clicks.`n`nClick OK to continue...
 
}
 
}
  
  
if (Eat == "Yes")
+
if (Eat == "Yes")
{
+
{
  
 
Msgbox, One more step! You have selected that you will be eating grilled foods!`n`nPinup the Esc, Skills, Consume menu and set the click position of the "Eat Grilled food" menu by hovering and hitting F2.`n`nNote: When this macro begins, it will first eat (so don't manually eat first).`n`nThen every 10 Teppy Mins (11:00 real time), it will automatically click/eat the grilled food.`n`nClick OK, then hit F2 over the grilled food consume menu to set...
 
Msgbox, One more step! You have selected that you will be eating grilled foods!`n`nPinup the Esc, Skills, Consume menu and set the click position of the "Eat Grilled food" menu by hovering and hitting F2.`n`nNote: When this macro begins, it will first eat (so don't manually eat first).`n`nThen every 10 Teppy Mins (11:00 real time), it will automatically click/eat the grilled food.`n`nClick OK, then hit F2 over the grilled food consume menu to set...
  
WinActivate, eGenesis Client
+
WinActivate, eGenesis Client
 +
 
 +
KeyWait, F2, D
 +
if ErrorLevel = 0
 +
{
 +
MouseGetPos, EatX, EatY
 +
Msgbox, Eat location recorded!`n`nClick OK to eat food and start the macro...
 +
 
 +
EatTimer = 1
 +
#Persistent
 +
SetTimer, Eat, 1000
  
 +
}
 +
}
  
KeyWait, F2, D
 
if ErrorLevel = 0
 
{
 
MouseGetPos, EatX, EatY
 
Msgbox, Eat location recorded!`n`nClick OK to eat food and start the macro...
 
Click %EatX%, %EatY%
 
  
 
Gui, +AlwaysOnTop +ToolWindow
 
Gui, +AlwaysOnTop +ToolWindow
Gui, Add, Text, vClickText, Preparing to start... Standby!`n`n
+
Gui, Add, Text, vClickText, Preparing to start... Standby!`n`n`n`n
 
Gui, Show
 
Gui, Show
GuiControl, Text, ClickText, Preparing to start... Standby!`n`n
+
GuiControl, Text, ClickText, Preparing to start... Standby!`n`n`n`n
  
EatTimer = 660
 
#Persistent
 
SetTimer, Eat, 1000
 
}
 
  
  
;Else Eat = No
+
Delay = 5
} else {
+
;You got 5 seconds to drag the status window out of the way
Gui, +AlwaysOnTop +ToolWindow
+
Loop, %Delay%
Gui, Add, Text, vClickText, Preparing to start... Standby!
+
{
Gui, Show
+
GuiControl, Text, ClickText, %Delay%s to begin... Standby!
GuiControl, Text, ClickText, Preparing to start... Standby!
+
Delay --
 +
Sleep 1000
 
}
 
}
 +
  
  
Line 110: Line 127:
 
Max := "Unlimited"
 
Max := "Unlimited"
 
}
 
}
 +
 +
 +
GuiControl, Text, ClickText, Focusing eGenesis client...
  
  
Line 117: Line 137:
  
 
WinActivate, eGenesis Client
 
WinActivate, eGenesis Client
 +
 +
 +
 +
 +
;This searches for a popup box, which would suggest something likely went wrong
 +
 +
PixelSearch, Px, Py, %PopX%, %PopY%, %PopX%, %PopY%, 0xECDFBD, 15, Fast|RGB
 +
 +
if ErrorLevel = 0
 +
{
 +
SoundPlay *16,1
 +
SoundPlay *16,1
 +
SoundPlay *16,1
 +
SoundPlay *16,1
 +
SoundPlay *16,1
 +
Msgbox, Pop Up box detected! Pausing macro...`n`nNo problem, just find the problem, correct and hit Ctrl+P.`n`nYou will resume from where you left off at...
 +
PAUSE
 +
}
 +
 +
;End searching for popupbox
 +
 +
 +
 +
 +
 +
 +
GetKeyState, state, F2
 +
if state = D
 +
{
 +
Msgbox, Reseting click number to 0`n`nCurrent click number: %counter%`n`nClick OK to continue...
 +
counter = 0
 +
}
 +
 +
 
PixelGetColor, color, skillX, skillY, RGB
 
PixelGetColor, color, skillX, skillY, RGB
  
Line 122: Line 176:
 
if color = 0x000000
 
if color = 0x000000
 
{
 
{
 +
counter++
 
MouseGetPos, OldX, OldY
 
MouseGetPos, OldX, OldY
 
Click %ClickX%, %ClickY%  
 
Click %ClickX%, %ClickY%  
 
MouseMove, %OldX%, %OldY%
 
MouseMove, %OldX%, %OldY%
Sleep 500
+
 
counter++
 
  
 
if (Eat == "Yes")
 
if (Eat == "Yes")
 
{
 
{
GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nAuto Eat: %EatTimer%s
+
GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nEat Grilled: %EatTimer%s of 660s
 
} else {
 
} else {
GuiControl, Text, ClickText, Clicks: %counter% of %Max%
+
GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nCtrl+R: Reload, +P: Pause`n`nHold F2: Reset click # to 0
 +
Sleep 250 ;This sleep helps prevent double clicks. Grilled food automatically has a 1 second delay from the seconds countdown
 
}
 
}
 +
  
  
 
if (counter = Clicks)
 
if (counter = Clicks)
 
{
 
{
Done = 1
+
GuiControl, Text, ClickText, Clicks: %counter% of %Max% - Done!`n`nCtrl+R to Reload/Reset
break
+
SoundPlay *16,1
 +
PAUSE
 +
;The purpose of the pause is because the #Persistent Eat sub still runs even when done, this is just a lazy way to "exit the script"
 +
;Exit will not stop a persistent and my other choice is ExitApp which will completely terminate the script and the counter GUI.
 +
;The Eat sub runs whether you choose grilled foods or not. Even though its in an If statement, it still runs, so thats my workaround =/
 
}
 
}
  
Line 149: Line 209:
  
 
Eat:  
 
Eat:  
if (Done = 1)
 
{
 
GuiControl, Text, ClickText, Clicks: %counter% of %Max% - Done!
 
} else {
 
  
 
EatTimer --
 
EatTimer --
GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nAuto Eat: %EatTimer%s
+
GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nEat Grilled: %EatTimer%s of 660s
 
 
 
if EatTimer = 0
 
if EatTimer = 0
 
{
 
{
 +
SoundPlay *64,1
 
GuiControl, Text, ClickText, Eating grilled food...
 
GuiControl, Text, ClickText, Eating grilled food...
 
MouseGetPos, OldMX, OldMY
 
MouseGetPos, OldMX, OldMY
Line 166: Line 223:
 
MouseMove, %OldMX%, %OldMY%, 0
 
MouseMove, %OldMX%, %OldMY%, 0
 
EatTimer = 660
 
EatTimer = 660
 +
Sleep 1000
 
}
 
}
 
}
 
 
 
 
return
 
return
 
</pre>
 
</pre>

Latest revision as of 23:36, 20 June 2010

;Ctrl+Alt+W to start script
;Ctrl+P to pause script and Ctrl+P again to resume
;The AHK icon in system tray will turn red while paused.
;Hold F2 for 1 second, while script is running, to pause script and reset click counter to zero.
;Ctrl+R to reload script
;Date: June 20, 2010
;Author: Cegaiel


^r::reload
^p::Pause
^!w::

;X/Y mouse coordinates of a popup box's OK button (yellowish part of the OK button, not the black text)
;530,479 is the position of OK button in 1024x768 resolution
;You can find out your position, at your resolution, with a free tool called Magnify at:
;http://www.atitd.org/wiki/tale4/User:Cegaiel/Macros#Tool:_Magnify_.28Windows_Executable.29
;The purpose of this, is when popup boxes occurs (ie error message when you dont have enough materials to repair a mine)
;The script will make a Windows Error sound and then pause script.
;Once you figure out the problem, Ctrl+P, to resume/unpause where you left of at.

PopX = 530
PopY = 479

counter = 0

	Gui, +AlwaysOnTop +ToolWindow
	Gui, Add, Text,, # of Clicks to Stop?`n(Blank=Unlimited, don't stop):
	Gui, Add, Edit, vClicks wp number
	Gui, Add, Text,, Eating Grilled Food?`n(Automatically eat every 10 Teppy Min)
	Gui, Add, DropDownList, vEat Choose1, No|Yes
	Gui, Add, Button, gStart, Next
	Gui, Show
	return



Start:
Gui, Submit
Gui, Destroy

Msgbox, Hover mouse over a black letter, in skills tab (ie Endurance for digging)`n`nThe letter/skill you want to hover is the one that turns red when you get tired`n`nWhen you are hovering a black letter it will tell you in the tooltip.`n`nPress F2, when it tells you in tooltip, to set position.`n`nClick OK to proceed...

WinActivate, eGenesis Client
SetDefaultMouseSpeed, 0
SetMouseDelay, -1

loop
{
MouseGetPos, skillX, skillY
PixelGetColor, color, skillX, skillY, RGB

if color = 0x000000
{
ToolTip, Coordinates: %skillX%`, %skillY%`nColor: %color%`n`n* HOVERING BLACK *`n* Press F2 to set location *
} else {
ToolTip, Coordinates: %skillX%`, %skillY%`nColor: %color%
}


GetKeyState, state, F2
if state = D
{
color = 0x000000
MsgBox Skills text location recorded, now its time to record the click location.`n`nHover where you want to click and press F2.`n`nFor a dig (or other skills related tasks), pin up the Dig Hole menu and set the click to the word Dig.`n`nFor limestone/dirt set the click position on the icon.`n`nClick OK to proceed...
Tooltip
WinActivate, eGenesis Client
break
}
}


KeyWait, F2, D
if ErrorLevel = 0
{
MouseGetPos, ClickX, ClickY
Msgbox, Click location recorded!`n`nNote: you can hit Ctrl+P to PAUSE script anytime and Ctrl+P again to RESUME`n`nHold F2, while the script is running, to pause and reset click numbers.`nThen just Ctrl+P to unpause script and continue at 0 clicks.`n`nClick OK to continue...
}


		if (Eat == "Yes")
		{

Msgbox, One more step! You have selected that you will be eating grilled foods!`n`nPinup the Esc, Skills, Consume menu and set the click position of the "Eat Grilled food" menu by hovering and hitting F2.`n`nNote: When this macro begins, it will first eat (so don't manually eat first).`n`nThen every 10 Teppy Mins (11:00 real time), it will automatically click/eat the grilled food.`n`nClick OK, then hit F2 over the grilled food consume menu to set...

	WinActivate, eGenesis Client

	KeyWait, F2, D
	if ErrorLevel = 0
	{
	MouseGetPos, EatX, EatY
	Msgbox, Eat location recorded!`n`nClick OK to eat food and start the macro...

	EatTimer = 1
	#Persistent 
	SetTimer, Eat, 1000

	}
		}


	Gui, +AlwaysOnTop +ToolWindow
	Gui, Add, Text, vClickText, Preparing to start... Standby!`n`n`n`n
	Gui, Show
	GuiControl, Text, ClickText, Preparing to start... Standby!`n`n`n`n



	Delay = 5
	;You got 5 seconds to drag the status window out of the way
	Loop, %Delay%
	{
	GuiControl, Text, ClickText, %Delay%s to begin... Standby!
	Delay --
	Sleep 1000
	}




;This just appends the "of #" or the "of Unlimited" text on GUI bar.
if (Clicks > 0)
{
Max := Clicks
} else {
Max := "Unlimited"
}


	GuiControl, Text, ClickText, Focusing eGenesis client...



	loop
	{

WinActivate, eGenesis Client




;This searches for a popup box, which would suggest something likely went wrong

			PixelSearch, Px, Py, %PopX%, %PopY%, %PopX%, %PopY%, 0xECDFBD, 15, Fast|RGB

			if ErrorLevel = 0
			{
			SoundPlay *16,1
			SoundPlay *16,1
			SoundPlay *16,1
			SoundPlay *16,1
			SoundPlay *16,1
			Msgbox, Pop Up box detected! Pausing macro...`n`nNo problem, just find the problem, correct and hit Ctrl+P.`n`nYou will resume from where you left off at...
			PAUSE
			}

;End searching for popupbox






GetKeyState, state, F2
if state = D
{
Msgbox, Reseting click number to 0`n`nCurrent click number: %counter%`n`nClick OK to continue...
counter = 0
}


PixelGetColor, color, skillX, skillY, RGB


if color = 0x000000
{
counter++
MouseGetPos, OldX, OldY
Click %ClickX%, %ClickY% 
MouseMove, %OldX%, %OldY%


		if (Eat == "Yes")
		{
		GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nEat Grilled: %EatTimer%s of 660s
		} else {
		GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nCtrl+R: Reload, +P: Pause`n`nHold F2: Reset click # to 0
		Sleep 250 ;This sleep helps prevent double clicks. Grilled food automatically has a 1 second delay from the seconds countdown
		}



if (counter = Clicks)
{
GuiControl, Text, ClickText, Clicks: %counter% of %Max% - Done!`n`nCtrl+R to Reload/Reset
SoundPlay *16,1
PAUSE
;The purpose of the pause is because the #Persistent Eat sub still runs even when done, this is just a lazy way to "exit the script"
;Exit will not stop a persistent and my other choice is ExitApp which will completely terminate the script and the counter GUI.
;The Eat sub runs whether you choose grilled foods or not. Even though its in an If statement, it still runs, so thats my workaround =/
}


		}
	}



	Eat: 

	EatTimer --
	GuiControl, Text, ClickText, Clicks: %counter% of %Max%`n`nEat Grilled: %EatTimer%s of 660s
	
	if EatTimer = 0
	{
	SoundPlay *64,1
	GuiControl, Text, ClickText, Eating grilled food...
	MouseGetPos, OldMX, OldMY
	;Click the Eat Grilled food menu
	Click, %EatX%, %EatY%			
	Sleep, 500
	MouseMove, %OldMX%, %OldMY%, 0			
	EatTimer = 660
	Sleep 1000
	}
	return