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.

Tehm's Flax Seeding Macro

From A Tale in the Desert
Revision as of 12:34, 3 March 2010 by Tehm (talk | contribs) (New page: //This Macro will plant several rows of flax in order to harvest seeds from them // //You will need to sue double F8 view. Zoom all the way in, then 7 mousewheel clicks out //(this is so t...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

//This Macro will plant several rows of flax in order to harvest seeds from them // //You will need to sue double F8 view. Zoom all the way in, then 7 mousewheel clicks out //(this is so that your avatar is about the size of the thumb in the gather grass macro //For this to work you need to **minimize chat*** //Open the Plant menu and pin it to the top or bottom of the screen //When the macro starts, you will need to quickly mouse-over the Plant Flax Seed instruction //As the macro runs, your avatar should stay in the middle of the flax beds, but he will stray //It is up to you to move him back to the middle (or close) when this happens //It is my belief this is caused by server lag and therefore cannot be avoided //I use screen resolution 1280x1024 on a wide-screen monitor

//MousePos 638,508 //My Head delay 3000 Constructs

 MouseX=List // this is an array of mouse X coords 
 MouseY=List // this is an array of mouse Y coords 

END

Constants

 RowLen=7 //actually does n+1 -- Recommend 7 or fewer if Seedcycles is 3
 ColLen=2 //actually does n*2 -- Recommend 2 or fewer if Seedcycles is 3
 ActualCols=0	//program sets this
 ActualRows=0  //not used
 XHomeDist=0 //Not necessary because it plants even numbers of rows
 YHomeDist=0 //sets later
 SeedCycles=3 //harvest how many times (n+1) -- for best results use 3 or less
 InitialDelay=50000 //Time until the flax goes to seed and can be harvested
 NextDelay=0 //Program sets this - the time between subsequent harvest cycles
 LoopVal = 1 //do not modify
 

END

Compute ActualCols = $ColLen * 2 Compute YHomeDist = (($ActualCols) * 375) Compute InitialDelay = $InitialDelay - (475 * ($RowLen + 1) * ($ColLen * 2)) + 475 Compute NextDelay = 66000 - ($ColLen * 2) * ($RowLen + 1) * 1950 Compute NextDelay = MAX ($NextDelay, 0) //Acquire Location of Plant:Flax Seed Listadd MouseX, {MouseX} Listadd MouseY, {MouseY}

Call Plant $RowLen, $ColLen Delay $InitialDelay

loop $SeedCycles

 Call HarvestAllSeeds $RowLen, $ColLen, 0 //This cycle harvests only
 Delay $NextDelay

end

//This cycle harvests then rips out the flax bed. //If you like picking a lot of seeds up off the ground, remove the next line. Call HarvestAllSeeds $RowLen, $ColLen, 1




Procedure Plant using Across, Down //This procedure creates a grid of Flax of size (Across +1) x (Down * 2) //It utilizes global variable MouseX and MouseY holding the location of the plant Flax pin //It also uses global variable $YHomeDist and $InitialDelay to return to the starting point Compute LoopVal = 1

 loop $Down //this one controls how many columns (N+1)(B)

mousepos {MouseX[1],MouseY[1] LeftClick loop $RowLen //this one controls how many in a line (n) (A)

  		KeyDown {RIGHT} 375
  		Delay 100
   	mousepos {MouseX[1],MouseY[1] 
   	LeftClick
 	end
 	KeyDown {DOWN} 375
 	Delay 100
 	mousepos {MouseX[1],MouseY[1] 
 	LeftClick
 //this one controls how many in a line (n+1)

loop $Across //this one controls how many in a line (n+1) (A)

 		Keydown {LEFT} 375
 		Delay 100
  		mousepos {MouseX[1],MouseY[1] 
 		LeftClick	
		end

if $LoopVal < $Down KeyDown {DOWN} 375 end

 	Delay 100
 	Compute LoopVal = $LoopVal + 1

End

KeyDown {UP} $YHomeDist

END //Planting

Procedure HarvestAllSeeds using Across, Down, Yank //This procedure harvesta seeds from a grid of Flax of size (Across +1) x (Down * 2) //If Yank = 1 it will also rip out the plant Compute LoopVal = 1 loop $Down //this one controls how many columns (N+1)(B) Call HarvestOneSeed if $Yank = 1 Call Ripout end

 	loop $Across //this one controls how many in a line (n) (A)
  		KeyDown {RIGHT} 375
   	Delay 100
			Call HarvestOneSeed

if $Yank = 1 Call Ripout end end

 	KeyDown {DOWN} 375
 	Delay 100

Call HarvestOneSeed if $Yank = 1 Call Ripout end


  //this one controls how many in a line (n+1)
 	loop $Across //this one controls how many in a line (n+1) (A)
 		Keydown {LEFT} 375
 		Delay 100

Call HarvestOneSeed if $Yank = 1 Call Ripout end end

if $LoopVal < $Down KeyDown {DOWN} 375 end Compute $LoopVal = $LoopVal + 1

 	Delay 100

end KeyDown {UP} $YHomeDist end


Procedure HarvestOneSeed //Clicks on flax bed your are standing in, and selects harvest //I repeat the mousepos because I find it reduces server/client transmission miscues //which would cause the pop up menu to stray from where it should be

 mousepos 654, 504 

Delay 30

 mousepos 654, 504 

LeftClick Delay 60 mousepos 690, 499 Delay 60 mousepos 690, 499 LeftClick Delay 1800 end


Procedure RipOut //Clicks on flax bed your are standing in, and selects Utility->Rip Out //Because picking up flax seeds off the ground is annoying. //I repeat the mousepos because I find it reduces server/client transmission miscues //which would cause the pop up menu to stray from where it should be MousePos 654, 504 Delay 30

 MousePos 654, 504

LeftClick Delay 70

 MousePos 724, 533
 Delay 30
 MousePos 724, 533

LeftClick

 Delay 70

MousePos 746, 509 Delay 30 MousePos 746, 509 LeftClick Delay 70 end