|
|
| (One intermediate revision by the same user not shown) |
| Line 1: |
Line 1: |
| − | <pre>
| |
| − | Loop 5
| |
| − | {
| |
| − | FirstStone := A_Index
| |
| − | NumToRun1 := 6-A_Index
| |
| − | ;Select Stone A_Index (code) (shortcut A)
| |
| − | Loop, %NumToRun%
| |
| − | {
| |
| − | SecondStone := FirstStone+A_Index
| |
| − | NuumToRun2 := 5-A_Index
| |
| − | ;Select Stone B_Index (code) (shortcut A)
| |
| − | Loop, %NumToRun2%
| |
| − | [
| |
| − | ThirdStone := SecondStone+A_Index
| |
| − | ;Select Stone B_Index (code) (shortcut S)
| |
| − | ;Check if popup opened and close it
| |
| − | }
| |
| − | }
| |
| − | }
| |
| − | </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>
| |