[AutoIt] Enter the queue script

08/14/2009 11:55 Penakle#1
Note: I borrowed the .ini file and MouseCoord pieces from Jazkal.

These two scripts will allow you to target specific pieces of the Darkfall login process and jump in the queue at any time. I will be setting a scheduled task to fire off early in the morning to run this script.

First, I was going to create an instructional video but I dont want to edit out my Login and Character name. If you cant figure it out then I guess you are out of luck.

First, run the queue-setup.au3 file. It will ask you to mouse-hover over a few things. Just let the script run, it will end after a few seconds.
Just Click Enter when you are prompted with Message Boxes.

Second, run the queue.au3 file. You will have a 5 second delay before the mouse starts moving to the shortcut.

Queue-Setup.au3:

Code:
Opt("MouseCoordMode", 0) ; Sets the way coords are used in the mouse functions, 0 = relative coords to the active window

If Not FileExists(@ScriptDir&"\_Queue.ini") Then
IniWrite(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "X", "0")
IniWrite(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "Y", "0")
IniWrite(@ScriptDir&"\_Queue.ini", "LoginButton", "X", "0")
IniWrite(@ScriptDir&"\_Queue.ini", "LoginButton", "Y", "0")
IniWrite(@ScriptDir&"\_Queue.ini", "ServerButton", "X", "0")
IniWrite(@ScriptDir&"\_Queue.ini", "ServerButton", "Y", "0")
IniWrite(@ScriptDir&"\_Queue.ini", "CharacterButton", "X", "0")
IniWrite(@ScriptDir&"\_Queue.ini", "CharacterButton", "Y", "0")
Sleep(500)
EndIf

Global $DFIconTargetX = IniRead(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "X", "0")
Global $DFIconTargetY = IniRead(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "Y", "0")
Global $DFLoginButtonX = IniRead(@ScriptDir&"\_Queue.ini", "LoginButton", "X", "0")
Global $DFLoginButtonY = IniRead(@ScriptDir&"\_Queue.ini", "LoginButton", "Y", "0")
Global $DFServerButtonX = IniRead(@ScriptDir&"\_Queue.ini", "ServerButton", "X", "0")
Global $DFServerButtonY = IniRead(@ScriptDir&"\_Queue.ini", "ServerButton", "Y", "0")
Global $DFCharacterButtonX = IniRead(@ScriptDir&"\_Queue.ini", "CharacterButton", "X", "0")
Global $DFCharacterButtonY = IniRead(@ScriptDir&"\_Queue.ini", "CharacterButton", "Y", "0")

HotKeySet("`", "_GetCoords") ; Press ` key to active coords

$i = 1
While $i = 1
    MsgBox(0, "Get Desktop Shortcut Coords", "Highlight your Darkfall shortcut and press the ` key")
    Sleep (60000)
    $i = $i + 1
Wend

Func _GetCoords()
    $MousePos = MouseGetPos()
    IniWrite(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "X", $MousePos[0])
    IniWrite(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "Y", $MousePos[1])
    $DFIconTargetX = $MousePos[0]
    $DFIconTargetY = $MousePos[1] 
    Sleep (3000)
    MsgBox(0, "Login Screen", "Please bring up the Login Screen")
    Sleep (5000)
    MsgBox(0, "Get Login Button Coords", "You have 5 seconds to MouseOver the Login Button")
    Sleep (5000)
    $MousePos = MouseGetPos()
    IniWrite(@ScriptDir&"\_Queue.ini", "LoginButton", "X", $MousePos[0])
    IniWrite(@ScriptDir&"\_Queue.ini", "LoginButton", "Y", $MousePos[1])
    $DFLoginButtonX = $MousePos[0]
    $DFLoginButtonY = $MousePos[1]
    Sleep (3000)
    MsgBox(0, "Lobby Menu", "Please bring up the Lobby")
    Sleep (5000)
    MsgBox(0, "Get Lobby Server Button Coords", "You have 5 seconds to MouseOver the Servers Tab")
    Sleep (5000)
    $MousePos = MouseGetPos()
    IniWrite(@ScriptDir&"\_Queue.ini", "ServerButton", "X", $MousePos[0])
    IniWrite(@ScriptDir&"\_Queue.ini", "ServerButton", "Y", $MousePos[1])
    $DFServerButtonX = $MousePos[0]
    $DFServerButtonY = $MousePos[1]
    Sleep (3000)
    MsgBox(0, "Character Screen", "Please bring up the Servers Tab")
    Sleep (5000)
    MsgBox(0, "Get Character Coords", "You have 5 seconds to MouseOver your character")
    Sleep (5000)
    $MousePos = MouseGetPos()
    IniWrite(@ScriptDir&"\_Queue.ini", "CharacterButton", "X", $MousePos[0])
    IniWrite(@ScriptDir&"\_Queue.ini", "CharacterButton", "Y", $MousePos[1])
    $DFCharacterButtonX = $MousePos[0]
    $DFCharacterButtonY = $MousePos[1]
EndFunc
Queue.au3:

Code:
Opt("MouseCoordMode", 0) ; Sets the way coords are used in the mouse functions, 0 = relative coords to the active window

Global $DFIconTargetX = IniRead(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "X", "0")
Global $DFIconTargetY = IniRead(@ScriptDir&"\_Queue.ini", "DarkfallIcon", "Y", "0")
Global $DFLoginButtonX = IniRead(@ScriptDir&"\_Queue.ini", "LoginButton", "X", "0")
Global $DFLoginButtonY = IniRead(@ScriptDir&"\_Queue.ini", "LoginButton", "Y", "0")
Global $DFServerButtonX = IniRead(@ScriptDir&"\_Queue.ini", "ServerButton", "X", "0")
Global $DFServerButtonY = IniRead(@ScriptDir&"\_Queue.ini", "ServerButton", "Y", "0")
Global $DFCharacterButtonX = IniRead(@ScriptDir&"\_Queue.ini", "CharacterButton", "X", "0")
Global $DFCharacterButtonY = IniRead(@ScriptDir&"\_Queue.ini", "CharacterButton", "Y", "0")

$i = 1
While $i = 1
    Sleep (5000)
    _Launch()
    $i = $i + 1
WEnd


Func _Launch()
    _DesktopIcon()
    _Login()
    _Lobby()
    _Character()
EndFunc

Func _DesktopIcon()
    MouseClick("left", $DFIconTargetX, $DFIconTargetY, 2)
    Sleep (1000)
    If WinExists("Darkfall End User License Agreement") Then
        ControlClick("Darkfall", "", "Button1", "left", 2)
    EndIf
EndFunc

Func _Login()
    WinActivate("Darkfall")
    Sleep (5000)
    MouseClick("left", $DFLoginButtonX, $DFLoginButtonY, 1)
    Sleep (5000)
EndFunc

Func _Lobby()
    WinActivate("Darkfall")
    Sleep (2000)
    MouseClick("left", $DFServerButtonX, $DFServerButtonY, 1)
    Sleep (5000)
EndFunc

Func _Character()
    WinActivate("Darkfall")
    Sleep (2000)
    MouseClick("left", $DFCharacterButtonX, $DFCharacterButtonY, 1)
    Sleep (5000)
EndFunc