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/SandMining/Code
From A Tale in the Desert
< User:Cegaiel | Macros | SandMining
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 ;Author: Cegaiel ; // 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 = 200 ;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 = 300 ;Safe (lag) is 300+, Fast is 200 (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 Pairs)|5 Color (Triple)|4 Color (3 Pairs)|4 Color (Triple + Pair)|4 Color (Quadruple)|3 Color (Triple + 2 Pair)|3 Color (Quad + Pair)|3 Color (Quintuple) Gui, Add, Button, gRecord, NEXT Gui, Add, Text,, `nPattern Explanations: Gui, Add, Button, gHelp, HELP Gui, Add, Text,, 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! If there are no triples or pairs, then just randomly set all the stones. ) 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 ;Set1: A, B, C, D, E, F Stone1 := 1 Stone2 := 2 Stone3 := 3 Stone4 := 4 Stone5 := 5 GoSub, PatternSet ;Set2: A, B, C, D, E, G Stone1 := 1 Stone2 := 2 Stone3 := 3 Stone4 := 4 Stone5 := GoSub, PatternSet ;Set3: A, B, C, D, F, G Stone1 := Stone2 := Stone3 := Stone4 := Stone5 := GoSub, PatternSet ;Set4: A, B, C, E, F, G Stone1 := Stone2 := Stone3 := Stone4 := Stone5 := GoSub, PatternSet ;Set5: A, B, D, E, F, G Stone1 := Stone2 := Stone3 := Stone4 := Stone5 := GoSub, PatternSet ;Set6: A, C, D, E, F, G Stone1 := Stone2 := Stone3 := Stone4 := Stone5 := GoSub, PatternSet ;Set7: B, C, D, E, F, G Stone1 := Stone2 := Stone3 := Stone4 := Stone5 := GoSub, PatternSet ;Set8: A, B, C, D, E, F, G Breaks all 7 stones Stone1 := Stone2 := Stone3 := Stone4 := Stone5 := 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 ;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 Pairs)") { ;KEY: Hit 100% ;A-1: 1 ;A-2: 2 ;B-1: 3 ;B-2: 4 ;C: 5 ;D: 6 ;E: 7 ;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 ;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 Pairs)") { ;KEY: ;A-1 = 1 ;A-2 = 2 ;B-1 = 3 ;B-2 = 4 ;C-1 = 5 ;C-2 = 6 ;D = 7 ;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 ;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 ;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)") { Msgbox, No stone can be worked time on this pattern.`n`nConcede and 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 ;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 ;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... } ;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) Sleep %Delay% 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, Help Screen... Stay tuned for updates!.`n`n`nAll possible patterns has been added, this script is 100 percent complete`n`nJust need to keep testing it with live runs...`n`n`nConsistently has all 7 stones crumbled:`n`n6 Color (1 Pair)`n5 Color (2 Pairs) Reload return ^r::reload ^p::Pause