|
|
Line 1: |
Line 1: |
− | <pre>
| |
− | Loop 5
| |
− | {
| |
− | FirstStone := A_Index
| |
− | NumToRun1 := 6-A_Index
| |
− | Loop, %NumToRun%
| |
− | {
| |
− | SecondStone := FirstStone+A_Index
| |
− | NuumToRun2 := 5-A_Index
| |
− | Loop, %NumToRun2%
| |
− | [
| |
− | ThirdStone := SecondStone+A_Index
| |
− | ;cegaiel's code
| |
| | | |
− | MouseMove, MineX%FirstStone%, MineY%FirstStone%
| |
− | Sleep 100
| |
− | Send {A}
| |
− | Sleep 100
| |
− | MouseMove, MineX%SecondStone%, MineY%SecondStone%
| |
− | Sleep 100
| |
− | Send {A}
| |
− | Sleep 100
| |
− | MouseMove, MineX%A_Index%, MineY%A_Index%
| |
− | Sleep 100
| |
− | Send {A}
| |
− | Sleep 100
| |
− | Send {S}
| |
− | Sleep 100
| |
− | Gosub, Popup
| |
− |
| |
− |
| |
− | }
| |
− | }
| |
− | }
| |
− | </pre>
| |
− |
| |
− | <pre>
| |
− | ;Ctrl+R to reload
| |
− | ;Ctrl+P to pause
| |
− |
| |
− | IfWinExist eGenesis Client
| |
− | {
| |
− | WinGet, GameWinHandle, ID, eGenesis Client
| |
− | } else {
| |
− | Msgbox, eGenesis client not running, exiting...
| |
− | Exit
| |
− | }
| |
− | ;~ Info
| |
− | WinActivate, eGenesis Client
| |
− | WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos
| |
− | StartXGUI := Xmax+win_Xpos-255
| |
− | StartYGUI := win_Ypos+35
| |
− | Gui, +AlwaysOnTop +ToolWindow -Border +Background
| |
− | Gui, Add, Text,,Make sure you have: `n"Right-Click Pins/Unpins a Menu" and `n"Right-Click opens a Menu as Pinned"´`nchecked under options\interface.
| |
− | Gui, Add, Button, x10 y70 gStart, Next »
| |
− | Gui, Add, Button, x200 y5 gClose, Close
| |
− | Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window
| |
− | Return
| |
− |
| |
− | Start:
| |
− | Gui, Destroy
| |
− | ;~ Ask for config
| |
− | WinActivate, eGenesis Client
| |
− | WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos
| |
− | StartXGUI := Xmax+win_Xpos-255
| |
− | StartYGUI := win_Ypos+35
| |
− | Gui, +AlwaysOnTop +ToolWindow -Border +Background
| |
− | Gui, Add, Text,,Type in how many rows and columns `nof kettles you will be working with:
| |
− | Gui, Add, Text, x10 y40, Rows:
| |
− | Gui, Add, Edit,xp+35 yp-4 vnumRows, 1
| |
− | Gui, Add, Text,xp+20 y40, Columns:
| |
− | Gui, Add, Edit,xp+45 yp-4 vnumColumns, 4
| |
− | Gui, Add, Button, x10 y70 gNext, Next »
| |
− | Gui, Add, Button, x200 y5 gClose, Close
| |
− | Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window
| |
− | Return
| |
− |
| |
− | Next:
| |
− | Gui, submit
| |
− | Gui, Destroy
| |
− | ;Get Top Left
| |
− | Gui, +AlwaysOnTop +ToolWindow -Border +Background
| |
− | Gui, Add, Text,,Using F8F8 camera view make `nsure you can see all kettles.
| |
− | Gui, Add, Text,,Position your mouse over `nthe topleft kettle and press the F2 key.
| |
− | Gui, Add, Button, x200 y5 gClose, Close
| |
− | Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window
| |
− | loop
| |
− | {
| |
− | WinActivate eGenesis Client
| |
− | KeyWait, F2, D
| |
− | KeyWait, F2
| |
− | MouseGetPos, FirstX, FirstY, WinHandle
| |
− | if (WinHandle = GameWinHandle)
| |
− | {
| |
− | Gosub, GotTopLeft
| |
− | }
| |
− | }
| |
− | return
| |
− |
| |
− | GotTopLeft:
| |
− | Gui, Destroy
| |
− | ;Get Bottom Right
| |
− | Gui, +AlwaysOnTop +ToolWindow -Border +Background
| |
− | Gui, Add, Text,,Position your mouse over `nthe bottom right kettle `nand press the F2 key.
| |
− | Gui, Add, Button, x200 y5 gClose, Close
| |
− | Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window
| |
− |
| |
− | loop
| |
− | {
| |
− | WinActivate eGenesis Client
| |
− | KeyWait, F2, D
| |
− | KeyWait, F2
| |
− | MouseGetPos, LastX, LastY, WinHandle
| |
− | if (WinHandle = GameWinHandle)
| |
− | {
| |
− | Gosub, GotBottomRight
| |
− | }
| |
− | }
| |
− | return
| |
− |
| |
− | GotBottomRight:
| |
− | Gui, Destroy
| |
− | ;~ Open Windows
| |
− | ;~ Hands off
| |
− | Gui, +AlwaysOnTop +ToolWindow -Border +Background
| |
− | Gui, Add, Text,vTimeLeft,Leave your mouse alone, `nopening windows in 5 seconds.
| |
− | Gui, Add, Button, x200 y5 gClose, Close
| |
− | Gui, Show, X%StartXGUI% Y%StartYGUI% w240 h100, New GUI Window
| |
− | SmallPause := 5
| |
− | Loop, %SmallPause%
| |
− | {
| |
− | GuiControl, Text, TimeLeft, Leave your mouse alone, `nopening windows in %SmallPause% seconds.
| |
− | SmallPause --
| |
− | Sleep 1000
| |
− | }
| |
− | GuiControl, Text, TimeLeft, Opening Windows Now.
| |
− | WinActivate eGenesis Client
| |
− |
| |
− | ;~ loop through windows to open and arrange
| |
− | topNotFound := true
| |
− | Loop, %numColumns%
| |
− | {
| |
− | curColumn := A_Index
| |
− | openPosX := FirstX+(A_Index-1)*floor((LastX-FirstX)/(numColumns-1))
| |
− | Loop, %numRows%
| |
− | {
| |
− | openPosY := FirstY+(A_Index-1)*floor((LastY-FirstY)/(numRows-1))
| |
− | MouseClick,Right,openPosX,openPosY
| |
− | sleep, 200
| |
− | startSeaX := openPosX+5
| |
− | finishSeaY := openPosY-200
| |
− | ;~ If the window size is not known find it
| |
− | If topNotFound
| |
− | {
| |
− | GuiControl, Text, TimeLeft, Verifying Window Height. (0 / 200)
| |
− | Loop, 20
| |
− | {
| |
− | curStartB := openPosY-(10*A_Index)
| |
− | proBar := 10*A_Index
| |
− | GuiControl, Text, TimeLeft, Verifying Window Height. (%proBar% / 200)
| |
− | curStartT := openPosY-(10*A_Index)-10
| |
− | PixelSearch,OutX,OutY,%startSeaX%,%curStartT%,%startSeaX%,%curStartB%,0x000000,Fast
| |
− | if ErrorLevel < 1
| |
− | {
| |
− | break
| |
− | }
| |
− | }
| |
− | GuiControl, Text, TimeLeft, Final Height Check.
| |
− | PixelSearch,OutX,OutY,%startSeaX%,%curStartB%,%startSeaX%,%curStartT%,0x000000
| |
− | curStartB := openPosY-OutY+3
| |
− | curStartT := openPosY-OutY-3
| |
− | topNotFound := false
| |
− | }
| |
− | ;~ Search for black line on top of window
| |
− | GuiControl, Text, TimeLeft, Arranging Row:%A_Index% Column:%curColumn%
| |
− | startSeaYB := openPosY-curStartB
| |
− | startSeaYT := openPosY-curStartT
| |
− | PixelSearch,OutX,OutY,%startSeaX%,%startSeaYT%,%startSeaX%,%startSeaYB%,0x000000,50
| |
− | arrX := 18+20*(numRows)*(curColumn-1)+20*(A_Index-1)
| |
− | ;~ Drag the window to position
| |
− | MouseClick,Left,%OutX%,%OutY%,,,D
| |
− | sleep 100
| |
− | MouseMove,%arrX%,50
| |
− | sleep 300
| |
− | MouseClick,Left,,,,,U
| |
− | sleep, 100
| |
− | }
| |
− | }
| |
− |
| |
− | ;~ focus
| |
− | gosub, Focus
| |
− | GuiControl, Text, TimeLeft, Checking Window Width.
| |
− | ;~ Check windWidth
| |
− | PixelSearch,winWX,winWY,18,52,500,52,0x000000,50
| |
− | baseXofWidth := winWX-18
| |
− |
| |
− | ;~ Run the kettles
| |
− | GuiControl, Text, TimeLeft, Running The Kettles
| |
− | totalWindows := numColumns*numRows
| |
− | Winactivate
| |
− | allFinished := false
| |
− |
| |
− | ;~ Clear Vector
| |
− | GuiControl, Text, TimeLeft, Clearing Records.
| |
− | Loop, %totalWindows%
| |
− | {
| |
− | ketDone%A_Index% := False
| |
− | }
| |
− | NotReady := True
| |
− |
| |
− | Loop
| |
− | {
| |
− | loop, %totalWindows%
| |
− | {
| |
− | GuiControl, Text, TimeLeft, Checking Kettle: %A_Index% of %totalWindows%
| |
− | focusPos := floor(18+20*(A_Index-1))
| |
− | focusPosEnd := floor(18+20*(A_Index-1)+baseXofWidth)
| |
− | ;~ Focus Next
| |
− | ;~ Start Kettle
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,316,Potash.png
| |
− | If ErrorLevel<1
| |
− | {
| |
− | MouseClick, Left, OutX,OutY
| |
− | Sleep, 200
| |
− | }
| |
− | ;~ Find and click Begin
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,316,Begin.png
| |
− | If ErrorLevel<1
| |
− | {
| |
− | MouseClick, Left, OutX,OutY
| |
− | Sleep, 200
| |
− | }
| |
− | ;~ Find and Click Ignite
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,316,Ignite.png
| |
− | If ErrorLevel<1
| |
− | {
| |
− | MouseClick, Left, OutX,OutY
| |
− | Sleep, 300
| |
− | }
| |
− | ;~ Find and Click Max
| |
− | centerOfWindowX := floor(Xmax/2)
| |
− | centerOfWindowY := floor(Ymax/2)
| |
− | baseMaxXB := centerOfWindowX-100
| |
− | baseMaxXE := centerOfWindowX+100
| |
− | baseMaxYB := centerOfWindowY
| |
− | baseMaxYE := centerOfWindowY+100
| |
− | ImageSearch, OutX,OutY,0,0,Xmax,Ymax,How.png
| |
− | baseYofMax := OutY+74
| |
− | baseXofMax := OutX+81
| |
− | If ErrorLevel<1
| |
− | {
| |
− | Mousemove,baseXofMax,baseYofMax
| |
− | MouseClick, Left,baseXofMax,baseYofMax
| |
− | sleep, 200
| |
− | }
| |
− | ;~ Check if completed
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,316,Take.png
| |
− | if ErrorLevel<1
| |
− | {
| |
− | ketDone%A_Index% := True
| |
− | }
| |
− | ;~ Skip if completed
| |
− | CurrentState := ketDone%A_Index%
| |
− | If CurrentState=False
| |
− | {
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,180,StokeMax.png
| |
− | stokeX := OutX
| |
− | stokeY := OutY
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,280,Water6Wood5.png
| |
− | If ErrorLevel<1
| |
− | {
| |
− | ketDone%A_Index% := True
| |
− | } else {
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,280,Wood0.png
| |
− | if ErrorLevel<1
| |
− | {
| |
− | MouseClick, Left, stokeX,stokeY
| |
− | sleep, 100
| |
− | } else {
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,280,Water6.png
| |
− | if ErrorLevel<1
| |
− | {
| |
− | MouseClick, Left, stokeX,stokeY
| |
− | sleep, 100
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | ;~ Focus Next
| |
− | nextFocus := focusPosEnd+20
| |
− | if (A_Index<totalWindows)
| |
− | {
| |
− | MouseClick, Left,nextFocus,52
| |
− | sleep, 100
| |
− | }
| |
− | }
| |
− | gosub, Focus
| |
− | NotReady := False
| |
− | Loop, %totalWindows%
| |
− | {
| |
− | CurrentState := ketDone%A_Index%
| |
− | If CurrentState=False
| |
− | {
| |
− | GuiControl, Text, TimeLeft, LOOP %A_Index% - NotReady:%NotReady% - `nBAD!!
| |
− | Sleep 5000
| |
− | NotReady := True
| |
− | }
| |
− |
| |
− | }
| |
− | If (NotReady=False)
| |
− | {
| |
− | Break
| |
− | }
| |
− | }
| |
− |
| |
− | ;~ Take
| |
− | Loop, %totalWindows%
| |
− | {
| |
− | GuiControl, Text, TimeLeft, Taking from Kettle: %A_Index% of %totalWindows%
| |
− | focusPos := floor(18+20*(A_Index-1))
| |
− | focusPosEnd := floor(18+20*(A_Index-1)+baseXofWidth)
| |
− | ImageSearch, OutX,OutY,focusPos,52,focusPosEnd,316,Take.png
| |
− | if ErrorLevel<1
| |
− | {
| |
− | MouseClick, Left,OutX,OutY
| |
− | sleep, 100
| |
− | }
| |
− | nextFocus := focusPosEnd+20
| |
− | if (A_Index<totalWindows)
| |
− | {
| |
− | MouseClick, Left,nextFocus,52
| |
− | sleep, 100
| |
− | }
| |
− | }
| |
− | gosub, Focus
| |
− | ExitApp
| |
− |
| |
− |
| |
− | Focus:
| |
− | GuiControl, Text, TimeLeft, Reversing Order.
| |
− | totalWindows := numColumns*numRows
| |
− | loop, %totalWindows%
| |
− | {
| |
− | focusPos := 18+20*(totalWindows-A_Index)
| |
− | MouseClick, Left,focusPos,50
| |
− | sleep 100
| |
− | }
| |
− | return
| |
− |
| |
− | Close:
| |
− | ExitApp
| |
− |
| |
− | ^r::reload
| |
− | ^p::Pause
| |
− | </pre>
| |