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.

Difference between revisions of "Users:Gemstar/icongather"

From A Tale in the Desert
Jump to navigationJump to search
(New page: <pre> //General purpose slate and clay collector. Works best without water jugs //or a fishing pole. To begin, hover your mouse over the icon //you wish to collect in ATITD (i.e. be over...)
 
Line 39: Line 39:
 
End
 
End
  
 +
 +
</pre>
 +
 +
= TO BE TESTED Tehm =
 +
 +
<pre>
 +
//This Macro will plant several rows of flax in order to harvest seeds from them
 +
//
 +
//You will need to use double F8 view. Zoom all the way in, then 7 mousewheel clicks out
 +
//(your avatar will be a little smaller than the size of the thumb in the Gather Grass icon
 +
//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
  
 
</pre>
 
</pre>

Revision as of 17:52, 18 March 2010

//General purpose slate and clay collector.  Works best without water jugs
//or a fishing pole.  To begin, hover your mouse over the icon
//you wish to collect in ATITD (i.e. be over a patch of clay or a piece of
//slate and have this program active.  Press F2, and the macro will start.
Constants
Red = 0
Green = 0
Blue = 0
XPos = 0
YPos = 0
CurrKey = 0
End
SetConst XPos = {MouseX}
SetConst YPos = {MouseY}
LoadRGB $XPos, $YPos
SetConst Red = {RGBRed}
SetConst Blue = {RGBBlue}
SetConst Green = {RGBGreen}
SetConst CurrKey = {GlobalKeys}



loop 10000


GetRed  $XPos, $YPos = $Red
	GetGreen  $XPos, $YPos = $Green
		GetBlue  $XPos, $YPos = $Blue
	
			MousePos $XPos, $YPos
			Delay 10
  		LeftClick 
		End
	End
End
	
Delay 150
End


TO BE TESTED Tehm

//This Macro will plant several rows of flax in order to harvest seeds from them
//
//You will need to use double F8 view. Zoom all the way in, then 7 mousewheel clicks out
//(your avatar will be a little smaller than the size of the thumb in the Gather Grass icon
//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