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/Flax5
From ATITD5
Jump to navigationJump to search//Anka's Flax Macro v.5.0.3
//This macro will plant beds for seeds. After Seeds are
//done, it will find your water icon and save its position. It will then 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.
//
//Setup
//1. Now has a resolution selector in the menu. Chat me to get more added.
//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. Win7 does not seem to have this problem. If things are not looking matching up
//Try auto-hiding your task bar. I may have altered the numbers this way.
//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. While using the newer seeds
//that produce Rotten Flax as well as regular Flax, you can use the Dump feature to
//dump Rotten Flax into storage in the same way.
//
//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. One issue that might
//come up is that the macro may run slow on older computers. The harvest seeds section is
//a bit slow to me but you can tweek it with MDelay and SDelay. MDelay is the normal delay
//after a mouse click. The lower the number, the lower the delay. If you are having problems,
//raise it higher. SDelay is a bit longer delay during Seed Harvesting. I did not have any
//problems with this during testing so you may be able to lower it a bit. The last version
//would sometimes hang here.
//
//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.
//# of seeds = The number of seeds in inventory. I re-wrote the calculations a bit to
// always plant flax in increments of 20 but always leave you with at least
// 21 seeds. I need to tweak this more since if you dont have at least 41 in
// this blank, it wont plant.
//"Dump" = If you want to dump flax into a warehouse. (See Above)
//"Rot" = If you want to rot flax in water. You must see a water icon to do this.
//"Left to Right"= Future Addon to plant on East side of water.
//"Need Water" = Toggle to collect water before planting.
//"UnZoom Time" = Time to Zoom Out. Lower this number if you are zooming out too far.
//"Zoom Time" = Time to Zoom In
//"Resolution" = This is the latest feature of this and other macros. Pick the resolution
// you would like to use. If you are planting in a diagonal line, this is set
// wrong.
//
//
//Let me know if you have any problems. It's good to be back and nice to see even my old
//macro's are still being used today. :)
//
//Finally cleaned the instructions this Tale :)
//
//Enjoy! Anka
constants //For 1920x1080
SeedX = 2
Seeds = 0
SSeeds = 0
Rounds = 2
Button = 0
ButtonX = 475
ButtonY = 98
Count = 475
CenterX = 0
CenterY = 0
DumpX = 0
DumpY = 0
SubX = 20
PickX = 0
TempX = 0
TempY = 0
Left2X = 620
LeftX = 750
LeftY = 561
RightX = 1146
RightY = 561
Right2X = 1320
DownX = 960
DownY = 781
TextX = 0
TextY = 0
RipX = 0
RipY = 0
RipD0 = 210
RipD1 = 190
SkillsX = 0
SkillsY = 0
SkillsB = 0
WeedX = 1364
WeedY = 215
LSide1X = 415
LSide2X = 910
LSide1Y = 780
LSide2Y = 561
RSide1X = 1415
RSide2X = 996
RSide1Y = 331
RSide2Y = 561
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
Zoom = 1000
UnZoom = 900
FlaxSet = 0
XPlant = 60
YPlant = 40
LeftStep = 756, 561
RightStep = 1155, 561
RightStep2 = 1563, 250
Picked = 0
Direction = 0
Pick = 3
Rip = 0
Flax = 1
Reset = 825, 113
Weed = 0
Job = 0
FMX = 564
FMY = 193
FR3Y = 840
Dump = 0
Rot = 0
RotX = 0
RotY = 0
RotB = 0
FRot = 0
MDelay = 190
SDelay = 250
Water = 0
WaterX = 475
WaterY = 98
WaterB = 0
ResetX = 850
ResetY = 570
PlantDir = 0
Res = 0
Harvest = HarvestSF
WeedF = WeedF
ResX = 0
ResY = 0
Res1920x1080X = 630
Res1920x1080Y = 556
Res1360x768X = 435
Res1360x768Y = 390
end
Object HarvestSF
235=2,0|232=2,2|234=2,6|227=2,8
234=4,0|230=4,2|235=4,6|225=4,8
222=8,0|216=8,2|219=8,4|168=8,8
223=10,0|217=10,4|214=10,6
220=12,0|216=12,4|214=12,6|154=12,8
228=14,0|223=14,2|225=14,4|224=14,6|206=14,8
End
Object WeedF
170=0,0|232=0,2|235=0,4
235=2,0|174=2,2|58=2,4
234=4,0|230=4,2|173=4,4
167=6,2|222=6,4
End
Object RotSkill // Test at coords 490,583
0=2,0|0=3,0|0=4,0|0=8,0|0=15,0|0=18,0|
0=8,1|0=18,1|
0=0,2|0=8,2|0=15,2|0=18,2|
0=8,3|0=15,3|0=18,3|
0=2,4|0=3,4|0=4,4|0=8,4|0=15,4|0=18,4|
0=8,5|0=15,5|0=18,5|
0=6,6|0=8,6|0=15,6|0=18,6|
0=8,7|0=15,7|0=18,7|
End Object
Object Rot // Test at coords 500, 642
0=0,0|0=1,0|0=2,0|0=3,0|0=16,0|
0=0,1|0=16,1|
0=0,2|0=5,2|0=10,2|0=11,2|0=15,2|0=16,2|0=17,2|0=18,2|
0=0,3|0=5,3|0=16,3|
0=0,4|0=8,4|0=13,4|0=16,4|
0=0,5|0=1,5|0=2,5|0=3,5|0=8,5|0=13,5|0=16,5|
0=0,6|0=8,6|0=13,6|0=16,6|
0=0,7|0=16,7|
End Object
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
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
ed12=Editbox: # of Seeds in Inventory:0 //Number of seeds in Inventory
ed6=CheckBox:Dump:False //Toggle to Dump flax in chest
ed7=CheckBox:Rot:False //Toggle to Rot flax
ed11=CheckBox:Left to Right?:False //Future Addon
ed10=CheckBox:Need Water:True //Toggle if flax needs to be watered
ed15=CheckBox:Venery?:False //If you are on Venery and have "Test.." in menues
ed13=EditBox:UnZoom Time:900 //Time to Zoom Out
ed14=EditBox:Zoom Time:1000 //Time to Zoom in
ed8=Combobox:Resolution:1920x1080, 1360x768, 1280x1024
end
FormLoad Flax, Flax.frm
if ShowForm Flax
Set Res = Flax[ed8]
Set Seeds = Flax[ed9]
Set SSeeds = Flax[ed12]
Set Zoom = Flax[ed14]
Set UnZoom = Flax[ed13]
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]
If Flax[ed11] = True
Set PlantDir = 1
End
Case
When Flax[ed1] = Flax
Set Pick = 2
End
else
stop
end
FormSave Flax, Flax.frm
Keydown @{Tab} 100
Delay 2000
Compute CenterX = {ScreenWidth} / 2
Compute CenterY = {ScreenHeight} / 2
// Test Area
//
Call Resolution
Call UnZoom
Delay 2000
Compute FlaxSet = floor(((Flax[ed2] * (($Pick * $Seeds) - 1) + $SSeeds) - 21) / 20)
Loop $Rounds
If Flax[ed1] = Seeds or Flax[ed1] = Both
Call Seeds
End
Loop $FlaxSet
If Flax[ed1] = Flax or Flax[ed1] = Both
Call Flax
End
If Flax[ed7] = True and Flax[ed1] <> Seeds
Call Rot
End
Delay 2000
If Flax[ed6] = True and Flax[ed1] <> Seeds
Call Dump //Dumps raw flax into a chest
End
End
End
Call Zoom
Procedure Seeds
If $PlantDir = 0
MousePos $LeftStep
Else
MousePos $RightStep
End
Leftclick
delay 500
Call Plant
Loop $SeedX
If $PlantDir = 0
Call MoveLeft
Else
Call MoveRight
End
End
Call MoveDown
Loop $SeedX
Call MoveRight
End
SetConst SS1X = $RSide3X
SetConst SS1Y = $RSide3Y
SetConst SS2X = $RSide2X
SetConst SS2Y = $RSide2Y
Call SideStep
Delay 2000
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, $ResetY
Delay $MDelay
Leftclick
delay 3000
End
Procedure Flax
If $Water = 1
If $WaterB = 0
Call FindButton
End
Call Water
End
MousePos $LeftStep
Leftclick
Delay 2000
Call Group
MousePos $CenterX, $FR3Y
Delay $MDelay
LeftClick
Delay 500
Call Group
MousePos $FMX, $FMY
Delay 350
LeftClick
Delay 3000
loop $Weed
Set Flax = {loopno}
Call WeedLeft
compute WeedY = $WeedY + $Mod1
Call WeedRight
compute WeedY = $WeedY + $Mod2
Call WeedLeft
compute WeedY = $WeedY + $Mod3
Call WeedRight
Call ResReset
Delay 1000
end
SetConst Flax = 1
MousePos $RightStep2
Leftclick
Delay 3500
End
Procedure Rot
Compute TempX = $CenterX / 2
MousePos $TempX, $CenterY
Delay $MDelay
Keys {ESC}
Delay $MDelay
SetConst TempY = {MouseY}
If $Rot = 0
Compute TempX = {MouseX} + 10 //19
Loop 110
Compute TempY = $TempY + 1
IsObject RotSkill at $TempX, $TempY
Compute TempX = $TempX + 2
Compute TempY = $TempY + 2
MousePos $TempX, $TempY
Delay $MDelay
RightClick
Delay $MDelay
SetConst SkillsX = $TempX
SetConst SkillsY = $TempY
SetConst TempY = {MouseY}
Compute TempX = {MouseX} + 10
Loop 80
Compute TempY = $TempY + 1
IsObject Rot at $TempX, $TempY
Compute TempX = $TempX + 2
Compute TempY = $TempY + 2
MousePos $TempX, $TempY
Delay $MDelay
RightClick
Delay $MDelay
SetConst RotX = $TempX
SetConst RotY = $TempY
Break
End
End
Break
End
End
Else
MousePos $SkillsX, $SkillsY
Delay $MDelay
RightClick
Delay $MDelay
MousePos $RotX, $RotY
Delay $MDelay
RightClick
Delay $MDelay
End
Compute TempY = $CenterY + 54
MousePos $CenterX, $TempY
Delay $MDelay
rightclick
Delay $MDelay
SetConst Rot = 1
End
Procedure Dump
MousePos $DumpX, $DumpY
Delay $MDelay
Leftclick
Delay 200
Compute NewX = $DumpX + 10
MousePos $NewX, $DumpY
Delay $MDelay
Rightclick
Delay 200
Compute TempY = $CenterY + 55
MousePos $CenterX, $TempY
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 $DownX, $DownY
Delay 350
LeftClick
Delay 350
Call Plant
End
Procedure Weed
SetConst Picked = 0
While $Picked = 0
MousePos $WeedX, $WeedY
Delay 100
Compute ResX = {MouseX} + 10
If Flax[ed15] = False
Compute ResY = {MouseY} - 13
Else
Compute ResY = {MouseY} - 21
End
Rightclick
Delay $MDelay
Case
When $Flax = $Weed
Timestamp {MouseX}, {MouseY}
IsObject $Harvest at $ResX, $ResY //$ObjX, $ObjY
Compute TempX = $WeedX + 20
If Flax[ed15] = False
Compute TempY = $WeedY - 7
Else
Compute TempY = $WeedY - 15
End
MousePos $TempX, $TempY
Delay 200
Rightclick
Delay 100
SetConst Picked = 1
Break
End
Else
IsObject $WeedF at $ResX, $ResY //$ObjX, $ObjY
Compute TempX = $WeedX + 20
If Flax[ed15] = False
Compute TempY = $WeedY - 7
Else
Compute TempY = $WeedY - 15
End
MousePos $TempX, $TempY
Delay 200
Rightclick
Delay 100
SetConst Picked = 1
Break
End
End
Keys {Esc}
Delay $MDelay
End
End
Procedure WeedLeft
Call Weed
Loop 4
compute WeedX = $WeedX - $Mod1
//Compute ResX = $ResX - $Mod1
Call Weed
End
End
Procedure WeedRight
Call Weed
loop 4
compute WeedX = $WeedX + $Mod1
//Compute ResX = $ObjX + $Mod1
Call Weed
end
End
Procedure PickSeeds
Loop $PickX
MousePos $NewX, $LeftY
Delay $SDelay
SetConst Picked = 0
While $Picked = 0
MousePos $NewX, $LeftY
Delay $SDelay
Rightclick
Delay $SDelay
Compute ResX = {MouseX} + 10
If Flax[ed15] = False
Compute ResY = {MouseY} - 13
Else
Compute ResY = {MouseY} - 21
End
Case
When $Direction = 0
IsObject $Harvest at $ResX, $ResY
Compute TempX = $ResX + 5 //1920x1080
Compute TempY = $ResY + 5 //- 10 //1920x1080
MousePos $TempX, $TempY
Delay $SDelay
rightclick
Inc Picked
Delay 1800
If $Rip = $Pick
Compute TempX = $NewX + $RipD0
timestamp $NewX
MousePos $TempX, $LeftY
Delay $MDelay
Rightclick
Delay $MDelay
Compute RipX = $TempX + 17
If Flax[ed15] = False
Compute RipY = $LeftY + 22
Else
Compute RipY = $LeftY + 30
End
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
Keys {Esc}
Delay $MDelay
End
When $Direction = 1
IsObject $Harvest at $ResX, $ResY
Compute TempX = $ResX + 5
Compute TempY = $ResY + 5
MousePos $TempX, $TempY
Delay $SDelay
rightclick
Inc Picked
Delay 1800
If $Rip = $Pick
Compute TempX = $NewX - $RipD1
MousePos $TempX, $LeftY
Delay $SDelay
Rightclick
Delay $SDelay
Compute RipX = $TempX + 17
If Flax[ed15] = False
Compute RipY = $LeftY + 22
Else
Compute RipY = $LeftY + 30
End
Mousepos $RipX, $RipY
Delay $SDelay
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
Keys {Esc}
Delay $MDelay
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
Set Count = 294
Else
Compute WaterX = $WaterX - 1
dec count
End
End
End
Procedure Water
MousePos $WaterX, $WaterY
Delay 200
Rightclick
Delay $MDelay
Compute TempY = $CenterY + 55
MousePos $CenterX, $TempY
Delay $MDelay
Rightclick
Delay 3000
End
Procedure Zoom
MousePos 100, 20
Delay $Zoom
MousePos 600, 600
Delay $MDelay
End
Procedure UnZoom
Mousepos 989, 1079
Delay $UnZoom
Mousepos 600, 600
Delay $MDelay
End
Procedure ResReset
Case
When $Res = 1280x1024
SetConst WeedX = 916
SetConst WeedY = 284
When $Res = 1360x768
SetConst WeedX = 952
SetConst WeedY = 153
When $Res = 1920x1080
SetConst WeedX = 1364
SetConst WeedY = 215
End
End
Procedure Resolution
Case
When $Res = 1280x1024
Set Leftstep = 559, 531
Set LeftX = 494
Set LeftY = 531
Compute DownX = $CenterX - 5
Set DownY = 670
Compute RightX = $CenterX + 134
Set RightY = 531
Set RSide3X = 800
Set RSide3Y = 389
Set RSide2X = 663
Set RSide2Y = 531
Set Left2X = 396
Set LSide1X = 322
Set LSide1Y = 653
Set LSide2X = 609
Set LSide2Y = 531
Set Right2X = 877
Set RSide1X = 937
Set RSide1Y = 395
Set RipD0 = 148
Set RipD1 = 152
Set ResetX = 506
Set ResetY = 526
Set FMX = 351
Set FMY = 279
Set FR3Y = 733
Set WeedX = 916
Set WeedY = 284
Set Mod1 = 140
Set Mod2 = 220
Set Mod3 = 132
Set RightStep2 = 974, 294
Set WeedF = WeedF
Set Harvest = Harvest
When $Res = 1360x768 //1360x768
Set Leftstep = 593, 403
Set LeftX = 525
Set LeftY = 403
Compute DownX = $CenterX - 5
Set DownY = 545
Compute RightX = $CenterX + 142
Set RightY = 403
Set RSide3X = 850
Set RSide3Y = 253
Set RSide2X = 714
Set RSide2Y = 403
Set Left2X = 425
Set LSide1X = 344
Set LSide1Y = 541
Set LSide2X = 632
Set LSide2Y = 403
Set Right2X = 940
Set RSide1X = 994
Set RSide1Y = 255
Set RipD0 = 152
Set RipD1 = 163
Set ResetX = 527
Set ResetY = 420
Set FMX = 376
Set FMY = 145
Set FR3Y = 614
Set WeedX = 952
Set WeedY = 153
Set Mod1 = 147
Set Mod2 = 213
Set Mod3 = 150
Set RightStep2 = 1037, 162
Set WeedF = WeedF
Set Harvest = Harvest
End
End
Bell Exclamation
//Written with ACTool 5.4.0 by Anka