Here is the script I've been working on for Imperial MGP farming. You'll need to change the coords and colour using WindowSpy to match your screen.
Code:
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
WinGet, programid, List, FINAL FANTASY
CoordMode, ToolTip, Screen
; Win Z to Start
#Z::
tooltip, `nCurrent Game # : %A_Index%`n, 0, 0
; Create Window Tool Tip to show # of Games
sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 2000
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Loop
{
Sleep 12000
; Game started, Alphinaud
PixelGetColor, color, 629, 509
if color = 0x7a5a3a
{
Click, 628, 511 ; Pick up Alphinaud
Sleep 1500
PixelGetColor, color, 1095, 510
if color = 0xc1caca
{
Click, 1095, 510 ; Drop Alphinaud bottom right
}
else
{
PixelGetColor, color, 960, 510
if color = 0xd6e0e1
{
Click, 960, 510 ; Drop Alphinaud middle bottom
}
else
{
Click, 825, 510 ; Drop Alphinaud bottom left
}
}
}
Sleep 7000 ; Imperial turn
; Our turn, Urianger
PixelGetColor, color, 603, 376
if color = 0x7a593a
{
Click, 576, 375 ; Pick up Urianger
Sleep 1500
PixelGetColor, color, 960, 375
if color = 0xc1c9c8
{
Click, 960, 375 ; Drop Urianger middle
}
else
{
PixelGetColor, color, 1095, 375
if color = 0xd6e0e1
{
Click, 1095, 375 ; Drop Urianger middle right
}
else
{
Click, 960, 510 ; Drop Urianger middle bottom
}
}
}
Sleep 7000 ; Imperial turn
; Our turn, Thancred
PixelGetColor, color, 671, 424
if color = 0x7a593a
{
Click, 671, 424 ; Pick up Thancred
Sleep 1500
PixelGetColor, color, 1095, 240
if color = 0xc1caca
{
Click, 1095, 240 ; Drop Thancred top right
}
else
{
PixelGetColor, color, 960, 240
if color = 0xd6e0e1
{
Click, 960, 240 ; Drop Thancred top middle
}
else
{
Click, 825, 240 ; Drop Thancred top left
}
}
}
Sleep 7000 ; Imperial turn
; Our turn, Yshtola
PixelGetColor, color, 550, 519
if color = 0x785638
{
Click, 519, 520 ; Pick up Yshtola
Sleep 1500
PixelGetColor, color, 825, 510
if color = 0xc1caca
{
Click, 825, 510 ; Drop Yshtola bottom left
}
else
{
PixelGetColor, color, 825, 375
if color = 0xd6e0e1
{
Click, 825, 375 ; Drop Yshtola middle left
}
else
{
Click, 825, 240 ; Drop Yshtola top left
}
}
}
Sleep 7000 ; Imperial turn
; If Imperial played first, we won't be playing Papalyo, we will set up next game
; Else we will play our last Papalymo card
PixelGetColor, color, 843, 354
if color = 0x313031
{
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
}
else
{
Click, 464, 373 ; Select Papalymo then place him in final spot
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 5000
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
ControlSend,,{Numpad0}, ahk_id %programid1%
Sleep 1500
}
}
For some reason the code completely skips the Thancred section. After Urianger is placed it places Y'shtola next, and I can't fathom why since the code for each card is identical except for the pixel info. Anyone have any suggestions?