The Wiki for Tale 5 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:Anka/Macros/Flax4"

From ATITD5
Jump to navigationJump to search
Line 139: Line 139:
 
   MDelay = 190
 
   MDelay = 190
 
   Water = 0
 
   Water = 0
 +
  WaterX = 475
 +
  WaterY = 98
 +
  WaterB = 0
 
   ResetX = 850
 
   ResetX = 850
 
   Res1920x1080X = 630 //686  //178
 
   Res1920x1080X = 630 //686  //178
Line 326: Line 329:
 
   Loop $FlaxSet
 
   Loop $FlaxSet
 
     If Flax[ed1] = Flax or Flax[ed1] = Both
 
     If Flax[ed1] = Flax or Flax[ed1] = Both
 +
      If $Water = 1
 +
        If $WaterB = 0
 +
          Call FindButton
 +
        End
 +
        Call Water
 +
      End
 
       Call Flax
 
       Call Flax
 
     End
 
     End
Line 331: Line 340:
 
       Call Rot
 
       Call Rot
 
     End
 
     End
     Delay 4000
+
     Delay 2000
 
     If Flax[ed6] = True
 
     If Flax[ed6] = True
 
       Call Dump  //Dumps raw flax into a chest
 
       Call Dump  //Dumps raw flax into a chest
Line 401: Line 410:
  
 
Procedure Flax
 
Procedure Flax
  If $Water = 1
 
    Call FindButton
 
    Call Water
 
  End
 
 
   MousePos $LeftStep
 
   MousePos $LeftStep
 
   Leftclick
 
   Leftclick
Line 533: Line 538:
 
     End
 
     End
 
   Else
 
   Else
    stop
 
 
     MousePos $RotX, $RotY
 
     MousePos $RotX, $RotY
 
     Delay $MDelay
 
     Delay $MDelay
Line 550: Line 554:
  
 
Procedure Dump
 
Procedure Dump
MousePos $DumpX, $DumpY
+
  MousePos $DumpX, $DumpY
Delay $MDelay
+
  Delay $MDelay
Leftclick
+
  Leftclick
Delay 200
+
  Delay 200
Compute NewX = $DumpX + 10
+
  Compute NewX = $DumpX + 10
MousePos $NewX, $DumpY
+
  MousePos $NewX, $DumpY
Delay $MDelay
+
  Delay $MDelay
Rightclick
+
  Rightclick
Delay 200
+
  Delay 200
MousePos 960, 594
+
  MousePos 960, 594
Delay $MDelay
+
  Delay $MDelay
Rightclick
+
  Rightclick
Delay $MDelay
+
  Delay $MDelay
 
end
 
end
  
 
Procedure MoveLeft
 
Procedure MoveLeft
MousePos $LeftX, $LeftY
+
  MousePos $LeftX, $LeftY
Delay 350
+
  Delay 350
LeftClick
+
  LeftClick
Delay 350
+
  Delay 350
Call Plant
+
  Call Plant
 
End
 
End
  
 
Procedure MoveRight
 
Procedure MoveRight
MousePos $RightX, $RightY
+
  MousePos $RightX, $RightY
Delay 350
+
  Delay 350
LeftClick
+
  LeftClick
Delay 350
+
  Delay 350
Call Plant
+
  Call Plant
 
End
 
End
  
 
Procedure Plant
 
Procedure Plant
MousePos $XPlant, $YPlant
+
  MousePos $XPlant, $YPlant
Delay 350
+
  Delay 350
LeftClick
+
  LeftClick
Delay 350
+
  Delay 350
 
End
 
End
  
 
Procedure Group
 
Procedure Group
Call Plant
+
  Call Plant
loop 4
+
  loop 4
  Call MoveLeft
+
    Call MoveLeft
end
+
  end
 
+
 
Call MoveDown
+
  Call MoveDown
 
+
 
loop 4
+
  loop 4
  Call MoveRight
+
    Call MoveRight
end
+
  end
 
End
 
End
  
 
Procedure MoveDown
 
Procedure MoveDown
MousePos 960, 781 //572, 600 //512, 540
+
  MousePos 960, 781 //572, 600 //512, 540
Delay 350
+
  Delay 350
LeftClick
+
  LeftClick
Delay 350
+
  Delay 350
Call Plant
+
  Call Plant
 
End
 
End
  
 
Procedure Weed
 
Procedure Weed
SetConst Picked = 0
+
  SetConst Picked = 0
While $Picked = 0
+
  While $Picked = 0
  MousePos $WeedX, $WeedY
+
    MousePos $WeedX, $WeedY
  Delay 100
+
    Delay 100
  Rightclick
+
    Rightclick
  Delay $MDelay
+
    Delay $MDelay
  Case
+
    Case
  When $Flax = $Weed
+
    When $Flax = $Weed
    IsObject Harvest at $ObjX, $ObjY
+
      IsObject Harvest at $ObjX, $ObjY
       Compute TempX = $WeedX + 20
+
        Compute TempX = $WeedX + 20
      Compute TempY = $WeedY - 7
+
        Compute TempY = $WeedY - 7
      MousePos $TempX, $TempY
+
        MousePos $TempX, $TempY
      Delay 200
+
        Delay 200
      Rightclick
+
        Rightclick
      Delay 100
+
        Delay 100
      SetConst Picked = 1
+
        SetConst Picked = 1
       Break
+
        Break
 +
      End
 +
    Else
 +
     
 +
       IsObject WeedF at $ObjX, $ObjY
 +
        Compute TempX = $WeedX + 20
 +
        Compute TempY = $WeedY - 7
 +
        MousePos $TempX, $TempY
 +
        Delay 200
 +
        Rightclick
 +
        Delay 100
 +
        SetConst Picked = 1
 +
        Break
 +
       End
 
     End
 
     End
  Else
 
 
      
 
      
     IsObject WeedF at $ObjX, $ObjY
+
     Compute TempX = $WeedX - 2
      Compute TempX = $WeedX + 20
+
    MousePos $TempX, $WeedY
      Compute TempY = $WeedY - 7
+
    Delay $MDelay
      MousePos $TempX, $TempY
+
    Rightclick
      Delay 200
 
      Rightclick
 
      Delay 100
 
      SetConst Picked = 1
 
      Break
 
    End
 
 
   End
 
   End
 
 
  Compute TempX = $WeedX - 2
 
  MousePos $TempX, $WeedY
 
  Delay $MDelay
 
  Rightclick
 
End
 
 
End
 
End
  
 
Procedure WeedLeft
 
Procedure WeedLeft
Call Weed
 
Loop 4
 
  compute WeedX = $WeedX - $Mod1
 
  Compute ObjX = $ObjX - $Mod1
 
 
   Call Weed
 
   Call Weed
End
+
  Loop 4
 +
    compute WeedX = $WeedX - $Mod1
 +
    Compute ObjX = $ObjX - $Mod1
 +
    Call Weed
 +
  End
 
End
 
End
  
 
Procedure WeedRight
 
Procedure WeedRight
Call Weed
 
loop 4
 
  compute WeedX = $WeedX + $Mod1
 
  Compute ObjX = $ObjX + $Mod1
 
 
   Call Weed
 
   Call Weed
end
+
  loop 4
 +
    compute WeedX = $WeedX + $Mod1
 +
    Compute ObjX = $ObjX + $Mod1
 +
    Call Weed
 +
  end
 
End
 
End
  
 
Procedure PickSeeds
 
Procedure PickSeeds
Loop $PickX
+
  Loop $PickX
  MousePos $NewX, $LeftY
 
  Delay $MDelay
 
  SetConst Picked = 0
 
  While $Picked = 0
 
 
     MousePos $NewX, $LeftY
 
     MousePos $NewX, $LeftY
 
     Delay $MDelay
 
     Delay $MDelay
     Rightclick
+
     SetConst Picked = 0
    Delay $MDelay
+
    While $Picked = 0
    Case
+
      MousePos $NewX, $LeftY
    When $Direction = 0
+
      Delay $MDelay
      IsObject SmallH at $Res1920x1080X, $Res1920x1080Y
+
      Rightclick
        Compute TempX = $NewX + 15  //1920x1080
+
      Delay $MDelay
        Compute TempY = $LeftY - 10 //1920x1080
+
      Case
        MousePos $TempX, $TempY
+
      When $Direction = 0
       
+
        IsObject SmallH at $Res1920x1080X, $Res1920x1080Y
        Delay 100
+
          Compute TempX = $NewX + 15  //1920x1080
        rightclick
+
          Compute TempY = $LeftY - 10 //1920x1080
        Inc Picked
+
          MousePos $TempX, $TempY
        Delay 1800
+
         
        If $Rip = $Pick
+
          Delay 100
          Compute TempX = $NewX + 210
+
          rightclick
 +
          Inc Picked
 +
          Delay 1800
 +
          If $Rip = $Pick
 +
            Compute TempX = $NewX + 210
 +
            MousePos $TempX, $LeftY
 +
            Delay $MDelay
 +
            Rightclick
 +
            Delay $MDelay
 +
            Compute RipX = $TempX + 17
 +
            Compute RipY = $LeftY + 22
 +
            Mousepos $RipX, $RipY
 +
            Delay $MDelay
 +
            Rightclick  //Opens Util menu
 +
            Delay $MDelay
 +
            Compute RipX = $RipX + 15
 +
            Compute RipY = $RipY - 25
 +
            MousePos $RipX, $RipY
 +
            Delay $MDelay
 +
            Rightclick //Rips
 +
            Delay $MDelay
 +
          End
 +
          Continue
 +
        Else
 +
          Compute TempX = $NewX - 2
 
           MousePos $TempX, $LeftY
 
           MousePos $TempX, $LeftY
 
           Delay $MDelay
 
           Delay $MDelay
 
           Rightclick
 
           Rightclick
          Delay $MDelay
 
          Compute RipX = $TempX + 17
 
          Compute RipY = $LeftY + 22
 
          Mousepos $RipX, $RipY
 
          Delay $MDelay
 
          Rightclick  //Opens Util menu
 
          Delay $MDelay
 
          Compute RipX = $RipX + 15
 
          Compute RipY = $RipY - 25
 
          MousePos $RipX, $RipY
 
          Delay $MDelay
 
          Rightclick //Rips
 
          Delay $MDelay
 
 
         End
 
         End
         Continue
+
          
      Else
+
       When $Direction = 1
        Compute TempX = $NewX - 2
+
        Compute TextX = $NewX + 10
        MousePos $TempX, $LeftY
+
        //        Compute TextY = $LeftY - 22
        Delay $MDelay
+
        IsObject FlaxH1920x1080 at $TextX, $Res1920x1080Y
        Rightclick
+
          Compute TempX = $NewX + 15
      End
+
          Compute TempY = $LeftY -10
        
+
          MousePos $TempX, $TempY
    When $Direction = 1
+
          Delay 100
      Compute TextX = $NewX + 10
+
          rightclick
      //        Compute TextY = $LeftY - 22
+
          Inc Picked
      IsObject FlaxH1920x1080 at $TextX, $Res1920x1080Y
+
          Delay 1800
        Compute TempX = $NewX + 15
+
          If $Rip = $Pick
        Compute TempY = $LeftY -10
+
            Compute TempX = $NewX - 190
        MousePos $TempX, $TempY
+
            MousePos $TempX, $LeftY
        Delay 100
+
            Delay $MDelay
        rightclick
+
            Rightclick
        Inc Picked
+
            Delay $MDelay
        Delay 1800
+
            Compute RipX = $TempX + 17
        If $Rip = $Pick
+
            Compute RipY = $LeftY + 22
           Compute TempX = $NewX - 190
+
            Mousepos $RipX, $RipY
 +
            Delay $MDelay
 +
            Rightclick //Opens Util menu
 +
            Delay $MDelay
 +
            Compute RipX = $RipX + 15
 +
            Compute RipY = $RipY - 25
 +
            MousePos $RipX, $RipY
 +
            Delay $MDelay
 +
            Rightclick //Rips
 +
            Delay $MDelay
 +
          End
 +
          Continue
 +
        Else
 +
          SetConst TempX = $NewX
 +
          SetConst TempY = $LeftY
 +
           Compute TempX = $NewX - 2
 
           MousePos $TempX, $LeftY
 
           MousePos $TempX, $LeftY
 
           Delay $MDelay
 
           Delay $MDelay
 
           Rightclick
 
           Rightclick
          Delay $MDelay
 
          Compute RipX = $TempX + 17
 
          Compute RipY = $LeftY + 22
 
          Mousepos $RipX, $RipY
 
          Delay $MDelay
 
          Rightclick //Opens Util menu
 
          Delay $MDelay
 
          Compute RipX = $RipX + 15
 
          Compute RipY = $RipY - 25
 
          MousePos $RipX, $RipY
 
          Delay $MDelay
 
          Rightclick //Rips
 
          Delay $MDelay
 
 
         End
 
         End
        Continue
 
      Else
 
        SetConst TempX = $NewX
 
        SetConst TempY = $LeftY
 
        Compute TempX = $NewX - 2
 
        MousePos $TempX, $LeftY
 
        Delay $MDelay
 
        Rightclick
 
 
       End
 
       End
 
     End
 
     End
 
   End
 
   End
End
 
 
End
 
End
  
 
Procedure SideStep
 
Procedure SideStep
MousePos $SS1X, $SS1Y
+
  MousePos $SS1X, $SS1Y
Delay $MDelay
+
  Delay $MDelay
Leftclick
+
  Leftclick
Delay 2250
+
  Delay 2250
MousePos $SS2X, $SS2Y
+
  MousePos $SS2X, $SS2Y
Delay $MDelay
+
  Delay $MDelay
Leftclick
+
  Leftclick
Delay 850
+
  Delay 850
 
End
 
End
  
 
Procedure Coords
 
Procedure Coords
Bell Asterisk
+
  Bell Asterisk
Delay 10000
+
  Delay 10000
//Loadrgb {mousey}, {mousey}
+
  //Loadrgb {mousey}, {mousey}
//keys {rgbred},{rgbgreen},{rgbblue}
+
  //keys {rgbred},{rgbgreen},{rgbblue}
Keys {mousex}, {mousey}
+
  Keys {mousex}, {mousey}
 
End
 
End
  
 
Procedure FindButton
 
Procedure FindButton
MousePos $ButtonX, $ButtonY
+
  MousePos $WaterX, $WaterY
Delay $MDelay
+
  Delay $MDelay
While $count > 295
+
  While $count > 295
  MousePos $ButtonX, $ButtonY
+
    MousePos $WaterX, $WaterY
  IsObject Water at {mousex}, {mousey}
+
    IsObject Water at {mousex}, {mousey}
    Set ButtonX = {mousex}
+
      SetConst WaterX = {mousex}
    Set ButtonY = {mousey}
+
      SetConst WaterY = {mousey}
    Bell
+
      SetConst WaterB = 1
    Set Count = 294
+
      Bell
  Else
+
      Set Count = 294
    Compute ButtonX = $ButtonX - 1
+
    Else
    dec count
+
      Compute WaterX = $WaterX - 1
 +
      dec count
 +
    End
 
   End
 
   End
End
 
 
End
 
End
  
 
Procedure Water
 
Procedure Water
MousePos $ButtonX, $ButtonY
+
  MousePos $WaterX, $WaterY
Delay 200
+
  Delay 200
Rightclick
+
  Rightclick
Delay $MDelay
+
  Delay $MDelay
MousePos 961, 594
+
  MousePos 961, 594
Delay $MDelay
+
  Delay $MDelay
Rightclick
+
  Rightclick
Delay 3000
+
  Delay 3000
 
End
 
End
  
 
Procedure Zoom
 
Procedure Zoom
MousePos 100, 20
+
  MousePos 100, 20
Delay 1000
+
  Delay 1000
MousePos 600, 600
+
  MousePos 600, 600
Delay $MDelay
+
  Delay $MDelay
 
End
 
End
  
 
Procedure UnZoom
 
Procedure UnZoom
Mousepos 989, 1079
+
  Mousepos 989, 1079
Delay 900
+
  Delay 900
Mousepos 600, 600
+
  Mousepos 600, 600
Delay $MDelay
+
  Delay $MDelay
 
End
 
End
 
Bell Exclamation
 
Bell Exclamation
 
//Written with ACTool 5.4.0 by Anka
 
//Written with ACTool 5.4.0 by Anka
 
</pre>
 
</pre>

Revision as of 02:35, 28 October 2010

//Anka's Flax Macro v.4.0.1

//This macro will plant beds for seeds.  After Seeds are
//done, it will plant 20 beds of flax and either keep the flax
//in inventory, store flax into a chest, or throw flax in the water to rot.
//
//I have not played since Tale 3 and have switched monitors since then.
//This and future macros will be tailored for 1920x1080 resolution but I
//will eventually add built in resolutions for all macros.  This addition
//may take a while since I'm trying to get everything running again.  Chat me
//in game with your prefered resolution and I'll do the most popular resolutions
//first.
//
//Setup
//1. Resolution 1920x1080. Have not tested with others.
//2. Have 21 seeds and jugs with at least 1 jug empty.(If water is needed)
//3. Make sure you see the water action button in your starting location.
//3. This telling, I'm using regular sized action buttons.
//3. Pin open your planting window and drag it to the upper left corner.
//4. Make sure your ATITD window is maximized.
//4. Enter Cartagropher View and zoom all the way in.

//If you are using Win95, do not use autohide on windows taskbar.  It throws the numbers
// off.  Win& does not seem to have this problem.
//If you want to store the flax in a chest.  Click on the chest, pick stash then pin that
//window to the top half of the right side. Place your pointer on the edge of that
//window to the left of "Flax".  When stashing, the macro will click on this
//window to update it then, click on flax to dump it into the chest.  Have 1
//flax in inventory to do this.  Once you have the pointer on the edge of the
//window, alt tab to ACTool without moving the mouse and press F2 to start.
//You can move the mouse once the menu comes up.  If you are not using the dump
//feature, you can simply alt tab and press start or F2.
//If using new seeds, you can use the Dump option to store rotten flax in the same
//way.  You just can't store flax and rotten flax.  You can Rot flax and store
//rotten flax if you like.
//
//I wrote this macro being on the "West" side of water with lots of room to the West.
//It should work with water to your north also.
//
//This macro doesn't run on timers.  It uses Objects for this Tale.  1 issue that might
//come up is that the macro may run slow on older computers.  Chat me in game if you
//have problems and I can try to cut it down a bit.  It's working perfectly for me.
//
//Menu Settings
//"Job"          = Seeds, Flax or Both.  Both will grow seeds than plant enough rounds
//                 of flax to leave you with the original 21 seeds.
//"Seed Plants"  = Number of beds you want to plant for harvesting seeds.  This must
//                 be an even number.
//"Batch"        = Number of times you want to run the macro on current settings.
//"Pick Rounds"  = The number of times you want to harvest seeds from each bed.
//"Weed #"       = the number of times you need to weed flax before harvest.  This number
//                 should be set to 3 for Nile Green or 2 for most of the newer varieties.
//                 It counts the "Harvest Seeds" phase as a round.
//"Seeds / Pick" = How many seeds you get from each bed when you harvest seeds.
//"Resolution"   = This is for a future addon.
//
//
//Let me know if you have any problems.  It's good to be back and nice to see that some
//of my old macro's are still being used today. :)
//
//Finally cleaned the instructions this Tale :)  Ignore the comments in code like the one below.
//It's from the original build.  It's all set by the menu now.
//
//Enjoy!  Anka


constants
  SeedX = 2  //Set this to how many plantings - 1 per row for seeds
  Seeds = 0
  Rounds = 2
  Button = 0
  ButtonX = 475
  ButtonY = 98 //32
  Count = 475
  CenterX = 510
  CenterY = 383
  DumpX = 0
  DumpY = 0
  SubX = 20
  PickX = 0
  TempX = 0
  TempY = 0
  Left2X = 620  //119
  LeftX = 750
  LeftY = 561  //395
  RightX = 1146
  RightY = 561 //395
  Right2X = 1320
  TextX = 0
  TextY = 0
  RipX = 0
  RipY = 0
  SkillsX = 0
  SKillsY = 0
  SkillsB = 0
  WeedX = 1364  //741
  WeedY = 215  //85
  LSide1X = 415
  LSide2X = 910 //403
  LSide1Y = 780  //548
  LSide2Y = 561  //395
  RSide1X = 1415 //1011
  RSide2X = 996  //650
  RSide1Y = 331  //225
  RSide2Y = 561  //395
  RSide3X = 1230
  RSide3Y = 354
  ObjX = 1375
  ObjY = 202
  SS1X = 0
  SS2X = 0
  SS1Y = 0
  SS2Y = 0
  Mod1 = 205
  Mod2 = 291
  Mod3 = 226
  NewX = 0
  NewY = 0
  FlaxSet = 0
  XPlant = 60
  YPlant = 40  //45
  LeftStep = 756, 561  // 256, 395
  RightStep2 = 1563, 250
  Picked = 0
  Direction = 0
  Pick = 3
  Rip = 0
  Flax = 1
  Reset = 825, 113
  Weed = 0
  Job = 0
  Dump = 0
  Rot = 0
  RotX = 0
  RotY = 0
  RotB = 0
  FRot = 0
  MDelay = 190
  Water = 0
  WaterX = 475
  WaterY = 98
  WaterB = 0
  ResetX = 850
  Res1920x1080X = 630 //686  //178
  Res1920x1080Y = 548  //548
end

Object FlaxH1920x1080old //178, 557
  228=0,10
  235=2,0|232=2,2|234=2,6|227=2,8|227=2,10
  234=4,0|230=4,2|235=4,6|225=4,8|223=4,10
  217=6,10
  222=8,0|216=8,2|219=8,4|168=8,8|222=8,10
  223=10,0|217=10,4|214=10,6|224=10,10
  220=12,0|216=12,4|214=12,6|154=12,8|214=12,10
  228=14,0|223=14,2|225=14,4|224=14,6|206=14,8|212=14,10
  217=16,0|154=16,2|207=16,4|210=16,6|210=16,8|216=16,10
  224=18,0|227=18,4|229=18,6|224=18,8|229=18,10
  220=20,0|166=20,4|227=20,6|220=20,8|220=20,10
End

Object Rip  //405, 563
  235=0,10
  235=2,2|238=2,4|237=2,6|233=2,8|235=2,10
  58=4,0|236=4,2|59=4,4|59=4,6|234=4,8|230=4,10
  232=6,0|237=6,2|236=6,4|237=6,6|57=6,8|233=6,10
  235=8,0|235=8,2|236=8,4|230=8,6|225=8,8|223=8,10
  234=10,0|231=10,2|234=10,4|235=10,6|225=10,8|222=10,10
  230=12,0|114=12,2|231=12,4|230=12,6|55=12,8|225=12,10
  235=14,0|236=14,4|234=14,6|222=14,10
  232=16,0|235=16,2|231=16,8|226=16,10
  240=18,0|239=18,2|239=18,4|239=18,6|233=18,8|226=18,10
  234=20,0|237=20,2|235=20,4|235=20,6|231=20,8|229=20,10
End

Object FlaxH1920x1080  //178,562
  235=2,0|232=2,2|234=2,6
  234=4,0|230=4,2|235=4,6
End

Object WinCheck
  148=2,0|148=2,2|148=2,4|148=2,6
  237=4,0|240=4,2|234=4,4|238=4,6
  240=6,0|242=6,2|230=6,4|237=6,6
End

Object SmallH //686, 548
  235=2,0|232=2,2|234=2,6
  234=4,0|230=4,2|235=4,6
  222=8,0|216=8,2|219=8,4
  223=10,0|217=10,4|214=10,6
  220=12,0|216=12,4|214=12,6
  228=14,0|223=14,2|225=14,4|224=14,6
  217=16,0|154=16,2|207=16,4|210=16,6
  224=18,0|227=18,4|229=18,6
  220=20,0|166=20,4|227=20,6
End

Object WeedF  //1375, 202
  59=0,0|57=0,2|173=0,4|233=0,6
  233=2,0|227=2,2|229=2,4|172=2,6
  170=4,0|54=4,2|109=4,4|222=4,6
  227=6,0|109=6,2|112=6,4|229=6,6
  220=8,0|218=8,2|219=8,4|216=8,6
  54=10,0|53=10,2|165=10,4|219=10,6
End

Object Harvest
  237=0,0|229=0,2|233=0,6
  233=2,0|227=2,2|230=2,6
  227=4,0|219=4,2|222=4,6
  227=6,0|218=6,2|224=6,4|229=6,6
  220=8,0|219=8,4|108=8,6
  218=10,0|220=10,4|219=10,6
End

Object Skills
  234=0,0|233=0,4|227=0,6|112=0,8
  231=2,2|227=2,6
  234=4,2|234=4,6
  113=6,0|234=6,2|234=6,4|235=6,8
  228=10,0|234=10,2|172=10,4|171=10,6|231=10,8
  230=12,0|57=12,2|235=12,4|230=12,6|57=12,8
End


Object Skills2
  148=2,0|148=2,2|148=2,4|148=2,6|148=2,8
  227=4,0|234=4,2|231=4,4|230=4,6|228=4,8
  229=6,0|230=6,2|232=6,4|235=6,6|233=6,8
  225=8,0|229=8,2|225=8,4|223=8,6|222=8,8
  234=10,0|233=10,4|227=10,6|112=10,8
  231=12,2|227=12,6
  234=14,2|234=14,6
  113=16,0|234=16,2|234=16,4|235=16,8
  228=20,0|234=20,2|172=20,4|171=20,6|231=20,8
  230=22,0|57=22,2|235=22,4|230=22,6|57=22,8
End


Object Rot  //625, 651
  148=2,0|148=2,2|148=2,4|148=2,6|148=2,8
  237=4,0|236=4,2|237=4,4|236=4,6|233=4,8
  238=6,0|235=6,2|231=6,4|233=6,6|227=6,8
  229=8,0|229=8,2|228=8,4|226=8,6|227=8,8
  231=12,2|230=12,4|230=12,6|235=12,8
  56=14,0|223=14,2|55=14,4|55=14,6|226=14,8
  219=16,0|223=16,2|220=16,4|222=16,6|56=16,8
  223=18,0|223=18,2|227=18,8
  224=20,0|223=20,4|224=20,6
  213=22,0|53=22,2|211=22,4|214=22,6|53=22,8
End

Object Water
  222=0,0|229=0,2|225=0,4|219=0,6|225=0,8|236=0,10
  206=2,0|191=2,2|220=2,4|223=2,6|224=2,8|250=2,10
  215=4,0|221=4,2|217=4,4|206=4,6|235=4,8|253=4,10
  191=6,0|211=6,2|222=6,4|238=6,6|245=6,8|249=6,10
  217=8,0|233=8,2|214=8,4|213=8,6|230=8,8|250=8,10
  224=10,0|217=10,2|222=10,4|229=10,6|232=10,8|248=10,10
End

Object Corner //600, 462
  154=0,2
  148=2,2|148=2,4
  148=4,2|237=4,4
End



SetConst DumpX = {MouseX}
SetConst DumpY = {MouseY}

Form Flax, Settings
  ed1=Combobox:Job:Seeds, Flax, Both              //Job Type
  ed2=Editbox:Seed Plants   (Even Number):2       //Number of beds you want to plant for seeds
  ed3=Editbox:Batch:1                             //Number of times to run Job
  ed4=Combobox:Pick Rounds:1, 2, 3, 4, 5          //Number of times to harvest seeds before ripping out beds
  ed5=Combobox:Weed #:3, 2                        //Total number to Weed and Water a variety of flax
  ed9=Editbox:Seeds / Pick:1                      //Number of seeds per picking
  ed6=CheckBox:Dump:False                         //Toggle to Dump flax in chest
  ed7=CheckBox:Rot:False                          //Toggle to Rot flax
  ed10=CheckBox:Need Water:True                   //Toggle if flax needs to be watered
  ed8=Editbox:Resolution:1920x1080                //Future Addon
end

FormLoad Flax, Flax.frm

if ShowForm Flax
  Set Seeds = Flax[ed9]
  if Flax[ed10] = True
    Set Water = 1
  Else
    Set Water = 0
  End
  If Flax[ed1] = Seeds
    Set Button = 1
  End
  Compute SeedX = Flax[ed2]/2 - 1
  Set Rounds = Flax[ed3]
  Set Pick = Flax[ed4]
  Set Weed = Flax[ed5]
  
  Case
  When Flax[ed1] = Flax
    Set Pick = 2
  End
else
  stop
end

FormSave Flax, Flax.frm

MousePos 100, 20
LeftClick
Delay 400

// test

//
Call UnZoom

Compute FlaxSet = $Pick * $Seeds - 1
Loop $Rounds
  If Flax[ed1] = Seeds or Flax[ed1] = Both
    Call Seeds
  End
  Loop $FlaxSet
    If Flax[ed1] = Flax or Flax[ed1] = Both
      If $Water = 1
        If $WaterB = 0
          Call FindButton
        End
        Call Water
      End
      Call Flax
    End
    If Flax[ed7] = True and Flax[ed1] <> Seeds
      Call Rot
    End
    Delay 2000
    If Flax[ed6] = True
      Call Dump   //Dumps raw flax into a chest
    End
  End
End

Call Zoom

Procedure Seeds
  MousePos $LeftStep
  Leftclick
  delay 500
  Call Plant
  
  Loop $SeedX
    Call MoveLeft
  End
  
  Call MoveDown
  
  Loop $SeedX
    Call MoveRight
  End
  
  //MousePos 1230, 354 //1600, 180  //900, 220      <<<<<-----------------Fix
  //stop
  SetConst SS1X = $RSide3X
  SetConst SS1Y = $RSide3Y
  SetConst SS2X = $RSide2X
  SetConst SS2Y = $RSide2Y
  Call SideStep
  
  
  Delay $MDelay
  Leftclick
  Delay 4000
  
  Loop $Pick
    Set Rip = {loopno}
    //Check for Seeds Left
    SetConst Direction = 0
    Compute PickX = $SeedX + 1
    SetConst NewX = $Left2X
    Call PickSeeds
    //    //Move to 2nd row
    SetConst SS1X = $LSide1X
    SetConst SS1Y = $LSide1Y
    SetConst SS2X = $LSide2X
    SetConst SS2Y = $LSide2Y
    Call SideStep
    //Check for Seeds Right
    SetConst Direction = 1
    Compute NewX = $Right2X
    Call PickSeeds
    //Move to 1st Row
    SetConst SS1X = $RSide1X
    SetConst SS1Y = $RSide1Y
    SetConst SS2X = $RSide2X
    SetConst SS2Y = $RSide2Y
    Call SideStep
  End
  
  MousePos $ResetX, 570
  Delay $MDelay
  Leftclick
  delay 3000
End

Procedure Flax
  MousePos $LeftStep
  Leftclick
  Delay 2000
  Call Group
  
  MousePos 977, 840
  Delay $MDelay
  LeftClick
  Delay 500
  
  Call Group
  
  MousePos 564, 193
  Delay 350
  LeftClick
  Delay 3000
  
  loop $Weed //Change this number to equal how many times you have to weed
    //and or water + 1. for Old egypt and green nile this number is 3
    Set Flax = {loopno}
    Call WeedLeft
    
    compute WeedY = $WeedY + $Mod1
    Compute ObjY = $ObjY + $Mod1
    
    Call WeedRight
    
    compute WeedY = $WeedY + $Mod2
    Compute ObjY = $ObjY + $Mod2
    
    Call WeedLeft
    
    compute WeedY = $WeedY + $Mod3
    Compute ObjY = $ObjY + $Mod3
    
    Call WeedRight
    
    SetConst WeedX = 1364
    SetConst WeedY = 215
    SetConst ObjX = 1375
    SetConst ObjY = 202
    Delay 1000
  end
  
  SetConst ObjX = 1375
  SetConst Flax = 1
  MousePos $RightStep2
  Leftclick
  Delay 3500
End

Procedure Rot
  MousePos 600, 600
  Delay $MDelay
  Keys {ESC}
  Delay $MDelay
  If $SkillsB = 0
    SetConst FRot = 0
    Set ButtonX = {MouseX}
    Set ButtonY = {MouseY}
    While $FRot = 0
      MousePos $ButtonX, $ButtonY
      IsObject Corner at {mousex}, {mousey}
        Set FRot = 1
      Else
        Compute ButtonY = $ButtonY - 1
      End
    End
    SetConst FRot = 0
    While $FRot = 0
      MousePos $ButtonX, $ButtonY
      IsObject Skills2 at {mousex}, {mousey}
        SetConst ButtonX = {Mousex}
        SetConst ButtonY = {MouseY}
        Compute ButtonX = $ButtonX + 25
        Compute ButtonY = $ButtonY +5
        MousePos $ButtonX, $ButtonY
        SetConst SkillsX = $ButtonX
        SetConst SkillsY = $ButtonY
        SetConst SkillsB = 1
        Delay $Mdelay
        Rightclick
        Delay $MDelay
        Set FRot = 1
      Else
        Compute ButtonY = $ButtonY + 1
      End
    End
  Else
    MousePos $SkillsX, $SkillsY
    Delay $MDelay
    Rightclick
    Delay $MDelay
  End
  
  if $RotB = 0
    SetConst FRot = 0
    Set ButtonX = {MouseX}
    Set ButtonY = {MouseY}
    While $FRot = 0
      MousePos $ButtonX, $ButtonY
      IsObject Corner at {mousex}, {mousey}
        Set FRot = 1
      Else
        Compute ButtonY = $ButtonY - 1
      End
    End
    SetConst FRot = 0
    While $FRot = 0
      MousePos $ButtonX, $ButtonY
      IsObject Rot at {mousex}, {mousey}
        SetConst ButtonX = {Mousex}
        SetConst ButtonY = {MouseY}
        Compute ButtonX = $ButtonX + 25
        Compute ButtonY = $ButtonY +5
        MousePos $ButtonX, $ButtonY
        SetConst RotX = $ButtonX
        SetConst RotY = $ButtonY
        SetConst RotB = 1
        Delay $Mdelay
        Rightclick
        Delay $MDelay
        Set FRot = 1
      Else
        Compute ButtonY = $ButtonY + 1
      End
    End
  Else
    MousePos $RotX, $RotY
    Delay $MDelay
    Rightclick
    Delay $MDelay
  End
  MousePos 961, 594
  Delay $MDelay
  Rightclick
  Delay $MDelay
  MousePos 959, 651
  Delay $MDelay
  Rightclick
  Delay $MDelay
End

Procedure Dump
  MousePos $DumpX, $DumpY
  Delay $MDelay
  Leftclick
  Delay 200
  Compute NewX = $DumpX + 10
  MousePos $NewX, $DumpY
  Delay $MDelay
  Rightclick
  Delay 200
  MousePos 960, 594
  Delay $MDelay
  Rightclick
  Delay $MDelay
end

Procedure MoveLeft
  MousePos $LeftX, $LeftY
  Delay 350
  LeftClick
  Delay 350
  Call Plant
End

Procedure MoveRight
  MousePos $RightX, $RightY
  Delay 350
  LeftClick
  Delay 350
  Call Plant
End

Procedure Plant
  MousePos $XPlant, $YPlant
  Delay 350
  LeftClick
  Delay 350
End

Procedure Group
  Call Plant
  loop 4
    Call MoveLeft
  end
  
  Call MoveDown
  
  loop 4
    Call MoveRight
  end
End

Procedure MoveDown
  MousePos 960, 781 //572, 600 //512, 540
  Delay 350
  LeftClick
  Delay 350
  Call Plant
End

Procedure Weed
  SetConst Picked = 0
  While $Picked = 0
    MousePos $WeedX, $WeedY
    Delay 100
    Rightclick
    Delay $MDelay
    Case
    When $Flax = $Weed
      IsObject Harvest at $ObjX, $ObjY
        Compute TempX = $WeedX + 20
        Compute TempY = $WeedY - 7
        MousePos $TempX, $TempY
        Delay 200
        Rightclick
        Delay 100
        SetConst Picked = 1
        Break
      End
    Else
      
      IsObject WeedF at $ObjX, $ObjY
        Compute TempX = $WeedX + 20
        Compute TempY = $WeedY - 7
        MousePos $TempX, $TempY
        Delay 200
        Rightclick
        Delay 100
        SetConst Picked = 1
        Break
      End
    End
    
    Compute TempX = $WeedX - 2
    MousePos $TempX, $WeedY
    Delay $MDelay
    Rightclick
  End
End

Procedure WeedLeft
  Call Weed
  Loop 4
    compute WeedX = $WeedX - $Mod1
    Compute ObjX = $ObjX - $Mod1
    Call Weed
  End
End

Procedure WeedRight
  Call Weed
  loop 4
    compute WeedX = $WeedX + $Mod1
    Compute ObjX = $ObjX + $Mod1
    Call Weed
  end
End

Procedure PickSeeds
  Loop $PickX
    MousePos $NewX, $LeftY
    Delay $MDelay
    SetConst Picked = 0
    While $Picked = 0
      MousePos $NewX, $LeftY
      Delay $MDelay
      Rightclick
      Delay $MDelay
      Case
      When $Direction = 0
        IsObject SmallH at $Res1920x1080X, $Res1920x1080Y
          Compute TempX = $NewX + 15  //1920x1080
          Compute TempY = $LeftY - 10 //1920x1080
          MousePos $TempX, $TempY
          
          Delay 100
          rightclick
          Inc Picked
          Delay 1800
          If $Rip = $Pick
            Compute TempX = $NewX + 210
            MousePos $TempX, $LeftY
            Delay $MDelay
            Rightclick
            Delay $MDelay
            Compute RipX = $TempX + 17
            Compute RipY = $LeftY + 22
            Mousepos $RipX, $RipY
            Delay $MDelay
            Rightclick  //Opens Util menu
            Delay $MDelay
            Compute RipX = $RipX + 15
            Compute RipY = $RipY - 25
            MousePos $RipX, $RipY
            Delay $MDelay
            Rightclick //Rips
            Delay $MDelay
          End
          Continue
        Else
          Compute TempX = $NewX - 2
          MousePos $TempX, $LeftY
          Delay $MDelay
          Rightclick
        End
        
      When $Direction = 1
        Compute TextX = $NewX + 10
        //        Compute TextY = $LeftY - 22
        IsObject FlaxH1920x1080 at $TextX, $Res1920x1080Y
          Compute TempX = $NewX + 15
          Compute TempY = $LeftY -10
          MousePos $TempX, $TempY
          Delay 100
          rightclick
          Inc Picked
          Delay 1800
          If $Rip = $Pick
            Compute TempX = $NewX - 190
            MousePos $TempX, $LeftY
            Delay $MDelay
            Rightclick
            Delay $MDelay
            Compute RipX = $TempX + 17
            Compute RipY = $LeftY + 22
            Mousepos $RipX, $RipY
            Delay $MDelay
            Rightclick //Opens Util menu
            Delay $MDelay
            Compute RipX = $RipX + 15
            Compute RipY = $RipY - 25
            MousePos $RipX, $RipY
            Delay $MDelay
            Rightclick //Rips
            Delay $MDelay
          End
          Continue
        Else
          SetConst TempX = $NewX
          SetConst TempY = $LeftY
          Compute TempX = $NewX - 2
          MousePos $TempX, $LeftY
          Delay $MDelay
          Rightclick
        End
      End
    End
  End
End

Procedure SideStep
  MousePos $SS1X, $SS1Y
  Delay $MDelay
  Leftclick
  Delay 2250
  MousePos $SS2X, $SS2Y
  Delay $MDelay
  Leftclick
  Delay 850
End

Procedure Coords
  Bell Asterisk
  Delay 10000
  //Loadrgb {mousey}, {mousey}
  //keys {rgbred},{rgbgreen},{rgbblue}
  Keys {mousex}, {mousey}
End

Procedure FindButton
  MousePos $WaterX, $WaterY
  Delay $MDelay
  While $count > 295
    MousePos $WaterX, $WaterY
    IsObject Water at {mousex}, {mousey}
      SetConst WaterX = {mousex}
      SetConst WaterY = {mousey}
      SetConst WaterB = 1
      Bell
      Set Count = 294
    Else
      Compute WaterX = $WaterX - 1
      dec count
    End
  End
End

Procedure Water
  MousePos $WaterX, $WaterY
  Delay 200
  Rightclick
  Delay $MDelay
  MousePos 961, 594
  Delay $MDelay
  Rightclick
  Delay 3000
End

Procedure Zoom
  MousePos 100, 20
  Delay 1000
  MousePos 600, 600
  Delay $MDelay
End

Procedure UnZoom
  Mousepos 989, 1079
  Delay 900
  Mousepos 600, 600
  Delay $MDelay
End
Bell Exclamation
//Written with ACTool 5.4.0 by Anka