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.

User:Cegaiel/Macros/FlaxHammock/Code

From A Tale in the Desert
< User:Cegaiel‎ | Macros‎ | FlaxHammock
Revision as of 20:14, 13 December 2010 by Cegaiel (talk | contribs)
Jump to navigationJump to search
;Ctrl+P to pause script and Ctrl+P again to resume
;The AHK icon in system tray will turn red while paused.
;Ctrl+R to reload script
;Date: 10/27/2010
;Last Update: 12/03/2010
;Author: Cegaiel

;Info from Wiki:
;Alcyone - Topaz
;Celeano - Emerald
;Maia - Ruby
;Merope - Sapphire
;Sterope - Quartz
;Taygete - Opal
;Sinai - Diamond


;Make sure the OK.PNG file, included in the zip, is located in the same folder (directory) as the macro.




;	// START CONFIGURATION AREA

	;Set the speed in microseconds (100 = 1/10th second, 1000 = 1 second, etc)
	;If you got a slower computer or lag, then try raising it 50 or 100 at a time, ie 200, 250, 300

	;This is the speed that it selects/highlights your ore stones
	;If you fail to see all the stones getting selected, or getting "Ore Busy" popup messages, etc

		Delay = 125  ;Safe (lag) is 200+, Fast is 100 (fast computer, no lag) - I use 125 personally.


	;If you have problems with it not closing the popup, then try adjusting this number higher.

		PopUpDelay = 250  ;Safe (lag) is 250+, Fast is 150 (fast computer, no lag)




;	// END CONFIGURATION AREA



			IfWinExist eGenesis Client
			{

			WinActivate, eGenesis Client
			WinWait, eGenesis Client
			WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos 

			;Get coordinates, for your resolutions'  X,Y location of the popups (OK button) that will occur 

later.
			CenterX := Floor(Xmax/2)
			CenterY := Floor(Ymax/2)+103


			;Offsets the search coordinates for OK popup for the imagesearch in Popup sub.
			;ImageSearch method (Popup sub)
			ClickPopX1 := CenterX - 40
			ClickPopY1 := CenterY - 30

			ClickPopX2 := CenterX + 30
			ClickPopY2 := CenterY + 30


			} else {
			BlockInput, MouseMoveOff
			MsgBox, eGenesis Client not running, aborting...
			Exit
			}



	Start:
	MineNum := 0 
	BlockInput, MouseMoveOff

	Start2:

	BlockInput, MouseMoveOff
	Gui, +AlwaysOnTop +ToolWindow
	Gui, Font, bold
	Gui, Add, Text,, Choose Pattern:
	Gui, Font, norm

	Gui, Add, DropDownList, vPattern Choose1,Select one|6 Color (1 Pair)|5 Color (2 Pair)|4 Color (3 Pair)|5 Color 

(Triple)|4 Color (Triple + Pair)|4 Color (Quadruple)|3 Color (Quad + Pair)|3 Color (Quintuple)|7 Color

	Gui, Font, bold
	Gui, Add, Text, vMineNumText, `n%MineNum% of 7 ore stones captured
	Gui, Font, norm



	Gui, Add, Text,,
	( LTrim
	Hover and Middle Click (Mouse Wheel) over all your ore stones.

	Choose highest number of matching colored ore stones First!
	Click Help for a detailed explanation.	
)




	if (Pattern == "")
	{
	Gui, Add, Text,,Last Pattern: N/A`nTime: N/A  (Current Delay: %Delay%)`nSets: N/A`n
	} else {
	perSet := Round(seconds / sets ,2)
	Seconds := Round(Seconds,2)
	Gui, Add, Text,,Last Pattern: %Pattern%`nPattern Time: %seconds%s (%perSet%s per set)  @ %Delay% delay`nPattern 

Sets: %Sets%`n

	;The program might stop working after 15 or so pulls. Not sure what causes this. Has to be a problem with ahk.
	;When it does happen, the Pattern Time shows 0.00s, so in this case, we reload script
	;You will know when this reload occurs, because the values of Last Pattern, Pattern Time and sets will show N/A

	if (Seconds = 0)
	{
	Msgbox, Debug Mode: Program freeze detected, Reloading script...
	RELOAD
	}

	}

	Gui, Add, Button, default gMineSetLoops, START

	Gui, Add, Button, gHelp, HELP
	Gui, Add, Button, gOops, Oops

	;GUI Upper Left Corner
	;Gui, Show, x0 y25
	;GUI Upper Right Corner at 1280x1024 
	Gui, Show, x952 y25

	WinActivate, eGenesis Client


	WinGet, GameWinHandle, ID, eGenesis Client
	loop
	{
		WinActivate
		CoordMode, Mouse, Relative
		KeyWait, MButton, D
		KeyWait, MButton
		MouseGetPos, TestX, TestY, WinHandle

		if (WinHandle = GameWinHandle)
		{
			Gosub, MineRecord
		}
		else
		{
			Gui, Destroy
			break
		}
	}
	return


	MineRecord:
	MineNum++
	MouseGetPos, MineX%MineNum%, MineY%MineNum%
	if MineNum > 7 
	{
	Gui, Destroy
	BlockInput, MouseMoveOff
	Msgbox, You have selected too many stones. 7 is the maximum.`n`nTo ensure you did not make a mistake, the script 

will now be reloaded...`n`nYou must start over, click OK to reload script.
	RELOAD
	}

	GuiControl, Text, MineNumText, `n%MineNum% of 7 ore stones captured
	return




	Oops:

	Pattern := LastPattern
	Gui, Destroy
	Gosub, Main






	MineSetLoops:



	if (MineNum <> 7)
	{
	Gui, Destroy
	BlockInput, MouseMoveOff
	Msgbox, Not enough ore stones. Sandmining requires 7 ore stones.`n`nTo ensure you did not make a mistake, the 

script will now be reloaded...`n`nYou must start over, click OK to reload script.
	RELOAD
	} else {
	Gui, Submit
	Gui, Destroy
	}

	



	Main:




SetDefaultMouseSpeed, 0



LastPattern := Pattern
Seconds := 0
Counter := 0

SetTimer, Counter, 10


Stone4 = 0
Stone5 = 0
Stone6 = 0
Stone7 = 0





BlockInput, MouseMove



;All of the if / else if statements of the 10 possible color combos...


if (pattern == "7 Color")
{
;KEY:
;A:1
;B:2
;C:3
;D:4
;E:5
;F:6
;G:7


Sets := 8
;Set1: A, B, C, D, E, F 
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 4
Stone5 := 5
Stone6 := 6
GoSub, PatternSet

;Set2: A, B, C, D, E, G 
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 4
Stone5 := 5
Stone6 := 7
GoSub, PatternSet

;Set3: A, B, C, D, F, G
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 4
Stone5 := 6
Stone6 := 7
GoSub, PatternSet

;Set4: A, B, C, E, F, G
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 5
Stone5 := 6
Stone6 := 7
GoSub, PatternSet

;Set5: A, B, D, E, F, G
Stone1 := 1
Stone2 := 2
Stone3 := 4
Stone4 := 5
Stone5 := 6
Stone6 := 7
GoSub, PatternSet

;Set6: A, C, D, E, F, G
Stone1 := 1
Stone2 := 3
Stone3 := 4
Stone4 := 5
Stone5 := 6
Stone6 := 7
GoSub, PatternSet

;Set7: B, C, D, E, F, G 
Stone1 := 2
Stone2 := 3
Stone3 := 4
Stone4 := 5
Stone5 := 6
Stone6 := 7
GoSub, PatternSet

;Set8: A, B, C, D, E, F, G Breaks all 7 stones
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 4
Stone5 := 5
Stone6 := 6
Stone7 := 7
GoSub, PatternSet
}



else if (pattern == "6 Color (1 Pair)")
{
;KEY: Got 100%
;A-1 = 1
;A-2 = 2
;B = 3
;C = 4
;D = 5
;E = 6
;F = 7

Sets := 14

;Set1: A-1, B, C, F 
Stone1 := 1
Stone2 := 3
Stone3 := 4
Stone4 := 7
GoSub, PatternSet

;Set2: A-1, D, E 
Stone1 := 1
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set3: A-1, C, D, E 
Stone1 := 1
Stone2 := 4
Stone3 := 5
Stone4 := 6
GoSub, PatternSet

;Set4: A-1, B, F 
Stone1 := 1
Stone2 := 3
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set5: A-1, D, E, F 
Stone1 := 1
Stone2 := 5
Stone3 := 6
Stone4 := 7
GoSub, PatternSet

;Set6: A-1, B, C 
Stone1 := 1
Stone2 := 3
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set7: A-1, B, E, F This workload will crumble stone A-1 
Stone1 := 1
Stone2 := 3
Stone3 := 6
Stone4 := 7
GoSub, PatternSet

;Set8: A-2, C, D
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set9: A-2, D, E 
Stone1 := 2
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set10: A-2, B, C, F 
Stone1 := 2
Stone2 := 3
Stone3 := 4
Stone4 := 7
GoSub, PatternSet

;Set11: A-2, C, F 
Stone1 := 2
Stone2 := 4
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set12: A-2, B, E, D 
Stone1 := 2
Stone2 := 3
Stone3 := 6
Stone4 := 5
GoSub, PatternSet

;Set13: A-2, B, E This workload will crumble stone B & E
Stone1 := 2
Stone2 := 3
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set14: A-2, C, D, F This workload will crumble the remaining stones
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 7
GoSub, PatternSet
}



else if (pattern == "5 Color (2 Pair)")
{
;KEY: Hit 100%
;A-1: 1
;A-2: 2
;B-1: 3
;B-2: 4
;C: 5
;D: 6
;E: 7

Sets := 15

;Set1: C, D, E 
Stone1 := 5
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set2: C, A-1, B-1
Stone1 := 5
Stone2 := 1
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set3: C, A-1, B-2 
Stone1 := 5
Stone2 := 1
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set4: C, A-2, B-1 
Stone1 := 5
Stone2 := 2
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set5: C, A-2, B-2 
Stone1 := 5
Stone2 := 2
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set6: D, A-1, B-1 
Stone1 := 6
Stone2 := 1
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set7: D, A-1, B-2 
Stone1 := 6
Stone2 := 1
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set8: D, A-2, B-1 
Stone1 := 6
Stone2 := 2
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set9: D, A-2, B-2 
Stone1 := 6
Stone2 := 2
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set10: E, A-1, B-1
Stone1 := 7
Stone2 := 1
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set11: E, A-1, B-2 
Stone1 := 7
Stone2 := 1
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set12: E, A-2, B-1 
Stone1 := 7
Stone2 := 2
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set13: E, A-2, B-2 
Stone1 := 7
Stone2 := 2
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set14: A-1, B-1, C, D, E Breaks A-1 & B-1 
Stone1 := 1
Stone2 := 3
Stone3 := 5
Stone4 := 6
Stone5 := 7
GoSub, PatternSet

;Set15: A-2, B-2, C, D, E Breaks the remaining 5 stones
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 6
Stone5 := 7
GoSub, PatternSet
}


else if (pattern == "5 Color (Triple)")
{
;KEY:
;A-1: 1
;A-2: 2
;A-3: 3
;B: 4
;C: 5
;D: 6
;E: 7

Sets := 14

;Set1: A-1, B, C 
Stone1 := 1
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set2: A-1, B, D 
Stone1 := 1
Stone2 := 4
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set3: A-1, B, E
Stone1 := 1
Stone2 := 4
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set4: A-1, C, D
Stone1 := 1
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set5: A-1, C, E 
Stone1 := 1
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set6: A-1, D, E 
Stone1 := 1
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set7: A-2, B, C 
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set8: A-2, B, D
Stone1 := 2
Stone2 := 4
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set9: A-2, B, E 
Stone1 := 2
Stone2 := 4
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set10: A-2, C, D
Stone1 := 2
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set11: A-2, C, E 
Stone1 := 2
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set12: A-2, D, E
Stone1 := 2
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet


;Set13: A-1, A-2, A-3 Breaks A-1 and A-2 
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 0
Stone5 := 0
GoSub, PatternSet

;Set14: A-3, B, C, D, E Breaks B, C, D, and E
Stone1 := 3
Stone2 := 4
Stone3 := 5
Stone4 := 6
Stone5 := 7
GoSub, PatternSet
}


else if (pattern == "4 Color (3 Pair)")
{
;KEY:
;A-1 = 1
;A-2 = 2
;B-1 = 3
;B-2 = 4
;C-1 = 5
;C-2 = 6
;D = 7

Sets := 15

;Set1: A-1, B-1, C-1
Stone1 := 1
Stone2 := 3
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set2: A-2, B-2, C-2, D 
Stone1 := 2
Stone2 := 4
Stone3 := 6
Stone4 := 7
GoSub, PatternSet

;Set3: A-1, B-1, C-2 
Stone1 := 1
Stone2 := 3
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set4: A-2, B-2, C-1, D 
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 7
GoSub, PatternSet

;Set5: A-1, B-2, C-1 
Stone1 := 1
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set6: A-2, B-1, C-2, D 
Stone1 := 2
Stone2 := 3
Stone3 := 6
Stone4 := 7
GoSub, PatternSet

;Set7: A-1, B-2, C-2 
Stone1 := 1
Stone2 := 4
Stone3 := 6
Stone4 := 0

;Set8: A-2, B-1, C-1, D 
Stone1 := 2
Stone2 := 3
Stone3 := 5
Stone4 := 7
GoSub, PatternSet

;Set9: A-2, B-1, C-1 
Stone1 := 2
Stone2 := 3
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set10: A-1, B-2, C-2, D 
Stone1 := 1
Stone2 := 4
Stone3 := 6
Stone4 := 7
GoSub, PatternSet

;Set11: A-2, B-1, C-2 
Stone1 := 2
Stone2 := 3
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set12: A-1, B-2, C-1, D 
Stone1 := 1
Stone2 := 4
Stone3 := 5
Stone4 := 7
GoSub, PatternSet

;Set13: A-2, B-2, C-1 
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set14: A-1, B-1, C-2, D
Stone1 := 1
Stone2 := 3
Stone3 := 6
Stone4 := 7
GoSub, PatternSet



;New (15th) pattern to break last 3 stones, wiki was partially incorrect. Thanks Setheri for discovering this :)
;Set15: A-1, B-2, C-2 
Stone1 := 1
Stone2 := 4
Stone3 := 6
Stone4 := 0
GoSub, PatternSet
}




else if (pattern == "4 Color (Triple + Pair)")
{
;KEY:
;A-1: 1
;A-2: 2
;A-3: 3
;B-1: 4
;B-2: 5
;C: 6
;D: 7


Sets := 12

;Set1: A-1, A-2, A-3
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set2: A-1, B-1, C 
Stone1 := 1
Stone2 := 4
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set3: A-1, B-1, D
Stone1 := 1
Stone2 := 4
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set4: A-1, B-2, C 
Stone1 := 1
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set5: A-1, B-2, D 
Stone1 := 1
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set6: A-1, C, D 
Stone1 := 1
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set7: A-2, B-1, C 
Stone1 := 2
Stone2 := 4
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set8: A-2, B-1, D 
Stone1 := 2
Stone2 := 4
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set9: A-3, B-1, C 
Stone1 := 3
Stone2 := 4
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set10: A-3, B-1, D 
Stone1 := 3
Stone2 := 4
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set11: A-2, C, D 
Stone1 := 2
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set12: A-1, B-1, C, D Breaks these 4 stones
Stone1 := 1
Stone2 := 4
Stone3 := 6
Stone4 := 7
GoSub, PatternSet
}


else if (pattern == "4 Color (Quadruple)")
{
;KEY:
;A-1: 1
;A-2: 2
;A-3: 3
;A-4: 4
;B: 5
;C: 6
;D: 7


Sets := 15

;Set1: A-1, B, C
Stone1 := 1
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set2: A-1, B, D 
Stone1 := 1
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set3: A-1, C, D 
Stone1 := 1
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set4: A-2, B, C 
Stone1 := 2
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set5: A-2, B, D 
Stone1 := 2
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set6: A-2, C, D
Stone1 := 2
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set7: A-3, B, C 
Stone1 := 3
Stone2 := 5
Stone3 := 6
Stone4 := 0
GoSub, PatternSet

;Set8: A-3, B, D 
Stone1 := 3
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set9: A-3, C, D
Stone1 := 3
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set10: A-4, B, C, D Breaks B, C, D
Stone1 := 4
Stone2 := 5
Stone3 := 6
Stone4 := 7
GoSub, PatternSet

;Set11: A-1, A-2, A-3
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set12: A-1, A-2, A-4
Stone1 := 1
Stone2 := 2
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set13: A-1, A-3, A-4
Stone1 := 1
Stone2 := 3
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set14: A-2, A-3, A-4 
Stone1 := 2
Stone2 := 3
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set15: A-1, A-2, A-3, A-4 Breaks A-1, A-2, A-3
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 4
GoSub, PatternSet
}


else if (pattern == "*3 Color (Triple + 2 Pair)")
{
Sets := 0
BlockInput, MouseMoveOff
Msgbox, No single stone can be worked 7 times on this pattern.`n`nConcede and just get a new workload...
}





else if (pattern == "3 Color (Quad + Pair)")
{
;KEY
;A-1: 1
;A-2: 2
;A-3: 3
;A-4: 4
;B-1: 5
;B-2: 6
;C: 7
;D: 8


Sets := 7

;Set1: A-1, B-1, C 
Stone1 := 1
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set2: A-1, B-2, C 
Stone1 := 1
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set3: A-2, B-1, C 
Stone1 := 2
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set4: A-2, B-2, C 
Stone1 := 2
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set5: A-3, B-1, C
Stone1 := 3
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set6: A-3, B-2, C 
Stone1 := 3
Stone2 := 6
Stone3 := 7
Stone4 := 0
GoSub, PatternSet

;Set7: A-4, B-1, C
Stone1 := 4
Stone2 := 5
Stone3 := 7
Stone4 := 0
GoSub, PatternSet
}



else if (pattern == "3 Color (Quintuple)")
{
;5 of same color

;KEY:
;A-1: 1
;A-2: 2
;A-3: 3
;A-4: 4
;A-5: 5
;B: 6
;C: 7

Sets := 11

;Set1: A-1, A-2, A-3 
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 0
GoSub, PatternSet

;Set2: A-1, A-2, A-4 
Stone1 := 1
Stone2 := 2
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set3: A-1, A-2, A-5
Stone1 := 1
Stone2 := 2
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set4: A-1, A-3, A-4 
Stone1 := 1
Stone2 := 3
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set5: A-1, A-3, A-5
Stone1 := 1
Stone2 := 3
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set6: A-1, A-4, A-5 
Stone1 := 1
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set7: A-2, A-3, A-4 
Stone1 := 2
Stone2 := 3
Stone3 := 4
Stone4 := 0
GoSub, PatternSet

;Set8: A-2, A-3, A-5 
Stone1 := 2
Stone2 := 3
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set9: A-2, A-4, A-5
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set10: A-3, A-4, A-5 
Stone1 := 3
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set11: A-1, A-2, A-3, A-4, A-5 Breaks A-1, A-2, A-3, A-4, A-5
Stone1 := 1
Stone2 := 2
Stone3 := 3
Stone4 := 4
Stone5 := 5

GoSub, PatternSet
}


else
{
BlockInput, MouseMoveOff
Msgbox, You did not choose a valid pattern, please try again...`n`nNote your selected stones are still in memory, simply 

choose the pattern and immediately hit START
Gosub, Start2
}



;Bring up the Menu again (Force Restart)
Gosub, Start
return





PatternSet:
Sleep 100
GoSub, Popup  ;This one checks, if another popup, beside the one at the end of this sub, exists. Likely "Ore is busy" 

popup

;if ErrorLevel = 0
;Msgbox, Another Popup`n`nConsider aborting the script here, this might suggest a "Ore stone busy message"?

MouseMove, MineX%Stone1%, MineY%Stone1%
Sleep %Delay%
Send {A}
Sleep %Delay%

MouseMove, MineX%Stone2%, MineY%Stone2%
Sleep %Delay%
Send {A}
Sleep %Delay%

MouseMove, MineX%Stone3%, MineY%Stone3%
Sleep %Delay%
Send {A}
Sleep %Delay%


if Stone4 > 0
{
MouseMove, MineX%Stone4%, MineY%Stone4%
Sleep %Delay%
Send {A}
Sleep %Delay%
}

if Stone5 > 0
{
MouseMove, MineX%Stone5%, MineY%Stone5%
Sleep %Delay%
Send {A}
Sleep %Delay%
}

if Stone6 > 0
{
MouseMove, MineX%Stone6%, MineY%Stone6%
Sleep %Delay%
Send {A}
Sleep %Delay%
}

if Stone7 > 0
{
MouseMove, MineX%Stone7%, MineY%Stone7%
Sleep %Delay%
Send {A}
Sleep %Delay%
}



Send {S}
Sleep %Delay%

GoSub, Popup

return




			Popup:

			ImageSearch, PopX, PopY, ClickPopX1, ClickPopY1, ClickPopX2, ClickPopY2, *50 OK.PNG
			if ErrorLevel = 0
			{
			NewX := PopX + 3
			NewY := PopY + 3

			MouseMove, %NewX%, %NewY%
			Sleep %PopupDelay%
			Click
			Sleep %PopupDelay%
			}


			Sleep 300

			;Run this twice to ensure a laggy popup didn't get closed.
			ImageSearch, PopX, PopY, ClickPopX1, ClickPopY1, ClickPopX2, ClickPopY2, *50 OK.PNG
			if ErrorLevel = 0
			{
			NewX := PopX + 3
			NewY := PopY + 3

			MouseMove, %NewX%, %NewY%
			Sleep %PopupDelay%
			Click
			Sleep %PopupDelay%
			}

			return




			PopupOld:

			;Search for the RBG color of 0xECDFBD (Same as HTML code: #ECDFBD)
			;Was having too much problems with Sterope public sand mine.
			;The shade would work one day and not the next, always adjusting and something I still kept 

walking randomly from misclick
			;So this has been aborted and using imagesearch method

			PixelSearch, Px, Py, %CenterX%, %CenterY%, %CenterX%, %CenterY%, 0xEBDDBB, %shade%, Fast|RGB

			if ErrorLevel = 0
			{
			MouseMove, %CenterX%, %CenterY%
			Sleep %PopupDelay%
			Click
			Sleep %PopupDelay%
			}
			return





			Counter:
			counter ++
			seconds := counter/100
			return


	Help:
	Gui, Destroy

	BlockInput, MouseMoveOff
	Msgbox, Ctrl + R = Reload`nCtrl + P to Pause, Ctrl + P again to Resume.`n`nNote: This script disables the mouse 

while it is running!`nIf you pause the script, while it is runing, then your mouse may stop working.`nEither resume and 

let it finish or Ctrl+R (Reload) the script and your mouse will be enabled.`n`nOops Button: If you forgot to minimize your 

chat (all keys were sent into chat, instead of screen),`nthen this button will repeat the last pattern and ore stone 

locations.`nJust ignore that it says 0 of 7 stones and ignore selecting a new pattern (Leave as "Select one" is ok).`nJust 

press the Oops button and it will run the last pattern/ore stone locations.`n`n`nConsistently has all 7 stones crumble 

(These are most desireable):`n`n7 Color`n6 Color (1 Pair)`n5 Color (2 Pair)`n4 Color (3 Pair)`n`n`nConsistent Unbroken 

stones:`n`n3 color (Quintiple): 2 stones`n3 Color (Quad + Pair): 6 stones`n4 Color (Quadruple): 1 stone`n4 color (Triple + 

Pair): 3 stones`n5 color (Triple): 1 stone`n`n`n(Triple + 2 Pair) and (Double Triple) has no single stone that can be 

worked 7 times.`n(Quadruple + Triple) fails using Quadruple pattern.`n(2 Triples) fail using Triple pattern.`nThose have 

been excluded from "Choose Pattern" pulldown menu.`n`n`n`nWhat order to click your ore stones:`n`nClick all Quintiple or 

Quadruple, First if any,`nClick a triple color pattern next, if any`nClick all paired colors next, if any`nThen all the 

single colored stones, LAST!


	;Reload
	GoSub, Start2

	return


^r::reload
^p::Pause