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:Selune/Macros/FlaxMacro 2
From A Tale in the Desert
< User:Selune | Macros
Jump to navigationJump to searchFor AutoHotKey Version 1.0.47.06 or later
- Paste into a text file and change the extension to .ahk
- Or download and unzip File:Fast flaxing.zip
Currently Buggy - Working on a fix
#SingleInstance force Flax() return !q:: ExitApp return Flax() { ; Number of weedings required (including harvest) weedings := 3 ; Set number of plants to grow ONLY USE ODD DIMENSIONS (for now) ; grows ((dimension^2) * cycles) beds, losing one seed (for now) cycles := 1 ; Dimensions work reliably at 3 and 5, at 7 it's a close thing, only use with no lag and max "items on screen" dimension:= 5 global Xcenter global Ycenter global width if ((Mod(dimension, 2) == 0) || (dimension > 7)) { MsgBox Your choice of dimension is not supported! Attempt at your own risk! } message := "Please close your friends list and minimize chat and stat tabs in order to ensure proper macroage.`n" message .= "Ensure that ATITD is maximized and that Hotkeys on Flax is disabled`n" message .= "Also disable camera moves very fast and camera moves unreasonably fast.`n`n" message .= "Pin the plant menu at the very top left corner of the screen`n" message .= "Move your mouse to the bottom right corner of your ATITD window and press F1`n`n" message .= "IN CASE OF EMERGENCY: HIT ALT-Q" MsgBox %message% KeyWait, F1, D KeyWait, F1 MouseGetPos, Xmax, Ymax Send {F5}{F8}{F8} MouseMove, 0,0 Sleep 7000 Xcenter := Xmax//2 Ycenter := Ymax//2 + 19 width := 55 ;Flax beds are ~55 coords wide at this zoom level MouseMove, Xcenter, Ycenter, 0 Loop 9 { MouseClick, WheelDown Sleep 400 } Loop %cycles% { Sleep 500 i = 0 Loop { i += 1 Plant_Row("right", dimension) Move("down") if (i >= dimension) break i += 1 Plant_Row("left", dimension) Move("down") if (i >= dimension) break } half_dim := dimension//2 ; Rip up middle bed so we can stand there Rip(half_dim) Move("left", half_dim) Move("up", half_dim + 1) Loop %weedings% { Loop %dimension% { j := A_Index - half_dim - 1 Loop %dimension% { i := A_Index - half_dim - 1 ; Alternate directions if (Mod(Abs(j), 2) == 0) { i *= -1 } ; Don't try to weed ripped out bed if ((i == 0) && (j == 0)) continue Weed(i, j) Sleep 400 } } } Sleep 1000 Move("left", half_dim) Move("up", half_dim) ; end of cycle loop } ; end of function ExitApp } Weed(x, y) { global width global Xcenter global Ycenter x *= (width + 2) x += Xcenter + 10 y *= width y += Ycenter ; Display the menu MouseMove, x, y, 0 Sleep 10 MouseClick, Right ; Redisplay until "weed" appears Loop { Sleep 100 PixelGetColor, color, (x + 20), y R := color & 0xFF0000 R >>= 16 G := color & 0x00FF00 G >>= 8 B := color & 0x0000FF if ((R > 0) && (R < 120) && (B < 120) && (G < 120)) { Sleep 50 MouseMove, x, y, 0 Sleep 10 MouseClick, Right continue } else { break } } ; Click "weed" MouseClick, Right, (x + 30), (y - 5),,0 } Rip(mult) { global width global Xcenter global Ycenter x := -(width * mult) y := -((width * mult) + (width - 10)) MouseMove, Xcenter, Ycenter, 0 Sleep 100 MouseMove,x, y, 0, R Sleep 100 MouseClick Sleep 100 MouseClick,, 20, 10,, 0,, R Sleep 100 MouseClick,, 20, -10,, 0,, R Sleep 200 MouseClick,, Xcenter, Ycenter,, 0 Sleep 200 MouseClick,Right , 0, 100,, 0,, R Sleep 100 } Move(direction, count = 1) { global width global Xcenter global Ycenter distance := width * count time := 650 * count MouseMove, Xcenter, Ycenter, 0 if (direction == "right") { MouseClick,, distance, 0,, 0,, R } else if (direction == "left") { MouseClick,, -(distance), 0,, 0,, R } else if (direction == "down") { MouseClick,, 0, distance,, 0,, R } else if (direction == "up") { MouseClick,, 0, -(distance),, 0,, R } Sleep %time% } Plant_Row(direction, num) { MouseClick,, 40, 40,, 0 if (num <= 0) { return } num -= 1 Loop %num% { Move(direction) MouseClick,, 40, 40,, 0 } return }