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 "Guilds/NCC/macro"
(New page: ===macro's=== ==barley==) |
(→barley) |
||
Line 2: | Line 2: | ||
==barley== | ==barley== | ||
+ | |||
+ | -{ | ||
+ | |||
+ | Constants | ||
+ | // Insert constants here | ||
+ | |||
+ | NumberOfLoops = 2 //This is the number of loops, and with luck is the only thing you will | ||
+ | //have to change to suit your own needs. I personally use 8 with +2str | ||
+ | //(and dex from acro). | ||
+ | |||
+ | 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. | ||
+ | |||
+ | |||
+ | XCoordsOfPlantBarley = 969 //If you don't want the barley planting box in the upper right, | ||
+ | //can change this (and the Y value below this). | ||
+ | YCoordsOfPlantBarley = 36 //See above comment | ||
+ | |||
+ | NumToDo = 8 //This is actually equipped to handle doing anywhere between 1 and 8 | ||
+ | //patches of barley at a time. Use this to set the number (recommended | ||
+ | //that you use 8, the others have not been extensively tested | ||
+ | |||
+ | |||
+ | varX = 0 | ||
+ | varY = 0 | ||
+ | Adding = 0 | ||
+ | LoopNum = 0 | ||
+ | NumberAdded = 0 | ||
+ | varColourY = 0 | ||
+ | varColourX = 0 | ||
+ | varAddX = 0 | ||
+ | |||
+ | varOriginalMouseX = 0 | ||
+ | varOriginalMouseY = 0 | ||
+ | |||
+ | MousePosX = 0 | ||
+ | MousePosY = 0 | ||
+ | varDelay = 0 | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | //Activate ATITD Window | ||
+ | MousePos 100, 10 | ||
+ | Delay 250 | ||
+ | Leftclick | ||
+ | Delay 2000 | ||
+ | |||
+ | |||
+ | call MakeBarley | ||
+ | //call GetPixelAtMouse | ||
+ | |||
+ | |||
+ | Procedure MakeBarley | ||
+ | //SetActiveWindow eGenesis Client //On my computer I commented this line because it messes my computer | ||
+ | //up. Try that if you're having issues | ||
+ | loop $NumberOfLoops //How many times to run through the loop. I use 8 usually and have | ||
+ | //carry food going (+2 str, +3 or more dex will do for 8) | ||
+ | SetConst NumToDo = 8 //Possible to do less than 8 at a time. | ||
+ | //<1 or >8 will break this | ||
+ | SetConst sleeptime = 200 //How much time to wait | ||
+ | SetConst Adding = 1 //Tells it we're still adding, used in a later Function | ||
+ | SetConst LoopNum = 0 //Which Loop Number we're at. Used in the main loop | ||
+ | |||
+ | //****** 1 ****** | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 //plant barley spot | ||
+ | loop 1000 //This is a loop because the drag function misses sometimes. | ||
+ | //This keeps trying until it thinks it succeeds | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | |||
+ | SetConst varDelay = 1 //Delay is because the game is kinda slow in bringing | ||
+ | //up a window. See RightClick2 function | ||
+ | call RightClick2 // click on barley | ||
+ | Delay $sleeptime | ||
+ | Call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | DragTo 103, 44 //Drag Barley to appropriate spot | ||
+ | Call SetMousePos | ||
+ | LoadRGB 105, 166 //Load the colours for a location | ||
+ | if {RGBBlue} > 240 //Check for heavy blue to make sure the window | ||
+ | //got where intended | ||
+ | break //If it did, exit this loop | ||
+ | else //otherwise click in a spot in the bottom right to clear the screen | ||
+ | delay $sleeptime | ||
+ | SetConst MousePosX = 743 | ||
+ | SetConst MousePosY = 611 | ||
+ | call RightClick2 | ||
+ | end | ||
+ | end | ||
+ | |||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 198 | ||
+ | SetConst MousePosY = 47 | ||
+ | call RightClick2 //This pins the window open | ||
+ | Delay $sleeptime | ||
+ | SetConst NumberAdded = 1 | ||
+ | Call TestColourWhich //Go add the fertilizer and water | ||
+ | if $NumToDo > 1 //A statement like this that will be gone through for each number >1 | ||
+ | //****** 2 ****** | ||
+ | |||
+ | SetConst MousePosX = 760 | ||
+ | SetConst MousePosY = 392 | ||
+ | call LeftClick2 //This moves your character so you plant in a new spot | ||
+ | Delay 1500 | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 | ||
+ | loop 1000 | ||
+ | Delay $sleeptime | ||
+ | SetConst varDelay = 1 | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | Delay $sleeptime | ||
+ | call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | DragTo 315, 44 | ||
+ | Call SetMousePos | ||
+ | LoadRGB 314, 163 | ||
+ | if {RGBBlue} > 240 | ||
+ | break | ||
+ | else | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 743 | ||
+ | SetConst MousePosY = 611 | ||
+ | call RightClick2 | ||
+ | end | ||
+ | end | ||
+ | delay $sleeptime | ||
+ | SetConst MousePosX = 411 | ||
+ | SetConst MousePosY = 48 | ||
+ | call LeftClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst NumberAdded = 2 | ||
+ | Call TestColourWhich | ||
+ | end | ||
+ | if $NumToDo > 2 | ||
+ | //****** 3 ****** | ||
+ | SetConst MousePosX = 760 | ||
+ | SetConst MousePosY = 392 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 | ||
+ | loop 1000 | ||
+ | SetConst varDelay = 1 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | Call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | DragTo 528, 44 | ||
+ | Call SetMousePos | ||
+ | LoadRGB 521, 163 | ||
+ | if {RGBBlue} > 240 | ||
+ | break | ||
+ | else | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 743 | ||
+ | SetConst MousePosY = 611 | ||
+ | call RightClick2 | ||
+ | end | ||
+ | end | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 621 | ||
+ | SetConst MousePosY = 48 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst NumberAdded = 3 | ||
+ | Call TestColourWhich | ||
+ | end | ||
+ | if $NumToDo > 3 | ||
+ | //****** 4 ****** | ||
+ | SetConst MousePosX = 760 | ||
+ | SetConst MousePosY = 392 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 | ||
+ | loop 1000 | ||
+ | SetConst varDelay = 1 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | DragTo 740, 44 | ||
+ | Call SetMousePos | ||
+ | LoadRGB 753, 163 | ||
+ | if {RGBBlue} > 240 | ||
+ | break | ||
+ | else | ||
+ | Delay $sleeptime | ||
+ | MousePos 743, 611 | ||
+ | RightClick | ||
+ | end | ||
+ | end | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 832 | ||
+ | SetConst MousePosY = 48 | ||
+ | call LeftClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst NumberAdded = 4 | ||
+ | Call TestColourWhich | ||
+ | end | ||
+ | if $NumToDo > 4 | ||
+ | //****** 5 ****** | ||
+ | SetConst MousePosX = 500 | ||
+ | SetConst MousePosY = 620 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 | ||
+ | loop 1000 | ||
+ | SetConst varDelay = 1 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | Call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | DragTo 105, 265 | ||
+ | Call SetMousePos | ||
+ | LoadRGB 135, 382 | ||
+ | if {RGBBlue} > 240 | ||
+ | break | ||
+ | else | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 743 | ||
+ | SetConst MousePosY = 611 | ||
+ | call RightClick2 | ||
+ | End | ||
+ | End | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 197 | ||
+ | SetConst MousePosY = 270 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | |||
+ | SetConst NumberAdded = 5 | ||
+ | Call TestColourWhich | ||
+ | end | ||
+ | if $NumToDo > 5 | ||
+ | //****** 6 ****** | ||
+ | SetConst MousePosX = 245 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 //move to left | ||
+ | Delay $MoveSleepTime | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 //Click on Plant Barley | ||
+ | loop 1000 | ||
+ | SetConst varDelay = 1 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | call RightClick2 //Click on Barley | ||
+ | Delay $sleeptime | ||
+ | Call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | Delay $sleeptime | ||
+ | DragTo 103, 530 //Drag Window | ||
+ | Call SetMousePos | ||
+ | LoadRGB 92, 665 | ||
+ | if {RGBBlue} > 240 | ||
+ | break | ||
+ | else | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 743 | ||
+ | SetConst MousePosY = 611 | ||
+ | call RightClick2 | ||
+ | End | ||
+ | end | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 197 | ||
+ | SetConst MousePosY = 526 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst NumberAdded = 6 | ||
+ | Call TestColourWhich | ||
+ | end | ||
+ | if $NumToDo > 6 | ||
+ | |||
+ | //****** 7 ****** | ||
+ | SetConst MousePosX = 245 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 | ||
+ | loop 1000 | ||
+ | SetConst varDelay = 1 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | Call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | DragTo 316, 530 | ||
+ | Call SetMousePos | ||
+ | LoadRGB 308, 665 | ||
+ | if {RGBBlue} > 240 | ||
+ | break | ||
+ | else | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 743 | ||
+ | SetConst MousePosY = 611 | ||
+ | call RightClick2 | ||
+ | end | ||
+ | end | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 411 | ||
+ | SetConst MousePosY = 526 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst NumberAdded = 7 | ||
+ | Call TestColourWhich | ||
+ | end | ||
+ | if $NumToDo > 7 | ||
+ | //****** 8 ****** | ||
+ | SetConst MousePosX = 245 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | SetConst MousePosX = $XCoordsOfPlantBarley | ||
+ | SetConst MousePosY = $YCoordsOfPlantBarley | ||
+ | call RightClick2 | ||
+ | loop 1000 | ||
+ | SetConst varDelay = 1 | ||
+ | SetConst MousePosX = 510 | ||
+ | SetConst MousePosY = 425 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | Call GetMousePos | ||
+ | MousePos 610, 330 | ||
+ | Delay $sleeptime | ||
+ | DragTo 529, 530 | ||
+ | Call SetMousePos | ||
+ | LoadRGB 519, 665 | ||
+ | if {RGBBlue} > 240 | ||
+ | break | ||
+ | else | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 743 | ||
+ | SetConst MousePosY = 611 | ||
+ | call RightClick2 | ||
+ | end | ||
+ | end | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 621 | ||
+ | SetConst MousePosY = 526 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst NumberAdded = 8 | ||
+ | Call TestColourWhich | ||
+ | end | ||
+ | SetConst Adding = 0 | ||
+ | loop 63 //This is the main loop | ||
+ | SetConst LoopNum = {LoopNo} //Need this variable below so we don't keep | ||
+ | //feeding the early ones | ||
+ | Delay $LoopWaitTime | ||
+ | Call TestColourWhich //Go to the functions to test the colour, | ||
+ | //see if we need to add | ||
+ | //ToolTip, %a_index% | ||
+ | //;send, {BS} | ||
+ | //;send, {BS} | ||
+ | //;send, %a_index% | ||
+ | end | ||
+ | delay $sleeptime | ||
+ | |||
+ | SetConst MousePosX = 110 | ||
+ | SetConst MousePosY = 230 | ||
+ | call RightClick2 // harvest | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 190 | ||
+ | SetConst MousePosY = 110 | ||
+ | Call RightClick2 // close pinned window | ||
+ | Delay $sleeptime | ||
+ | |||
+ | if $NumToDo > 1 | ||
+ | SetConst MousePosX = 325 | ||
+ | SetConst MousePosY = 230 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 403 | ||
+ | SetConst MousePosY = 108 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | end | ||
+ | if $NumToDo > 2 | ||
+ | SetConst MousePosX = 530 | ||
+ | SetConst MousePosY = 230 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 617 | ||
+ | SetConst MousePosY = 108 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | end | ||
+ | if $NumToDo > 3 | ||
+ | SetConst MousePosX = 746 | ||
+ | SetConst MousePosY = 230 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 829 | ||
+ | SetConst MousePosY = 108 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | end | ||
+ | if $NumToDo > 4 | ||
+ | SetConst MousePosX = 110 | ||
+ | SetConst MousePosY = 448 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 191 | ||
+ | SetConst MousePosY = 327 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | end | ||
+ | if $NumToDo > 5 | ||
+ | SetConst MousePosX = 110 | ||
+ | SetConst MousePosY = 718 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 192 | ||
+ | SetConst MousePosY = 600 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | end | ||
+ | if $NumToDo > 6 | ||
+ | SetConst MousePosX = 325 | ||
+ | SetConst MousePosY = 718 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 403 | ||
+ | SetConst MousePosY = 600 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | end | ||
+ | if $NumToDo > 7 | ||
+ | SetConst MousePosX = 530 | ||
+ | SetConst MousePosY = 718 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | SetConst MousePosX = 617 | ||
+ | SetConst MousePosY = 600 | ||
+ | call RightClick2 | ||
+ | Delay $sleeptime | ||
+ | end | ||
+ | |||
+ | if $NumToDo > 4 //This means we need to go up 1 section as well | ||
+ | SetConst MousePosX = 500 | ||
+ | SetConst MousePosY = 167 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | if $NumToDo < 8 //Each of the below is to move back to the left 1 section | ||
+ | SetConst MousePosX = 240 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | end | ||
+ | if $NumToDo < 7 | ||
+ | SetConst MousePosX = 240 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | end | ||
+ | if $NumToDo < 6 | ||
+ | SetConst MousePosX = 240 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | end | ||
+ | else //4 or below | ||
+ | if $NumToDo > 1 //for each greater than 1, move to the left once | ||
+ | SetConst MousePosX = 240 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | end | ||
+ | if $NumToDo > 2 | ||
+ | SetConst MousePosX = 240 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | end | ||
+ | if $NumToDo > 3 | ||
+ | SetConst MousePosX = 240 | ||
+ | SetConst MousePosY = 393 | ||
+ | call LeftClick2 | ||
+ | Delay $MoveSleepTime | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | End | ||
+ | //;*********************************************************** | ||
+ | |||
+ | |||
+ | Procedure TestColourWhich //This function figures out which coordinates to call. | ||
+ | //No it is not terribly good code, but this was written first for AutoHotKey | ||
+ | loop $NumberAdded //This is for the water | ||
+ | if {LoopNo} < 5 | ||
+ | SetConst varColourY = 164 | ||
+ | if {LoopNo} = 1 | ||
+ | SetConst varColourX = 179 | ||
+ | SetConst varAddX = 197 | ||
+ | end | ||
+ | if {LoopNo} = 2 | ||
+ | SetConst varColourX = 391 | ||
+ | SetConst varAddX = 408 | ||
+ | end | ||
+ | if {LoopNo} = 3 | ||
+ | SetConst varColourX = 606 | ||
+ | SetConst varAddX = 621 | ||
+ | end | ||
+ | if {LoopNo} = 4 | ||
+ | SetConst varColourX = 815 | ||
+ | SetConst varAddX = 833 | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 5 | ||
+ | SetConst varColourY = 384 | ||
+ | SetConst varColourX = 179 | ||
+ | SetConst varAddX = 197 | ||
+ | end | ||
+ | if {LoopNo} > 5 | ||
+ | SetConst varColourY = 652 | ||
+ | if {LoopNo} = 6 | ||
+ | SetConst varColourX = 170 | ||
+ | SetConst varAddX = 197 | ||
+ | end | ||
+ | if {LoopNo} = 7 | ||
+ | SetConst varColourX = 391 | ||
+ | SetConst varAddX = 408 | ||
+ | end | ||
+ | if {LoopNo} = 8 | ||
+ | SetConst varColourX = 606 | ||
+ | SetConst varAddX = 621 | ||
+ | end | ||
+ | end | ||
+ | if $adding = 1 //This little section is to click a 2nd time when first planting the barley | ||
+ | if {LoopNo} = $numberadded | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 1 | ||
+ | if $LoopNum < 46 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 2 | ||
+ | if $LoopNum < 49 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 3 | ||
+ | if $LoopNum < 52 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 4 | ||
+ | if $LoopNum < 55 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 5 | ||
+ | if $LoopNum < 58 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 6 | ||
+ | if $LoopNum < 61 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 7 | ||
+ | if $LoopNum < 64 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 8 | ||
+ | if $LoopNum < 67 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | loop $NumberAdded //This is for the fertlizer | ||
+ | if {LoopNo} < 5 | ||
+ | SetConst varColourY = 184 | ||
+ | if {LoopNo} = 1 | ||
+ | SetConst varColourX = 179 | ||
+ | SetConst varAddX = 197 | ||
+ | end | ||
+ | if {LoopNo} = 2 | ||
+ | SetConst varColourX = 391 | ||
+ | SetConst varAddX = 408 | ||
+ | end | ||
+ | if {LoopNo} = 3 | ||
+ | SetConst varColourX = 606 | ||
+ | SetConst varAddX = 621 | ||
+ | end | ||
+ | if {LoopNo} = 4 | ||
+ | SetConst varColourX = 815 | ||
+ | SetConst varAddX = 833 | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 5 | ||
+ | SetConst varColourY = 404 | ||
+ | SetConst varColourX = 179 | ||
+ | SetConst varAddX = 197 | ||
+ | end | ||
+ | if {LoopNo} > 5 | ||
+ | SetConst varColourY = 673 | ||
+ | if {LoopNo} = 6 | ||
+ | SetConst varColourX = 170 | ||
+ | SetConst varAddX = 197 | ||
+ | end | ||
+ | if {LoopNo} = 7 | ||
+ | SetConst varColourX = 391 | ||
+ | SetConst varAddX = 408 | ||
+ | end | ||
+ | if {LoopNo} = 8 | ||
+ | SetConst varColourX = 606 | ||
+ | SetConst varAddX = 621 | ||
+ | end | ||
+ | end | ||
+ | if $adding = 1 //This if block is to make it click a 2nd time when first planting | ||
+ | if {LoopNo} = $numberadded | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 1 | ||
+ | if $LoopNum < 43 | ||
+ | call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 2 | ||
+ | if $LoopNum < 46 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 3 | ||
+ | if $LoopNum < 49 | ||
+ | call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 4 | ||
+ | if $LoopNum < 52 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 5 | ||
+ | if $LoopNum < 55 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 6 | ||
+ | if $LoopNum < 58 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 7 | ||
+ | if $LoopNum < 61 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | if {LoopNo} = 8 | ||
+ | if $LoopNum < 64 | ||
+ | Call TestColour | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | |||
+ | Procedure TestColour //This actually tests the colours based on the position set in TestColourWhich | ||
+ | LoadRGB $varColourX, $varColourY | ||
+ | if {RGBBlue} > 220 //If it's really high in blue content | ||
+ | else | ||
+ | Call GetMousePos | ||
+ | SetConst MousePosX = $varAddX | ||
+ | SetConst MousePosY = $varColourY | ||
+ | call RightClick2 | ||
+ | Call SetMousePos | ||
+ | Delay 100 | ||
+ | |||
+ | end | ||
+ | |||
+ | 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 | ||
+ | if $varDelay = 1 | ||
+ | delay 200 | ||
+ | end | ||
+ | LeftClick | ||
+ | //delay 200 | ||
+ | SetConst varDelay = 0 | ||
+ | Call SetMousePos | ||
+ | End | ||
+ | Procedure RightClick2 | ||
+ | Call GetMousePos | ||
+ | MousePos $MousePosX, $MousePosY | ||
+ | if $varDelay = 1 | ||
+ | delay 200 | ||
+ | end | ||
+ | RightClick | ||
+ | SetConst varDelay = 0 | ||
+ | //delay 400 | ||
+ | Call SetMousePos | ||
+ | End | ||
+ | |||
+ | |||
+ | Procedure GetPixelAtMouse //This was a test Procedure for finding coordinates and values, etc | ||
+ | //SetActiveWindow eGenesis Client | ||
+ | Loop 1 | ||
+ | //SetConst testpixel = 0 | ||
+ | |||
+ | //LoadRGB {MouseX}, {MouseY} | ||
+ | //keys {RGBBlue} | ||
+ | keys {MouseX} | ||
+ | keys : | ||
+ | keys {MouseY} | ||
+ | End | ||
+ | End | ||
+ | -} |
Revision as of 00:09, 18 December 2009
macro's
barley
-{
Constants
// Insert constants here
NumberOfLoops = 2 //This is the number of loops, and with luck is the only thing you will //have to change to suit your own needs. I personally use 8 with +2str //(and dex from acro).
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.
XCoordsOfPlantBarley = 969 //If you don't want the barley planting box in the upper right, //can change this (and the Y value below this). YCoordsOfPlantBarley = 36 //See above comment
NumToDo = 8 //This is actually equipped to handle doing anywhere between 1 and 8
//patches of barley at a time. Use this to set the number (recommended //that you use 8, the others have not been extensively tested
varX = 0 varY = 0 Adding = 0 LoopNum = 0 NumberAdded = 0 varColourY = 0 varColourX = 0 varAddX = 0
varOriginalMouseX = 0 varOriginalMouseY = 0
MousePosX = 0 MousePosY = 0 varDelay = 0
End
//Activate ATITD Window
MousePos 100, 10
Delay 250
Leftclick
Delay 2000
call MakeBarley
//call GetPixelAtMouse
Procedure MakeBarley
//SetActiveWindow eGenesis Client //On my computer I commented this line because it messes my computer
//up. Try that if you're having issues
loop $NumberOfLoops //How many times to run through the loop. I use 8 usually and have
//carry food going (+2 str, +3 or more dex will do for 8)
SetConst NumToDo = 8 //Possible to do less than 8 at a time.
//<1 or >8 will break this
SetConst sleeptime = 200 //How much time to wait SetConst Adding = 1 //Tells it we're still adding, used in a later Function SetConst LoopNum = 0 //Which Loop Number we're at. Used in the main loop
//****** 1 ****** SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 //plant barley spot loop 1000 //This is a loop because the drag function misses sometimes.
//This keeps trying until it thinks it succeeds
Delay $sleeptime SetConst MousePosX = 510 SetConst MousePosY = 425
SetConst varDelay = 1 //Delay is because the game is kinda slow in bringing
//up a window. See RightClick2 function
call RightClick2 // click on barley Delay $sleeptime Call GetMousePos MousePos 610, 330 DragTo 103, 44 //Drag Barley to appropriate spot Call SetMousePos LoadRGB 105, 166 //Load the colours for a location if {RGBBlue} > 240 //Check for heavy blue to make sure the window
//got where intended
break //If it did, exit this loop else //otherwise click in a spot in the bottom right to clear the screen delay $sleeptime SetConst MousePosX = 743 SetConst MousePosY = 611 call RightClick2 end end
Delay $sleeptime SetConst MousePosX = 198 SetConst MousePosY = 47 call RightClick2 //This pins the window open Delay $sleeptime SetConst NumberAdded = 1 Call TestColourWhich //Go add the fertilizer and water if $NumToDo > 1 //A statement like this that will be gone through for each number >1 //****** 2 ******
SetConst MousePosX = 760 SetConst MousePosY = 392 call LeftClick2 //This moves your character so you plant in a new spot Delay 1500 SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 loop 1000 Delay $sleeptime SetConst varDelay = 1 SetConst MousePosX = 510 SetConst MousePosY = 425 call RightClick2 Delay $sleeptime Delay $sleeptime call GetMousePos MousePos 610, 330 DragTo 315, 44 Call SetMousePos LoadRGB 314, 163 if {RGBBlue} > 240 break else Delay $sleeptime SetConst MousePosX = 743 SetConst MousePosY = 611 call RightClick2 end end delay $sleeptime SetConst MousePosX = 411 SetConst MousePosY = 48 call LeftClick2 Delay $sleeptime SetConst NumberAdded = 2 Call TestColourWhich end if $NumToDo > 2 //****** 3 ****** SetConst MousePosX = 760 SetConst MousePosY = 392 call LeftClick2 Delay $MoveSleepTime SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 loop 1000 SetConst varDelay = 1 Delay $sleeptime SetConst MousePosX = 510 SetConst MousePosY = 425 call RightClick2 Delay $sleeptime Call GetMousePos MousePos 610, 330 DragTo 528, 44 Call SetMousePos LoadRGB 521, 163 if {RGBBlue} > 240 break else Delay $sleeptime SetConst MousePosX = 743 SetConst MousePosY = 611 call RightClick2 end end Delay $sleeptime SetConst MousePosX = 621 SetConst MousePosY = 48 call RightClick2 Delay $sleeptime SetConst NumberAdded = 3 Call TestColourWhich end if $NumToDo > 3 //****** 4 ****** SetConst MousePosX = 760 SetConst MousePosY = 392 call LeftClick2 Delay $MoveSleepTime SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 loop 1000 SetConst varDelay = 1 Delay $sleeptime SetConst MousePosX = 510 SetConst MousePosY = 425 call RightClick2 Delay $sleeptime call GetMousePos MousePos 610, 330 DragTo 740, 44 Call SetMousePos LoadRGB 753, 163 if {RGBBlue} > 240 break else Delay $sleeptime MousePos 743, 611 RightClick end end Delay $sleeptime SetConst MousePosX = 832 SetConst MousePosY = 48 call LeftClick2 Delay $sleeptime SetConst NumberAdded = 4 Call TestColourWhich end if $NumToDo > 4 //****** 5 ****** SetConst MousePosX = 500 SetConst MousePosY = 620 call LeftClick2 Delay $MoveSleepTime SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 loop 1000 SetConst varDelay = 1 Delay $sleeptime SetConst MousePosX = 510 SetConst MousePosY = 425 call RightClick2 Delay $sleeptime Call GetMousePos MousePos 610, 330 DragTo 105, 265 Call SetMousePos LoadRGB 135, 382 if {RGBBlue} > 240 break else Delay $sleeptime SetConst MousePosX = 743 SetConst MousePosY = 611 call RightClick2 End End Delay $sleeptime SetConst MousePosX = 197 SetConst MousePosY = 270 call RightClick2 Delay $sleeptime
SetConst NumberAdded = 5 Call TestColourWhich end if $NumToDo > 5 //****** 6 ****** SetConst MousePosX = 245 SetConst MousePosY = 393 call LeftClick2 //move to left Delay $MoveSleepTime SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 //Click on Plant Barley loop 1000 SetConst varDelay = 1 Delay $sleeptime SetConst MousePosX = 510 SetConst MousePosY = 425 call RightClick2 //Click on Barley Delay $sleeptime Call GetMousePos MousePos 610, 330 Delay $sleeptime DragTo 103, 530 //Drag Window Call SetMousePos LoadRGB 92, 665 if {RGBBlue} > 240 break else Delay $sleeptime SetConst MousePosX = 743 SetConst MousePosY = 611 call RightClick2 End end Delay $sleeptime SetConst MousePosX = 197 SetConst MousePosY = 526 call RightClick2 Delay $sleeptime SetConst NumberAdded = 6 Call TestColourWhich end if $NumToDo > 6
//****** 7 ****** SetConst MousePosX = 245 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 loop 1000 SetConst varDelay = 1 Delay $sleeptime SetConst MousePosX = 510 SetConst MousePosY = 425 call RightClick2 Delay $sleeptime Call GetMousePos MousePos 610, 330 DragTo 316, 530 Call SetMousePos LoadRGB 308, 665 if {RGBBlue} > 240 break else Delay $sleeptime SetConst MousePosX = 743 SetConst MousePosY = 611 call RightClick2 end end Delay $sleeptime SetConst MousePosX = 411 SetConst MousePosY = 526 call RightClick2 Delay $sleeptime SetConst NumberAdded = 7 Call TestColourWhich end if $NumToDo > 7 //****** 8 ****** SetConst MousePosX = 245 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime SetConst MousePosX = $XCoordsOfPlantBarley SetConst MousePosY = $YCoordsOfPlantBarley call RightClick2 loop 1000 SetConst varDelay = 1 SetConst MousePosX = 510 SetConst MousePosY = 425 call RightClick2 Delay $sleeptime Call GetMousePos MousePos 610, 330 Delay $sleeptime DragTo 529, 530 Call SetMousePos LoadRGB 519, 665 if {RGBBlue} > 240 break else Delay $sleeptime SetConst MousePosX = 743 SetConst MousePosY = 611 call RightClick2 end end Delay $sleeptime SetConst MousePosX = 621 SetConst MousePosY = 526 call RightClick2 Delay $sleeptime SetConst NumberAdded = 8 Call TestColourWhich end SetConst Adding = 0 loop 63 //This is the main loop SetConst LoopNum = {LoopNo} //Need this variable below so we don't keep
//feeding the early ones
Delay $LoopWaitTime Call TestColourWhich //Go to the functions to test the colour,
//see if we need to add
//ToolTip, %a_index% //;send, {BS} //;send, {BS} //;send, %a_index% end delay $sleeptime
SetConst MousePosX = 110 SetConst MousePosY = 230 call RightClick2 // harvest Delay $sleeptime SetConst MousePosX = 190 SetConst MousePosY = 110 Call RightClick2 // close pinned window Delay $sleeptime
if $NumToDo > 1 SetConst MousePosX = 325 SetConst MousePosY = 230 call RightClick2 Delay $sleeptime SetConst MousePosX = 403 SetConst MousePosY = 108 call RightClick2 Delay $sleeptime end if $NumToDo > 2 SetConst MousePosX = 530 SetConst MousePosY = 230 call RightClick2 Delay $sleeptime SetConst MousePosX = 617 SetConst MousePosY = 108 call RightClick2 Delay $sleeptime end if $NumToDo > 3 SetConst MousePosX = 746 SetConst MousePosY = 230 call RightClick2 Delay $sleeptime SetConst MousePosX = 829 SetConst MousePosY = 108 call RightClick2 Delay $sleeptime end if $NumToDo > 4 SetConst MousePosX = 110 SetConst MousePosY = 448 call RightClick2 Delay $sleeptime SetConst MousePosX = 191 SetConst MousePosY = 327 call RightClick2 Delay $sleeptime end if $NumToDo > 5 SetConst MousePosX = 110 SetConst MousePosY = 718 call RightClick2 Delay $sleeptime SetConst MousePosX = 192 SetConst MousePosY = 600 call RightClick2 Delay $sleeptime end if $NumToDo > 6 SetConst MousePosX = 325 SetConst MousePosY = 718 call RightClick2 Delay $sleeptime SetConst MousePosX = 403 SetConst MousePosY = 600 call RightClick2 Delay $sleeptime end if $NumToDo > 7 SetConst MousePosX = 530 SetConst MousePosY = 718 call RightClick2 Delay $sleeptime SetConst MousePosX = 617 SetConst MousePosY = 600 call RightClick2 Delay $sleeptime end
if $NumToDo > 4 //This means we need to go up 1 section as well SetConst MousePosX = 500 SetConst MousePosY = 167 call LeftClick2 Delay $MoveSleepTime if $NumToDo < 8 //Each of the below is to move back to the left 1 section SetConst MousePosX = 240 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime end if $NumToDo < 7 SetConst MousePosX = 240 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime end if $NumToDo < 6 SetConst MousePosX = 240 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime end else //4 or below if $NumToDo > 1 //for each greater than 1, move to the left once SetConst MousePosX = 240 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime end if $NumToDo > 2 SetConst MousePosX = 240 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime end if $NumToDo > 3 SetConst MousePosX = 240 SetConst MousePosY = 393 call LeftClick2 Delay $MoveSleepTime end end end End //;***********************************************************
Procedure TestColourWhich //This function figures out which coordinates to call.
//No it is not terribly good code, but this was written first for AutoHotKey
loop $NumberAdded //This is for the water
if {LoopNo} < 5
SetConst varColourY = 164
if {LoopNo} = 1
SetConst varColourX = 179
SetConst varAddX = 197
end
if {LoopNo} = 2
SetConst varColourX = 391
SetConst varAddX = 408
end
if {LoopNo} = 3
SetConst varColourX = 606
SetConst varAddX = 621
end
if {LoopNo} = 4
SetConst varColourX = 815
SetConst varAddX = 833
end
end
if {LoopNo} = 5
SetConst varColourY = 384
SetConst varColourX = 179
SetConst varAddX = 197
end
if {LoopNo} > 5
SetConst varColourY = 652
if {LoopNo} = 6
SetConst varColourX = 170
SetConst varAddX = 197
end
if {LoopNo} = 7
SetConst varColourX = 391
SetConst varAddX = 408
end
if {LoopNo} = 8
SetConst varColourX = 606
SetConst varAddX = 621
end
end
if $adding = 1 //This little section is to click a 2nd time when first planting the barley
if {LoopNo} = $numberadded
Call TestColour
end
end
if {LoopNo} = 1
if $LoopNum < 46
Call TestColour
end
end
if {LoopNo} = 2
if $LoopNum < 49
Call TestColour
end
end
if {LoopNo} = 3
if $LoopNum < 52
Call TestColour
end
end
if {LoopNo} = 4
if $LoopNum < 55
Call TestColour
end
end
if {LoopNo} = 5
if $LoopNum < 58
Call TestColour
end
end
if {LoopNo} = 6
if $LoopNum < 61
Call TestColour
end
end
if {LoopNo} = 7
if $LoopNum < 64
Call TestColour
end
end
if {LoopNo} = 8
if $LoopNum < 67
Call TestColour
end
end
end
loop $NumberAdded //This is for the fertlizer
if {LoopNo} < 5
SetConst varColourY = 184
if {LoopNo} = 1
SetConst varColourX = 179
SetConst varAddX = 197
end
if {LoopNo} = 2
SetConst varColourX = 391
SetConst varAddX = 408
end
if {LoopNo} = 3
SetConst varColourX = 606
SetConst varAddX = 621
end
if {LoopNo} = 4
SetConst varColourX = 815
SetConst varAddX = 833
end
end
if {LoopNo} = 5
SetConst varColourY = 404
SetConst varColourX = 179
SetConst varAddX = 197
end
if {LoopNo} > 5
SetConst varColourY = 673
if {LoopNo} = 6
SetConst varColourX = 170
SetConst varAddX = 197
end
if {LoopNo} = 7
SetConst varColourX = 391
SetConst varAddX = 408
end
if {LoopNo} = 8
SetConst varColourX = 606
SetConst varAddX = 621
end
end
if $adding = 1 //This if block is to make it click a 2nd time when first planting
if {LoopNo} = $numberadded
Call TestColour
end
end
if {LoopNo} = 1
if $LoopNum < 43
call TestColour
end
end
if {LoopNo} = 2
if $LoopNum < 46
Call TestColour
end
end
if {LoopNo} = 3
if $LoopNum < 49
call TestColour
end
end
if {LoopNo} = 4
if $LoopNum < 52
Call TestColour
end
end
if {LoopNo} = 5
if $LoopNum < 55
Call TestColour
end
end
if {LoopNo} = 6
if $LoopNum < 58
Call TestColour
end
end
if {LoopNo} = 7
if $LoopNum < 61
Call TestColour
end
end
if {LoopNo} = 8
if $LoopNum < 64
Call TestColour
end
end
end
end
Procedure TestColour //This actually tests the colours based on the position set in TestColourWhich LoadRGB $varColourX, $varColourY if {RGBBlue} > 220 //If it's really high in blue content else Call GetMousePos SetConst MousePosX = $varAddX SetConst MousePosY = $varColourY call RightClick2 Call SetMousePos Delay 100
end
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 if $varDelay = 1 delay 200 end LeftClick //delay 200 SetConst varDelay = 0 Call SetMousePos End Procedure RightClick2 Call GetMousePos MousePos $MousePosX, $MousePosY if $varDelay = 1 delay 200 end RightClick SetConst varDelay = 0 //delay 400 Call SetMousePos End
Procedure GetPixelAtMouse //This was a test Procedure for finding coordinates and values, etc
//SetActiveWindow eGenesis Client
Loop 1
//SetConst testpixel = 0
//LoadRGB {MouseX}, {MouseY} //keys {RGBBlue} keys {MouseX} keys : keys {MouseY} End End -}