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.
User:Anka/Macros/Barley
From ATITD5
Jump to navigationJump to search//Brute Force Barley Macro - updated for T5
//Pin your "Barley" plant window in the far top right corner. There is a menu with
//this macro now but the plant coordinates are not implemented yet. There are delays
//you can change if the macro is going too fast.
//Have about 70 water and fertilizer per round. The batch feature will work but be
//certain you have enough water. It will drift away from your starting position. I
//will be fixing this later.
// The comments below are from the old version of the macro. All can be changed in
// the menu now.
//I will be cleaning this up a bit. :) Anka
Constants
Plants = 2 //This is the number of Barley beds you want to plant.
SleepTime = 200 //If you're having major problems with lag try moving this to a higher
//number (these are in milliseconds). This delay is used between most
//commands
MoveSleepTime = 1500 //This is the delay used for when the character is actually moving.
//Again this is in milliseconds, if lag is troubling you, try
//Upping this number.
LoopWaitTime = 1000 //This is used in the loop to check if it should feed or water the
//barley more. If you Change the times above up or down you may need
//to do the inverse with this in order to not waste fertilizer or
//worse, harvest the barley before it's done.
PlantX = 973 //If you don't want the barley planting box in the upper right,
//can change this (and the Y value below this).
PlantY = 47 //See above comment
Batch = 2
newx = 0
newy = 0
DragX = 103
DragY = 44
AddX = 210
AddY = 0
PinX = 194
PinY = 47
BarY = 163
HarvestX = 114
HarvestY = 229
CloseX = 180
CloseY = 107
BWin = 0
StepRightX = 0
StepRightY = 0
StepDownX = 0
StepDownY = 0
StepLeftX = 0
StepLeftY = 0
ResetX = 0
ResetY = 0
varX = 0
varY = 0
Adding = 0
LoopNum = 0
WinNum = 1
NumberAdded = 0
varColourY = 0
varColourX = 0
varAddX = 0
varOriginalMouseX = 0
varOriginalMouseY = 0
MousePosX = 0
MousePosY = 0
varDelay = 0
MDelay = 50
Res = 0
Windows = 0
PlantCount = 1
End
Object Danger //6x8 116, 135
231=2,2|230=2,4|230=2,6
117=4,0|236=4,2|235=4,4|237=4,6|119=4,8
231=6,0|115=6,2|115=6,6|229=6,8
End
Object Harvest //6x8 134, 135
231=2,0|226=2,2|226=2,6|230=2,8
235=4,0|234=4,2|234=4,6|233=4,8
End
Form Barley, Settings
ed1=Editbox:# of Plants:2
ed2=Editbox:Sleep Time:200
ed3=Editbox:Move Sleep Time:1500
ed4=Editbox:Loop Wait Time:1000
ed5=Editbox:XCoords of Plant Barley:973
ed6=Editbox:YCoords of Plant Barley:47
ed7=Editbox:Batch:2
ed8=Combobox:Resolution:1024x768, 1280x1024, 1360x768, 1920x1080
end
FormLoad Barley, Barley.frm
if ShowForm Barley
Set Plants = Barley[ed1]
Set SleepTime = Barley[ed2]
Set MoveSleepTime = Barley[ed3]
Set LoopWaitTime = Barley[ed4]
Set PlantX = Barley[ed5]
Set PlantY = Barley[ed6]
Set Batch = Barley[ed7]
Set Res = Barley[ed8]
else
stop
end
FormSave Barley, Barley.frm
Keydown @{Tab} 200
Delay 2000
call Resolution
Loop $Batch
Loop $Plants
call MakeBarley
Compute NewX = {screenwidth} / 2
Compute NewY = {screenheight} / 2
Case
When $PlantCount <= 4
SetConst $MousePosX = $StepRightX
SetConst $MousePosY = $StepRightY
Call LeftClick2
Delay $MoveSleepTime
When $PlantCount = 5
SetConst $MousePosX = $StepDownX
SetConst $MousePosY = $StepDownY
Call LeftClick2
Delay $MoveSleepTime
When $PlantCount < $Plants
SetConst $MousePosX = $StepLeftX
SetConst $MousePosY = $StepLeftY
Call LeftClick2
Delay $MoveSleepTime
End
Inc PlantCount
End
Loop 63
SetConst WinNum = 1
Loop $Plants
Case
When $WinNum <= $Windows
Compute NewX = $PinX + ($AddX * ( {loopno} - 1)) - 18
Compute NewY = $BarY
When $WinNum > $Windows
Compute NewX = $PinX + ($AddX * ( {loopno} - $Windows - 1)) - 18
Compute NewY = $BarY + $AddY
End
SetConst varColourX = $NewX
SetConst varColourY = $NewY
Call TestColor
Inc $WinNum
End
Delay $LoopWaitTime
End
//Harvest
SetConst WinNum = 1
Loop $Plants
Case
When $WinNum <= $Windows
Compute NewX = $HarvestX + ($AddX * ( {loopno} - 1))
Compute NewY = $HarvestY
When $WinNum > $Windows
Compute NewX = $HarvestX + ($AddX * ( {loopno} - $Windows - 1))
Compute NewY = $HarvestY + $AddY
End
SetConst $MousePosX = $NewX
SetConst $MousePosY = $NewY
Call Rightclick2
//Close Window
Case
When $WinNum <= $Windows
Compute NewX = $CloseX + ($AddX * ( {loopno} - 1))
Compute NewY = $CloseY
When $WinNum > $Windows
Compute NewX = $CloseX + ($AddX * ( {loopno} - $Windows - 1))
Compute NewY = $CloseY + $AddY
End
SetConst $MousePosX = $NewX
SetConst $MousePosY = $NewY
Call Rightclick2
Inc $WinNum
End
SetConst $MousePosX = $ResetX
SetConst $MousePosY = $ResetY
//Call Leftclick2
Bell
stop
End
Procedure MakeBarley
SetConst MousePosX = $PlantX
SetConst MousePosY = $PlantY
call RightClick2 //plant barley spot
Compute MousePosX = {screenwidth} / 2
Compute MousePosY = ( {screenheight} / 2 ) + 80
call RightClick2 // click on barley
Call GetMousePos
MousePos $BWin
Delay $MDelay
Case
When $WinNum <= $Windows
Compute NewX = $DragX + ($AddX * ($PlantCount - 1))
Compute NewY = $DragY
Timestamp $NewY
When $WinNum > $Windows
Compute NewX = $DragX + ($AddX * ($PlantCount - $Windows - 1))
Compute NewY = $DragY + $AddY
End
DragTo $NewX, $NewY //Drag Barley to appropriate spot
timestamp $NewY
Delay $MDelay
Call SetMousePos
Case
When $WinNum <= $Windows
Compute NewX = $PinX + ($AddX * ($PlantCount - 1))
Compute NewY = $PinY
When $WinNum > $Windows
Compute NewX = $PinX + ($AddX * ($PlantCount - $Windows - 1))
Compute NewY = $PinY + $AddY
End
SetConst MousePosX = $NewX
SetConst MousePosY = $NewY
call RightClick2 //This pins the window open
//water
Loop 2
Case
When $WinNum <= $Windows
Compute NewX = $PinX + ($AddX * ($PlantCount - 1))
Compute NewY = $PinY + 116
When $WinNum > $Windows
Compute NewX = $PinX + ($AddX * ($PlantCount - $Windows - 1))
Compute NewY = $PinY + 116 + $AddY
End
SetConst MousePosX = $NewX
SetConst MousePosY = $NewY
call Rightclick2
Case
When $WinNum <= $Windows
Compute NewX = $PinX + ($AddX * ($PlantCount - 1))
Compute NewY = $PinY + 136
When $WinNum > $Windows
Compute NewX = $PinX + ($AddX * ($PlantCount - $Windows - 1))
Compute NewY = $PinY + 136 + $AddY
End
SetConst MousePosX = $NewX
SetConst MousePosY = $NewY
call RightClick2
End
Inc $WinNum
End
Procedure TestColor //This actually tests the colours based on the position set in TestColourWhich
LoadRGB $varColourX, $varColourY
timestamp $varColourX, $varColourY
if {RGBBlue} > 220 //If it's really high in blue content
else
Call GetMousePos
Compute NewX = $varColourX + 18
SetConst MousePosX = $NewX
SetConst MousePosY = $varColourY
call RightClick2
Compute MousePosY = $MousePosY + 20
call Rightclick2
Call SetMousePos
Delay 100
end
end
Procedure StepRight
SetConst $MousePosX = 1343
SetConst $MousePosY = 567
Call LeftClick2
End
Procedure GetMousePos //find the original coords of the mouse
SetConst varOriginalMouseX = {MouseX}
SetConst varOriginalMouseY = {MouseY}
End
Procedure SetMousePos //set the mouse back where it came from
MousePos $varOriginalMouseX, $varOriginalMouseY
End
Procedure LeftClick2
call GetMousePos
MousePos $MousePosX, $MousePosY
Delay $MDelay
LeftClick
Delay $MDelay
Call SetMousePos
End
Procedure RightClick2
Call GetMousePos
MousePos $MousePosX, $MousePosY
Delay $MDelay
RightClick
Delay $MDelay
Call SetMousePos
End
Procedure Resolution
Case
When $Res = 1920x1080
SetConst PlantX = 1859
SetConst PlantY = 39
SetConst BWin = 1061, 525
SetConst StepRightX = 1330
SetConst StepRightY = 580
SetConst StepDownX = 955
SetConst StepDownY = 1000
SetConst StepLeftX = 535
SetConst StepLeftY = 580
SetConst Windows = 9
SetConst AddY = 712
SetConst ResetX =
SetConst ResetY =
When $Res = 1360x768
SetConst PlantX = 1300
SetConst PlantY = 40
SetConst BWin = 781, 370
SetConst StepRightX = 977
SetConst StepRightY = 410
SetConst StepDownX = 667
SetConst StepDownY = 694
SetConst StepLeftX = 352
SetConst StepLeftY = 410
SetConst Windows = 6
SetConst AddY = 483
SetConst ResetX = 91
SetConst ResetY = 136
When $Res = 1280x1024
SetConst PlantX = 1220
SetConst PlantY = 40
SetConst BWin = 742, 498
SetConst StepRightX = 899
SetConst StepRightY = 544
SetConst StepDownX = 633
SetConst StepDownY = 879
SetConst StepLeftX = 331
SetConst StepLeftY = 534
SetConst Windows = 5
SetConst AddY = 750
SetConst ResetX = 158
SetConst ResetY = 164
When $Res = 1024x768
SetConst PlantX = 963
SetConst PlantY = 40
SetConst BWin = 614, 370
SetConst StepRightX = 739
SetConst StepRightY = 400
SetConst StepDownX = 516
SetConst StepDownY = 654
SetConst StepLeftX = 286
SetConst StepLeftY = 400
SetConst Windows = 4
SetConst AddY = 497
SetConst ResetX = 5
SetConst ResetY = 124
End
End
//Updated by Anka for Tale 5