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:Sithid/Macros/AutoIT/Slate"

From A Tale in the Desert
Jump to navigationJump to search
Line 1: Line 1:
Page under construction .... come back later or something :P.
+
My basic slate macro, should work without any configuration. After running, switch to atitd, unpause, and follow messagebox instructions.
 +
 
 +
Note the macro has a bit buggy, I havnt had time to fine tune it but it should work semi ok for you.
 +
 
 +
== The Macro ==
 +
 
 +
<pre>
 +
#cs --------------------------------------------------------------------------------------
 +
 +
AutoIt Version 3.2.12.1
 +
Author: Sithid
 +
Date: 07.12.08
 +
Version: 0.2
 +
 +
Script Function:
 +
Slate Collection - Automagical
 +
 
 +
#ce --------------------------------------------------------------------------------------
 +
 
 +
#include <GUIConstants.au3>
 +
#include <GUIConstantsEx.au3>
 +
#include <WindowsConstants.au3>
 +
 
 +
Opt( "MustDeclareVars", 1 )
 +
 
 +
Global $Paused = False
 +
Global $AtitdHandle = 0
 +
Global $SlateCount = 0
 +
 
 +
Global $SlateHex = "FFFFFF"
 +
Global $SlateLoc[2]
 +
 
 +
Global $SlateSet = False
 +
Global $ReadyCheck = False
 +
 
 +
HotKeySet( "{ESC}", "Terminate" )
 +
HotKeySet( "{PAUSE}", "TogglePause" )
 +
HotKeySet( "{F1}", "SetSlate" )
 +
HotKeySet( "{F2}", "SetReady" )
 +
 
 +
WinWaitActive( "eGenesis Client" );
 +
 
 +
$AtitdHandle = WinGetHandle( "eGenesis Client" )
 +
 +
TogglePause()
 +
 
 +
While 1
 +
MsgBox( 0x0, "Slate Icon Position", "Please hover over your slate icon and press F1." )
 +
 +
While Not $SlateSet
 +
Sleep( 100 )
 +
WEnd
 +
 +
MsgBox( 0x0, "Ready Check", "Please move to the position you wish to start from and press F2." )
 +
 +
While Not $ReadyCheck
 +
Sleep( 100 )
 +
WEnd
 +
 +
Main()
 +
WEnd
 +
 
 +
Func Main()
 +
Do
 +
PickSlate()
 +
Move( "RIGHT" )
 +
 +
PickSlate()
 +
Move( "RIGHT" )
 +
 +
PickSlate()
 +
Move( "UP" )
 +
 
 +
PickSlate()
 +
Move( "LEFT" )
 +
 +
PickSlate()
 +
Move( "LEFT" )
 +
 +
PickSlate()
 +
Move( "UP" )
 +
Until 1 = 2
 +
EndFunc
 +
 
 +
Func Move( $key )
 +
Send( "{" & $key & " down}" )
 +
Sleep( 100 )
 +
Send( "{" & $key & " up}" )
 +
Sleep( 200 )
 +
EndFunc
 +
 
 +
Func PickSlate()
 +
If CheckSlate( $SlateLoc, $SlateHex ) Then
 +
Do
 +
MouseClick( "right", $SlateLoc[0], $SlateLoc[1], 1, 5  )
 +
MouseClick( "left", $SlateLoc[0], $SlateLoc[1], 1, 5 )
 +
$SlateCount += 1
 +
Sleep( 3000 )
 +
Until Not CheckSlate( $SlateLoc, $SlateHex )
 +
EndIf
 +
EndFunc
 +
 
 +
Func CheckSlate( $pos, $hex )
 +
Local $col = Hex( PixelGetColor( $pos[0], $pos[1] ), 6 )
 +
 +
If $col = $hex Then
 +
Return True
 +
EndIf
 +
 +
Return False
 +
EndFunc
 +
 
 +
Func SetSlate()
 +
If $Paused Then
 +
Return
 +
EndIf
 +
 +
$SlateLoc = MouseGetPos()
 +
$SlateHex = Hex( PixelGetColor( $SlateLoc[0], $SlateLoc[1], $AtitdHandle ), 6 )
 +
$SlateSet = True
 +
EndFunc
 +
 
 +
Func SetReady()
 +
If $Paused Then
 +
Return
 +
EndIf
 +
 
 +
$ReadyCheck = True
 +
EndFunc
 +
 
 +
Func TogglePause()
 +
$Paused = Not $Paused
 +
 +
While $Paused
 +
Sleep(100 )
 +
WEnd
 +
EndFunc
 +
 
 +
Func Terminate()
 +
Exit
 +
EndFunc
 +
<pre>
 +
 
 +
Downloadable version of script and exe will be around shortly, need to figure out how first :P.

Revision as of 20:24, 15 December 2008

My basic slate macro, should work without any configuration. After running, switch to atitd, unpause, and follow messagebox instructions.

Note the macro has a bit buggy, I havnt had time to fine tune it but it should work semi ok for you.

The Macro

#cs --------------------------------------------------------------------------------------
	
	AutoIt Version 3.2.12.1
	Author:		Sithid
	Date:		07.12.08
	Version:	0.2
	
	Script Function:
	Slate Collection - Automagical

#ce --------------------------------------------------------------------------------------

#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt( "MustDeclareVars", 1 )

Global $Paused = False
Global $AtitdHandle = 0
Global $SlateCount = 0

Global $SlateHex = "FFFFFF"
Global $SlateLoc[2]

Global $SlateSet = False
Global $ReadyCheck = False

HotKeySet( "{ESC}", "Terminate" )
HotKeySet( "{PAUSE}", "TogglePause" )
HotKeySet( "{F1}", "SetSlate" )
HotKeySet( "{F2}", "SetReady" )

WinWaitActive( "eGenesis Client" );

$AtitdHandle = WinGetHandle( "eGenesis Client" )
	
TogglePause()

While 1
	MsgBox( 0x0, "Slate Icon Position", "Please hover over your slate icon and press F1." )
	
	While Not $SlateSet
		Sleep( 100 )
	WEnd
	
	MsgBox( 0x0, "Ready Check", "Please move to the position you wish to start from and press F2." )
	
	While Not $ReadyCheck
		Sleep( 100 )
	WEnd
	
	Main()
WEnd

Func Main()	
	Do
		PickSlate()
		Move( "RIGHT" )
		
		PickSlate()
		Move( "RIGHT" )		
		
		PickSlate()
		Move( "UP" )

		PickSlate()
		Move( "LEFT" )
		
		PickSlate()
		Move( "LEFT" )
		
		PickSlate()
		Move( "UP" )
	Until 1 = 2
EndFunc

Func Move( $key )
	Send( "{" & $key & " down}" )
	Sleep( 100 )
	Send( "{" & $key & " up}" )
	Sleep( 200 )
EndFunc

Func PickSlate()
	If CheckSlate( $SlateLoc, $SlateHex ) Then
		Do 
			MouseClick( "right", $SlateLoc[0], $SlateLoc[1], 1, 5  )
			MouseClick( "left", $SlateLoc[0], $SlateLoc[1], 1, 5 )
			$SlateCount += 1
			Sleep( 3000 )
		Until Not CheckSlate( $SlateLoc, $SlateHex )
	EndIf
EndFunc

Func CheckSlate( $pos, $hex )
	Local $col = Hex( PixelGetColor( $pos[0], $pos[1] ), 6 )
	
	If $col = $hex Then
		Return True
	EndIf
	
	Return False
EndFunc

Func SetSlate()
	If $Paused Then
		Return
	EndIf
	
	$SlateLoc = MouseGetPos()
	$SlateHex = Hex( PixelGetColor( $SlateLoc[0], $SlateLoc[1], $AtitdHandle ), 6 )
	$SlateSet = True
EndFunc

Func SetReady()
	If $Paused Then
		Return
	EndIf

	$ReadyCheck = True
EndFunc

Func TogglePause()
	$Paused = Not $Paused
			
	While $Paused
		Sleep(100 )
	WEnd
EndFunc

Func Terminate()
		Exit
EndFunc

Downloadable version of script and exe will be around shortly, need to figure out how first :P.