|
|
(3 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | '''For AutoHotKey Version 1.0.47.06 or later'''
| |
− | Paste into a text file and change the extension to .ahk
| |
| | | |
− | <pre>
| |
− | #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
| |
− | }
| |
− | </pre>
| |