The Wiki for Tale 4 is in read-only mode and is available for archival and reference purposes only. Please visit the current Tale 11 Wiki in the meantime.
If you have any issues with this Wiki, please post in #wiki-editing on Discord or contact Brad in-game.
Difference between revisions of "User:Cegaiel/Macros/Potash/Code"
From A Tale in the Desert
< User:Cegaiel | Macros | Potash
Jump to navigationJump to search| Line 2: | Line 2: | ||
<pre> | <pre> | ||
| − | ;Make Potash with 6 kettles | + | 0;Make Potash/Acid/Salt with 6 kettles |
| − | |||
| − | |||
| − | |||
| − | |||
| − | ;Pin 6 kettle menus from left to right | + | ;Pin 6 kettle menus from left to right, starting at upper left corner |
;Ctrl+Alt+W to start script | ;Ctrl+Alt+W to start script | ||
| Line 24: | Line 20: | ||
^p::Pause | ^p::Pause | ||
^!w:: | ^!w:: | ||
| + | |||
| + | ;Date: May 19, 2010 | ||
| + | ;Author: Cegaiel | ||
| Line 34: | Line 33: | ||
Exit | Exit | ||
} | } | ||
| + | |||
| Line 42: | Line 42: | ||
;You may remove this entire routine, if you wish. | ;You may remove this entire routine, if you wish. | ||
| − | if (Xmax = 1032) && (Ymax = 746) | + | if !(Xmax = 1032) && (Ymax = 746) |
{ | { | ||
| − | |||
| − | |||
Msgbox, You are not in 1024x768 resolution`n`nExiting... | Msgbox, You are not in 1024x768 resolution`n`nExiting... | ||
EXIT | EXIT | ||
| Line 55: | Line 53: | ||
Gui, +AlwaysOnTop +ToolWindow | Gui, +AlwaysOnTop +ToolWindow | ||
Gui, Add, Text,, Type of Kettles? | Gui, Add, Text,, Type of Kettles? | ||
| − | Gui, Add, DropDownList, vKettle | + | Gui, Add, DropDownList, vKettle Choose2, Private|Public |
| − | Gui, Add, Button, Default gStart, | + | Gui, Add, Text,, What are we making? |
| + | Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt | ||
| + | Gui, Add, Text,, How many runs? | ||
| + | Gui, Add, Edit, vRuns wp number, 1 | ||
| + | Gui, Add, Button, Default gStart, BEGIN | ||
Gui, Show | Gui, Show | ||
return | return | ||
| Line 62: | Line 64: | ||
Start: | Start: | ||
| − | |||
Gui, Submit | Gui, Submit | ||
Gui, Destroy | Gui, Destroy | ||
| − | Msgbox, Ingredients needed to run 6 kettles:`n` | + | |
| − | + | Counter = 0 | |
| − | + | Wood := (168 * runs) | |
| − | + | Water := (150 * runs) | |
| − | + | Salt := (6 * runs) | |
| − | + | Ash := (30 * runs) | |
| − | + | ||
| + | if (Make == "Acid") { | ||
| + | OutputTotal := (3 * 6 * runs) | ||
| + | Msgbox, Ingredients needed to run 6 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Sulphurous Water`n%salt% Salt`n`nMake sure you have that in your inventory!`n`nYield: 3 Acid per kettle`nTotal: %OutputTotal% Acid (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue... | ||
| + | |||
| + | |||
| + | ;Position of the Acid button | ||
| + | PotashX1 = 125 | ||
| + | PotashX2 = 295 | ||
| + | PotashX3 = 465 | ||
| + | PotashX4 = 635 | ||
| + | PotashX5 = 805 | ||
| + | PotashX6 = 975 | ||
| + | |||
| + | PotashY = 265 | ||
| + | |||
| + | } else if (Make == "Potash") { | ||
| + | OutputTotal := (5 * 6 * runs) | ||
| + | Msgbox, Ingredients needed to run 6 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Water`n%ash% Ash`n`nMake sure you have that in your inventory!`n`nYield: 5 Potash per kettle`nTotal: %OutputTotal% Potash (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue... | ||
| + | |||
| + | |||
| + | ;Position of the Potash button | ||
| + | PotashX1 = 45 | ||
| + | PotashX2 = 220 | ||
| + | PotashX3 = 385 | ||
| + | PotashX4 = 555 | ||
| + | PotashX5 = 725 | ||
| + | PotashX6 = 890 | ||
| + | |||
| + | PotashY = 170 | ||
| + | |||
| + | } else if (Make == "Salt") { | ||
| + | OutputTotal := (3 * 6 * runs) | ||
| + | Msgbox, Ingredients needed to run 6 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Coconut Water`n`nMake sure you have that in your inventory!`n`nYield: 3 Salt per kettle`nTotal: %OutputTotal% Salt (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue... | ||
| + | |||
| + | |||
| + | ;Position of the Salt button | ||
| + | PotashX1 = 125 | ||
| + | PotashX2 = 295 | ||
| + | PotashX3 = 465 | ||
| + | PotashX4 = 635 | ||
| + | PotashX5 = 805 | ||
| + | PotashX6 = 975 | ||
| + | |||
| + | PotashY = 240 | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | ;This is where the Stoke Max option appears on the menu | ||
| + | StokeMaxX1 = 70 | ||
| + | StokeMaxX2 = 250 | ||
| + | StokeMaxX3 = 420 | ||
| + | StokeMaxX4 = 590 | ||
| + | StokeMaxX5 = 750 | ||
| + | StokeMaxX6 = 910 | ||
| + | |||
| + | StokeMaxY = 75 | ||
| + | |||
| + | |||
| + | ;Max button, this is after the pot is ignited and asks for Quantity, we hit the Max button instead of typing a number | ||
| + | MaxButtonX = 515 | ||
| + | MaxButtonY = 420 | ||
| + | |||
| + | |||
| + | ;The Begin, Ignite and Take button appear in the same place, so these apply to all three. | ||
| + | BeginIgniteTakeX1 = 45 | ||
| + | BeginIgniteTakeX2 = 220 | ||
| + | BeginIgniteTakeX3 = 390 | ||
| + | BeginIgniteTakeX4 = 555 | ||
| + | BeginIgniteTakeX5 = 725 | ||
| + | BeginIgniteTakeX6 = 895 | ||
| + | |||
| + | BeginIgniteTakeY = 240 | ||
| + | |||
| + | |||
| + | |||
| + | ;NOTE: PotashY, StokeMaxY and BeginIgniteTakeY is set to Y position in Private kettle setting. | ||
| + | ;If this is a public kettle AND you are trying to change numbers for another resolution, then note: | ||
| + | ;The coords are adjusted for public below, take that into consideration. | ||
| + | ;If you dont have any of your own kettles and will change numbers for a different resolution, then | ||
| + | ;Just plug in all the numbers above (center of buttons) and launch the script and choose "Private" kettle, even though it is "Public" | ||
| + | |||
| + | if (Kettle == "Public") | ||
| + | { | ||
| + | ;If the kettle is public then it lowers 15 coords at 1024x768 (will vary with other resolutions) | ||
| + | PotashY := PotashY + 15 | ||
| + | BeginIgniteTakeY := BeginIgniteTakeY + 15 | ||
| + | StokeMaxY := StokeMaxY + 15 | ||
| + | } | ||
| + | |||
| + | ;Make sure the RefreshY line stays after the 'if (Kettle == "Public")' line | ||
| + | ;This is the Y button of when it clicks the top of the menu to refresh the menu | ||
| + | |||
| + | |||
| + | RefreshY := (StokeMaxY - 25) | ||
| + | |||
| + | Gui, +AlwaysOnTop +ToolWindow | ||
| + | Gui, Font, normal | ||
| + | Gui, Add, Text, vMineCycleText, Preparing to start script, please stand by ...`n`n`n`n`n`n`n`n`n | ||
| + | Gui, Show | ||
| − | Loop, % | + | delay = 6 |
| + | Loop, %delay% | ||
{ | { | ||
| − | GuiControl, Text, MineCycleText, % | + | GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way! |
| − | + | delay -- | |
Sleep 1000 | Sleep 1000 | ||
} | } | ||
| Line 92: | Line 194: | ||
WinActivate, eGenesis Client | WinActivate, eGenesis Client | ||
| + | Sleep 500 | ||
| + | |||
| − | |||
| − | + | Loop, %Runs% | |
| − | + | { | |
| − | + | counter ++ | |
| + | stoke = 0 | ||
| + | waterlevel = - | ||
| + | countdown = 0 | ||
| + | seconds = 0 | ||
| + | minutes = 0 | ||
| + | seconds_eta = 30 | ||
| + | minutes_eta = 15 | ||
| + | cseconds = 0 | ||
| + | cminutes = 0 | ||
| + | sSeconds = 0 | ||
| + | sMinutes = 0 | ||
| + | |||
| + | ;Click Potash/Acid/Salt Button | ||
| + | |||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "%make%" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| − | + | Click, %PotashX1%, %PotashY% ;Pot 1 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %PotashX2%, %PotashY% ;Pot 2 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %PotashX3%, %PotashY% ;Pot 3 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %PotashX4%, %PotashY% ;Pot 4 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %PotashX5%, %PotashY% ;Pot 5 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %PotashX6%, %PotashY% ;Pot 6 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| Line 122: | Line 234: | ||
;Click Begin button | ;Click Begin button | ||
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "Begin" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | |||
| − | |||
| − | + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1 | |
| − | |||
sleep 200 | sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2 | |
| − | |||
sleep 200 | sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3 | |
| − | |||
sleep 200 | sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4 | |
| − | |||
sleep 200 | sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5 | |
| − | |||
sleep 200 | sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6 | |
| − | |||
sleep 200 | sleep 200 | ||
| + | ;Click Ignite + Max button, then Refresh Menu (to show Stoke Max option) | ||
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Igniting + Adding Max Wood...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | |||
| − | |||
;Pot 1 | ;Pot 1 | ||
| − | + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
sleep 200 | sleep 200 | ||
| − | Click, | + | Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh |
sleep 200 | sleep 200 | ||
;Pot 2 | ;Pot 2 | ||
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
sleep 200 | sleep 200 | ||
| − | Click, | + | Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh |
sleep 200 | sleep 200 | ||
;Pot 3 | ;Pot 3 | ||
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
sleep 200 | sleep 200 | ||
| − | Click, | + | Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh |
sleep 200 | sleep 200 | ||
;Pot 4 | ;Pot 4 | ||
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
sleep 200 | sleep 200 | ||
| − | Click, | + | Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh |
sleep 200 | sleep 200 | ||
;Pot 5 | ;Pot 5 | ||
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
sleep 200 | sleep 200 | ||
| − | Click, | + | Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh |
sleep 200 | sleep 200 | ||
;Pot 6 | ;Pot 6 | ||
| − | + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
sleep 200 | sleep 200 | ||
| − | Click, | + | Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh |
sleep 200 | sleep 200 | ||
| + | ;This begins the Elapsed and ETA timers | ||
| + | #Persistent | ||
| + | SetTimer, Timer, 1000 | ||
| − | |||
| − | + | ;Stoke 1 countdown (@ 24 water, first 3 waters dont get burned off after you first start a kettle | |
| − | Loop, % | + | |
| + | waterlevel = 24 | ||
| + | cminutes = 2 | ||
| + | cseconds = 12 | ||
| + | ;countdown = 132 | ||
| + | GoSub, SetCountdown | ||
| + | |||
| + | Loop, %countdown% | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | GetKeyState, state, F2 | + | Gosub, StokeTimer |
| − | if state = D | + | |
| − | break | + | GetKeyState, state, F2 |
| − | + | if state = D | |
| + | break | ||
| + | } | ||
| + | |||
| + | waterlevel = 19 | ||
| + | Gosub, StokeMax | ||
| − | |||
| + | ;Stoke 2 (@ 19 water) countdown | ||
| − | ; | + | cminutes = 2 |
| + | cseconds = 43 | ||
| + | ;countdown = 163 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | + | Gosub, StokeTimer | |
| − | |||
| − | |||
| − | |||
| − | |||
| + | GetKeyState, state, F2 | ||
| + | if state = D | ||
| + | { | ||
| + | break | ||
| + | } | ||
} | } | ||
| − | Gosub, StokeMax | + | waterlevel = 14 |
| + | Gosub, StokeMax | ||
| + | |||
| + | ;Stoke 3 (@ 14 water) countdown | ||
| − | ; | + | cminutes = 2 |
| + | cseconds = 43 | ||
| + | ;countdown = 163 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | + | Gosub, StokeTimer | |
| − | |||
| − | |||
| + | GetKeyState, state, F2 | ||
| + | if state = D | ||
| + | { | ||
| + | break | ||
| + | } | ||
} | } | ||
| − | Gosub, StokeMax | + | waterlevel = 9 |
| + | Gosub, StokeMax | ||
| + | |||
| + | ;Stoke 4 (@ 9 water) countdown | ||
| − | ; | + | cminutes = 2 |
| + | cseconds = 43 | ||
| + | ;countdown = 163 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | GetKeyState, state, F2 | + | Gosub, StokeTimer |
| − | if state = D | + | |
| − | break | + | GetKeyState, state, F2 |
| + | if state = D | ||
| + | { | ||
| + | break | ||
| + | } | ||
} | } | ||
| + | waterlevel = 6 | ||
Gosub, StokeMax | Gosub, StokeMax | ||
| − | ;Stoke 5 (6 water) countdown | + | ;Stoke 5 (@ 6 water) countdown |
| + | |||
| + | cminutes = 1 | ||
| + | cseconds = 36 | ||
| + | ;countdown = 96 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | + | ||
| − | + | Gosub, StokeTimer | |
| − | + | ||
| − | GetKeyState, state, F2 | + | GetKeyState, state, F2 |
| − | if state = D | + | if state = D |
| − | break | + | { |
| + | break | ||
| + | } | ||
} | } | ||
| + | waterlevel = N/A | ||
Gosub, StokeMax | Gosub, StokeMax | ||
;Countdown until complete | ;Countdown until complete | ||
| − | + | cminutes = 3 | |
| − | Loop, % | + | cseconds = 6 |
| + | ;countdown = 186 | ||
| + | GoSub, SetCountdown | ||
| + | |||
| + | Loop, %countdown% | ||
{ | { | ||
| − | + | ||
| − | + | Gosub, StokeTimer | |
| − | |||
} | } | ||
| + | |||
| + | |||
| + | cminutes = 0 | ||
| + | cseconds = 0 | ||
| + | } ; End Runs Loop | ||
| + | |||
| + | |||
| Line 316: | Line 453: | ||
WinActivate, eGenesis Client | WinActivate, eGenesis Client | ||
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Taking items from kettle...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | Click, | + | |
| + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1 | ||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2 | |
| − | Click, | ||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5 | |
| − | Click | ||
| − | |||
| − | |||
| − | |||
Sleep 200 | Sleep 200 | ||
| + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6 | ||
| − | + | ;ALL DONE! | |
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: All Done! Reload: Ctrl+R`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | + | return | |
| − | |||
| − | |||
| Line 349: | Line 479: | ||
WinActivate, eGenesis Client | WinActivate, eGenesis Client | ||
| − | |||
| − | |||
| − | |||
| + | ;Click Stoke Max | ||
| + | |||
| + | stoke ++ | ||
| + | |||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: STOKING!`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| − | |||
MouseGetPos, OldMX, OldMY | MouseGetPos, OldMX, OldMY | ||
| − | + | Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
| − | + | Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6 | |
| − | Click, | ||
sleep 200 | sleep 200 | ||
MouseMove, %OldMX%, %OldMY%, 0 | MouseMove, %OldMX%, %OldMY%, 0 | ||
return | return | ||
| − | </pre> | + | |
| + | |||
| + | Timer: | ||
| + | |||
| + | seconds ++ | ||
| + | |||
| + | if (seconds = 60) | ||
| + | { | ||
| + | seconds := 0 | ||
| + | minutes ++ | ||
| + | } | ||
| + | |||
| + | if (seconds_eta = 0) | ||
| + | { | ||
| + | seconds_eta := 60 | ||
| + | minutes_eta -- | ||
| + | } | ||
| + | |||
| + | if (minutes_eta < 0) | ||
| + | minutes_eta := 0 | ||
| + | |||
| + | seconds_eta -- | ||
| + | return | ||
| + | |||
| + | |||
| + | SetCountdown: | ||
| + | |||
| + | countdown := (cminutes * 60 + cseconds) | ||
| + | sSeconds := cseconds | ||
| + | sMinutes := cminutes | ||
| + | return | ||
| + | |||
| + | |||
| + | StokeTimer: | ||
| + | if (stoke = 5) | ||
| + | { | ||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting on kettle to finish...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| + | |||
| + | } else { | ||
| + | |||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting to stoke...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| + | } | ||
| + | |||
| + | countdown -- | ||
| + | if (sSeconds = 0) | ||
| + | { | ||
| + | sSeconds := 60 | ||
| + | sMinutes -- | ||
| + | } | ||
| + | |||
| + | if (sMinutes < 0) | ||
| + | sMinutes := 0 | ||
| + | |||
| + | sSeconds -- | ||
| + | Sleep 1000 | ||
| + | return</pre> | ||
| Line 392: | Line 572: | ||
<pre> | <pre> | ||
| − | ;Make Potash | + | ;Make Potash/Acid/Salt with 12 kettles |
| − | |||
| − | |||
| − | |||
| − | |||
| − | ;Pin | + | ;Pin 12 kettle menus from left to right, starting at upper left corner |
;Ctrl+Alt+W to start script | ;Ctrl+Alt+W to start script | ||
| Line 410: | Line 586: | ||
;When it hits zero wood, its still a full 32 seconds before the kettle goes out | ;When it hits zero wood, its still a full 32 seconds before the kettle goes out | ||
;Likewise with stoking. It does not matter if you stoke the instant it hits zero wood or 29 seconds later, it wont speed anything up. | ;Likewise with stoking. It does not matter if you stoke the instant it hits zero wood or 29 seconds later, it wont speed anything up. | ||
| − | |||
| − | |||
^r::reload | ^r::reload | ||
^p::Pause | ^p::Pause | ||
^!w:: | ^!w:: | ||
| + | |||
| + | ;Date: May 19, 2010 | ||
| + | ;Author: Cegaiel | ||
| Line 426: | Line 603: | ||
Exit | Exit | ||
} | } | ||
| + | |||
| Line 434: | Line 612: | ||
;You may remove this entire routine, if you wish. | ;You may remove this entire routine, if you wish. | ||
| − | if (Xmax = 1032) && (Ymax = 746) | + | if !(Xmax = 1032) && (Ymax = 746) |
{ | { | ||
| − | |||
| − | |||
Msgbox, You are not in 1024x768 resolution`n`nExiting... | Msgbox, You are not in 1024x768 resolution`n`nExiting... | ||
EXIT | EXIT | ||
| Line 448: | Line 624: | ||
Gui, Add, Text,, Type of Kettles? | Gui, Add, Text,, Type of Kettles? | ||
Gui, Add, DropDownList, vKettle Choose2, Private|Public | Gui, Add, DropDownList, vKettle Choose2, Private|Public | ||
| − | Gui, Add, Text,, What are | + | Gui, Add, Text,, What are we making? |
| − | Gui, Add, DropDownList, | + | Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt |
| − | Gui, Add, Text,, How | + | Gui, Add, Text,, How many runs? |
| − | Gui, Add, Edit, | + | Gui, Add, Edit, vRuns wp number, 1 |
| − | + | Gui, Add, Button, Default gStart, BEGIN | |
| − | Gui, Add, Button, Default gStart, | ||
Gui, Show | Gui, Show | ||
return | return | ||
| Line 459: | Line 634: | ||
Start: | Start: | ||
| − | |||
Gui, Submit | Gui, Submit | ||
Gui, Destroy | Gui, Destroy | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | Counter = 0 | ||
| + | Wood := (336 * runs) | ||
| + | Water := (300 * runs) | ||
| + | Salt := (12 * runs) | ||
| + | Ash := (60 * runs) | ||
| + | |||
| + | if (Make == "Acid") { | ||
| + | OutputTotal := (3 * 12 * runs) | ||
| + | Msgbox, Ingredients needed to run 12 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Sulphurous Water`n%salt% Salt`n`nMake sure you have that in your inventory!`n`nYield: 3 Acid per kettle`nTotal: %OutputTotal% Acid (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue... | ||
| + | |||
| + | |||
| + | ;Position of the Acid button | ||
| + | PotashX1 = 125 | ||
| + | PotashX2 = 295 | ||
| + | PotashX3 = 465 | ||
| + | PotashX4 = 635 | ||
| + | PotashX5 = 805 | ||
| + | PotashX6 = 975 | ||
| + | |||
| + | PotashY = 265 | ||
| + | PotashY2 = 525 | ||
| + | |||
| + | } else if (Make == "Potash") { | ||
| + | OutputTotal := (5 * 12 * runs) | ||
| + | Msgbox, Ingredients needed to run 12 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Water`n%ash% Ash`n`nMake sure you have that in your inventory!`n`nYield: 5 Potash per kettle`nTotal: %OutputTotal% Potash (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue... | ||
| + | |||
| + | |||
| + | ;Position of the Potash button | ||
| + | PotashX1 = 45 | ||
| + | PotashX2 = 220 | ||
| + | PotashX3 = 385 | ||
| + | PotashX4 = 555 | ||
| + | PotashX5 = 725 | ||
| + | PotashX6 = 890 | ||
| + | PotashY = 170 | ||
| + | PotashY2 = 428 | ||
| + | } else if (Make == "Salt") { | ||
| + | OutputTotal := (3 * 12 * runs) | ||
| + | Msgbox, Ingredients needed to run 12 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Coconut Water`n`nMake sure you have that in your inventory!`n`nYield: 3 Salt per kettle`nTotal: %OutputTotal% Salt (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue... | ||
| + | ;Position of the Salt button | ||
| + | PotashX1 = 125 | ||
| + | PotashX2 = 295 | ||
| + | PotashX3 = 465 | ||
| + | PotashX4 = 635 | ||
| + | PotashX5 = 805 | ||
| + | PotashX6 = 975 | ||
| − | + | PotashY = 240 | |
| − | + | PotashY2 = 500 | |
| − | |||
| − | |||
| − | |||
} | } | ||
| − | |||
| − | + | ;This is where the Stoke Max option appears on the menu | |
| + | StokeMaxX1 = 70 | ||
| + | StokeMaxX2 = 250 | ||
| + | StokeMaxX3 = 420 | ||
| + | StokeMaxX4 = 590 | ||
| + | StokeMaxX5 = 750 | ||
| + | StokeMaxX6 = 910 | ||
| + | |||
| + | StokeMaxY = 75 | ||
| + | StokeMaxY2 = 335 | ||
| − | |||
| − | ; | + | ;Max button, this is after the pot is ignited and asks for Quantity, we hit the Max button instead of typing a number |
| − | + | MaxButtonX = 515 | |
| + | MaxButtonY = 420 | ||
| − | + | ;The Begin, Ignite and Take button appear in the same place, so these apply to all three. | |
| − | + | BeginIgniteTakeX1 = 45 | |
| − | + | BeginIgniteTakeX2 = 220 | |
| − | + | BeginIgniteTakeX3 = 390 | |
| − | + | BeginIgniteTakeX4 = 555 | |
| − | + | BeginIgniteTakeX5 = 725 | |
| − | + | BeginIgniteTakeX6 = 895 | |
| − | |||
| − | + | BeginIgniteTakeY = 240 | |
| − | + | BeginIgniteTakeY2 = 500 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ;NOTE: PotashY, StokeMaxY and BeginIgniteTakeY is set to Y position in Private kettle setting. | |
| − | + | ;If this is a public kettle AND you are trying to change numbers for another resolution, then note: | |
| + | ;The coords are adjusted for public below, take that into consideration. | ||
| + | ;If you dont have any of your own kettles and will change numbers for a different resolution, then | ||
| + | ;Just plug in all the numbers above (center of buttons) and launch the script and choose "Private" kettle, even though it is "Public" | ||
| − | + | if (Kettle == "Public") | |
| + | { | ||
| + | ;If the kettle is public then it lowers 15 coords at 1024x768 (will vary with other resolutions) | ||
| + | PotashY := PotashY + 15 | ||
| + | BeginIgniteTakeY := BeginIgniteTakeY + 15 | ||
| + | StokeMaxY := StokeMaxY + 15 | ||
| − | + | PotashY2 := PotashY2 + 30 | |
| − | + | BeginIgniteTakeY2 := BeginIgniteTakeY2 + 30 | |
| − | + | StokeMaxY2 := StokeMaxY2 + 30 | |
| − | + | } | |
| − | |||
| − | |||
| − | + | ;Make sure the RefreshY line stays after the 'if (Kettle == "Public")' line | |
| − | + | ;This is the Y button of when it clicks the top of the menu to refresh the menu | |
| − | |||
| − | + | RefreshY := (StokeMaxY - 25) | |
| − | + | RefreshY2 := (StokeMaxY2 - 25) | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | Gui, +AlwaysOnTop +ToolWindow | ||
| + | Gui, Font, normal | ||
| + | Gui, Add, Text, vMineCycleText, Preparing to start script, please stand by ...`n`n`n`n`n`n`n`n`n | ||
| + | Gui, Show | ||
| − | + | delay = 6 | |
| + | Loop, %delay% | ||
{ | { | ||
| − | + | GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way! | |
| − | + | delay -- | |
| + | Sleep 1000 | ||
} | } | ||
| − | + | SetDefaultMouseSpeed, 0 | |
| − | + | ||
| + | GuiControl, Text, MineCycleText, Focusing to eGenesis client ... | ||
| − | + | WinActivate, eGenesis Client | |
| + | Sleep 500 | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | Loop, %Runs% | ||
| + | { | ||
| + | counter ++ | ||
| + | stoke = 0 | ||
| + | waterlevel = - | ||
| + | countdown = 0 | ||
| + | seconds = 0 | ||
| + | minutes = 0 | ||
| + | seconds_eta = 30 | ||
| + | minutes_eta = 15 | ||
| + | cseconds = 0 | ||
| + | cminutes = 0 | ||
| + | sSeconds = 0 | ||
| + | sMinutes = 0 | ||
| + | |||
| + | ;Click Potash/Acid/Salt Button | ||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "%make%" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| + | Click, %PotashX1%, %PotashY% ;Pot 1 | ||
| + | sleep 200 | ||
| + | Click, %PotashX2%, %PotashY% ;Pot 2 | ||
| + | sleep 200 | ||
| + | Click, %PotashX3%, %PotashY% ;Pot 3 | ||
| + | sleep 200 | ||
| + | Click, %PotashX4%, %PotashY% ;Pot 4 | ||
| + | sleep 200 | ||
| + | Click, %PotashX5%, %PotashY% ;Pot 5 | ||
| + | sleep 200 | ||
| + | Click, %PotashX6%, %PotashY% ;Pot 6 | ||
| + | sleep 200 | ||
| + | Click, %PotashX1%, %PotashY2% ;Pot 7 | ||
| + | sleep 200 | ||
| + | Click, %PotashX2%, %PotashY2% ;Pot 8 | ||
| + | sleep 200 | ||
| + | Click, %PotashX3%, %PotashY2% ;Pot 9 | ||
| + | sleep 200 | ||
| + | Click, %PotashX4%, %PotashY2% ;Pot 10 | ||
| + | sleep 200 | ||
| + | Click, %PotashX5%, %PotashY2% ;Pot 11 | ||
| + | sleep 200 | ||
| + | Click, %PotashX6%, %PotashY2% ;Pot 12 | ||
| + | sleep 200 | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
;Click Begin button | ;Click Begin button | ||
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "Begin" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | Click, | + | |
| − | + | ||
| − | + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5 | |
| − | + | sleep 200 | |
| − | Click, | + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6 |
| − | + | sleep 200 | |
| − | |||
| − | |||
| − | |||
| − | + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 7 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 8 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 9 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 10 | |
| − | + | sleep 200 | |
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 11 | |
| − | + | sleep 200 | |
| − | Click, | + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 12 |
| − | + | sleep 200 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| Line 654: | Line 859: | ||
;Click Ignite + Max button, then Refresh Menu (to show Stoke Max option) | ;Click Ignite + Max button, then Refresh Menu (to show Stoke Max option) | ||
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Igniting + Adding Max Wood...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | + | ||
;Pot 1 | ;Pot 1 | ||
| − | + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 2 | ;Pot 2 | ||
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 3 | ;Pot 3 | ||
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 4 | ;Pot 4 | ||
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 5 | ;Pot 5 | ||
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 6 | ;Pot 6 | ||
| − | + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 7 | ;Pot 7 | ||
| − | + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX1%, %RefreshY2% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 8 | ;Pot 8 | ||
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX2%, %RefreshY2% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 9 | ;Pot 9 | ||
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX3%, %RefreshY2% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 10 | ;Pot 10 | ||
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX4%, %RefreshY2% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 11 | ;Pot 11 | ||
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX5%, %RefreshY2% ;Click Menu to refresh |
| − | + | sleep 200 | |
;Pot 12 | ;Pot 12 | ||
| − | + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Ignite | |
| − | Click, | + | sleep 200 |
| − | |||
Click, %MaxButtonX%, %MaxButtonY% ;Max button | Click, %MaxButtonX%, %MaxButtonY% ;Max button | ||
| − | + | sleep 200 | |
| − | Click, | + | Click, %StokeMaxX6%, %RefreshY2% ;Click Menu to refresh |
| − | + | sleep 200 | |
| + | |||
| + | |||
| + | ;This begins the Elapsed and ETA timers | ||
| + | #Persistent | ||
| + | SetTimer, Timer, 1000 | ||
| + | ;Stoke 1 countdown (@ 24 water, first 3 waters dont get burned off after you first start a kettle | ||
| − | ; | + | waterlevel = 24 |
| + | cminutes = 2 | ||
| + | cseconds = 12 | ||
| + | ;countdown = 132 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | GetKeyState, state, F2 | + | Gosub, StokeTimer |
| − | if state = D | + | |
| − | break | + | GetKeyState, state, F2 |
| − | + | if state = D | |
| + | break | ||
| + | } | ||
| + | |||
| + | waterlevel = 19 | ||
| + | Gosub, StokeMax | ||
| − | |||
| + | ;Stoke 2 (@ 19 water) countdown | ||
| − | ; | + | cminutes = 2 |
| + | cseconds = 43 | ||
| + | ;countdown = 163 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | + | Gosub, StokeTimer | |
| − | |||
| − | |||
| − | |||
| − | |||
| + | GetKeyState, state, F2 | ||
| + | if state = D | ||
| + | { | ||
| + | break | ||
| + | } | ||
} | } | ||
| − | Gosub, StokeMax | + | waterlevel = 14 |
| + | Gosub, StokeMax | ||
| + | |||
| + | ;Stoke 3 (@ 14 water) countdown | ||
| − | ; | + | cminutes = 2 |
| + | cseconds = 43 | ||
| + | ;countdown = 163 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | + | Gosub, StokeTimer | |
| − | |||
| − | |||
| + | GetKeyState, state, F2 | ||
| + | if state = D | ||
| + | { | ||
| + | break | ||
| + | } | ||
} | } | ||
| − | Gosub, StokeMax | + | waterlevel = 9 |
| + | Gosub, StokeMax | ||
| + | |||
| + | ;Stoke 4 (@ 9 water) countdown | ||
| − | ; | + | cminutes = 2 |
| + | cseconds = 43 | ||
| + | ;countdown = 163 | ||
| + | GoSub, SetCountdown | ||
| − | + | Loop, %countdown% | |
| − | Loop, % | ||
{ | { | ||
| − | |||
| − | |||
| − | |||
| − | GetKeyState, state, F2 | + | Gosub, StokeTimer |
| − | if state = D | + | |
| − | break | + | GetKeyState, state, F2 |
| + | if state = D | ||
| + | { | ||
| + | break | ||
| + | } | ||
} | } | ||
| + | waterlevel = 6 | ||
Gosub, StokeMax | Gosub, StokeMax | ||
| − | ;Stoke 5 (6 water) countdown | + | ;Stoke 5 (@ 6 water) countdown |
| − | + | cminutes = 1 | |
| − | Loop, % | + | cseconds = 36 |
| + | ;countdown = 96 | ||
| + | GoSub, SetCountdown | ||
| + | |||
| + | Loop, %countdown% | ||
{ | { | ||
| − | + | ||
| − | + | Gosub, StokeTimer | |
| − | + | ||
| − | GetKeyState, state, F2 | + | GetKeyState, state, F2 |
| − | if state = D | + | if state = D |
| − | break | + | { |
| + | break | ||
| + | } | ||
} | } | ||
| + | waterlevel = N/A | ||
Gosub, StokeMax | Gosub, StokeMax | ||
;Countdown until complete | ;Countdown until complete | ||
| − | + | cminutes = 3 | |
| − | Loop, % | + | cseconds = 6 |
| + | ;countdown = 186 | ||
| + | GoSub, SetCountdown | ||
| + | |||
| + | Loop, %countdown% | ||
{ | { | ||
| − | + | ||
| − | + | Gosub, StokeTimer | |
| − | |||
} | } | ||
| − | + | cminutes = 0 | |
| + | cseconds = 0 | ||
| + | } ; End Runs Loop | ||
| + | |||
| + | |||
| + | |||
;Click Take button | ;Click Take button | ||
WinActivate, eGenesis Client | WinActivate, eGenesis Client | ||
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Taking items from kettle...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | Click, | + | |
| + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1 | ||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2 | |
| − | Click, | ||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 7 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 8 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 9 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 10 | |
| − | |||
Sleep 200 | Sleep 200 | ||
| − | + | Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 11 | |
| − | |||
| − | |||
| − | |||
| − | |||
Sleep 200 | Sleep 200 | ||
| + | Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 12 | ||
| + | |||
| + | |||
| + | ;ALL DONE! | ||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: All Done! Reload: Ctrl+R`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| + | return | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | StokeMax: | ||
| + | |||
| + | WinActivate, eGenesis Client | ||
| + | |||
| + | ;Click Stoke Max | ||
| + | |||
| + | stoke ++ | ||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: STOKING!`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| − | + | MouseGetPos, OldMX, OldMY | |
| + | Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX1%, %StokeMaxY2% ; Pot 7 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX2%, %StokeMaxY2% ; Pot 8 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX3%, %StokeMaxY2% ; Pot 9 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX4%, %StokeMaxY2% ; Pot 10 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX5%, %StokeMaxY2% ; Pot 11 | ||
| + | sleep 200 | ||
| + | Click, %StokeMaxX6%, %StokeMaxY2% ; Pot 12 | ||
| + | sleep 200 | ||
| − | + | MouseMove, %OldMX%, %OldMY%, 0 | |
| − | |||
| − | |||
return | return | ||
| + | Timer: | ||
| + | seconds ++ | ||
| + | |||
| + | if (seconds = 60) | ||
| + | { | ||
| + | seconds := 0 | ||
| + | minutes ++ | ||
| + | } | ||
| + | |||
| + | if (seconds_eta = 0) | ||
| + | { | ||
| + | seconds_eta := 60 | ||
| + | minutes_eta -- | ||
| + | } | ||
| + | |||
| + | if (minutes_eta < 0) | ||
| + | minutes_eta := 0 | ||
| + | |||
| + | seconds_eta -- | ||
| + | return | ||
| − | |||
| − | + | SetCountdown: | |
| − | + | countdown := (cminutes * 60 + cseconds) | |
| − | + | sSeconds := cseconds | |
| + | sMinutes := cminutes | ||
| + | return | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | StokeTimer: | |
| − | + | if (stoke = 5) | |
| + | { | ||
| + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting on kettle to finish...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | ||
| − | + | } else { | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting to stoke...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s | |
| − | + | } | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | countdown -- | ||
| + | if (sSeconds = 0) | ||
| + | { | ||
| + | sSeconds := 60 | ||
| + | sMinutes -- | ||
| + | } | ||
| + | |||
| + | if (sMinutes < 0) | ||
| + | sMinutes := 0 | ||
| − | + | sSeconds -- | |
| − | + | Sleep 1000 | |
| − | </pre> | + | return</pre> |
Revision as of 06:38, 19 May 2010
6 Kettles: (12 Kettles at bottom)
0;Make Potash/Acid/Salt with 6 kettles
;Pin 6 kettle menus from left to right, starting at upper left corner
;Ctrl+Alt+W to start script
;Ctrl+R to reload
;Ctrl+P to pause
;Emergency: Hold F2 button down 2 seconds to Abort current countdown and hit Stoke Max immediately on all pots
;Only the current countdown will abort. It will move on to the next countdown and continue normally.
;Trust the script, only use Emergency F2 when you have more than 32s when the Wood count turns to zero
;As long as there is less than 32s, when the wood hits zero, then dont interupt the script
;When it hits zero wood, its still a full 32 seconds before the kettle goes out
;Likewise with stoking. It does not matter if you stoke the instant it hits zero wood or 29 seconds later, it wont speed anything up.
^r::reload
^p::Pause
^!w::
;Date: May 19, 2010
;Author: Cegaiel
IfWinExist eGenesis Client
{
WinGet, GameWinHandle, ID, eGenesis Client
} else {
Msgbox, eGenesis client not running, exiting...
Exit
}
WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos
;======================================================================
;Check to see if we are in the correct resolution, or else exit script.
;You may remove this entire routine, if you wish.
if !(Xmax = 1032) && (Ymax = 746)
{
Msgbox, You are not in 1024x768 resolution`n`nExiting...
EXIT
}
;======================================================================
Gui, +AlwaysOnTop +ToolWindow
Gui, Add, Text,, Type of Kettles?
Gui, Add, DropDownList, vKettle Choose2, Private|Public
Gui, Add, Text,, What are we making?
Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt
Gui, Add, Text,, How many runs?
Gui, Add, Edit, vRuns wp number, 1
Gui, Add, Button, Default gStart, BEGIN
Gui, Show
return
Start:
Gui, Submit
Gui, Destroy
Counter = 0
Wood := (168 * runs)
Water := (150 * runs)
Salt := (6 * runs)
Ash := (30 * runs)
if (Make == "Acid") {
OutputTotal := (3 * 6 * runs)
Msgbox, Ingredients needed to run 6 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Sulphurous Water`n%salt% Salt`n`nMake sure you have that in your inventory!`n`nYield: 3 Acid per kettle`nTotal: %OutputTotal% Acid (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue...
;Position of the Acid button
PotashX1 = 125
PotashX2 = 295
PotashX3 = 465
PotashX4 = 635
PotashX5 = 805
PotashX6 = 975
PotashY = 265
} else if (Make == "Potash") {
OutputTotal := (5 * 6 * runs)
Msgbox, Ingredients needed to run 6 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Water`n%ash% Ash`n`nMake sure you have that in your inventory!`n`nYield: 5 Potash per kettle`nTotal: %OutputTotal% Potash (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue...
;Position of the Potash button
PotashX1 = 45
PotashX2 = 220
PotashX3 = 385
PotashX4 = 555
PotashX5 = 725
PotashX6 = 890
PotashY = 170
} else if (Make == "Salt") {
OutputTotal := (3 * 6 * runs)
Msgbox, Ingredients needed to run 6 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Coconut Water`n`nMake sure you have that in your inventory!`n`nYield: 3 Salt per kettle`nTotal: %OutputTotal% Salt (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue...
;Position of the Salt button
PotashX1 = 125
PotashX2 = 295
PotashX3 = 465
PotashX4 = 635
PotashX5 = 805
PotashX6 = 975
PotashY = 240
}
;This is where the Stoke Max option appears on the menu
StokeMaxX1 = 70
StokeMaxX2 = 250
StokeMaxX3 = 420
StokeMaxX4 = 590
StokeMaxX5 = 750
StokeMaxX6 = 910
StokeMaxY = 75
;Max button, this is after the pot is ignited and asks for Quantity, we hit the Max button instead of typing a number
MaxButtonX = 515
MaxButtonY = 420
;The Begin, Ignite and Take button appear in the same place, so these apply to all three.
BeginIgniteTakeX1 = 45
BeginIgniteTakeX2 = 220
BeginIgniteTakeX3 = 390
BeginIgniteTakeX4 = 555
BeginIgniteTakeX5 = 725
BeginIgniteTakeX6 = 895
BeginIgniteTakeY = 240
;NOTE: PotashY, StokeMaxY and BeginIgniteTakeY is set to Y position in Private kettle setting.
;If this is a public kettle AND you are trying to change numbers for another resolution, then note:
;The coords are adjusted for public below, take that into consideration.
;If you dont have any of your own kettles and will change numbers for a different resolution, then
;Just plug in all the numbers above (center of buttons) and launch the script and choose "Private" kettle, even though it is "Public"
if (Kettle == "Public")
{
;If the kettle is public then it lowers 15 coords at 1024x768 (will vary with other resolutions)
PotashY := PotashY + 15
BeginIgniteTakeY := BeginIgniteTakeY + 15
StokeMaxY := StokeMaxY + 15
}
;Make sure the RefreshY line stays after the 'if (Kettle == "Public")' line
;This is the Y button of when it clicks the top of the menu to refresh the menu
RefreshY := (StokeMaxY - 25)
Gui, +AlwaysOnTop +ToolWindow
Gui, Font, normal
Gui, Add, Text, vMineCycleText, Preparing to start script, please stand by ...`n`n`n`n`n`n`n`n`n
Gui, Show
delay = 6
Loop, %delay%
{
GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way!
delay --
Sleep 1000
}
SetDefaultMouseSpeed, 0
GuiControl, Text, MineCycleText, Focusing to eGenesis client ...
WinActivate, eGenesis Client
Sleep 500
Loop, %Runs%
{
counter ++
stoke = 0
waterlevel = -
countdown = 0
seconds = 0
minutes = 0
seconds_eta = 30
minutes_eta = 15
cseconds = 0
cminutes = 0
sSeconds = 0
sMinutes = 0
;Click Potash/Acid/Salt Button
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "%make%" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
Click, %PotashX1%, %PotashY% ;Pot 1
sleep 200
Click, %PotashX2%, %PotashY% ;Pot 2
sleep 200
Click, %PotashX3%, %PotashY% ;Pot 3
sleep 200
Click, %PotashX4%, %PotashY% ;Pot 4
sleep 200
Click, %PotashX5%, %PotashY% ;Pot 5
sleep 200
Click, %PotashX6%, %PotashY% ;Pot 6
sleep 200
;Click Begin button
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "Begin" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1
sleep 200
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2
sleep 200
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3
sleep 200
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4
sleep 200
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5
sleep 200
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6
sleep 200
;Click Ignite + Max button, then Refresh Menu (to show Stoke Max option)
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Igniting + Adding Max Wood...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
;Pot 1
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 2
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 3
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 4
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 5
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 6
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh
sleep 200
;This begins the Elapsed and ETA timers
#Persistent
SetTimer, Timer, 1000
;Stoke 1 countdown (@ 24 water, first 3 waters dont get burned off after you first start a kettle
waterlevel = 24
cminutes = 2
cseconds = 12
;countdown = 132
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
break
}
waterlevel = 19
Gosub, StokeMax
;Stoke 2 (@ 19 water) countdown
cminutes = 2
cseconds = 43
;countdown = 163
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = 14
Gosub, StokeMax
;Stoke 3 (@ 14 water) countdown
cminutes = 2
cseconds = 43
;countdown = 163
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = 9
Gosub, StokeMax
;Stoke 4 (@ 9 water) countdown
cminutes = 2
cseconds = 43
;countdown = 163
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = 6
Gosub, StokeMax
;Stoke 5 (@ 6 water) countdown
cminutes = 1
cseconds = 36
;countdown = 96
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = N/A
Gosub, StokeMax
;Countdown until complete
cminutes = 3
cseconds = 6
;countdown = 186
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
}
cminutes = 0
cseconds = 0
} ; End Runs Loop
;Click Take button
WinActivate, eGenesis Client
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Taking items from kettle...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1
Sleep 200
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2
Sleep 200
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3
Sleep 200
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4
Sleep 200
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5
Sleep 200
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6
;ALL DONE!
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: All Done! Reload: Ctrl+R`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
return
StokeMax:
WinActivate, eGenesis Client
;Click Stoke Max
stoke ++
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: STOKING!`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
MouseGetPos, OldMX, OldMY
Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1
sleep 200
Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2
sleep 200
Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3
sleep 200
Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4
sleep 200
Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5
sleep 200
Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6
sleep 200
MouseMove, %OldMX%, %OldMY%, 0
return
Timer:
seconds ++
if (seconds = 60)
{
seconds := 0
minutes ++
}
if (seconds_eta = 0)
{
seconds_eta := 60
minutes_eta --
}
if (minutes_eta < 0)
minutes_eta := 0
seconds_eta --
return
SetCountdown:
countdown := (cminutes * 60 + cseconds)
sSeconds := cseconds
sMinutes := cminutes
return
StokeTimer:
if (stoke = 5)
{
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting on kettle to finish...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
} else {
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting to stoke...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
}
countdown --
if (sSeconds = 0)
{
sSeconds := 60
sMinutes --
}
if (sMinutes < 0)
sMinutes := 0
sSeconds --
Sleep 1000
return
12 Kettles:
;Make Potash/Acid/Salt with 12 kettles
;Pin 12 kettle menus from left to right, starting at upper left corner
;Ctrl+Alt+W to start script
;Ctrl+R to reload
;Ctrl+P to pause
;Emergency: Hold F2 button down 2 seconds to Abort current countdown and hit Stoke Max immediately on all pots
;Only the current countdown will abort. It will move on to the next countdown and continue normally.
;Trust the script, only use Emergency F2 when you have more than 32s when the Wood count turns to zero
;As long as there is less than 32s, when the wood hits zero, then dont interupt the script
;When it hits zero wood, its still a full 32 seconds before the kettle goes out
;Likewise with stoking. It does not matter if you stoke the instant it hits zero wood or 29 seconds later, it wont speed anything up.
^r::reload
^p::Pause
^!w::
;Date: May 19, 2010
;Author: Cegaiel
IfWinExist eGenesis Client
{
WinGet, GameWinHandle, ID, eGenesis Client
} else {
Msgbox, eGenesis client not running, exiting...
Exit
}
WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos
;======================================================================
;Check to see if we are in the correct resolution, or else exit script.
;You may remove this entire routine, if you wish.
if !(Xmax = 1032) && (Ymax = 746)
{
Msgbox, You are not in 1024x768 resolution`n`nExiting...
EXIT
}
;======================================================================
Gui, +AlwaysOnTop +ToolWindow
Gui, Add, Text,, Type of Kettles?
Gui, Add, DropDownList, vKettle Choose2, Private|Public
Gui, Add, Text,, What are we making?
Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt
Gui, Add, Text,, How many runs?
Gui, Add, Edit, vRuns wp number, 1
Gui, Add, Button, Default gStart, BEGIN
Gui, Show
return
Start:
Gui, Submit
Gui, Destroy
Counter = 0
Wood := (336 * runs)
Water := (300 * runs)
Salt := (12 * runs)
Ash := (60 * runs)
if (Make == "Acid") {
OutputTotal := (3 * 12 * runs)
Msgbox, Ingredients needed to run 12 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Sulphurous Water`n%salt% Salt`n`nMake sure you have that in your inventory!`n`nYield: 3 Acid per kettle`nTotal: %OutputTotal% Acid (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue...
;Position of the Acid button
PotashX1 = 125
PotashX2 = 295
PotashX3 = 465
PotashX4 = 635
PotashX5 = 805
PotashX6 = 975
PotashY = 265
PotashY2 = 525
} else if (Make == "Potash") {
OutputTotal := (5 * 12 * runs)
Msgbox, Ingredients needed to run 12 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Water`n%ash% Ash`n`nMake sure you have that in your inventory!`n`nYield: 5 Potash per kettle`nTotal: %OutputTotal% Potash (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue...
;Position of the Potash button
PotashX1 = 45
PotashX2 = 220
PotashX3 = 385
PotashX4 = 555
PotashX5 = 725
PotashX6 = 890
PotashY = 170
PotashY2 = 428
} else if (Make == "Salt") {
OutputTotal := (3 * 12 * runs)
Msgbox, Ingredients needed to run 12 kettles (%runs% runs):`n`n%wood% Wood minimum (a few extra just in case)`n%water% Coconut Water`n`nMake sure you have that in your inventory!`n`nYield: 3 Salt per kettle`nTotal: %OutputTotal% Salt (%runs% runs)`n`nKettle Type: %Kettle%`n`nClick OK to continue...
;Position of the Salt button
PotashX1 = 125
PotashX2 = 295
PotashX3 = 465
PotashX4 = 635
PotashX5 = 805
PotashX6 = 975
PotashY = 240
PotashY2 = 500
}
;This is where the Stoke Max option appears on the menu
StokeMaxX1 = 70
StokeMaxX2 = 250
StokeMaxX3 = 420
StokeMaxX4 = 590
StokeMaxX5 = 750
StokeMaxX6 = 910
StokeMaxY = 75
StokeMaxY2 = 335
;Max button, this is after the pot is ignited and asks for Quantity, we hit the Max button instead of typing a number
MaxButtonX = 515
MaxButtonY = 420
;The Begin, Ignite and Take button appear in the same place, so these apply to all three.
BeginIgniteTakeX1 = 45
BeginIgniteTakeX2 = 220
BeginIgniteTakeX3 = 390
BeginIgniteTakeX4 = 555
BeginIgniteTakeX5 = 725
BeginIgniteTakeX6 = 895
BeginIgniteTakeY = 240
BeginIgniteTakeY2 = 500
;NOTE: PotashY, StokeMaxY and BeginIgniteTakeY is set to Y position in Private kettle setting.
;If this is a public kettle AND you are trying to change numbers for another resolution, then note:
;The coords are adjusted for public below, take that into consideration.
;If you dont have any of your own kettles and will change numbers for a different resolution, then
;Just plug in all the numbers above (center of buttons) and launch the script and choose "Private" kettle, even though it is "Public"
if (Kettle == "Public")
{
;If the kettle is public then it lowers 15 coords at 1024x768 (will vary with other resolutions)
PotashY := PotashY + 15
BeginIgniteTakeY := BeginIgniteTakeY + 15
StokeMaxY := StokeMaxY + 15
PotashY2 := PotashY2 + 30
BeginIgniteTakeY2 := BeginIgniteTakeY2 + 30
StokeMaxY2 := StokeMaxY2 + 30
}
;Make sure the RefreshY line stays after the 'if (Kettle == "Public")' line
;This is the Y button of when it clicks the top of the menu to refresh the menu
RefreshY := (StokeMaxY - 25)
RefreshY2 := (StokeMaxY2 - 25)
Gui, +AlwaysOnTop +ToolWindow
Gui, Font, normal
Gui, Add, Text, vMineCycleText, Preparing to start script, please stand by ...`n`n`n`n`n`n`n`n`n
Gui, Show
delay = 6
Loop, %delay%
{
GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way!
delay --
Sleep 1000
}
SetDefaultMouseSpeed, 0
GuiControl, Text, MineCycleText, Focusing to eGenesis client ...
WinActivate, eGenesis Client
Sleep 500
Loop, %Runs%
{
counter ++
stoke = 0
waterlevel = -
countdown = 0
seconds = 0
minutes = 0
seconds_eta = 30
minutes_eta = 15
cseconds = 0
cminutes = 0
sSeconds = 0
sMinutes = 0
;Click Potash/Acid/Salt Button
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "%make%" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
Click, %PotashX1%, %PotashY% ;Pot 1
sleep 200
Click, %PotashX2%, %PotashY% ;Pot 2
sleep 200
Click, %PotashX3%, %PotashY% ;Pot 3
sleep 200
Click, %PotashX4%, %PotashY% ;Pot 4
sleep 200
Click, %PotashX5%, %PotashY% ;Pot 5
sleep 200
Click, %PotashX6%, %PotashY% ;Pot 6
sleep 200
Click, %PotashX1%, %PotashY2% ;Pot 7
sleep 200
Click, %PotashX2%, %PotashY2% ;Pot 8
sleep 200
Click, %PotashX3%, %PotashY2% ;Pot 9
sleep 200
Click, %PotashX4%, %PotashY2% ;Pot 10
sleep 200
Click, %PotashX5%, %PotashY2% ;Pot 11
sleep 200
Click, %PotashX6%, %PotashY2% ;Pot 12
sleep 200
;Click Begin button
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Clicking "Begin" buttons...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1
sleep 200
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2
sleep 200
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3
sleep 200
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4
sleep 200
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5
sleep 200
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6
sleep 200
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 7
sleep 200
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 8
sleep 200
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 9
sleep 200
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 10
sleep 200
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 11
sleep 200
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 12
sleep 200
;Click Ignite + Max button, then Refresh Menu (to show Stoke Max option)
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Igniting + Adding Max Wood...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
;Pot 1
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 2
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 3
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 4
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 5
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 6
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh
sleep 200
;Pot 7
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX1%, %RefreshY2% ;Click Menu to refresh
sleep 200
;Pot 8
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX2%, %RefreshY2% ;Click Menu to refresh
sleep 200
;Pot 9
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX3%, %RefreshY2% ;Click Menu to refresh
sleep 200
;Pot 10
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX4%, %RefreshY2% ;Click Menu to refresh
sleep 200
;Pot 11
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX5%, %RefreshY2% ;Click Menu to refresh
sleep 200
;Pot 12
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Ignite
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
sleep 200
Click, %StokeMaxX6%, %RefreshY2% ;Click Menu to refresh
sleep 200
;This begins the Elapsed and ETA timers
#Persistent
SetTimer, Timer, 1000
;Stoke 1 countdown (@ 24 water, first 3 waters dont get burned off after you first start a kettle
waterlevel = 24
cminutes = 2
cseconds = 12
;countdown = 132
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
break
}
waterlevel = 19
Gosub, StokeMax
;Stoke 2 (@ 19 water) countdown
cminutes = 2
cseconds = 43
;countdown = 163
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = 14
Gosub, StokeMax
;Stoke 3 (@ 14 water) countdown
cminutes = 2
cseconds = 43
;countdown = 163
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = 9
Gosub, StokeMax
;Stoke 4 (@ 9 water) countdown
cminutes = 2
cseconds = 43
;countdown = 163
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = 6
Gosub, StokeMax
;Stoke 5 (@ 6 water) countdown
cminutes = 1
cseconds = 36
;countdown = 96
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
GetKeyState, state, F2
if state = D
{
break
}
}
waterlevel = N/A
Gosub, StokeMax
;Countdown until complete
cminutes = 3
cseconds = 6
;countdown = 186
GoSub, SetCountdown
Loop, %countdown%
{
Gosub, StokeTimer
}
cminutes = 0
cseconds = 0
} ; End Runs Loop
;Click Take button
WinActivate, eGenesis Client
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Taking items from kettle...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1
Sleep 200
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2
Sleep 200
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3
Sleep 200
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4
Sleep 200
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5
Sleep 200
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6
Sleep 200
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 7
Sleep 200
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 8
Sleep 200
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 9
Sleep 200
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 10
Sleep 200
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 11
Sleep 200
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 12
;ALL DONE!
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: All Done! Reload: Ctrl+R`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
return
StokeMax:
WinActivate, eGenesis Client
;Click Stoke Max
stoke ++
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: STOKING!`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
MouseGetPos, OldMX, OldMY
Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1
sleep 200
Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2
sleep 200
Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3
sleep 200
Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4
sleep 200
Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5
sleep 200
Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6
sleep 200
Click, %StokeMaxX1%, %StokeMaxY2% ; Pot 7
sleep 200
Click, %StokeMaxX2%, %StokeMaxY2% ; Pot 8
sleep 200
Click, %StokeMaxX3%, %StokeMaxY2% ; Pot 9
sleep 200
Click, %StokeMaxX4%, %StokeMaxY2% ; Pot 10
sleep 200
Click, %StokeMaxX5%, %StokeMaxY2% ; Pot 11
sleep 200
Click, %StokeMaxX6%, %StokeMaxY2% ; Pot 12
sleep 200
MouseMove, %OldMX%, %OldMY%, 0
return
Timer:
seconds ++
if (seconds = 60)
{
seconds := 0
minutes ++
}
if (seconds_eta = 0)
{
seconds_eta := 60
minutes_eta --
}
if (minutes_eta < 0)
minutes_eta := 0
seconds_eta --
return
SetCountdown:
countdown := (cminutes * 60 + cseconds)
sSeconds := cseconds
sMinutes := cminutes
return
StokeTimer:
if (stoke = 5)
{
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nFinish: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting on kettle to finish...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
} else {
GuiControl, Text, MineCycleText, Current stoke: %stoke% of 5`nNext stoke's water level: %waterlevel%`nNext stoke: %cminutes%m %cseconds%s`nRemaining: %sMinutes%m %sSeconds%s`n`nStatus: Waiting to stoke...`n`nRuns: %counter% of %runs%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
}
countdown --
if (sSeconds = 0)
{
sSeconds := 60
sMinutes --
}
if (sMinutes < 0)
sMinutes := 0
sSeconds --
Sleep 1000
return