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
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
My basic slate macro, should work without any configuration.  After running, switch to atitd, unpause, and follow messagebox instructions.
 
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.
+
Note the macro is a bit buggy( delays are off, movement glitches and sometimes skips slate ), I havnt had time to fine tune it but it should work semi ok for you.  
  
 
== The Macro ==
 
== The Macro ==
Line 11: Line 11:
 
Author: Sithid
 
Author: Sithid
 
Date: 07.12.08
 
Date: 07.12.08
Version: 0.2
+
Version: 0.5
 
 
 
Script Function:
 
Script Function:
Line 67: Line 67:
 
 
 
PickSlate()
 
PickSlate()
Move( "RIGHT" )
+
Move( "RIGHT" )
 +
 
 +
PickSlate()
 +
Move( "RIGHT" )
 
 
 
PickSlate()
 
PickSlate()
 
Move( "UP" )
 
Move( "UP" )
  
 +
PickSlate()
 +
Move( "LEFT" )
 +
 
PickSlate()
 
PickSlate()
 
Move( "LEFT" )
 
Move( "LEFT" )
Line 85: Line 91:
 
Func Move( $key )
 
Func Move( $key )
 
Send( "{" & $key & " down}" )
 
Send( "{" & $key & " down}" )
Sleep( 100 )
+
Sleep( 200 )
 
Send( "{" & $key & " up}" )
 
Send( "{" & $key & " up}" )
Sleep( 200 )
+
Sleep( 1000 )
 
EndFunc
 
EndFunc
  
Line 140: Line 146:
 
Exit
 
Exit
 
EndFunc
 
EndFunc
<pre>
+
</pre>
 
 
Downloadable version of script and exe will be around shortly, need to figure out how first :P.
 

Latest revision as of 17:42, 9 January 2009

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

Note the macro is a bit buggy( delays are off, movement glitches and sometimes skips slate ), 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.5
	
	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( "RIGHT" )	
		
		PickSlate()
		Move( "UP" )

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

Func Move( $key )
	Send( "{" & $key & " down}" )
	Sleep( 200 )
	Send( "{" & $key & " up}" )
	Sleep( 1000 )
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