Code:
;get window handle
WinGet, win_ids, ID, Trove
;TO-DO : edit for multi account
Handle := win_ids
;To avoid some bugs
SetKeyDelay, 40
Loop {
Sleep 200
ControlSend,,{z},ahk_id %Handle%
Sleep 100
ControlSend,,{w down},ahk_id %Handle%
ControlSend,,{d down},ahk_id %Handle%
Sleep 100
ControlSend,,{Space},ahk_id %Handle%
Sleep 200
ControlSend,,{Space},ahk_id %Handle%
Sleep 200
ControlSend,,{Space},ahk_id %Handle%
Sleep 200
ControlSend,,{Space},ahk_id %Handle%
Sleep 200
ControlSend,,{Space},ahk_id %Handle%
Sleep 200
ControlSend,,{Space down},ahk_id %Handle%
Sleep 600
ControlSend,,{w up},ahk_id %Handle%
ControlSend,,{d up},ahk_id %Handle%
ControlSend,,{Space up},ahk_id %Handle%
Sleep 200
;respawn to the rally blade and use it
ControlSend,,{Enter}/respawn{Enter},ahk_id %Handle%
Sleep 1000
ControlSend,,e,ahk_id %Handle%
;Send {e}
Sleep 2000
ControlSend,,w,ahk_id %Handle%
ControlSend,,{s down},ahk_id %Handle%
ControlSend,,{d down},ahk_id %Handle%
Sleep 200
ControlSend,,{d up},ahk_id %Handle%
Sleep 150
ControlSend,,{s up},ahk_id %Handle%
Sleep 1000
ControlSend,,e,ahk_id %Handle%
Sleep 3000
TimeOut = 0
LastTime = 0
Loop {
;detect a dungeon
Dungeon1 := DwmGetPixel(1569, 98, ahk_id %Handle%)
Dungeon2 := DwmGetPixel(1568, 175,ahk_id %Handle%)
if (Dungeon1 = "0x696969"||Dungeon2 = "0x767676"|)
{
LastTime = 1
if (TimeOut = 18)
{
;break after 5000ms*18=90s in uncleared dungeon
break
}
TimeOut++
;fake jumps every 5.5 seconds loop
Sleep 500
ControlSend,,{space down},ahk_id %Handle%
Sleep 100
ControlSend,,{space up},ahk_id %Handle%
ControlSend,,{space down},ahk_id %Handle%
Sleep 100
ControlSend,,{space up},ahk_id %Handle%
Sleep 100
ControlSend,,{space down},ahk_id %Handle%
Sleep 100
ControlSend,,{space up},ahk_id %Handle%
Sleep 4500
}
else
{
if (LastTime = 1)
{
;time to loot !
ControlSend,,{e down},ahk_id %Handle%
;wait for the chest to be destroyed
Sleep 6000
ControlSend,,{e up},ahk_id %Handle%
}
break
}
}
}
Numpad0::ExitApp
Numpad4::Pause,,1
DwmGetPixel(x, y, hwnd)
{
hDC := DllCall("user32.dll\GetDCEx", "UInt", hwnd, "UInt", 0, "UInt", 1|2)
pix := DllCall("gdi32.dll\GetPixel", "UInt", hDC, "Int", x, "Int", y, "UInt")
DllCall("user32.dll\ReleaseDC", "UInt", hwnd, "UInt", hDC)
pix := DecToHex(pix)
return pix
}
DecToHex(dec)
{
oldfrmt := A_FormatInteger
hex := dec
SetFormat, IntegerFast, hex
hex += 0
hex .= ""
SetFormat, IntegerFast, %oldfrmt%
return hex
}
Hope this works for some of you guys having problems!