03-21-2015, 10:25 AM
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.
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?
Otherwise this would be good to go!
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?
Otherwise this would be good to go!