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/SandMining/Code"

From A Tale in the Desert
Jump to navigationJump to search
 
(15 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
;The AHK icon in system tray will turn red while paused.
 
;The AHK icon in system tray will turn red while paused.
 
;Ctrl+R to reload script
 
;Ctrl+R to reload script
;Date: 10/24/2010
+
;Date: 10/27/2010
 +
;Last Update: 10/28/2010
 
;Author: Cegaiel
 
;Author: Cegaiel
;Credits to Takhetu for the loop/code that generates the combinations, of which mines to click.
 
 
Last Update: 10/24/2010 - At 9:14PM (-4 GMT) on same day as original release date.
 
 
  
 
;Info from Wiki:
 
;Info from Wiki:
Line 20: Line 17:
  
  
 
ChatWarning = 0
 
 
 
Start:
 
  
  
; // START CONIGURATION AREA
+
; // START CONFIGURATION AREA
  
 
;Set the speed in microseconds (100 = 1/10th second, 1000 = 1 second, etc)
 
;Set the speed in microseconds (100 = 1/10th second, 1000 = 1 second, etc)
Line 33: Line 25:
 
;This is the speed that it highlights your mine crystals
 
;This is the speed that it highlights your mine crystals
  
Delay = 200 ;Original is 200
+
Delay = 100 ;Safe (lag) is 200+, Fast is 100 (fast computer, no lag)
  
 
;If you have problems with it not closing the popup, then try adjusting this number higher.
 
;If you have problems with it not closing the popup, then try adjusting this number higher.
  
PopUpDelay = 300 ;Original is 300
+
PopUpDelay = 100 ;Safe (lag) is 200+, Fast is 100 (fast computer, no lag)
  
 
;This is the shade at which is searches the for the color of the popup box.
 
;This is the shade at which is searches the for the color of the popup box.
Line 43: Line 35:
 
;If you find it is not even seeing the popup box, then try raising 5 at a time and finetune 1 at a time (ie 30,35,etc)
 
;If you find it is not even seeing the popup box, then try raising 5 at a time and finetune 1 at a time (ie 30,35,etc)
  
Shade = 24  ;Original is 24
+
Shade = 24  ;Original is 25
 +
 
 +
; // END CONFIGURATION AREA
  
; // END CONIGURATION AREA
 
  
  
  
  
MineNum = 0
 
  
 
IfWinExist eGenesis Client
 
IfWinExist eGenesis Client
 
{
 
{
;WinActivate
+
 
 +
 
 +
Start:
 +
MineNum := 0
 +
WinActivate
 +
 
 +
Gui, +AlwaysOnTop +ToolWindow
 +
Gui, Add, Text,, Choose Pattern:
 +
Gui, Add, DropDownList, vPattern Choose1, 7 Color|6 Color (1 Pair)|5 Color (2 Pair)|5 Color (Triple)|4 Color (3 Pair)|4 Color (Triple + Pair)|4 Color (Quadruple)|3 Color (Triple + 2 Pair)|3 Color (Quad + Pair)|3 Color (Quintuple)
 +
 
 +
 
 +
Gui, Add, Button, gRecord, NEXT
 +
 +
if (Pattern == "")
 +
{
 +
Gui, Add, Text,,Last: N/A`nSets: N/A
 +
} else {
 +
Gui, Add, Text,,Last: %Pattern%`nSets: %Sets%
 +
}
 +
 
 +
Gui, Add, Button, gHelp, HELP
 +
Gui, Show
 +
return
 +
 
  
  
  
 +
Record:
 +
Gui, Submit
 +
Gui, Destroy
 
Gui, +AlwaysOnTop +ToolWindow
 
Gui, +AlwaysOnTop +ToolWindow
 
Gui, Font, bold
 
Gui, Font, bold
Gui, Add, Text, vMineNumText, Record crystal positions
+
Gui, Add, Text, vMineNumText, Set ore stone locations`n`nSelected Pattern: %pattern%
 
Gui, Font, norm
 
Gui, Font, norm
 
Gui, Add, Text,,
 
Gui, Add, Text,,
 
( LTrim
 
( LTrim
Hover and middle-click (Click mouse-wheel) on each ore stone, one by one,
+
Hover and middle-click (Click mouse-wheel) all your ore stones.
until you've clicked on all the crystals.
 
 
 
AFTER setting (middle clicking) all your stones, then click the OK button.
 
 
 
(Drag this box out of the way if any stones are hidden)
 
 
 
  
Reminder: Ctrl+P to Pause  -  Ctrl+R to Reload
+
Make sure you click all quad colors FIRST!
 +
Make sure you click all triple colors SECOND!
 +
Make sure you click all pair colors THIRD!
 +
Then all the single colors, LAST!
  
 
)
 
)
Line 78: Line 93:
 
Gui, Add, Button, default gMineSetLoops, OK
 
Gui, Add, Button, default gMineSetLoops, OK
 
Gui, Show
 
Gui, Show
 +
  
  
Line 83: Line 99:
 
loop
 
loop
 
{
 
{
 
+
WinActivate
;WinActivate
 
 
CoordMode, Mouse, Relative
 
CoordMode, Mouse, Relative
 
KeyWait, MButton, D
 
KeyWait, MButton, D
Line 104: Line 119:
 
MineNum++
 
MineNum++
 
MouseGetPos, MineX%MineNum%, MineY%MineNum%
 
MouseGetPos, MineX%MineNum%, MineY%MineNum%
GuiControl, Text, MineNumText, %MineNum% crystals captured
+
GuiControl, Text, MineNumText, %MineNum% ore stones captured`n`nSelected Pattern: %Pattern%
 +
TotalRacks := MineNum
 
return
 
return
  
Line 114: Line 130:
  
  
SetDefaultMouseSpeed, 0
+
SetDefaultMouseSpeed, 0
 
 
 
 
if ChatWarning = 0
 
Msgbox, Make sure your chat is MINIMIZED!`n`nThis message will not display again :)`n`n`n`nFYI - Wiki suggests:`n`nAclyone - Topaz`nCeleano - Emerald`nMaia - Ruby`nMerope - Sapphire`nSterope - Quartz`nTaygete - Opal`nSinai - Diamond`n`nMake sure you are mining in the correct region.
 
  
  
 
WinActivate, eGenesis Client
 
WinActivate, eGenesis Client
 
WinWait, eGenesis Client
 
WinWait, eGenesis Client
 
 
WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos  
 
WinGetActiveStats, win_Title, Xmax, Ymax, win_Xpos, win_Ypos  
  
Line 131: Line 142:
  
  
 +
 +
Sleep 1000
 +
 +
Stone4 = 0
 +
Stone5 = 0
 +
Stone6 = 0
 +
 +
;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
 +
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 := 13
 +
 +
;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, B, C, D, E Breaks all these 5 stones
 +
Stone1 := 1
 +
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 := 14
 +
 +
;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 This will break all 3 stones
 +
Stone1 := 2
 +
Stone2 := 4
 +
Stone3 := 5
 +
Stone4 := 0
 +
GoSub, PatternSet
 +
 +
;Set14: A-1, B-1, C-2, D This will break all 4 stones
 +
Stone1 := 1
 +
Stone2 := 3
 +
Stone3 := 6
 +
Stone4 := 7
 +
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
 +
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
 +
}
  
  
MainLoop := MineNum-2
 
  
Loop %MainLoop%
+
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
  
FirstStone := A_Index
+
;Set2: A-1, A-2, A-4
; NumToRun1 := 6-A_Index
+
Stone1 := 1
NumToRun1 := MineNum-A_Index-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
 +
{
 +
Msgbox, This pattern is not recorded yet... Please /chat Cegaiel and inform him of the error.`n`nPlease report that you were working on the %Pattern% pattern.
 +
}
 +
 
 +
 
 +
 
 +
 
 +
;Not necessary, just waiting a moment before bringing up the menu again, so I can read the last of the floating black text :)
 +
Sleep 2000
 +
 
 +
 
 +
;Bring up the Menu again (Force Restart)
 +
;Msgbox, Debug Mode - This will be removed later`n`nPattern Completed: %Pattern%`n`n`nWork the Mine again.
 +
 
 +
Gosub, Start
 +
return
 +
}
  
Loop, %NumToRun1%
 
{
 
SecondStone := FirstStone+A_Index
 
;NumToRun2 := 5-A_Index
 
NumToRun2 := MineNum-A_Index-1
 
  
Loop, %NumToRun2%
 
{
 
ThirdStone := SecondStone+A_Index
 
  
  
  
 +
PatternSet:
  
 +
MouseMove, MineX%Stone1%, MineY%Stone1%
 +
Sleep %Delay%
 +
Send {A}
 +
Sleep %Delay%
  
MouseMove, MineX%FirstStone%, MineY%FirstStone%
+
MouseMove, MineX%Stone2%, MineY%Stone2%
;Msgbox, FirstStone: MineX%FirstStone%, MineY%FirstStone%
 
 
Sleep %Delay%
 
Sleep %Delay%
 
Send {A}
 
Send {A}
 
Sleep %Delay%
 
Sleep %Delay%
MouseMove, MineX%SecondStone%, MineY%SecondStone%
+
 
;Msgbox, SecondStone: MineX%SecondStone%, MineY%SecondStone%
+
MouseMove, MineX%Stone3%, MineY%Stone3%
 
Sleep %Delay%
 
Sleep %Delay%
 
Send {A}
 
Send {A}
 
Sleep %Delay%
 
Sleep %Delay%
MouseMove, MineX%Thirdstone%, MineY%Thirdstone%
+
 
;Msgbox, ThirdStone: MineX%Thirdstone%, MineY%Thirdstone%
+
 
 +
if Stone4 > 0
 +
{
 +
MouseMove, MineX%Stone4%, MineY%Stone4%
 
Sleep %Delay%
 
Sleep %Delay%
 
Send {A}
 
Send {A}
 
Sleep %Delay%
 
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%
 +
}
 +
 +
 
Send {S}
 
Send {S}
 
Sleep %Delay%
 
Sleep %Delay%
Gosub, Popup
 
  
}
 
}
 
}
 
  
 +
 +
GoSub, Popup
 +
 +
 +
return
  
  
if ChatWarning = 0
 
{
 
Msgbox, Done, Click the mine and get a new workload!`n`nThis message will not display again :)
 
ChatWarning = 1
 
}
 
  
Gosub, Start
 
return
 
}
 
  
Popup:
+
Popup:
  
 
;Search for the RBG color of 0xECDFBD (Same as HTML code: #ECDFBD)
 
;Search for the RBG color of 0xECDFBD (Same as HTML code: #ECDFBD)
  
PixelSearch, Px, Py, %CenterX%, %CenterY%, %CenterX%, %CenterY%, 0xECDFBD, %shade%, Fast|RGB
+
 
 +
PixelSearch, Px, Py, %CenterX%, %CenterY%, %CenterX%, %CenterY%, 0xEBDDBB, %shade%, Fast|RGB
  
 
if ErrorLevel = 0
 
if ErrorLevel = 0
 
{
 
{
 +
Sleep %PopupDelay%
 
MouseMove, %CenterX%, %CenterY%
 
MouseMove, %CenterX%, %CenterY%
 
Sleep %PopupDelay%
 
Sleep %PopupDelay%
;Msgbox, %CenterX%, %CenterY%
 
;Click, %CenterX%, %CenterY%
 
 
Click
 
Click
 
Sleep %PopupDelay%
 
Sleep %PopupDelay%
Line 210: Line 1,191:
  
  
 +
Help:
 +
Gui, Destroy
 +
 +
Msgbox, Ctrl + R = Reload`nCtrl + P to Pause, Ctrl + P again to Resume.`n`n`nConsistently has all 7 stones crumble (These are most desireable):`n`n6 Color (1 Pair)`n5 Color (2 Pairs)`n`n`nNote the "3 Color (Triple + 2 Pair)" has no single stone that can be worked 7 times.`nDo not even bother with this pattern. It will tell you that anyways, if you choose it.
 +
 +
 +
Reload
 +
return
  
  

Latest revision as of 06:24, 28 October 2010

;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: 10/28/2010
;Author: Cegaiel

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




;	// 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 highlights your mine crystals

		Delay = 100  ;Safe (lag) is 200+, Fast is 100 (fast computer, no lag)

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

		PopUpDelay = 100  ;Safe (lag) is 200+, Fast is 100 (fast computer, no lag)

	;This is the shade at which is searches the for the color of the popup box.
	;If you find yourself running all the time, ie its confusing sand with the popup, then try lowering 5 at a time (ie 20,15,etc).
	;If you find it is not even seeing the popup box, then try raising 5 at a time and finetune 1 at a time (ie 30,35,etc)

		Shade = 24  ;Original is 25

;	// END CONFIGURATION AREA






IfWinExist eGenesis Client
{


	Start:
	MineNum := 0 
	WinActivate

	Gui, +AlwaysOnTop +ToolWindow
	Gui, Add, Text,, Choose Pattern:
	Gui, Add, DropDownList, vPattern Choose1, 7 Color|6 Color (1 Pair)|5 Color (2 Pair)|5 Color (Triple)|4 Color (3 Pair)|4 Color (Triple + Pair)|4 Color (Quadruple)|3 Color (Triple + 2 Pair)|3 Color (Quad + Pair)|3 Color (Quintuple)


	Gui, Add, Button, gRecord, NEXT
	
	if (Pattern == "")
	{
	Gui, Add, Text,,Last: N/A`nSets: N/A
	} else {
	Gui, Add, Text,,Last: %Pattern%`nSets: %Sets%
	}

	Gui, Add, Button, gHelp, HELP
	Gui, Show
	return




	Record:
	Gui, Submit
	Gui, Destroy
	Gui, +AlwaysOnTop +ToolWindow
	Gui, Font, bold
	Gui, Add, Text, vMineNumText, Set ore stone locations`n`nSelected Pattern: %pattern%
	Gui, Font, norm
	Gui, Add, Text,,
	( LTrim
	Hover and middle-click (Click mouse-wheel) all your ore stones.

	Make sure you click all quad colors FIRST!
	Make sure you click all triple colors SECOND!
	Make sure you click all pair colors THIRD!
	Then all the single colors, LAST!

	)

	Gui, Add, Button, default gMineSetLoops, OK
	Gui, Show



	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%
	GuiControl, Text, MineNumText, %MineNum% ore stones captured`n`nSelected Pattern: %Pattern%
	TotalRacks := MineNum
	return


	MineSetLoops:
	Gui, Submit
	Gui, Destroy



			SetDefaultMouseSpeed, 0


			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 that will occur later.
			CenterX := Floor(Xmax/2)
			CenterY := Floor(Ymax/2)+103



Sleep 1000

Stone4 = 0
Stone5 = 0
Stone6 = 0

;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
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 := 13

;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, B, C, D, E Breaks all these 5 stones 
Stone1 := 1
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 := 14

;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 This will break all 3 stones 
Stone1 := 2
Stone2 := 4
Stone3 := 5
Stone4 := 0
GoSub, PatternSet

;Set14: A-1, B-1, C-2, D This will break all 4 stones
Stone1 := 1
Stone2 := 3
Stone3 := 6
Stone4 := 7
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
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
{
Msgbox, This pattern is not recorded yet... Please /chat Cegaiel and inform him of the error.`n`nPlease report that you were working on the %Pattern% pattern.
}




;Not necessary, just waiting a moment before bringing up the menu again, so I can read the last of the floating black text :)
Sleep 2000


;Bring up the Menu again (Force Restart)
;Msgbox, Debug Mode - This will be removed later`n`nPattern Completed: %Pattern%`n`n`nWork the Mine again.

Gosub, Start
return
}





PatternSet:

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%
}


Send {S}
Sleep %Delay%



GoSub, Popup


return




			Popup:

			;Search for the RBG color of 0xECDFBD (Same as HTML code: #ECDFBD)


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

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



	Help:
	Gui, Destroy

	Msgbox, Ctrl + R = Reload`nCtrl + P to Pause, Ctrl + P again to Resume.`n`n`nConsistently has all 7 stones crumble (These are most desireable):`n`n6 Color (1 Pair)`n5 Color (2 Pairs)`n`n`nNote the "3 Color (Triple + 2 Pair)" has no single stone that can be worked 7 times.`nDo not even bother with this pattern. It will tell you that anyways, if you choose it.


	Reload
	return


^r::reload
^p::Pause