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