<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.atitd.org/wiki/t5w/index.php?action=history&amp;feed=atom&amp;title=User%3AAnka%2FMacros%2FVeggies</id>
	<title>User:Anka/Macros/Veggies - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://www.atitd.org/wiki/t5w/index.php?action=history&amp;feed=atom&amp;title=User%3AAnka%2FMacros%2FVeggies"/>
	<link rel="alternate" type="text/html" href="http://www.atitd.org/wiki/t5w/index.php?title=User:Anka/Macros/Veggies&amp;action=history"/>
	<updated>2026-06-10T12:55:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>http://www.atitd.org/wiki/t5w/index.php?title=User:Anka/Macros/Veggies&amp;diff=88782&amp;oldid=prev</id>
		<title>Anka at 20:57, 4 April 2011</title>
		<link rel="alternate" type="text/html" href="http://www.atitd.org/wiki/t5w/index.php?title=User:Anka/Macros/Veggies&amp;diff=88782&amp;oldid=prev"/>
		<updated>2011-04-04T20:57:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://www.atitd.org/wiki/t5w/index.php?title=User:Anka/Macros/Veggies&amp;amp;diff=88782&amp;amp;oldid=43905&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Anka</name></author>
	</entry>
	<entry>
		<id>http://www.atitd.org/wiki/t5w/index.php?title=User:Anka/Macros/Veggies&amp;diff=43905&amp;oldid=prev</id>
		<title>Anka: Created page with &quot;&lt;pre&gt; //Veggie Macro // //This macro will plant Cabbage, Carrots, Garlic, Leeks,  and Onions.  This was my private //macro in Tale 3 mainly due to no other macro growing cabbage ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.atitd.org/wiki/t5w/index.php?title=User:Anka/Macros/Veggies&amp;diff=43905&amp;oldid=prev"/>
		<updated>2010-11-15T01:50:16Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; //Veggie Macro // //This macro will plant Cabbage, Carrots, Garlic, Leeks,  and Onions.  This was my private //macro in Tale 3 mainly due to no other macro growing cabbage ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
//Veggie Macro&lt;br /&gt;
//&lt;br /&gt;
//This macro will plant Cabbage, Carrots, Garlic, Leeks,  and Onions.  This was my private&lt;br /&gt;
//macro in Tale 3 mainly due to no other macro growing cabbage at the time. Supply and demand :)&lt;br /&gt;
//&lt;br /&gt;
//The basic flow and code is the same but I've made some improvements in this rewrite.  This&lt;br /&gt;
//macro no longer relies on color.  Color was different with each type of video card which&lt;br /&gt;
//caused many problems for some.  Due to the large rewrite, I have not been able to test this&lt;br /&gt;
//macro fully.  You may still find problems.  Pass them on to me please.&lt;br /&gt;
//&lt;br /&gt;
//The BIGGEST ISSUE with veggies is that initial plant location changes each time you move.&lt;br /&gt;
//If you find that the macro is missing the plants, take a step in a direction to change&lt;br /&gt;
//the initial plant location and try again.  You may have to do this a few times until you&lt;br /&gt;
//find the right spot.  This is the part of the macro that I have not fully tested.  You can&lt;br /&gt;
//also try a different resolution as mouse locations are different in each resolution.&lt;br /&gt;
//&lt;br /&gt;
//SETUP&lt;br /&gt;
//Resolution 1024 x 768, 1280 x 1024, 1360 x 768 or 1920 x 1080&lt;br /&gt;
//Cartographer camera zoomed all the way in&lt;br /&gt;
//Face East if you have a problem with macro hitting your hands.&lt;br /&gt;
//Have at least 5 seeds and 20 jugs, more for onions if planting over 4&lt;br /&gt;
//Be close enough to water to see your water icon&lt;br /&gt;
//Regular sized action icons&lt;br /&gt;
//Pin your plant window in the top left corner&lt;br /&gt;
//&lt;br /&gt;
//When growing leeks, make sure the mouse is hitting the top right leaf.  If this does not&lt;br /&gt;
//happen, all other plants will be off.  Follow the steps above about initial plant location&lt;br /&gt;
//to fix this.&lt;br /&gt;
&lt;br /&gt;
//  Enjoy :)     Written with ACTool 4.6.2 by Anka   :Updated with 5.4.0&lt;br /&gt;
&lt;br /&gt;
Constants&lt;br /&gt;
  Loops = 0&lt;br /&gt;
  Water = 5&lt;br /&gt;
  Num = 4&lt;br /&gt;
  NewX = 0&lt;br /&gt;
  NewY = 0&lt;br /&gt;
  TopX = 0&lt;br /&gt;
  TopY = 0&lt;br /&gt;
  RightX = 0&lt;br /&gt;
  RightY = 0&lt;br /&gt;
  LeftX = 0&lt;br /&gt;
  LeftY = 0&lt;br /&gt;
  TempX = 0&lt;br /&gt;
  TempY = 0&lt;br /&gt;
  Done = 0&lt;br /&gt;
  varOriginalMouseX = 0&lt;br /&gt;
  varOriginalMouseY = 0&lt;br /&gt;
  ResetX = 607&lt;br /&gt;
  ResetY = 392&lt;br /&gt;
  //Cabbage&lt;br /&gt;
  CabSX = 32&lt;br /&gt;
  CabSY = 58&lt;br /&gt;
  CabTopAdd = 4&lt;br /&gt;
  CabBXSM = 41&lt;br /&gt;
  CabBYSM = 1&lt;br /&gt;
  CabCXSM = 57&lt;br /&gt;
  CabCYSM = 104&lt;br /&gt;
  CabDXSM = 29&lt;br /&gt;
  CabDYSM = 86&lt;br /&gt;
  CabAXadj = 6&lt;br /&gt;
  CabAYadj = 15&lt;br /&gt;
  CabBXadj = 6&lt;br /&gt;
  CabBYadj = 15&lt;br /&gt;
  CabCXadj = 6&lt;br /&gt;
  CabCYadj = 13&lt;br /&gt;
  CabDXadj = 15&lt;br /&gt;
  CabDYadj = 5&lt;br /&gt;
  CabX = 0&lt;br /&gt;
  CabY = 0&lt;br /&gt;
  CabBX = 474&lt;br /&gt;
  CabBY = 330&lt;br /&gt;
  CabCX = 470&lt;br /&gt;
  CabCY = 424&lt;br /&gt;
  CabDX = 557&lt;br /&gt;
  CabDY = 407&lt;br /&gt;
  CabAX = 544&lt;br /&gt;
  CabAY = 326&lt;br /&gt;
  CabA = 0&lt;br /&gt;
  CabB = 0&lt;br /&gt;
  CabC = 0&lt;br /&gt;
  CabD = 0&lt;br /&gt;
  //Garlic&lt;br /&gt;
  GarSX = 46&lt;br /&gt;
  GarSY = 58&lt;br /&gt;
  GarAYSM = 3&lt;br /&gt;
  GarBXSM = 41&lt;br /&gt;
  GarCXSM = 39&lt;br /&gt;
  GarCYSM = 69&lt;br /&gt;
  GarDXSM = 9&lt;br /&gt;
  GarDYSM = 70&lt;br /&gt;
  GarAXadj = 1&lt;br /&gt;
  GarAYadj = 8&lt;br /&gt;
  GarBXadj = 1&lt;br /&gt;
  GarBYadj = 8&lt;br /&gt;
  GarCXadj = 1&lt;br /&gt;
  GarCYadj = 10&lt;br /&gt;
  GarDXadj = 1&lt;br /&gt;
  GarDYadj = 10&lt;br /&gt;
  GarAX = 548&lt;br /&gt;
  GarAY = 335&lt;br /&gt;
  GarBX = 0&lt;br /&gt;
  GarBY = 0&lt;br /&gt;
  GarCX = 0&lt;br /&gt;
  GarCY = 0&lt;br /&gt;
  GarDX = 0&lt;br /&gt;
  GarDY = 0&lt;br /&gt;
  GarA = 0&lt;br /&gt;
  GarB = 0&lt;br /&gt;
  GarC = 0&lt;br /&gt;
  GarD = 0&lt;br /&gt;
  //Leeks&lt;br /&gt;
  LeekSX = 39&lt;br /&gt;
  LeekSY = 35&lt;br /&gt;
  LeekBXSM = 41&lt;br /&gt;
  LeekCXSM = 57&lt;br /&gt;
  LeekCYSM = 80&lt;br /&gt;
  LeekDXSM = 6&lt;br /&gt;
  LeekDYSM = 74&lt;br /&gt;
  LeekAXadj = 3&lt;br /&gt;
  LeekAYadj = 13&lt;br /&gt;
  LeekBXadj = 3&lt;br /&gt;
  LeekBYadj = 13&lt;br /&gt;
  LeekCXadj = 6&lt;br /&gt;
  LeekCYadj = 11&lt;br /&gt;
  LeekDXadj = 7&lt;br /&gt;
  LeekDYadj = 5&lt;br /&gt;
  LeekA = 0&lt;br /&gt;
  LeekB = 0&lt;br /&gt;
  LeekC = 0&lt;br /&gt;
  LeekD = 0&lt;br /&gt;
  LeekAX = 0&lt;br /&gt;
  LeekAY = 0&lt;br /&gt;
  LeekBX = 0&lt;br /&gt;
  LeekBY = 0&lt;br /&gt;
  LeekCX = 0&lt;br /&gt;
  LeekCY = 0&lt;br /&gt;
  LeekDX = 0&lt;br /&gt;
  LeekDY = 0&lt;br /&gt;
  //Carrots&lt;br /&gt;
  CarSX = 25&lt;br /&gt;
  CarSY = 42&lt;br /&gt;
  CarAYSM = 1&lt;br /&gt;
  CarBXSM = 41&lt;br /&gt;
  CarCXSM = 45&lt;br /&gt;
  CarCYSM = 62&lt;br /&gt;
  CarDXSM = 13&lt;br /&gt;
  CarDYSM = 57&lt;br /&gt;
  CarAXadj = 3&lt;br /&gt;
  CarAYadj = 5&lt;br /&gt;
  CarBXadj = 3&lt;br /&gt;
  CarBYadj = 5&lt;br /&gt;
  CarCXadj = 6&lt;br /&gt;
  CarCYadj = 6&lt;br /&gt;
  CarDXadj = 5&lt;br /&gt;
  CarDYadj = 2&lt;br /&gt;
  CarA = 0&lt;br /&gt;
  CarB = 0&lt;br /&gt;
  CarC = 0&lt;br /&gt;
  CarD = 0&lt;br /&gt;
  CarAX = 523&lt;br /&gt;
  CarAY = 348&lt;br /&gt;
  CarBX = 0&lt;br /&gt;
  CarBY = 0&lt;br /&gt;
  CarCX = 0&lt;br /&gt;
  CarCY = 0&lt;br /&gt;
  CarDX = 0&lt;br /&gt;
  CarDY = 0&lt;br /&gt;
  //Onions&lt;br /&gt;
  Ox = 495&lt;br /&gt;
  Oy = 380&lt;br /&gt;
  OStep = 41&lt;br /&gt;
  ODragX = 4&lt;br /&gt;
  ODragY = 90&lt;br /&gt;
  OWX = 50&lt;br /&gt;
  OWY = 120&lt;br /&gt;
  MoveLeft = 35, 96&lt;br /&gt;
  MoveRight = 82, 96&lt;br /&gt;
  MoveUP = 59, 74&lt;br /&gt;
  MoveDown = 59, 120&lt;br /&gt;
  Build = 30, 155&lt;br /&gt;
  Size = 0&lt;br /&gt;
  Onion = 1&lt;br /&gt;
  WaterX = 0&lt;br /&gt;
  WaterY = 0&lt;br /&gt;
  CenterX = 0&lt;br /&gt;
  CenterY = 0&lt;br /&gt;
  Direction = 0  // 0 = Icons on left, 1 = Icons on right&lt;br /&gt;
  Count = 0&lt;br /&gt;
  Button = 0&lt;br /&gt;
  Red = 31&lt;br /&gt;
  Green = 209&lt;br /&gt;
  Blue = 211&lt;br /&gt;
  SubX = 31&lt;br /&gt;
  Color = 200&lt;br /&gt;
  //New Constants, clean later&lt;br /&gt;
  //Onions&lt;br /&gt;
  Plants = 0&lt;br /&gt;
  P1Delay = 0&lt;br /&gt;
  MoveDelay = 0&lt;br /&gt;
  WDelay = 0&lt;br /&gt;
  MDelay = 100&lt;br /&gt;
  SDelay = 500&lt;br /&gt;
  FO = 0&lt;br /&gt;
  FPX = 0&lt;br /&gt;
  FPY = 0&lt;br /&gt;
  Close = 0&lt;br /&gt;
  OPinX = 170&lt;br /&gt;
  OPinY = 88&lt;br /&gt;
  PinX = 170&lt;br /&gt;
  PinY = 28&lt;br /&gt;
  Sow = 50, 40&lt;br /&gt;
  Res = 0&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Object Water&lt;br /&gt;
  222=0,0|229=0,2|225=0,4|219=0,6|225=0,8|236=0,10&lt;br /&gt;
  206=2,0|191=2,2|220=2,4|223=2,6|224=2,8|250=2,10&lt;br /&gt;
  215=4,0|221=4,2|217=4,4|206=4,6|235=4,8|253=4,10&lt;br /&gt;
  191=6,0|211=6,2|222=6,4|238=6,6|245=6,8|249=6,10&lt;br /&gt;
  217=8,0|233=8,2|214=8,4|213=8,6|230=8,8|250=8,10&lt;br /&gt;
  224=10,0|217=10,2|222=10,4|229=10,6|232=10,8|248=10,10&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Object Plant //1920x1080&lt;br /&gt;
  148=2,0|148=2,2|148=2,4|148=2,6|148=2,8&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Form Veggie, Settings&lt;br /&gt;
  ed1=Combobox:Veggie:Cabbage, Carrots, Garlic, Leeks, Onions&lt;br /&gt;
  ed2=Editbox:Batch:1&lt;br /&gt;
  ed3=Checkbox:Right Action Buttons?:False&lt;br /&gt;
  ed4=Combobox:Resolution:1024x768, 1280x1024, 1360x768, 1920x1080&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
FormLoad Veggie, Veggie.frm&lt;br /&gt;
&lt;br /&gt;
if ShowForm Veggie&lt;br /&gt;
  Set Loops = Veggie[ed2]&lt;br /&gt;
  If Veggie[ed3] = False&lt;br /&gt;
    SetConst Direction = 0&lt;br /&gt;
  Else&lt;br /&gt;
    SetConst Direction = 1&lt;br /&gt;
  End&lt;br /&gt;
  Set Res = Veggie[ed4]&lt;br /&gt;
else&lt;br /&gt;
  stop&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
FormSave Veggie, Veggie.frm&lt;br /&gt;
//&lt;br /&gt;
Case&lt;br /&gt;
When Veggie[ed1] = Onions&lt;br /&gt;
  Form Onions, Onions&lt;br /&gt;
    ed1=Editbox:Batch:1&lt;br /&gt;
    ed2=Combobox:# of Plants:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12&lt;br /&gt;
    ed3=Editbox:Plant 1 wait time:1300&lt;br /&gt;
    ed4=Editbox:Move wait time:900&lt;br /&gt;
    ed5=Editbox:Time between Waterings:800&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  FormLoad Onions, Onions.frm&lt;br /&gt;
  &lt;br /&gt;
  if ShowForm Onions&lt;br /&gt;
    Set Loops = Onions[ed1]&lt;br /&gt;
    Set Plants = Onions[ed2]&lt;br /&gt;
    Set P1Delay = Onions[ed3]&lt;br /&gt;
    Set MoveDelay = Onions[ed4]&lt;br /&gt;
    Set WDelay = Onions[ed5]&lt;br /&gt;
  Else&lt;br /&gt;
    stop&lt;br /&gt;
  end&lt;br /&gt;
  &lt;br /&gt;
  FormSave Onions, Onions.frm&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
KeyDown @{Tab} 200&lt;br /&gt;
Delay 2000&lt;br /&gt;
&lt;br /&gt;
Compute CenterX = {Screenwidth} / 2&lt;br /&gt;
Compute CenterY = {ScreenHeight} / 2&lt;br /&gt;
&lt;br /&gt;
Call Resolution&lt;br /&gt;
call Findbutton&lt;br /&gt;
call water&lt;br /&gt;
Call Veggie[ed1]&lt;br /&gt;
&lt;br /&gt;
Procedure Leeks             //---------------Leeks----------------//&lt;br /&gt;
  Loop $Loops&lt;br /&gt;
    //A&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveUP&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    Compute LeekAX = $CenterX + $LeekSX&lt;br /&gt;
    Compute LeekAY = $CenterY - $LeekSY&lt;br /&gt;
    While $Size = 0&lt;br /&gt;
      MousePos $LeekAX, $LeekAY&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      RightClick&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
        Set TopX = {mousex}&lt;br /&gt;
        Keys {ESC}&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Compute TopY = {mousey} + 2&lt;br /&gt;
        MousePos $TopX, $TopY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call FindLeft&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindRight&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Compute Result = $RightX - ($RightX - $LeftX)/2&lt;br /&gt;
        Formatnumber TopX = $Result, ###&lt;br /&gt;
        Call FindTop&lt;br /&gt;
        Set Size = 1&lt;br /&gt;
      Else&lt;br /&gt;
        Compute LeekAY = $LeekAY + 1&lt;br /&gt;
        Compute LeekAX = $LeekAX - 1&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
    Set LeekAX = $TopX&lt;br /&gt;
    Set LeekAY = $TopY&lt;br /&gt;
    Compute LeekBX = $LeekAX - $LeekBXSM&lt;br /&gt;
    Compute LeekBY = $LeekAY + 1&lt;br /&gt;
    Compute LeekCX = $LeekAX - $LeekCXSM&lt;br /&gt;
    Compute LeekCY = $LeekAY + $LeekCYSM&lt;br /&gt;
    Compute LeekDX = $LeekAX + $LeekDXSM&lt;br /&gt;
    Compute LeekDY = $LeekAY + $LeekDYSM&lt;br /&gt;
    Timestamp $TopX, $TopY&lt;br /&gt;
    &lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //B&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveUP&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //C&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //D&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
&lt;br /&gt;
    While $LeekA &amp;lt; 5 or $LeekB &amp;lt; 5 or $LeekC &amp;lt; 5 or $LeekD &amp;lt; 5&lt;br /&gt;
      If $LeekA &amp;lt; 5&lt;br /&gt;
        MousePos $LeekAX, $LeekAY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckA&lt;br /&gt;
      End&lt;br /&gt;
      Delay 50&lt;br /&gt;
      If $LeekB &amp;lt; 5&lt;br /&gt;
        MousePos $LeekBX, $LeekBY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckB&lt;br /&gt;
      End&lt;br /&gt;
      Delay 50&lt;br /&gt;
      If $LeekC &amp;lt; 5&lt;br /&gt;
        MousePos $LeekCX, $LeekCY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckC&lt;br /&gt;
      End&lt;br /&gt;
      Delay 50&lt;br /&gt;
      If $LeekD &amp;lt; 5&lt;br /&gt;
        MousePos $LeekDX, $LeekDY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckD&lt;br /&gt;
      End&lt;br /&gt;
      Delay 1000&lt;br /&gt;
    End&lt;br /&gt;
    &lt;br /&gt;
    SetConst LeekA = 0&lt;br /&gt;
    SetConst LeekB = 0&lt;br /&gt;
    SetConst LeekC = 0&lt;br /&gt;
    SetConst LeekD = 0&lt;br /&gt;
    SetConst Size = 0&lt;br /&gt;
    Call Water&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Garlic          //--------------Garlic-----------------//&lt;br /&gt;
  Loop $Loops&lt;br /&gt;
    //A&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveUP&lt;br /&gt;
&lt;br /&gt;
    Compute GarAX = $CenterX + $GarSX&lt;br /&gt;
    Compute GarAY = $CenterY - $GarSY&lt;br /&gt;
    While $Size = 0&lt;br /&gt;
      MousePos $GarAX, $GarAY&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      Rightclick&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
        Set TopX = {mousex}&lt;br /&gt;
        Keys {ESC}&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Compute TopY = {mousey} + 2&lt;br /&gt;
        MousePos $TopX, $TopY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call FindLeft&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindRight&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Compute Result = $RightX - ($RightX - $LeftX)/2&lt;br /&gt;
        Formatnumber TopX = $Result, ###&lt;br /&gt;
        Call FindTop&lt;br /&gt;
        Set Size = 1&lt;br /&gt;
      Else&lt;br /&gt;
        Compute GarAX = $GarAX - 1&lt;br /&gt;
        Compute GarAY = $GarAY + 1&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
    Compute GarAX = $TopX&lt;br /&gt;
    Compute GarAY = $TopY&lt;br /&gt;
    MousePos $GarAX, $GarAY&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    Compute GarAY = $TopY + $GarAYSM&lt;br /&gt;
    Compute GarBX = $TopX - $GarBXSM&lt;br /&gt;
    Compute GarBY = $GarAY&lt;br /&gt;
    Compute GarCX = $TopX - $GarCXSM&lt;br /&gt;
    Compute GarCY = $TopY + $GarCYSM&lt;br /&gt;
    Compute GarDX = $TopX + $GarDXSM&lt;br /&gt;
    Compute GarDY = $TopY + $GarDYSM&lt;br /&gt;
    Timestamp $TopX, $TopY&lt;br /&gt;
    &lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //B&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveUp&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //C&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //D&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
&lt;br /&gt;
    While $GarA &amp;lt; 5 or $GarB &amp;lt; 5 or $GarC &amp;lt; 5 or $GarD &amp;lt; 5&lt;br /&gt;
      If $GarA &amp;lt; 5&lt;br /&gt;
        MousePos $GarAX, $GarAY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckA&lt;br /&gt;
      End&lt;br /&gt;
      Delay 150&lt;br /&gt;
      If $GarB &amp;lt; 5&lt;br /&gt;
        MousePos $GarBX, $GarBY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckB&lt;br /&gt;
      End&lt;br /&gt;
      Delay 150&lt;br /&gt;
      If $GarC &amp;lt; 5&lt;br /&gt;
        MousePos $GarCX, $GarCY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckC&lt;br /&gt;
      End&lt;br /&gt;
      Delay 150&lt;br /&gt;
      If $GarD &amp;lt; 5&lt;br /&gt;
        MousePos $GarDX, $GarDY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckD&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
    &lt;br /&gt;
    Call Water&lt;br /&gt;
    Delay 5000&lt;br /&gt;
    SetConst GarAX = 0&lt;br /&gt;
    SetConst GarAY = 0&lt;br /&gt;
    SetConst GarA = 0&lt;br /&gt;
    SetConst GarB = 0&lt;br /&gt;
    SetConst GarC = 0&lt;br /&gt;
    SetConst GarD = 0&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Cabbage   //-----------------CABBAGE------------------//&lt;br /&gt;
  Loop $Loops&lt;br /&gt;
    //A&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveUP&lt;br /&gt;
    &lt;br /&gt;
    Compute CabAX = $CenterX + $CabSX&lt;br /&gt;
    Compute CabAY = $CenterY - $CabSY&lt;br /&gt;
    While $Size = 0&lt;br /&gt;
      MousePos $CabAX, $CabAY&lt;br /&gt;
      Delay $Mdelay&lt;br /&gt;
      RightClick&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
        Set TopX = {mousex}&lt;br /&gt;
        Keys {ESC}&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Compute TopY = {mousey} + $CabTopAdd&lt;br /&gt;
        MousePos $TopX, $TopY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call FindLeft&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindRight&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Compute Result = $RightX - ($RightX - $LeftX)/2&lt;br /&gt;
        Formatnumber TopX = $Result, ###&lt;br /&gt;
        Call FindTop&lt;br /&gt;
        Set Size = 1&lt;br /&gt;
      Else&lt;br /&gt;
        Compute CabAX = $CabAX - 1&lt;br /&gt;
        Compute CabAY = $CabAY + 1&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
    Timestamp $TopX, $TopY&lt;br /&gt;
    &lt;br /&gt;
    Compute CabAX = $TopX&lt;br /&gt;
    Compute CabAY = $TopY&lt;br /&gt;
    Compute CabBX = $CabAX - $CabBXSM&lt;br /&gt;
    Compute CabBY = $CabAY + $CabBYSM&lt;br /&gt;
    Compute CabCX = $CabAX - $CabCXSM&lt;br /&gt;
    Compute CabCY = $CabAY + $CabCYSM&lt;br /&gt;
    Compute CabDX = $CabAX + $CabDXSM&lt;br /&gt;
    Compute CabDY = $CabAY + $CabDYSM&lt;br /&gt;
    &lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //B&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveUP&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //C&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //D&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    While $CabA &amp;lt; 5 or $CabB &amp;lt; 5 or $CabC &amp;lt; 5 or $CabD &amp;lt; 5&lt;br /&gt;
      If $CabA &amp;lt; 5&lt;br /&gt;
        MousePos $CabAX, $CabAY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckA&lt;br /&gt;
      End&lt;br /&gt;
      If $CabB &amp;lt; 5&lt;br /&gt;
        MousePos $CabBX, $CabBY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckB&lt;br /&gt;
      End&lt;br /&gt;
      If $CabC &amp;lt; 5&lt;br /&gt;
        MousePos $CabCX, $CabCY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckC&lt;br /&gt;
      End&lt;br /&gt;
      If $CabD &amp;lt; 5&lt;br /&gt;
        MousePos $CabDX, $CabDY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckD&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
    If {loopno} &amp;lt;&amp;gt; $Loops&lt;br /&gt;
      Call Water&lt;br /&gt;
    End&lt;br /&gt;
    Delay 5000&lt;br /&gt;
    SetConst CabAX = 0&lt;br /&gt;
    SetConst CabAY = 0&lt;br /&gt;
    SetConst CabA = 0&lt;br /&gt;
    SetConst CabB = 0&lt;br /&gt;
    SetConst CabC = 0&lt;br /&gt;
    SetConst CabD = 0&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure CheckA&lt;br /&gt;
  setconst varOriginalMouseX = {mousex}&lt;br /&gt;
  setconst varOriginalMouseY = {mousey}&lt;br /&gt;
  RightClick&lt;br /&gt;
  Delay 500&lt;br /&gt;
  IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
    Compute NewX = {mousex} + 25&lt;br /&gt;
    Compute NewY = {mousey} + 7&lt;br /&gt;
    MousePos $NewX, $NewY&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    Rightclick&lt;br /&gt;
    Compute CabA = $CabA + 1&lt;br /&gt;
    Compute GarA = $GarA + 1&lt;br /&gt;
    Compute LeekA = $LeekA + 1&lt;br /&gt;
    Compute CarA = $CarA + 1&lt;br /&gt;
    Compute CabAX = $varOriginalMouseX + $CabAXadj&lt;br /&gt;
    Compute GarAX = $varOriginalMouseX - $GarAXadj&lt;br /&gt;
    Compute LeekAX = $varOriginalMouseX + $LeekAXadj&lt;br /&gt;
    Compute CabAY = $varOriginalMouseY - $CabAYadj&lt;br /&gt;
    Compute GarAY = $varOriginalMouseY - $GarAYadj&lt;br /&gt;
    Compute LeekAY = $varOriginalMouseY - $LeekAYadj&lt;br /&gt;
    Compute CarAX = $varOriginalMouseX - $CarAXadj&lt;br /&gt;
    Compute CarAY = $varOriginalMouseY - $CarAYadj&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure CheckB&lt;br /&gt;
  setconst varOriginalMouseX = {mousex}&lt;br /&gt;
  setconst varOriginalMouseY = {mousey}&lt;br /&gt;
  RightClick&lt;br /&gt;
  Delay 500&lt;br /&gt;
  IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
    Compute NewX = {mousex} + 25&lt;br /&gt;
    Compute NewY = {mousey} + 7&lt;br /&gt;
    MousePos $NewX, $NewY&lt;br /&gt;
    Delay 250&lt;br /&gt;
    Rightclick&lt;br /&gt;
    Compute CabB = $CabB + 1&lt;br /&gt;
    Compute GarB = $GarB + 1&lt;br /&gt;
    Compute LeekB = $LeekB + 1&lt;br /&gt;
    Compute CarB = $CarB + 1&lt;br /&gt;
    Compute CabBX = $varOriginalMouseX - $CabBXadj&lt;br /&gt;
    Compute GarBX = $varOriginalMouseX - $GarBXadj&lt;br /&gt;
    Compute LeekBX = $varOriginalMouseX + $LeekBXadj&lt;br /&gt;
    Compute CabBY = $varOriginalMouseY - $CabBYadj&lt;br /&gt;
    Compute GarBY = $varOriginalMouseY - $GarBYadj&lt;br /&gt;
    Compute LeekBY = $varOriginalMouseY - $LeekBYadj&lt;br /&gt;
    Compute CarBX = $varOriginalMouseX - $CarBXadj&lt;br /&gt;
    Compute CarBY = $varOriginalMouseY - $CarBYadj&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure CheckC&lt;br /&gt;
  setconst varOriginalMouseX = {mousex}&lt;br /&gt;
  setconst varOriginalMouseY = {mousey}&lt;br /&gt;
  RightClick&lt;br /&gt;
  Delay 500&lt;br /&gt;
  IsObject Plant at {mousex}, {MouseY}&lt;br /&gt;
    Compute NewX = {mousex} + 25&lt;br /&gt;
    Compute NewY = {mousey} + 7&lt;br /&gt;
    MousePos $NewX, $NewY&lt;br /&gt;
    Delay 250&lt;br /&gt;
    Rightclick&lt;br /&gt;
    Compute CabC = $CabC + 1&lt;br /&gt;
    Compute GarC = $GarC + 1&lt;br /&gt;
    Compute LeekC = $LeekC + 1&lt;br /&gt;
    Compute CarC = $CarC + 1&lt;br /&gt;
    Compute CabCX = $varOriginalMouseX - $CabCXadj&lt;br /&gt;
    Compute GarCX = $varOriginalMouseX - $GarCXadj&lt;br /&gt;
    Compute LeekCX = $varOriginalMouseX - $LeekCXadj&lt;br /&gt;
    Compute CabCY = $varOriginalMouseY + $CabCYadj&lt;br /&gt;
    Compute GarCY = $varOriginalMouseY + $GarCYadj&lt;br /&gt;
    Compute LeekCY = $varOriginalMouseY + $LeekCYadj&lt;br /&gt;
    Compute CarCX = $varOriginalMouseX - $CarCXadj&lt;br /&gt;
    Compute CarCY = $varOriginalMouseY + $CarCYadj&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure CheckD&lt;br /&gt;
  setconst varOriginalMouseX = {mousex}&lt;br /&gt;
  setconst varOriginalMouseY = {mousey}&lt;br /&gt;
  RightClick&lt;br /&gt;
  Delay 500&lt;br /&gt;
  IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
    Compute NewX = {mousex} + 25&lt;br /&gt;
    Compute NewY = {mousey} + 7&lt;br /&gt;
    MousePos $NewX, $NewY&lt;br /&gt;
    Delay 250&lt;br /&gt;
    Rightclick&lt;br /&gt;
    Compute CabD = $CabD + 1&lt;br /&gt;
    Compute GarD = $GarD + 1&lt;br /&gt;
    Compute LeekD = $LeekD + 1&lt;br /&gt;
    Compute CarD = $CarD + 1&lt;br /&gt;
    Compute CabDX = $varOriginalMouseX + $CabDXadj&lt;br /&gt;
    Compute GarDX = $varOriginalMouseX - $GarDXadj&lt;br /&gt;
    Compute LeekDX = $varOriginalMouseX + $LeekDXadj&lt;br /&gt;
    Compute CabDY = $varOriginalMouseY + $CabDYadj&lt;br /&gt;
    Compute GarDY = $varOriginalMouseY + $GarDYadj&lt;br /&gt;
    Compute LeekDY = $varOriginalMouseY + $LeekDYadj&lt;br /&gt;
    Compute CarDX = $varOriginalMouseX + $CarDXadj&lt;br /&gt;
    Compute CarDY = $varOriginalMouseY + $CarDYadj&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Carrots   //----------------Carrots----------------//&lt;br /&gt;
  Loop $Loops&lt;br /&gt;
    //A&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveUP&lt;br /&gt;
    &lt;br /&gt;
    Compute CarAX = $CenterX + $CarSX&lt;br /&gt;
    Compute CarAY = $CenterY - $CarSY&lt;br /&gt;
    While $Size = 0&lt;br /&gt;
      MousePos $CarAX, $CarAY&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      RightClick&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
        Set TopX = {mousex}&lt;br /&gt;
        Compute TopY = {mousey} + 1&lt;br /&gt;
        Keys {Esc}&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        MousePos $TopX, $TopY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call FindLeft&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindRight&lt;br /&gt;
        Compute Result = $RightX - ($RightX - $LeftX)/2&lt;br /&gt;
        Formatnumber TopX = $Result, ###&lt;br /&gt;
        MousePos $TopX, $TopY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindTop&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindRight&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindLeft&lt;br /&gt;
        Compute Result = $RightX - ($RightX - $LeftX)/2&lt;br /&gt;
        Formatnumber TopX = $Result, ###&lt;br /&gt;
        Set Done = 0&lt;br /&gt;
        Call FindTop&lt;br /&gt;
        Set Size = 1&lt;br /&gt;
      Else&lt;br /&gt;
        Compute CarAY = $CarAY + 1&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
    &lt;br /&gt;
    //Set all Variables&lt;br /&gt;
    Compute CarAX = $TopX&lt;br /&gt;
    Compute CarAY = $TopY + $CarAYSM&lt;br /&gt;
    Compute CarBX = $TopX - $CarBXSM&lt;br /&gt;
    Compute CarBY = $CarAY&lt;br /&gt;
    Compute CarCX = $TopX - $CarCXSM&lt;br /&gt;
    Compute CarCY = $TopY + $CarCYSM&lt;br /&gt;
    Compute CarDX = $TopX + $CarDXSM&lt;br /&gt;
    Compute CarDY = $TopY + $CarDYSM&lt;br /&gt;
    TimeStamp $CarAX, $CarAY&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //B&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveUP&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //C&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveLeft&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    //D&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Call MoveRight&lt;br /&gt;
    Call MoveDown&lt;br /&gt;
    Call Build&lt;br /&gt;
    &lt;br /&gt;
    While $CarA &amp;lt; 5 or $CarB &amp;lt; 5 or $CarC &amp;lt; 5 or $CarD &amp;lt; 5&lt;br /&gt;
      If $CarA &amp;lt; 5&lt;br /&gt;
        MousePos $CarAX, $CarAY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckA&lt;br /&gt;
      End&lt;br /&gt;
      Delay 50&lt;br /&gt;
      If $CarB &amp;lt; 5&lt;br /&gt;
        MousePos $CarBX, $CarBY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckB&lt;br /&gt;
      End&lt;br /&gt;
      Delay 50&lt;br /&gt;
      If $CarC &amp;lt; 5&lt;br /&gt;
        MousePos $CarCX, $CarCY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckC&lt;br /&gt;
      End&lt;br /&gt;
      Delay 50&lt;br /&gt;
      If $CarD &amp;lt; 5&lt;br /&gt;
        MousePos $CarDX, $CarDY&lt;br /&gt;
        Delay $MDelay&lt;br /&gt;
        Call CheckD&lt;br /&gt;
      End&lt;br /&gt;
      Delay 2000&lt;br /&gt;
    End&lt;br /&gt;
    &lt;br /&gt;
    If {loopno} &amp;lt;&amp;gt; $Loops&lt;br /&gt;
      Call Water&lt;br /&gt;
    End&lt;br /&gt;
    &lt;br /&gt;
    Delay 5000&lt;br /&gt;
    SetConst CarAX = 0&lt;br /&gt;
    SetConst CarAY = 0&lt;br /&gt;
    SetConst CarA = 0&lt;br /&gt;
    SetConst CarB = 0&lt;br /&gt;
    SetConst CarC = 0&lt;br /&gt;
    SetConst CarD = 0&lt;br /&gt;
  End&lt;br /&gt;
  &lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
//Onions&lt;br /&gt;
Procedure Onions&lt;br /&gt;
  Loop $Loops&lt;br /&gt;
    Call Plant&lt;br /&gt;
&lt;br /&gt;
    SetConst Onion = 1&lt;br /&gt;
&lt;br /&gt;
    Loop $Plants  //Find and Pin Plants&lt;br /&gt;
      Mousepos $Ox, $Oy&lt;br /&gt;
      Delay 200&lt;br /&gt;
      Call CheckOnions&lt;br /&gt;
      Compute FPX = $FPX - $OStep&lt;br /&gt;
    End&lt;br /&gt;
    SetConst Onion = 1&lt;br /&gt;
    Loop 5   //Watering&lt;br /&gt;
      Loop $Plants  // Number of plants&lt;br /&gt;
        If $Onion = 5&lt;br /&gt;
          Compute OWX = {mousex} + 168&lt;br /&gt;
          SetConst OWY = 120&lt;br /&gt;
        End&lt;br /&gt;
        If $Onion = 9&lt;br /&gt;
          Compute OWX = {mousex} + 168&lt;br /&gt;
          SetConst OWY = 120&lt;br /&gt;
        End&lt;br /&gt;
        &lt;br /&gt;
        Compute NewY = $OWY - 20&lt;br /&gt;
        MousePos $OWX, $NewY&lt;br /&gt;
        Delay 200&lt;br /&gt;
        Rightclick&lt;br /&gt;
        Delay 300&lt;br /&gt;
        Mousepos $OWX, $OWY&lt;br /&gt;
        Delay 200&lt;br /&gt;
        Rightclick&lt;br /&gt;
        If $Close = 4&lt;br /&gt;
          SetConst varOriginalMouseX = {MouseX}&lt;br /&gt;
          SetConst varOriginalMouseY = {MouseY}&lt;br /&gt;
          Compute NewX = $OWX + 122&lt;br /&gt;
          Compute NewY = $OWY - 30&lt;br /&gt;
          MousePos $NewX, $NewY&lt;br /&gt;
          Delay 200&lt;br /&gt;
          Rightclick&lt;br /&gt;
          Delay 200&lt;br /&gt;
          MousePos $varOriginalMouseX, $varOriginalMouseY&lt;br /&gt;
          Delay 200&lt;br /&gt;
        End&lt;br /&gt;
        Compute OWY = {MouseY} + 60&lt;br /&gt;
        If $Onion = 1&lt;br /&gt;
          Delay $P1Delay  //Plant 1 time&lt;br /&gt;
        Else&lt;br /&gt;
          Delay $MoveDelay  //Move Time&lt;br /&gt;
        End&lt;br /&gt;
        Compute Onion = $Onion + 1&lt;br /&gt;
      End&lt;br /&gt;
      &lt;br /&gt;
      If $Close &amp;lt;&amp;gt; 4&lt;br /&gt;
        Delay $WDelay  //Pause between waterings&lt;br /&gt;
      End&lt;br /&gt;
      Inc $Close&lt;br /&gt;
      SetConst Onion = 1&lt;br /&gt;
      Compute OWX = 50&lt;br /&gt;
      Compute OWY = 120&lt;br /&gt;
    End&lt;br /&gt;
    &lt;br /&gt;
    //Reposition&lt;br /&gt;
&lt;br /&gt;
    Mousepos $ResetX, $ResetY&lt;br /&gt;
    Leftclick&lt;br /&gt;
    Delay 1000&lt;br /&gt;
    Compute Onion = 1&lt;br /&gt;
    Compute ODragX = 4&lt;br /&gt;
    Compute ODragY = 90&lt;br /&gt;
    Compute Ox = 495&lt;br /&gt;
    Compute Oy = 380&lt;br /&gt;
    Compute OWX = 50&lt;br /&gt;
    Compute OWY = 120&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Plant  //For Onions&lt;br /&gt;
  Loop $Plants  //Number of plants&lt;br /&gt;
    Call Sow&lt;br /&gt;
    Compute Num = $Onion * 2 - 1&lt;br /&gt;
    MousePos 37, 97&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    Loop $Num&lt;br /&gt;
      Rightclick&lt;br /&gt;
    End&lt;br /&gt;
    // New Routine to find onions before plant&lt;br /&gt;
    If {loopno} = 1&lt;br /&gt;
      Mousepos $Ox, $Oy&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
      Loop 40&lt;br /&gt;
        RightClick&lt;br /&gt;
        IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
          SetConst FPY = {MouseY}&lt;br /&gt;
          SetConst TopX = {MouseX}&lt;br /&gt;
          SetConst TopY = {MouseY}&lt;br /&gt;
          Keys {Esc}&lt;br /&gt;
          Delay $MDelay&lt;br /&gt;
          Call FindLeft&lt;br /&gt;
          Set Done = 0&lt;br /&gt;
          Call FindRight&lt;br /&gt;
          Set Done = 0&lt;br /&gt;
          Compute Result = $RightX - ($RightX - $LeftX)/2&lt;br /&gt;
          Formatnumber FPX = $Result, ###&lt;br /&gt;
          Break&lt;br /&gt;
        Else&lt;br /&gt;
          Compute Oy = $Oy + 1&lt;br /&gt;
          MousePos $OX, $Oy&lt;br /&gt;
          Delay $MDelay&lt;br /&gt;
        End&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
    Compute Onion = $Onion + 1&lt;br /&gt;
    &lt;br /&gt;
    Call Build&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure CheckOnions&lt;br /&gt;
  MousePos $FPX, $FPY&lt;br /&gt;
  Delay 200&lt;br /&gt;
  Rightclick&lt;br /&gt;
  Compute NewX = {mousex} + 172&lt;br /&gt;
  Compute NewY = {mousey} - 23&lt;br /&gt;
  MousePos $NewX, $NewY&lt;br /&gt;
  Delay 200&lt;br /&gt;
  Leftclick&lt;br /&gt;
  Compute NewX = {mousex} - 169&lt;br /&gt;
  MousePos $NewX, $NewY&lt;br /&gt;
  if $Onion &amp;gt; 8&lt;br /&gt;
    Dragto $ODragX, $ODragY&lt;br /&gt;
    Compute ODragY = $ODragY + 60&lt;br /&gt;
  End&lt;br /&gt;
  if $Onion = 5 or $Onion = 6 or $Onion = 7 or $Onion = 8&lt;br /&gt;
    Dragto $ODragX, $ODragY&lt;br /&gt;
    Compute ODragY = $ODragY + 60&lt;br /&gt;
  End&lt;br /&gt;
  If $Onion = 2 or $Onion = 3 or $Onion = 4&lt;br /&gt;
    Dragto $ODragX, $ODragY&lt;br /&gt;
    Compute ODragY = $ODragY + 60&lt;br /&gt;
  End&lt;br /&gt;
  if $Onion = 1&lt;br /&gt;
    Dragto $ODragX, $ODragY&lt;br /&gt;
    Compute ODragY = $ODragY + 60&lt;br /&gt;
  End&lt;br /&gt;
  Compute Onion = $Onion + 1&lt;br /&gt;
  If $Onion = 5&lt;br /&gt;
    SetConst ODragY = 90&lt;br /&gt;
    Compute ODragX = $ODragX + 168&lt;br /&gt;
  End&lt;br /&gt;
  If $Onion = 9&lt;br /&gt;
    SetConst ODragY = 90&lt;br /&gt;
    Compute ODragX = $ODragX + 168&lt;br /&gt;
  END&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure FindButton  //Run Once Find Button and Set X,Y Coords&lt;br /&gt;
  Compute CenterX = {ScreenWidth} / 2&lt;br /&gt;
  Compute CenterY = {ScreenHeight} / 2&lt;br /&gt;
  SetConst NewX = $CenterX&lt;br /&gt;
  SetConst NewY = 98&lt;br /&gt;
  MousePos $NewX, $NewY&lt;br /&gt;
  Case&lt;br /&gt;
  When $Direction = 0 //Move Left&lt;br /&gt;
    SetConst Count = 50&lt;br /&gt;
    While $NewX &amp;gt; $Count&lt;br /&gt;
      MousePos $NewX, $NewY&lt;br /&gt;
      IsObject Water at {mousex}, {mousey}&lt;br /&gt;
        SetConst WaterX = {mousex}&lt;br /&gt;
        SetConst WaterY = {mousey}&lt;br /&gt;
        Break&lt;br /&gt;
      Else&lt;br /&gt;
        Compute NewX = $NewX - 1&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
  When $Direction = 1 //Move Right&lt;br /&gt;
    Compute Count = {ScreenWidth} - 50&lt;br /&gt;
    While $NewX &amp;lt; $Count&lt;br /&gt;
      MousePos $NewX, $NewY&lt;br /&gt;
      IsObject Water at {mousex}, {mousey}&lt;br /&gt;
        SetConst WaterX = {mousex}&lt;br /&gt;
        SetConst WaterY = {mousey}&lt;br /&gt;
        Break&lt;br /&gt;
      Else&lt;br /&gt;
        Compute NewX = $NewX + 1&lt;br /&gt;
      End&lt;br /&gt;
    End&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Water&lt;br /&gt;
  MousePos $WaterX, $WaterY&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  Rightclick&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  Compute NewX = {screenwidth} / 2&lt;br /&gt;
  Compute NewY = {screenheight} / 2&lt;br /&gt;
  Compute NewY = $NewY + 35&lt;br /&gt;
  MousePos $NewX, $NewY&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  Rightclick&lt;br /&gt;
  Delay 3000&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure FindLeft&lt;br /&gt;
  While $Done = 0&lt;br /&gt;
    Compute TopX = $TopX - 1&lt;br /&gt;
    MousePos $TopX, $TopY&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    Rightclick&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
      Set LeftX = {mousex}&lt;br /&gt;
      Keys {Esc}&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
    Else&lt;br /&gt;
      Compute TopX = $TopX + 1&lt;br /&gt;
      Compute LeftX = $TopX&lt;br /&gt;
      inc Done&lt;br /&gt;
    End&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure FindRight&lt;br /&gt;
  While $Done = 0&lt;br /&gt;
    Compute TopX = $TopX + 1&lt;br /&gt;
    MousePos $TopX, $TopY&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    Rightclick&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
      Set RightX = {MouseX}&lt;br /&gt;
      Keys {Esc}&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
    Else&lt;br /&gt;
      Compute TopX = $TopX - 2&lt;br /&gt;
      MousePos $TopX, $TopY&lt;br /&gt;
      inc Done&lt;br /&gt;
    End&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure FindTop&lt;br /&gt;
  While $Done = 0&lt;br /&gt;
    Compute TopY = $TopY - 1&lt;br /&gt;
    MousePos $TopX, $TopY&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    Rightclick&lt;br /&gt;
    Delay $MDelay&lt;br /&gt;
    IsObject Plant at {MouseX}, {MouseY}&lt;br /&gt;
      Set TopY = {MouseY}&lt;br /&gt;
      Keys {Esc}&lt;br /&gt;
      Delay $MDelay&lt;br /&gt;
    else&lt;br /&gt;
      inc Done&lt;br /&gt;
      Compute TopY = $TopY + 1&lt;br /&gt;
    End&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Sow&lt;br /&gt;
  MousePos $Sow&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  Rightclick&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure MoveRight&lt;br /&gt;
  MousePos $MoveRight&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  RightClick&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure MoveUP&lt;br /&gt;
  MousePos $MoveUp&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  RightClick&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure MoveLeft&lt;br /&gt;
  MousePos $MoveLeft&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  RightClick&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure MoveDown&lt;br /&gt;
  MousePos $MoveDown&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  RightClick&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Build&lt;br /&gt;
  MousePos $Build&lt;br /&gt;
  Delay $MDelay&lt;br /&gt;
  RightClick&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Procedure Resolution&lt;br /&gt;
  Case&lt;br /&gt;
  When $Res = 1920x1080&lt;br /&gt;
    //Cabbage&lt;br /&gt;
    SetConst CabSX = 65&lt;br /&gt;
    SetConst CabSY = 116&lt;br /&gt;
    SetConst CabBXSM = 77&lt;br /&gt;
    SetConst CabBYSM = 1&lt;br /&gt;
    SetConst CabCXSM = 117&lt;br /&gt;
    SetConst CabCYSM = 181&lt;br /&gt;
    SetConst CabDXSM = 56&lt;br /&gt;
    SetConst CabDYSM = 162&lt;br /&gt;
    SetConst CabAXadj = 12&lt;br /&gt;
    SetConst CabAYadj = 23&lt;br /&gt;
    SetConst CabBXadj = 14&lt;br /&gt;
    SetConst CabBYadj = 24&lt;br /&gt;
    SetConst CabCXadj = 16&lt;br /&gt;
    SetConst CabCYadj = 23&lt;br /&gt;
    SetConst CabDXadj = 27&lt;br /&gt;
    SetConst CabDYadj = 10&lt;br /&gt;
    //Carrots&lt;br /&gt;
    SetConst CarSX = 23&lt;br /&gt;
    SetConst CarSY = 78&lt;br /&gt;
    SetConst CarAYSM = 1&lt;br /&gt;
    SetConst CarBXSM = 77&lt;br /&gt;
    SetConst CarCXSM = 88&lt;br /&gt;
    SetConst CarCYSM = 115&lt;br /&gt;
    SetConst CarDXSM = 25&lt;br /&gt;
    SetConst CarDYSM = 105&lt;br /&gt;
    SetConst CarAXadj = 8&lt;br /&gt;
    SetConst CarAYadj = 10&lt;br /&gt;
    SetConst CarBXadj = 8&lt;br /&gt;
    SetConst CarBYadj = 10&lt;br /&gt;
    SetConst CarCXadj = 8&lt;br /&gt;
    SetConst CarCYadj = 10&lt;br /&gt;
    SetConst CarDXadj = 8&lt;br /&gt;
    SetConst CarDYadj = 5&lt;br /&gt;
    //Garlic&lt;br /&gt;
    SetConst GarSX = 55&lt;br /&gt;
    SetConst GarSY = 69&lt;br /&gt;
    SetConst GarAYSM = 2&lt;br /&gt;
    SetConst GarBXSM = 79&lt;br /&gt;
    SetConst GarCXSM = 67&lt;br /&gt;
    SetConst GarCYSM = 141&lt;br /&gt;
    SetConst GarDXSM = 11&lt;br /&gt;
    SetConst GarDYSM = 143&lt;br /&gt;
    SetConst GarAXadj = 8&lt;br /&gt;
    SetConst GarAYadj = 13&lt;br /&gt;
    SetConst GarBXadj = 8&lt;br /&gt;
    SetConst GarBYadj = 13&lt;br /&gt;
    SetConst GarCXadj = 6&lt;br /&gt;
    SetConst GarCYadj = 15&lt;br /&gt;
    SetConst GarDXadj = 3&lt;br /&gt;
    SetConst GarDYadj = 18&lt;br /&gt;
    //Leeks&lt;br /&gt;
    SetConst LeekSX = 63&lt;br /&gt;
    SetConst LeekSY = 69&lt;br /&gt;
    SetConst LeekBXSM = 78&lt;br /&gt;
    SetConst LeekCXSM = 109&lt;br /&gt;
    SetConst LeekCYSM = 150&lt;br /&gt;
    SetConst LeekDXSM = 9&lt;br /&gt;
    SetConst LeekDYSM = 135&lt;br /&gt;
    SetConst LeekAXadj = 3&lt;br /&gt;
    SetConst LeekAYadj = 26&lt;br /&gt;
    SetConst LeekBXadj = 3&lt;br /&gt;
    SetConst LeekBYadj = 26&lt;br /&gt;
    SetConst LeekCXadj = 11&lt;br /&gt;
    SetConst LeekCYadj = 15&lt;br /&gt;
    SetConst LeekDXadj = 15&lt;br /&gt;
    SetConst LeekDYadj = 11&lt;br /&gt;
    //Onions&lt;br /&gt;
    SetConst Ox = 920&lt;br /&gt;
    SetConst Oy = 511&lt;br /&gt;
    SetConst ResetX = 1135&lt;br /&gt;
    SetConst ResetY = 556&lt;br /&gt;
    SetConst OStep = 77&lt;br /&gt;
  When $Res = 1280x1024&lt;br /&gt;
    //Cabbage&lt;br /&gt;
    SetConst CabSX = 50&lt;br /&gt;
    SetConst CabSY = 74&lt;br /&gt;
    SetConst CabBXSM = 51&lt;br /&gt;
    SetConst CabBYSM = 1&lt;br /&gt;
    SetConst CabCXSM = 78&lt;br /&gt;
    SetConst CabCYSM = 123&lt;br /&gt;
    SetConst CabDXSM = 37&lt;br /&gt;
    SetConst CabDYSM = 109&lt;br /&gt;
    SetConst CabAXadj = 8&lt;br /&gt;
    SetConst CabAYadj = 17&lt;br /&gt;
    SetConst CabBXadj = 8&lt;br /&gt;
    SetConst CabBYadj = 18&lt;br /&gt;
    SetConst CabCXadj = 10&lt;br /&gt;
    SetConst CabCYadj = 16&lt;br /&gt;
    SetConst CabDXadj = 16&lt;br /&gt;
    SetConst CabDYadj = 6&lt;br /&gt;
    //Carrots&lt;br /&gt;
    SetConst CarSX = 11&lt;br /&gt;
    SetConst CarSY = 37&lt;br /&gt;
    SetConst CarAYSM = 1&lt;br /&gt;
    SetConst CarBXSM = 52&lt;br /&gt;
    SetConst CarCXSM = 58&lt;br /&gt;
    SetConst CarCYSM = 77&lt;br /&gt;
    SetConst CarDXSM = 16&lt;br /&gt;
    SetConst CarDYSM = 69&lt;br /&gt;
    SetConst CarAXadj = 4&lt;br /&gt;
    SetConst CarAYadj = 8&lt;br /&gt;
    SetConst CarBXadj = 4&lt;br /&gt;
    SetConst CarBYadj = 8&lt;br /&gt;
    SetConst CarCXadj = 7&lt;br /&gt;
    SetConst CarCYadj = 8&lt;br /&gt;
    SetConst CarDXadj = 5&lt;br /&gt;
    SetConst CarDYadj = 4&lt;br /&gt;
    //Onions&lt;br /&gt;
    SetConst Ox = 618&lt;br /&gt;
    SetConst Oy = 487&lt;br /&gt;
    SetConst ResetX = 707&lt;br /&gt;
    SetConst ResetY = 531&lt;br /&gt;
    SetConst OStep = 52&lt;br /&gt;
    //Garlic&lt;br /&gt;
    SetConst GarSX = 36&lt;br /&gt;
    SetConst GarSY = 51&lt;br /&gt;
    SetConst GarAYSM = 1&lt;br /&gt;
    SetConst GarBXSM = 57&lt;br /&gt;
    SetConst GarCXSM = 45&lt;br /&gt;
    SetConst GarCYSM = 92&lt;br /&gt;
    SetConst GarDXSM = 8&lt;br /&gt;
    SetConst GarDYSM = 93&lt;br /&gt;
    SetConst GarAXadj = 4&lt;br /&gt;
    SetConst GarAYadj = 9&lt;br /&gt;
    SetConst GarBXadj = 4&lt;br /&gt;
    SetConst GarBYadj = 9&lt;br /&gt;
    SetConst GarCXadj = 4&lt;br /&gt;
    SetConst GarCYadj = 10&lt;br /&gt;
    SetConst GarDXadj = 2&lt;br /&gt;
    SetConst GarDYadj = 10&lt;br /&gt;
    //Leeks&lt;br /&gt;
    SetConst LeekSX = 43&lt;br /&gt;
    SetConst LeekSY = 60&lt;br /&gt;
    SetConst LeekBXSM = 52&lt;br /&gt;
    SetConst LeekCXSM = 69&lt;br /&gt;
    SetConst LeekCYSM = 104&lt;br /&gt;
    SetConst LeekDXSM = 9&lt;br /&gt;
    SetConst LeekDYSM = 94&lt;br /&gt;
    SetConst LeekAXadj = 4&lt;br /&gt;
    SetConst LeekAYadj = 16&lt;br /&gt;
    SetConst LeekBXadj = 4&lt;br /&gt;
    SetConst LeekBYadj = 16&lt;br /&gt;
    SetConst LeekCXadj = 7&lt;br /&gt;
    SetConst LeekCYadj = 12&lt;br /&gt;
    SetConst LeekDXadj = 8&lt;br /&gt;
    SetConst LeekDYadj = 7&lt;br /&gt;
  When $Res = 1360x768&lt;br /&gt;
    //Cabbage&lt;br /&gt;
    SetConst CabSX = 44&lt;br /&gt;
    SetConst CabSY = 68&lt;br /&gt;
    SetConst CabBXSM = 53&lt;br /&gt;
    SetConst CabBYSM = 1&lt;br /&gt;
    SetConst CabCXSM = 83&lt;br /&gt;
    SetConst CabCYSM = 129&lt;br /&gt;
    SetConst CabDXSM = 40&lt;br /&gt;
    SetConst CabDYSM  = 115&lt;br /&gt;
    SetConst CabAXadj = 9&lt;br /&gt;
    SetConst CabAYadj = 19&lt;br /&gt;
    SetConst CabBXadj = 9&lt;br /&gt;
    SetConst CabBYadj = 20&lt;br /&gt;
    SetConst CabCXadj = 12&lt;br /&gt;
    SetConst CabCYadj = 21&lt;br /&gt;
    SetConst CabDXadj = 15&lt;br /&gt;
    SetConst CabDYadj = 8&lt;br /&gt;
    //Carrots&lt;br /&gt;
    SetConst CarSX = 13&lt;br /&gt;
    SetConst CarSY = 46&lt;br /&gt;
    SetConst CarAYSM = 1&lt;br /&gt;
    SetConst CarBXSM = 56&lt;br /&gt;
    SetConst CarCXSM = 62&lt;br /&gt;
    SetConst CarCYSM = 82&lt;br /&gt;
    SetConst CarDXSM = 18&lt;br /&gt;
    SetConst CarDYSM = 73&lt;br /&gt;
    SetConst CarAXadj = 4&lt;br /&gt;
    SetConst CarAYadj = 8&lt;br /&gt;
    SetConst CarBXadj = 4&lt;br /&gt;
    SetConst CarBYadj = 8&lt;br /&gt;
    SetConst CarCXadj = 7&lt;br /&gt;
    SetConst CarCYadj = 8&lt;br /&gt;
    SetConst CarDXadj = 6&lt;br /&gt;
    SetConst CarDYadj = 4&lt;br /&gt;
    //Onions&lt;br /&gt;
    SetConst Ox = 657&lt;br /&gt;
    SetConst Oy = 386&lt;br /&gt;
    SetConst ResetX = 805&lt;br /&gt;
    SetConst ResetY = 402&lt;br /&gt;
    SetConst OStep = 55&lt;br /&gt;
    //Garlic&lt;br /&gt;
    SetConst GarSX = 34&lt;br /&gt;
    SetConst GarSY = 58&lt;br /&gt;
    SetConst GarAYSM = 1&lt;br /&gt;
    SetConst GarBXSM = 57&lt;br /&gt;
    SetConst GarCXSM = 45&lt;br /&gt;
    SetConst GarCYSM = 98&lt;br /&gt;
    SetConst GarDXSM = 11&lt;br /&gt;
    SetConst GarDYSM = 97&lt;br /&gt;
    SetConst GarAXadj = 5&lt;br /&gt;
    SetConst GarAYadj = 10&lt;br /&gt;
    SetConst GarBXadj = 5&lt;br /&gt;
    SetConst GarBYadj = 10&lt;br /&gt;
    SetConst GarCXadj = 3&lt;br /&gt;
    SetConst GarCYadj = 11&lt;br /&gt;
    SetConst GarDXadj = 3&lt;br /&gt;
    SetConst GarDYadj = 11&lt;br /&gt;
    //Leeks&lt;br /&gt;
    SetConst LeekSX = 57&lt;br /&gt;
    SetConst LeekSY = 64&lt;br /&gt;
    SetConst LeekBXSM = 56&lt;br /&gt;
    SetConst LeekCXSM = 76&lt;br /&gt;
    SetConst LeekCYSM = 109&lt;br /&gt;
    SetConst LeekDXSM = 7&lt;br /&gt;
    SetConst LeekDYSM = 94&lt;br /&gt;
    SetConst LeekAXadj = 4&lt;br /&gt;
    SetConst LeekAYadj = 16&lt;br /&gt;
    SetConst LeekBXadj = 4&lt;br /&gt;
    SetConst LeekBYadj = 16&lt;br /&gt;
    SetConst LeekCXadj = 7&lt;br /&gt;
    SetConst LeekCYadj =12&lt;br /&gt;
    SetConst LeekDXadj = 10&lt;br /&gt;
    SetConst LeekDYadj = 9&lt;br /&gt;
  End&lt;br /&gt;
End&lt;br /&gt;
Bell&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anka</name></author>
	</entry>
</feed>