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
Jump to navigationJump to search
Line 1: Line 1:
<B>6 Kettles:</b> (12 Kettles at bottom)
+
<pre>
 +
;All new for Tale 5
 +
;Make Potash/Acid/Salt: 1-21 kettles
 +
 
 +
;Use 1280x1024 resolution.
 +
 
  
<pre>
+
;Pin Kettle #1-7 menus from left to right, starting at upper left corner
;Make Potash/Acid/Salt with 6 kettles
+
;Pin Kettle #8-14 below the above pinups/row
 +
;Pin Kettle #15-21 below the above pinups/row
  
;Pin 6 kettle menus from left to right, starting at upper left corner
 
  
;Ctrl+Alt+W to start script
 
 
;Ctrl+R to reload
 
;Ctrl+R to reload
 
;Ctrl+P to pause
 
;Ctrl+P to pause
Line 17: Line 21:
 
;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
 
^p::Pause
 
^!w::
 
  
;Date: May 19, 2010
+
;Release Date: Oct 12, 2010
 
;Author: Cegaiel
 
;Author: Cegaiel
  
Line 42: Line 43:
 
;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 53: Line 54:
 
Gui, +AlwaysOnTop +ToolWindow
 
Gui, +AlwaysOnTop +ToolWindow
 
Gui, Add, Text,, Type of Kettles?
 
Gui, Add, Text,, Type of Kettles?
Gui, Add, DropDownList, vKettle Choose2, Private|Public
+
Gui, Add, DropDownList, vKettle Choose1, Public|Private
 
Gui, Add, Text,, What are we making?
 
Gui, Add, Text,, What are we making?
 
Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt
 
Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt
 +
Gui, Add, Text,, How many kettles?
 +
Gui, Add, DropDownList, vNumKettles Choose1, 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21
 +
 +
 
Gui, Add, Text,, How many runs?
 
Gui, Add, Text,, How many runs?
 
Gui, Add, Edit, vRuns wp number, 1
 
Gui, Add, Edit, vRuns wp number, 1
Line 69: Line 74:
  
 
Counter = 0
 
Counter = 0
Wood := (168 * runs)
+
Wood := (28 * runs * NumKettles)
Water := (150 * runs)
+
Water := (25 * runs * NumKettles)
Salt := (6 * runs)
+
Salt := (1 * runs * NumKettles)
Ash := (30 * runs)
+
Ash := (5 * runs * NumKettles)
 +
 
 +
 
 +
 
 +
 
 +
 
 +
;Note Acid and Salt are on same X, just different Y
  
 
if (Make == "Acid") {
 
if (Make == "Acid") {
OutputTotal := (3 * 6 * runs)
+
OutputTotal := (3 * NumKettles * 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...
+
Msgbox, Ingredients needed to run %NumKettles% 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
+
;Position of the ACID button
 
PotashX1 = 125
 
PotashX1 = 125
 
PotashX2 = 295
 
PotashX2 = 295
Line 86: Line 97:
 
PotashX5 = 805
 
PotashX5 = 805
 
PotashX6 = 975
 
PotashX6 = 975
 +
PotashX7 = 1145
  
PotashY = 265
 
  
} else if (Make == "Potash") {
+
PotashY = 265 ;+260
OutputTotal := (5 * 6 * runs)
+
PotashY2 = 525
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...
+
PotashY3 = 785
  
  
;Position of the Potash button
+
} else if (Make == "Salt") {
PotashX1 = 45
+
OutputTotal := (3 * NumKettles * runs)
PotashX2 = 220
+
Msgbox, Ingredients needed to run %NumKettles% 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...
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
+
;Position of the SALT button
 
PotashX1 = 125
 
PotashX1 = 125
 
PotashX2 = 295
 
PotashX2 = 295
Line 116: Line 119:
 
PotashX5 = 805
 
PotashX5 = 805
 
PotashX6 = 975
 
PotashX6 = 975
 +
PotashX7 = 1145
 +
  
PotashY = 240
+
PotashY = 240  
 +
PotashY2 = 500
 +
PotashY3 = 760
 +
 
 +
 
 +
 
 +
 
 +
 
 +
} else if (Make == "Potash") {
 +
OutputTotal := (5 * NumKettles * runs)
 +
Msgbox, Ingredients needed to run %NumKettles% 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 ;+170
 +
PotashX2 = 215
 +
PotashX3 = 385
 +
PotashX4 = 555
 +
PotashX5 = 725
 +
PotashX6 = 890
 +
PotashX7 = 1060
 +
 
 +
 
 +
PotashY = 170 ;+260
 +
PotashY2 = 430
 +
PotashY3 = 690
 
}
 
}
 +
 +
 +
 +
 +
  
  
  
 
;This is where the Stoke Max option appears on the menu
 
;This is where the Stoke Max option appears on the menu
StokeMaxX1 = 70
+
StokeMaxX1 = 70 ;+170
StokeMaxX2 = 250
+
StokeMaxX2 = 240
StokeMaxX3 = 420
+
StokeMaxX3 = 410
StokeMaxX4 = 590
+
StokeMaxX4 = 580
 
StokeMaxX5 = 750
 
StokeMaxX5 = 750
StokeMaxX6 = 910
+
StokeMaxX6 = 920
 +
StokeMaxX7 = 1090
 +
 
 +
 
 +
StokeMaxY = 75 ;+260
 +
StokeMaxY2 = 335
 +
StokeMaxY3 = 595
 +
 
  
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
 
;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
+
; This is hard coded at 1280x1024 . This would likely be the only values you need to change if you try other resolutions
MaxButtonY = 420
+
MaxButtonX = 645
 +
MaxButtonY = 555
 +
 
 +
 
  
  
 
;The Begin, Ignite and Take button appear in the same place, so these apply to all three.
 
;The Begin, Ignite and Take button appear in the same place, so these apply to all three.
BeginIgniteTakeX1 = 45
+
BeginIgniteTakeX1 = 50 ;+170
 
BeginIgniteTakeX2 = 220
 
BeginIgniteTakeX2 = 220
 
BeginIgniteTakeX3 = 390
 
BeginIgniteTakeX3 = 390
BeginIgniteTakeX4 = 555
+
BeginIgniteTakeX4 = 560
BeginIgniteTakeX5 = 725
+
BeginIgniteTakeX5 = 730
BeginIgniteTakeX6 = 895
+
BeginIgniteTakeX6 = 900
 +
BeginIgniteTakeX7 = 1070
 +
 
 +
 
 +
BeginIgniteTakeY = 240 ;+260
 +
BeginIgniteTakeY2 = 500
 +
BeginIgniteTakeY3 = 760
 +
 
  
BeginIgniteTakeY = 240
 
  
  
Line 162: Line 212:
 
BeginIgniteTakeY := BeginIgniteTakeY + 15
 
BeginIgniteTakeY := BeginIgniteTakeY + 15
 
StokeMaxY := StokeMaxY + 15
 
StokeMaxY := StokeMaxY + 15
 +
 +
PotashY2 := PotashY2 + 30
 +
BeginIgniteTakeY2 := BeginIgniteTakeY2 + 30
 +
StokeMaxY2 := StokeMaxY2 + 30
 +
 +
PotashY3 := PotashY3 + 45
 +
BeginIgniteTakeY3 := BeginIgniteTakeY3 + 45
 +
StokeMaxY3 := StokeMaxY3 + 45
 
}
 
}
 +
 +
 +
 +
 +
  
 
;Make sure the RefreshY line stays after the 'if (Kettle == "Public")' line
 
;Make sure the RefreshY line stays after the 'if (Kettle == "Public")' line
Line 169: Line 232:
  
 
RefreshY := (StokeMaxY - 25)
 
RefreshY := (StokeMaxY - 25)
+
RefreshY2 := (StokeMaxY2 - 25)
 +
RefreshY3 := (StokeMaxY3 - 25)
  
  
Line 180: Line 244:
  
  
delay = 6
+
delay = 10
 
Loop, %delay%
 
Loop, %delay%
 
{
 
{
GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way!
+
GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way`n`nDont cover any pinups!`n`nDont leave anywhere near middle of screen (Load/Stoke Max wood popup)
 
delay --
 
delay --
 
Sleep 1000
 
Sleep 1000
Line 206: Line 270:
 
seconds = 0
 
seconds = 0
 
minutes = 0
 
minutes = 0
seconds_eta = 30
+
seconds_eta = 24
 
minutes_eta = 15  
 
minutes_eta = 15  
 
cseconds = 0
 
cseconds = 0
Line 215: Line 279:
 
;Click Potash/Acid/Salt Button
 
;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
+
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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
  
  
 +
if (NumKettles >= 1)
 +
{
 
Click, %PotashX1%, %PotashY% ;Pot 1
 
Click, %PotashX1%, %PotashY% ;Pot 1
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 2)
 +
{
 
Click, %PotashX2%, %PotashY% ;Pot 2
 
Click, %PotashX2%, %PotashY% ;Pot 2
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 3)
 +
{
 
Click, %PotashX3%, %PotashY% ;Pot 3
 
Click, %PotashX3%, %PotashY% ;Pot 3
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 4)
 +
{
 
Click, %PotashX4%, %PotashY% ;Pot 4
 
Click, %PotashX4%, %PotashY% ;Pot 4
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 5)
 +
{
 
Click, %PotashX5%, %PotashY% ;Pot 5
 
Click, %PotashX5%, %PotashY% ;Pot 5
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 6)
 +
{
 
Click, %PotashX6%, %PotashY% ;Pot 6
 
Click, %PotashX6%, %PotashY% ;Pot 6
 
sleep 200
 
sleep 200
 
+
}
 
+
if (NumKettles >= 7)
;Click Begin button
+
{
 
+
Click, %PotashX7%, %PotashY% ;Pot 7
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
 
sleep 200
 +
}
  
 
+
if (NumKettles >= 8)
 
+
{
;Click Ignite + Max button, then Refresh Menu (to show Stoke Max option)
+
Click, %PotashX1%, %PotashY2% ;Pot 8
 
 
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
 
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
+
}
 +
if (NumKettles >= 9)
 +
{
 +
Click, %PotashX2%, %PotashY2% ;Pot 9
 
sleep 200
 
sleep 200
Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh
+
}
 +
if (NumKettles >= 10)
 +
{
 +
Click, %PotashX3%, %PotashY2% ;Pot 10
 
sleep 200
 
sleep 200
 
+
}
;Pot 2
+
if (NumKettles >= 11)
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite
+
{
 +
Click, %PotashX4%, %PotashY2% ;Pot 11
 
sleep 200
 
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
+
}
 +
if (NumKettles >= 12)
 +
{
 +
Click, %PotashX5%, %PotashY2% ;Pot 12
 
sleep 200
 
sleep 200
Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh
+
}
 +
if (NumKettles >= 13)
 +
{
 +
Click, %PotashX6%, %PotashY2% ;Pot 13
 
sleep 200
 
sleep 200
 
+
}
;Pot 3
+
if (NumKettles >= 14)
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite
+
{
sleep 200
+
Click, %PotashX7%, %PotashY2% ;Pot 14
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 
sleep 200
 
Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh
 
 
sleep 200
 
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
+
if (NumKettles >= 15)
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite
+
{
 +
Click, %PotashX1%, %PotashY3% ;Pot 15
 
sleep 200
 
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
+
}
 +
if (NumKettles >= 16)
 +
{
 +
Click, %PotashX2%, %PotashY3% ;Pot 16
 
sleep 200
 
sleep 200
Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh
+
}
 +
if (NumKettles >= 17)
 +
{
 +
Click, %PotashX3%, %PotashY3% ;Pot 17
 
sleep 200
 
sleep 200
 
+
}
;Pot 6
+
if (NumKettles >= 18)
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite
+
{
 +
Click, %PotashX4%, %PotashY3% ;Pot 18
 
sleep 200
 
sleep 200
Click, %MaxButtonX%, %MaxButtonY% ;Max button
+
}
 +
if (NumKettles >= 19)
 +
{
 +
Click, %PotashX5%, %PotashY3% ;Pot 19
 
sleep 200
 
sleep 200
Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh
+
}
 +
if (NumKettles >= 20)
 +
{
 +
Click, %PotashX6%, %PotashY3% ;Pot 20
 
sleep 200
 
sleep 200
 
+
}
 
+
if (NumKettles >= 21)
;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%
 
 
{
 
{
 
+
Click, %PotashX7%, %PotashY3% ;Pot 21
Gosub, StokeTimer
+
sleep 200
 
+
}
GetKeyState, state, F2
 
if state = D
 
break
 
}
 
 
 
waterlevel = 19
 
Gosub, StokeMax
 
  
  
  
 +
;Click Begin button
  
;Stoke 2 (@ 19 water) countdown
+
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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
  
cminutes = 2
 
cseconds = 43
 
;countdown = 163
 
GoSub, SetCountdown
 
  
Loop, %countdown%
+
if (NumKettles >= 1)
 
{
 
{
 
+
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1
Gosub, StokeTimer
+
sleep 200
 
 
GetKeyState, state, F2
 
if state = D
 
{
 
break
 
}
 
 
}
 
}
 
+
if (NumKettles >= 2)
waterlevel = 14
 
Gosub, StokeMax
 
 
 
 
 
 
 
;Stoke 3 (@ 14 water) countdown
 
 
 
cminutes = 2
 
cseconds = 43
 
;countdown = 163
 
GoSub, SetCountdown
 
 
 
Loop, %countdown%
 
 
{
 
{
 
+
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2
Gosub, StokeTimer
+
sleep 200
 
 
GetKeyState, state, F2
 
if state = D
 
{
 
break
 
}
 
 
}
 
}
 
+
if (NumKettles >= 3)
waterlevel = 9
 
Gosub, StokeMax
 
 
 
 
 
 
 
;Stoke 4 (@ 9 water) countdown
 
 
 
cminutes = 2
 
cseconds = 43
 
;countdown = 163
 
GoSub, SetCountdown
 
 
 
Loop, %countdown%
 
 
{
 
{
 
+
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3
Gosub, StokeTimer
+
sleep 200
 
 
GetKeyState, state, F2
 
if state = D
 
{
 
break
 
}
 
 
}
 
}
 
+
if (NumKettles >= 4)
waterlevel = 6
 
Gosub, StokeMax
 
 
 
 
 
;Stoke 5 (@ 6 water) countdown
 
 
 
cminutes = 1
 
cseconds = 36
 
;countdown = 96
 
GoSub, SetCountdown
 
 
 
Loop, %countdown%
 
 
{
 
{
 
+
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4
Gosub, StokeTimer
+
sleep 200
 
 
GetKeyState, state, F2
 
if state = D
 
{
 
break
 
}
 
 
}
 
}
 
+
if (NumKettles >= 5)
waterlevel = N/A
 
Gosub, StokeMax
 
 
 
 
 
;Countdown until complete
 
cminutes = 3
 
cseconds = 6
 
;countdown = 186
 
GoSub, SetCountdown
 
 
 
Loop, %countdown%
 
 
{
 
{
 
+
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5
Gosub, StokeTimer
+
sleep 200
 
}
 
}
 
+
if (NumKettles >= 6)
 
+
{
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
 
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
 
sleep 200
Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2
+
}
 +
if (NumKettles >= 7)
 +
{
 +
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Pot 7
 
sleep 200
 
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</pre>
 
 
 
 
 
 
 
 
 
 
 
 
 
----
 
 
 
 
 
 
 
 
 
 
 
<B>12 Kettles:</b>
 
 
 
<pre>
 
;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
+
if (NumKettles >= 8)
;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
+
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 8
} else {
+
sleep 200
Msgbox, eGenesis client not running, exiting...
 
Exit
 
 
}
 
}
 
+
if (NumKettles >= 9)
 
 
 
 
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...
+
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 9
EXIT
+
sleep 200
 
}
 
}
;======================================================================
+
if (NumKettles >= 10)
 
+
{
 
+
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 10
 
+
sleep 200
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
 
 
}
 
}
 
+
if (NumKettles >= 11)
 
 
 
 
;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)
+
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 11
PotashY := PotashY + 15
+
sleep 200
BeginIgniteTakeY := BeginIgniteTakeY + 15
 
StokeMaxY := StokeMaxY + 15
 
 
 
PotashY2 := PotashY2 + 30
 
BeginIgniteTakeY2 := BeginIgniteTakeY2 + 30
 
StokeMaxY2 := StokeMaxY2 + 30
 
 
}
 
}
 
+
if (NumKettles >= 12)
;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!
+
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 12
delay --
+
sleep 200
Sleep 1000
 
 
}
 
}
 
+
if (NumKettles >= 13)
SetDefaultMouseSpeed, 0
+
{
 
+
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 13
 
 
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
 
sleep 200
Click, %PotashX2%, %PotashY% ;Pot 2
+
}
sleep 200
+
if (NumKettles >= 14)
Click, %PotashX3%, %PotashY% ;Pot 3
+
{
sleep 200
+
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Pot 14
Click, %PotashX4%, %PotashY% ;Pot 4
 
sleep 200
 
Click, %PotashX5%, %PotashY% ;Pot 5
 
sleep 200
 
Click, %PotashX6%, %PotashY% ;Pot 6
 
 
sleep 200
 
sleep 200
 +
}
  
Click, %PotashX1%, %PotashY2% ;Pot 7
+
if (NumKettles >= 15)
 +
{
 +
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Pot 15
 
sleep 200
 
sleep 200
Click, %PotashX2%, %PotashY2% ;Pot 8
+
}
 +
if (NumKettles >= 16)
 +
{
 +
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Pot 16
 
sleep 200
 
sleep 200
Click, %PotashX3%, %PotashY2% ;Pot 9
+
}
 +
if (NumKettles >= 17)
 +
{
 +
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Pot 17
 
sleep 200
 
sleep 200
Click, %PotashX4%, %PotashY2% ;Pot 10
+
}
 +
if (NumKettles >= 18)
 +
{
 +
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Pot 18
 
sleep 200
 
sleep 200
Click, %PotashX5%, %PotashY2% ;Pot 11
+
}
 +
if (NumKettles >= 19)
 +
{
 +
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Pot 19
 
sleep 200
 
sleep 200
Click, %PotashX6%, %PotashY2% ;Pot 12
+
}
 +
if (NumKettles >= 20)
 +
{
 +
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Pot 20
 
sleep 200
 
sleep 200
 
+
}
 
+
if (NumKettles >= 21)
;Click Begin button
+
{
 
+
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Pot 21
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
 
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)
  
;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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
  
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
 
  
  
 +
if (NumKettles >= 1)
 +
{
 
;Pot 1
 
;Pot 1
 
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite
 
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite
Line 869: Line 524:
 
Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh
 
Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
 +
if (NumKettles >= 2)
 +
{
 
;Pot 2
 
;Pot 2
 
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite
 
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite
Line 877: Line 534:
 
Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh
 
Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
 +
if (NumKettles >= 3)
 +
{
 
;Pot 3
 
;Pot 3
 
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite
 
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite
Line 885: Line 544:
 
Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh
 
Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
 +
if (NumKettles >= 4)
 +
{
 
;Pot 4
 
;Pot 4
 
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite
 
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite
Line 893: Line 554:
 
Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh
 
Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
 +
if (NumKettles >= 5)
 +
{
 
;Pot 5
 
;Pot 5
 
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite
 
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite
Line 901: Line 564:
 
Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh
 
Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
 +
if (NumKettles >= 6)
 +
{
 
;Pot 6
 
;Pot 6
 
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite
 
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite
Line 909: Line 574:
 
Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh
 
Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 7)
 +
{
 +
;Pot 7
 +
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX7%, %RefreshY% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
  
  
;Pot 7
+
if (NumKettles >= 8)
 +
{
 +
;Pot 8
 
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Ignite
 
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Ignite
 
sleep 200
 
sleep 200
Line 918: Line 597:
 
Click, %StokeMaxX1%, %RefreshY2% ;Click Menu to refresh
 
Click, %StokeMaxX1%, %RefreshY2% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
;Pot 8
+
if (NumKettles >= 9)
 +
{
 +
;Pot 9
 
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Ignite
 
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Ignite
 
sleep 200
 
sleep 200
Line 926: Line 607:
 
Click, %StokeMaxX2%, %RefreshY2% ;Click Menu to refresh
 
Click, %StokeMaxX2%, %RefreshY2% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
;Pot 9
+
if (NumKettles >= 10)
 +
{
 +
;Pot 10
 
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Ignite
 
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Ignite
 
sleep 200
 
sleep 200
Line 934: Line 617:
 
Click, %StokeMaxX3%, %RefreshY2% ;Click Menu to refresh
 
Click, %StokeMaxX3%, %RefreshY2% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
;Pot 10
+
if (NumKettles >= 11)
 +
{
 +
;Pot 11
 
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Ignite
 
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Ignite
 
sleep 200
 
sleep 200
Line 942: Line 627:
 
Click, %StokeMaxX4%, %RefreshY2% ;Click Menu to refresh
 
Click, %StokeMaxX4%, %RefreshY2% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 
+
}
;Pot 11
+
if (NumKettles >= 12)
 +
{
 +
;Pot 12
 
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Ignite
 
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Ignite
 
sleep 200
 
sleep 200
Line 950: Line 637:
 
Click, %StokeMaxX5%, %RefreshY2% ;Click Menu to refresh
 
Click, %StokeMaxX5%, %RefreshY2% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 +
}
  
;Pot 12
+
if (NumKettles >= 13)
 +
{
 +
;Pot 13
 
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Ignite
 
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Ignite
 
sleep 200
 
sleep 200
Line 958: Line 648:
 
Click, %StokeMaxX6%, %RefreshY2% ;Click Menu to refresh
 
Click, %StokeMaxX6%, %RefreshY2% ;Click Menu to refresh
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 14)
 +
{
 +
;Pot 14
 +
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX7%, %RefreshY2% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
 +
 +
if (NumKettles >= 15)
 +
{
 +
;Pot 15
 +
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX1%, %RefreshY3% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
if (NumKettles >= 16)
 +
{
 +
;Pot 16
 +
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX2%, %RefreshY3% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
if (NumKettles >= 17)
 +
{
 +
;Pot 17
 +
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX3%, %RefreshY3% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
if (NumKettles >= 18)
 +
{
 +
;Pot 18
 +
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX4%, %RefreshY3% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
if (NumKettles >= 19)
 +
{
 +
;Pot 19
 +
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX5%, %RefreshY3% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
 +
if (NumKettles >= 20)
 +
{
 +
;Pot 20
 +
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX6%, %RefreshY3% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
if (NumKettles >= 21)
 +
{
 +
;Pot 21
 +
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Ignite
 +
sleep 200
 +
Click, %MaxButtonX%, %MaxButtonY% ;Max button
 +
sleep 200
 +
Click, %StokeMaxX7%, %RefreshY3% ;Click Menu to refresh
 +
sleep 200
 +
}
 +
 +
 +
 +
 +
 +
 +
 +
  
  
Line 1,086: Line 868:
 
;Countdown until complete
 
;Countdown until complete
 
cminutes = 3
 
cminutes = 3
cseconds = 6
+
cseconds = 12
;countdown = 186
+
;countdown = 192
 
GoSub, SetCountdown
 
GoSub, SetCountdown
  
Line 1,107: Line 889:
 
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
+
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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
  
 +
if (NumKettles >= 1)
 +
{
 
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1
 
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1
 
Sleep 200
 
Sleep 200
 +
}
 +
if (NumKettles >= 2)
 +
{
 
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2
 
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2
 
Sleep 200
 
Sleep 200
 +
}
 +
if (NumKettles >= 3)
 +
{
 
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3
 
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3
 
Sleep 200
 
Sleep 200
 +
}
 +
if (NumKettles >= 4)
 +
{
 
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4
 
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4
 
Sleep 200
 
Sleep 200
 +
}
 +
if (NumKettles >= 5)
 +
{
 
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5
 
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5
 
Sleep 200
 
Sleep 200
 +
}
 +
if (NumKettles >= 6)
 +
{
 
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6
 
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6
 
Sleep 200
 
Sleep 200
 +
}
 +
if (NumKettles >= 7)
 +
{
 +
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Pot 7
 +
Sleep 200
 +
}
 +
 +
if (NumKettles >= 8)
 +
{
 +
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 8
 +
Sleep 200
 +
}
 +
if (NumKettles >= 9)
 +
{
 +
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 9
 +
Sleep 200
 +
}
 +
if (NumKettles >= 10)
 +
{
 +
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 10
 +
Sleep 200
 +
}
 +
if (NumKettles >= 11)
 +
{
 +
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 11
 +
Sleep 200
 +
}
 +
if (NumKettles >= 12)
 +
{
 +
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 12
 +
Sleep 200
 +
}
 +
if (NumKettles >= 13)
 +
{
 +
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 13
 +
Sleep 200
 +
}
 +
if (NumKettles >= 14)
 +
{
 +
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Pot 14
 +
Sleep 200
 +
}
  
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 7
+
if (NumKettles >= 15)
 +
{
 +
Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Pot 15
 
Sleep 200
 
Sleep 200
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 8
+
}
 +
if (NumKettles >= 16)
 +
{
 +
Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Pot 16
 
Sleep 200
 
Sleep 200
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 9
+
}
 +
if (NumKettles >= 17)
 +
{
 +
Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Pot 17
 
Sleep 200
 
Sleep 200
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 10
+
}
 +
if (NumKettles >= 18)
 +
{
 +
Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Pot 18
 
Sleep 200
 
Sleep 200
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 11
+
}
 +
if (NumKettles >= 19)
 +
{
 +
Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Pot 19
 
Sleep 200
 
Sleep 200
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 12
+
}
 +
if (NumKettles >= 20)
 +
{
 +
Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Pot 20
 +
Sleep 200
 +
}
 +
if (NumKettles >= 21)
 +
{
 +
Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Pot 21
 +
Sleep 200
 +
}
 +
 
 +
 
 +
 +
 
  
  
 
;ALL DONE!
 
;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
+
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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
 
return
 
return
  
Line 1,151: Line 1,020:
 
stoke ++
 
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
+
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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
  
 
MouseGetPos, OldMX, OldMY
 
MouseGetPos, OldMX, OldMY
  
 +
if (NumKettles >= 1)
 +
{
 
Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1
 
Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 2)
 +
{
 
Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2
 
Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 3)
 +
{
 
Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3
 
Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 4)
 +
{
 
Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4
 
Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 5)
 +
{
 
Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5
 
Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 6)
 +
{
 
Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6
 
Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 7)
 +
{
 +
Click, %StokeMaxX7%, %StokeMaxY% ; Pot 7
 +
sleep 200
 +
}
 +
 +
if (NumKettles >= 8)
 +
{
 +
Click, %StokeMaxX1%, %StokeMaxY2% ; Pot 8
 +
sleep 200
 +
}
 +
if (NumKettles >= 9)
 +
{
 +
Click, %StokeMaxX2%, %StokeMaxY2% ; Pot 9
 +
sleep 200
 +
}
 +
if (NumKettles >= 10)
 +
{
 +
Click, %StokeMaxX3%, %StokeMaxY2% ; Pot 10
 +
sleep 200
 +
}
 +
if (NumKettles >= 11)
 +
{
 +
Click, %StokeMaxX4%, %StokeMaxY2% ; Pot 11
 +
sleep 200
 +
}
 +
if (NumKettles >= 12)
 +
{
 +
Click, %StokeMaxX5%, %StokeMaxY2% ; Pot 12
 +
sleep 200
 +
}
 +
if (NumKettles >= 13)
 +
{
 +
Click, %StokeMaxX6%, %StokeMaxY2% ; Pot 13
 +
sleep 200
 +
}
 +
if (NumKettles >= 14)
 +
{
 +
Click, %StokeMaxX7%, %StokeMaxY2% ; Pot 14
 +
sleep 200
 +
}
  
Click, %StokeMaxX1%, %StokeMaxY2% ; Pot 7
+
if (NumKettles >= 15)
 +
{
 +
Click, %StokeMaxX1%, %StokeMaxY3% ; Pot 15
 
sleep 200
 
sleep 200
Click, %StokeMaxX2%, %StokeMaxY2% ; Pot 8
+
}
 +
if (NumKettles >= 16)
 +
{
 +
Click, %StokeMaxX2%, %StokeMaxY3% ; Pot 16
 
sleep 200
 
sleep 200
Click, %StokeMaxX3%, %StokeMaxY2% ; Pot 9
+
}
 +
if (NumKettles >= 17)
 +
{
 +
Click, %StokeMaxX3%, %StokeMaxY3% ; Pot 17
 
sleep 200
 
sleep 200
Click, %StokeMaxX4%, %StokeMaxY2% ; Pot 10
+
}
 +
if (NumKettles >= 18)
 +
{
 +
Click, %StokeMaxX4%, %StokeMaxY3% ; Pot 18
 
sleep 200
 
sleep 200
Click, %StokeMaxX5%, %StokeMaxY2% ; Pot 11
+
}
 +
if (NumKettles >= 19)
 +
{
 +
Click, %StokeMaxX5%, %StokeMaxY3% ; Pot 19
 
sleep 200
 
sleep 200
Click, %StokeMaxX6%, %StokeMaxY2% ; Pot 12
+
}
 +
if (NumKettles >= 20)
 +
{
 +
Click, %StokeMaxX6%, %StokeMaxY3% ; Pot 20
 
sleep 200
 
sleep 200
 +
}
 +
if (NumKettles >= 21)
 +
{
 +
Click, %StokeMaxX7%, %StokeMaxY3% ; Pot 21
 +
sleep 200
 +
}
 +
 +
  
 
MouseMove, %OldMX%, %OldMY%, 0
 
MouseMove, %OldMX%, %OldMY%, 0
Line 1,219: Line 1,172:
 
if (stoke = 5)
 
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
+
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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
  
 
} else {
 
} 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
+
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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s
 
}
 
}
  
Line 1,240: Line 1,193:
 
return
 
return
  
 +
 +
^r::reload
 +
^p::Pause
 
</pre>
 
</pre>

Revision as of 12:02, 12 October 2010

;All new for Tale 5
;Make Potash/Acid/Salt: 1-21 kettles

;Use 1280x1024 resolution. 


;Pin Kettle #1-7 menus from left to right, starting at upper left corner
;Pin Kettle #8-14 below the above pinups/row
;Pin Kettle #15-21 below the above pinups/row


;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.


;Release Date: Oct 12, 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 Choose1, Public|Private
	Gui, Add, Text,, What are we making?
	Gui, Add, DropDownList, vMake Choose2, Acid|Potash|Salt
	Gui, Add, Text,, How many kettles?
	Gui, Add, DropDownList, vNumKettles Choose1, 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21


	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 := (28 * runs * NumKettles)
	Water := (25 * runs * NumKettles)
	Salt := (1 * runs * NumKettles)
	Ash := (5 * runs * NumKettles)





	;Note Acid and Salt are on same X, just different Y

	if (Make == "Acid") {
	OutputTotal := (3 * NumKettles * runs)
	Msgbox, Ingredients needed to run %NumKettles% 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
	PotashX7 = 1145


	PotashY = 265 ;+260
	PotashY2 = 525
	PotashY3 = 785


	} else if (Make == "Salt") {
	OutputTotal := (3 * NumKettles * runs)
	Msgbox, Ingredients needed to run %NumKettles% 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
	PotashX7 = 1145


	PotashY = 240 
	PotashY2 = 500
	PotashY3 = 760





	} else if (Make == "Potash") {
	OutputTotal := (5 * NumKettles * runs)
	Msgbox, Ingredients needed to run %NumKettles% 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 ;+170
	PotashX2 = 215
	PotashX3 = 385
	PotashX4 = 555
	PotashX5 = 725
	PotashX6 = 890
	PotashX7 = 1060


	PotashY = 170 ;+260
	PotashY2 = 430 
	PotashY3 = 690
	}








	;This is where the Stoke Max option appears on the menu
	StokeMaxX1 = 70 ;+170
	StokeMaxX2 = 240
	StokeMaxX3 = 410
	StokeMaxX4 = 580
	StokeMaxX5 = 750
	StokeMaxX6 = 920
	StokeMaxX7 = 1090


	StokeMaxY = 75 ;+260
	StokeMaxY2 = 335
	StokeMaxY3 = 595




	;Max button, this is after the pot is ignited and asks for Quantity, we hit the Max button instead of typing a number
	; This is hard coded at 1280x1024 . This would likely be the only values you need to change if you try other resolutions
	MaxButtonX = 645
	MaxButtonY = 555




	;The Begin, Ignite and Take button appear in the same place, so these apply to all three.
	BeginIgniteTakeX1 = 50 ;+170
	BeginIgniteTakeX2 = 220
	BeginIgniteTakeX3 = 390
	BeginIgniteTakeX4 = 560
	BeginIgniteTakeX5 = 730
	BeginIgniteTakeX6 = 900
	BeginIgniteTakeX7 = 1070


	BeginIgniteTakeY = 240 ;+260
	BeginIgniteTakeY2 = 500
	BeginIgniteTakeY3 = 760





;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

	PotashY3 := PotashY3 + 45
	BeginIgniteTakeY3 := BeginIgniteTakeY3 + 45
	StokeMaxY3 := StokeMaxY3 + 45
	}






	;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)	
	RefreshY3 := (StokeMaxY3 - 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 = 10
	Loop, %delay%
	{
	GuiControl, Text, MineCycleText, %delay% seconds before the script will begin ...`n`nMove this out of way`n`nDont cover any pinups!`n`nDont leave anywhere near middle of screen (Load/Stoke Max wood popup)
	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 = 24
		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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s


	if (NumKettles >= 1)
	{
	Click, %PotashX1%, %PotashY% ;Pot 1
	sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %PotashX2%, %PotashY% ;Pot 2
	sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %PotashX3%, %PotashY% ;Pot 3
	sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %PotashX4%, %PotashY% ;Pot 4
	sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %PotashX5%, %PotashY% ;Pot 5
	sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %PotashX6%, %PotashY% ;Pot 6
	sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %PotashX7%, %PotashY% ;Pot 7
	sleep 200
	}

	if (NumKettles >= 8)
	{
	Click, %PotashX1%, %PotashY2% ;Pot 8
	sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %PotashX2%, %PotashY2% ;Pot 9
	sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %PotashX3%, %PotashY2% ;Pot 10
	sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %PotashX4%, %PotashY2% ;Pot 11
	sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %PotashX5%, %PotashY2% ;Pot 12
	sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %PotashX6%, %PotashY2% ;Pot 13
	sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %PotashX7%, %PotashY2% ;Pot 14
	sleep 200
	}


	if (NumKettles >= 15)
	{
	Click, %PotashX1%, %PotashY3% ;Pot 15
	sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %PotashX2%, %PotashY3% ;Pot 16
	sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %PotashX3%, %PotashY3% ;Pot 17
	sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %PotashX4%, %PotashY3% ;Pot 18
	sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %PotashX5%, %PotashY3% ;Pot 19
	sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %PotashX6%, %PotashY3% ;Pot 20
	sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %PotashX7%, %PotashY3% ;Pot 21
	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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s


	if (NumKettles >= 1)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1			
	sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2			
	sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3			
	sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4			
	sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5			
	sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6			
	sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Pot 7			
	sleep 200
	}


	if (NumKettles >= 8)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 8			
	sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 9			
	sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 10			
	sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 11			
	sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 12		
	sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 13		
	sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Pot 14		
	sleep 200
	}

	if (NumKettles >= 15)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Pot 15			
	sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Pot 16			
	sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Pot 17			
	sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Pot 18			
	sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Pot 19		
	sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Pot 20		
	sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Pot 21		
	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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s



	if (NumKettles >= 1)
	{
	;Pot 1
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX1%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 2)
	{
	;Pot 2		
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX2%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 3)
	{
	;Pot 3
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX3%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 4)
	{
	;Pot 4
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX4%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 5)
	{
	;Pot 5
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX5%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 6)
	{
	;Pot 6
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX6%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 7)
	{
	;Pot 7
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX7%, %RefreshY% ;Click Menu to refresh	
	sleep 200
	}



	if (NumKettles >= 8)
	{
	;Pot 8		
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX1%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 9)
	{
	;Pot 9
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX2%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 10)
	{
	;Pot 10
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX3%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 11)
	{
	;Pot 11
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX4%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 12)
	{
	;Pot 12
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX5%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}

	if (NumKettles >= 13)
	{
	;Pot 13
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX6%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 14)
	{
	;Pot 14
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX7%, %RefreshY2% ;Click Menu to refresh	
	sleep 200
	}


	if (NumKettles >= 15)
	{
	;Pot 15		
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX1%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 16)
	{
	;Pot 16
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX2%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 17)
	{
	;Pot 17
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX3%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 18)
	{
	;Pot 18
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX4%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 19)
	{
	;Pot 19
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX5%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}

	if (NumKettles >= 20)
	{
	;Pot 20
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX6%, %RefreshY3% ;Click Menu to refresh	
	sleep 200
	}
	if (NumKettles >= 21)
	{
	;Pot 21
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Ignite			
	sleep 200
	Click, %MaxButtonX%, %MaxButtonY% ;Max button
	sleep 200
	Click, %StokeMaxX7%, %RefreshY3% ;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 = 12
	;countdown = 192
	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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s

	if (NumKettles >= 1)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY% ;Pot 1			
	Sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY% ;Pot 2			
	Sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY% ;Pot 3			
	Sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY% ;Pot 4			
	Sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY% ;Pot 5			
	Sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY% ;Pot 6			
	Sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY% ;Pot 7			
	Sleep 200
	}

	if (NumKettles >= 8)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY2% ;Pot 8			
	Sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY2% ;Pot 9			
	Sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY2% ;Pot 10			
	Sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY2% ;Pot 11		
	Sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY2% ;Pot 12		
	Sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY2% ;Pot 13			
	Sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY2% ;Pot 14			
	Sleep 200
	}

	if (NumKettles >= 15)
	{
	Click, %BeginIgniteTakeX1%, %BeginIgniteTakeY3% ;Pot 15			
	Sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %BeginIgniteTakeX2%, %BeginIgniteTakeY3% ;Pot 16			
	Sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %BeginIgniteTakeX3%, %BeginIgniteTakeY3% ;Pot 17			
	Sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %BeginIgniteTakeX4%, %BeginIgniteTakeY3% ;Pot 18		
	Sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %BeginIgniteTakeX5%, %BeginIgniteTakeY3% ;Pot 19		
	Sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %BeginIgniteTakeX6%, %BeginIgniteTakeY3% ;Pot 20			
	Sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %BeginIgniteTakeX7%, %BeginIgniteTakeY3% ;Pot 21			
	Sleep 200
	}


	



;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%  -  Kettles Running: %NumKettles%`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%  -  Kettles Running: %NumKettles%`nElapsed: %minutes%m %seconds%s`nETA this run: %minutes_eta%m %seconds_eta%s

	MouseGetPos, OldMX, OldMY

	if (NumKettles >= 1)
	{
	Click, %StokeMaxX1%, %StokeMaxY% ; Pot 1			
	sleep 200
	}
	if (NumKettles >= 2)
	{
	Click, %StokeMaxX2%, %StokeMaxY% ; Pot 2			
	sleep 200
	}
	if (NumKettles >= 3)
	{
	Click, %StokeMaxX3%, %StokeMaxY% ; Pot 3			
	sleep 200
	}
	if (NumKettles >= 4)
	{
	Click, %StokeMaxX4%, %StokeMaxY% ; Pot 4			
	sleep 200
	}
	if (NumKettles >= 5)
	{
	Click, %StokeMaxX5%, %StokeMaxY% ; Pot 5			
	sleep 200
	}
	if (NumKettles >= 6)
	{
	Click, %StokeMaxX6%, %StokeMaxY% ; Pot 6			
	sleep 200
	}
	if (NumKettles >= 7)
	{
	Click, %StokeMaxX7%, %StokeMaxY% ; Pot 7			
	sleep 200
	}

	if (NumKettles >= 8)
	{
	Click, %StokeMaxX1%, %StokeMaxY2% ; Pot 8
	sleep 200
	}
	if (NumKettles >= 9)
	{
	Click, %StokeMaxX2%, %StokeMaxY2% ; Pot 9
	sleep 200
	}
	if (NumKettles >= 10)
	{
	Click, %StokeMaxX3%, %StokeMaxY2% ; Pot 10
	sleep 200
	}
	if (NumKettles >= 11)
	{
	Click, %StokeMaxX4%, %StokeMaxY2% ; Pot 11
	sleep 200
	}
	if (NumKettles >= 12)
	{
	Click, %StokeMaxX5%, %StokeMaxY2% ; Pot 12
	sleep 200
	}
	if (NumKettles >= 13)
	{
	Click, %StokeMaxX6%, %StokeMaxY2% ; Pot 13
	sleep 200
	}
	if (NumKettles >= 14)
	{
	Click, %StokeMaxX7%, %StokeMaxY2% ; Pot 14
	sleep 200
	}

	if (NumKettles >= 15)
	{
	Click, %StokeMaxX1%, %StokeMaxY3% ; Pot 15
	sleep 200
	}
	if (NumKettles >= 16)
	{
	Click, %StokeMaxX2%, %StokeMaxY3% ; Pot 16
	sleep 200
	}
	if (NumKettles >= 17)
	{
	Click, %StokeMaxX3%, %StokeMaxY3% ; Pot 17
	sleep 200
	}
	if (NumKettles >= 18)
	{
	Click, %StokeMaxX4%, %StokeMaxY3% ; Pot 18
	sleep 200
	}
	if (NumKettles >= 19)
	{
	Click, %StokeMaxX5%, %StokeMaxY3% ; Pot 19
	sleep 200
	}
	if (NumKettles >= 20)
	{
	Click, %StokeMaxX6%, %StokeMaxY3% ; Pot 20
	sleep 200
	}
	if (NumKettles >= 21)
	{
	Click, %StokeMaxX7%, %StokeMaxY3% ; Pot 21
	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%  -  Kettles Running: %NumKettles%`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%  -  Kettles Running: %NumKettles%`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


^r::reload
^p::Pause