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/Flax4
From ATITD5
Jump to navigationJump to search//Anka's Flax Macro v.4.0
//This macro will plant beds for seeds. After Seeds are
//done, it will 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.
//
//I have not played since Tale 3 and have switched monitors since then.
//This and future macros will be tailored for 1920x1080 resolution but I
//will eventually add built in resolutions for all macros. This addition
//may take a while since I'm trying to get everything running again. Chat me
//in game with your prefered resolution and I'll do the most popular resolutions
//first.
//
//Setup
//1. Resolution 1920x1080. Have not tested with others.
//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. Win& does not seem to have this problem.
//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.
//If using new seeds, you can use the Dump option to store rotten flax in the same
//way. You just can't store flax and rotten flax. You can Rot flax and store
//rotten flax if you like.
//
//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. 1 issue that might
//come up is that the macro may run slow on older computers. Chat me in game if you
//have problems and I can try to cut it down a bit. It's working perfectly for me.
//
//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.
//"Resolution" = This is for a future addon.
//
//
//Let me know if you have any problems. It's good to be back and nice to see that some
//of my old macro's are still being used today. :)
//
//Finally cleaned the instructions this Tale :) Ignore the comments in code like the one below.
//It's from the original build. It's all set by the menu now.
//
//Enjoy! Anka
constants
SeedX = 2 //Set this to how many plantings - 1 per row for seeds
Seeds = 0
Rounds = 2
Button = 0
ButtonX = 475
ButtonY = 98 //32
Count = 475
CenterX = 510
CenterY = 383
DumpX = 0
DumpY = 0
SubX = 20
PickX = 0
TempX = 0
TempY = 0
Left2X = 620 //119
LeftX = 750
LeftY = 561 //395
RightX = 1146
RightY = 561 //395
Right2X = 1320
TextX = 0
TextY = 0
RipX = 0
RipY = 0
WeedX = 1364 //741
WeedY = 215 //85
LSide1X = 415
LSide2X = 910 //403
LSide1Y = 780 //548
LSide2Y = 561 //395
RSide1X = 1415 //1011
RSide2X = 996 //650
RSide1Y = 331 //225
RSide2Y = 561 //395
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
FlaxSet = 0
XPlant = 60
YPlant = 40 //45
LeftStep = 756, 561 // 256, 395
RightStep2 = 1563, 250
Picked = 0
Direction = 0
Pick = 3
Rip = 0
Flax = 1
Reset = 825, 113
Weed = 0
Job = 0
Dump = 0
Rot = 0
MDelay = 200
Water = 0
ResetX = 850
Res1920x1080X = 630 //686 //178
Res1920x1080Y = 548 //548
end
Object FlaxH1920x1080old //178, 557
228=0,10
235=2,0|232=2,2|234=2,6|227=2,8|227=2,10
234=4,0|230=4,2|235=4,6|225=4,8|223=4,10
217=6,10
222=8,0|216=8,2|219=8,4|168=8,8|222=8,10
223=10,0|217=10,4|214=10,6|224=10,10
220=12,0|216=12,4|214=12,6|154=12,8|214=12,10
228=14,0|223=14,2|225=14,4|224=14,6|206=14,8|212=14,10
217=16,0|154=16,2|207=16,4|210=16,6|210=16,8|216=16,10
224=18,0|227=18,4|229=18,6|224=18,8|229=18,10
220=20,0|166=20,4|227=20,6|220=20,8|220=20,10
End
Object Rip //405, 563
235=0,10
235=2,2|238=2,4|237=2,6|233=2,8|235=2,10
58=4,0|236=4,2|59=4,4|59=4,6|234=4,8|230=4,10
232=6,0|237=6,2|236=6,4|237=6,6|57=6,8|233=6,10
235=8,0|235=8,2|236=8,4|230=8,6|225=8,8|223=8,10
234=10,0|231=10,2|234=10,4|235=10,6|225=10,8|222=10,10
230=12,0|114=12,2|231=12,4|230=12,6|55=12,8|225=12,10
235=14,0|236=14,4|234=14,6|222=14,10
232=16,0|235=16,2|231=16,8|226=16,10
240=18,0|239=18,2|239=18,4|239=18,6|233=18,8|226=18,10
234=20,0|237=20,2|235=20,4|235=20,6|231=20,8|229=20,10
End
Object FlaxH1920x1080 //178,562
235=2,0|232=2,2|234=2,6
234=4,0|230=4,2|235=4,6
End
Object WinCheck
148=2,0|148=2,2|148=2,4|148=2,6
237=4,0|240=4,2|234=4,4|238=4,6
240=6,0|242=6,2|230=6,4|237=6,6
End
Object SmallH //686, 548
235=2,0|232=2,2|234=2,6
234=4,0|230=4,2|235=4,6
222=8,0|216=8,2|219=8,4
223=10,0|217=10,4|214=10,6
220=12,0|216=12,4|214=12,6
228=14,0|223=14,2|225=14,4|224=14,6
217=16,0|154=16,2|207=16,4|210=16,6
224=18,0|227=18,4|229=18,6
220=20,0|166=20,4|227=20,6
End
Object WeedF //1375, 202
59=0,0|57=0,2|173=0,4|233=0,6
233=2,0|227=2,2|229=2,4|172=2,6
170=4,0|54=4,2|109=4,4|222=4,6
227=6,0|109=6,2|112=6,4|229=6,6
220=8,0|218=8,2|219=8,4|216=8,6
54=10,0|53=10,2|165=10,4|219=10,6
End
Object Harvest
237=0,0|229=0,2|233=0,6
233=2,0|227=2,2|230=2,6
227=4,0|219=4,2|222=4,6
227=6,0|218=6,2|224=6,4|229=6,6
220=8,0|219=8,4|108=8,6
218=10,0|220=10,4|219=10,6
End
Object Skills //615, 640
116=0,0|114=0,2|232=0,4|231=0,6
227=2,0|226=2,2|233=2,4|227=2,6
56=4,0|223=4,2|226=4,4|219=4,6
230=6,0|169=6,2|231=6,4|222=6,6
230=8,0|228=8,2|231=8,4|222=8,6
232=10,4|227=10,6
End
Object Rot
220=0,0|220=0,2|223=0,4|108=0,6
228=2,0|227=2,2|223=2,4|222=2,6
220=4,0|215=4,2|218=4,4|218=4,6
222=6,0|219=6,2|223=6,4|222=6,6
222=8,0|224=8,2|225=8,4|225=8,6
229=10,0|228=10,2|226=10,4|228=10,6
End
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
ed6=CheckBox:Dump:False //Toggle to Dump flax in chest
ed7=CheckBox:Rot:False //Toggle to Rot flax
ed10=CheckBox:Need Water:True //Toggle if flax needs to be watered
ed8=Editbox:Resolution:1920x1080 //Future Addon
end
FormLoad Flax, Flax.frm
if ShowForm Flax
Set Seeds = Flax[ed9]
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]
Case
When Flax[ed1] = Flax
Set Pick = 2
End
else
stop
end
FormSave Flax, Flax.frm
MousePos 100, 20
LeftClick
Delay 400
// test
//
Call UnZoom
Compute FlaxSet = $Pick * $Seeds - 1
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
Call Rot
End
Delay 4000
If Flax[ed6] = True
Call Dump //Dumps raw flax into a chest
End
End
End
Call Zoom
Procedure Seeds
MousePos $LeftStep
Leftclick
delay 500
Call Plant
Loop $SeedX
Call MoveLeft
End
Call MoveDown
Loop $SeedX
Call MoveRight
End
//MousePos 1230, 354 //1600, 180 //900, 220 <<<<<-----------------Fix
//stop
SetConst SS1X = $RSide3X
SetConst SS1Y = $RSide3Y
SetConst SS2X = $RSide2X
SetConst SS2Y = $RSide2Y
Call SideStep
Delay $MDelay
Leftclick
Delay 4000
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, 570
Delay $MDelay
Leftclick
delay 3000
End
Procedure Flax
If $Water = 1
Call FindButton
Call Water
End
MousePos $LeftStep
Leftclick
Delay 2000
Call Group
MousePos 977, 840
Delay $MDelay
LeftClick
Delay 500
Call Group
MousePos 564, 193
Delay 350
LeftClick
Delay 3000
loop $Weed //Change this number to equal how many times you have to weed
//and or water + 1. for Old egypt and green nile this number is 3
Set Flax = {loopno}
Call WeedLeft
compute WeedY = $WeedY + $Mod1
Compute ObjY = $ObjY + $Mod1
Call WeedRight
compute WeedY = $WeedY + $Mod2
Compute ObjY = $ObjY + $Mod2
Call WeedLeft
compute WeedY = $WeedY + $Mod3
Compute ObjY = $ObjY + $Mod3
Call WeedRight
SetConst WeedX = 1364
SetConst WeedY = 215
SetConst ObjX = 1375
SetConst ObjY = 202
Delay 1000
end
SetConst ObjX = 1375
SetConst Flax = 1
MousePos $RightStep2
Leftclick
Delay 3500
End
Procedure Rot
MousePos 600, 600
Delay $MDelay
Keys {ESC}
Timestamp {mousex}, {mousey}
Delay $MDelay
IsObject Skills at 615, 527
MousePos 615, 527
end
IsObject Skills at 615, 543
MousePos 615, 543
end
IsObject Skills at 615, 560
MousePos 615, 560
end
IsObject Skills at 615, 576
MousePos 615, 576
end
IsObject Skills at 615, 592
MousePos 615, 592
end
IsObject Skills at 615, 608
MousePos 615, 608
end
IsObject Skills at 615, 624
MousePos 615, 624
end
IsObject Skills at 615, 640
MousePos 615, 640
end
IsObject Skills at 615, 656
MousePos 615, 656
end
IsObject Skills at 615, 673
MousePos 615, 673
End
Delay $MDelay
Rightclick
Delay $MDelay
IsObject Rot at 638, 608
MousePos 638, 608
end
IsObject Rot at 638, 624
MousePos 638, 624
end
IsObject Rot at 638, 640
MousePos 638, 640
end
IsObject Rot at 638, 656
MousePos 638, 656
end
IsObject Rot at 638, 673
MousePos 638, 673
End
Delay $MDelay
Rightclick
Delay $MDelay
MousePos 961, 594
Delay $MDelay
Rightclick
Delay $MDelay
MousePos 959, 651
Delay $MDelay
Rightclick
Delay $MDelay
End
Procedure Dump
MousePos $DumpX, $DumpY
Delay $MDelay
Leftclick
Delay 200
Compute NewX = $DumpX + 10
MousePos $NewX, $DumpY
Delay $MDelay
Rightclick
Delay 200
MousePos 960, 594
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 960, 781 //572, 600 //512, 540
Delay 350
LeftClick
Delay 350
Call Plant
End
Procedure Weed
SetConst Picked = 0
While $Picked = 0
MousePos $WeedX, $WeedY
Delay 100
Rightclick
Delay $MDelay
Case
When $Flax = $Weed
IsObject Harvest at $ObjX, $ObjY
Compute TempX = $WeedX + 20
Compute TempY = $WeedY - 7
MousePos $TempX, $TempY
Delay 200
Rightclick
Delay 100
SetConst Picked = 1
Break
End
Else
IsObject WeedF at $ObjX, $ObjY
Compute TempX = $WeedX + 20
Compute TempY = $WeedY - 7
MousePos $TempX, $TempY
Delay 200
Rightclick
Delay 100
SetConst Picked = 1
Break
End
End
Compute TempX = $WeedX - 2
MousePos $TempX, $WeedY
Delay $MDelay
Rightclick
End
End
Procedure WeedLeft
Call Weed
Loop 4
compute WeedX = $WeedX - $Mod1
Compute ObjX = $ObjX - $Mod1
Call Weed
End
End
Procedure WeedRight
Call Weed
loop 4
compute WeedX = $WeedX + $Mod1
Compute ObjX = $ObjX + $Mod1
Call Weed
end
End
Procedure PickSeeds
Loop $PickX
MousePos $NewX, $LeftY
Delay $MDelay
SetConst Picked = 0
While $Picked = 0
MousePos $NewX, $LeftY
Delay $MDelay
Rightclick
Delay $MDelay
Case
When $Direction = 0
IsObject SmallH at $Res1920x1080X, $Res1920x1080Y
Compute TempX = $NewX + 15 //1920x1080
Compute TempY = $LeftY - 10 //1920x1080
MousePos $TempX, $TempY
Delay 100
rightclick
Inc Picked
Delay 1800
If $Rip = $Pick
Compute TempX = $NewX + 210
MousePos $TempX, $LeftY
Delay $MDelay
Rightclick
Delay $MDelay
Compute RipX = $TempX + 17
Compute RipY = $LeftY + 22
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
Compute TempX = $NewX - 2
MousePos $TempX, $LeftY
Delay $MDelay
Rightclick
End
When $Direction = 1
Compute TextX = $NewX + 10
// Compute TextY = $LeftY - 22
IsObject FlaxH1920x1080 at $TextX, $Res1920x1080Y
Compute TempX = $NewX + 15
Compute TempY = $LeftY -10
MousePos $TempX, $TempY
Delay 100
rightclick
Inc Picked
Delay 1800
If $Rip = $Pick
Compute TempX = $NewX - 190
MousePos $TempX, $LeftY
Delay $MDelay
Rightclick
Delay $MDelay
Compute RipX = $TempX + 17
Compute RipY = $LeftY + 22
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
SetConst TempX = $NewX
SetConst TempY = $LeftY
Compute TempX = $NewX - 2
MousePos $TempX, $LeftY
Delay $MDelay
Rightclick
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 $ButtonX, $ButtonY
Delay $MDelay
While $count > 295
MousePos $ButtonX, $ButtonY
IsObject Water at {mousex}, {mousey}
Set ButtonX = {mousex}
Set ButtonY = {mousey}
Bell
Set Count = 294
Else
Compute ButtonX = $ButtonX - 1
dec count
End
End
End
Procedure Water
MousePos $ButtonX, $ButtonY
Delay 200
Rightclick
Delay $MDelay
MousePos 961, 594
Delay $MDelay
Rightclick
Delay 3000
End
Procedure Zoom
MousePos 100, 20
Delay 1000
MousePos 600, 600
Delay $MDelay
End
Procedure UnZoom
Mousepos 989, 1079
Delay 900
Mousepos 600, 600
Delay $MDelay
End
Bell Exclamation
//Written with ACTool 5.4.0 by Anka