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 "User:Jimbly/Macros"
(22 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
Get it here: http://bigscreensmallgames.com/ATITD/VeggieTalesInstaller.exe | Get it here: http://bigscreensmallgames.com/ATITD/VeggieTalesInstaller.exe | ||
+ | |||
+ | LUA Reference: http://www.lua.org/manual/5.1/ (Ignore the C API section) | ||
General usage info - to come! | General usage info - to come! | ||
− | == Specific Macros == | + | == Notes on Specific Macros == |
− | + | All of these are available by installing VeggieTales (above), this page just lists information on these macros. Feel free to edit the descriptions to be more useful as needed (e.g. if you found that you needed to tweak some value to get it to work right, add that info here!). | |
In general, all macros, when first started, will prompt you for some initial parameters and then ask you to put the ATITD window in focus, and then press shift (may need to hold for a moment). You can also use this for other programs (or, for instance, have Photoshop open with a bunch of screenshots to toggle between, for testing purposes). | In general, all macros, when first started, will prompt you for some initial parameters and then ask you to put the ATITD window in focus, and then press shift (may need to hold for a moment). You can also use this for other programs (or, for instance, have Photoshop open with a bunch of screenshots to toggle between, for testing purposes). | ||
− | Also, generally, a macro will cancel if it detects you are holding Ctrl+Shift, and pause with Alt+Shift (some may have slightly different behaviors). | + | Also, generally, a macro will cancel if it detects you are holding Ctrl+Shift, and pause with Alt+Shift (some may have slightly different behaviors, they should all indicate on-screen which keys will do what). |
+ | |||
+ | Terms: | ||
+ | * '''''GhostMouse''''' - Mouse events are sent entirely without moving your cursor. This means that: | ||
+ | ** You can freely use your mouse cursor (the only exception being do not click and drag within ATITD, because the mouse will not release where you were expecting). | ||
+ | ** ATITD does not need to be in the foreground. You can have other programs/chat programs/web browser/etc active and open and in use while this macro is running. | ||
+ | ** You ''do'' still need to have the ATITD window visible if the macro also requires '''ScreenScrape''' (e.g. for the quarry macro, at least the pinned quarry window and your Skills window need be visible. If the macro does not require ScreenScrape, then you can have the ATITD window ''completely obscured'' and it will still work fine (e.g. wood macro after initial setup)! | ||
+ | ** If the macro does *not* use GhostMouse, then you must not touch your mouse cursor at all while the macro is running (though you can pause and resume, which will work for most macros). | ||
+ | * '''''ScreenScrape''''' - Macro requires reading of the screen - make sure to keep the screen visible | ||
+ | |||
+ | === Thistle Mode === | ||
+ | |||
+ | Details found at [[User:Jimbly/AutomaticThistles]] | ||
=== Carrot Mode === | === Carrot Mode === | ||
− | === | + | This will plant up to 4 carrots at a time, water them, and harvest them, while refilling your water jugs from a nearby, pinned aqueduct. Currently some settings may need to be tweaked (apparently on some graphics cards the ATITD graphics render differently enough to throw off some of the image recognition), specifically the thresholds which determine whether a carrot patch has grown to the next size or not. If the program is often over-watering, observe the sizes reported for the carrots at each stage, and update config.txt appropriately. The sizes are the threshold it has to pass to be detected as the next size, so if an originally planted carrot is 75px, and when it grows it jumps up to 125px, you want the first size value set to around 100px (the middle between the two). |
+ | |||
+ | If the program encounters a situation it cannot resolve (it knows how to clean up after itself in some cases, like over-watering ;), it will play a sound to alert you that your intervention is required. | ||
+ | |||
+ | === chem_helper.lua === | ||
+ | |||
+ | Choose your Compound Type (Ra, Osiris, etc), your requirements, click Solve! Then, assemble your 5 ingredients, it shows a list of ingredients used in all recipes at the bottom, and assembles a list on the right side as you click on them to add them (each time filtering the list down to only those ingredients compatible with the ones you have already selected). | ||
+ | |||
+ | Screenshots and more explanation at [[User:Jimbly/Macros/ChemHelper]] | ||
+ | |||
+ | === flax.lua === | ||
+ | |||
+ | '''''ScreenScrape''''' | ||
+ | |||
+ | Must have ''Options|One-click|Enabled hotkeys on flax'' '''disabled'''. | ||
+ | |||
+ | Flax macro specifically designed for planting 6x6 arrays of Tedra #660 flax (requires exactly one weeding, no watering). Macro and image could be modified to handle other configurations. Edit the script if you cannot handle a 6x6 grid of flax at once (probably need 3 Dexterity). | ||
+ | |||
+ | If you can carry 2500 (3 STR and 3 DEX and 1000 base), then grab 216 flax seeds, have it run 6 passes, come back in a few minutes and you'll have 2160 flax. | ||
+ | |||
+ | === flax_seeds.lua === | ||
+ | |||
+ | Same as above, but for gathering seeds, not flax. | ||
+ | |||
+ | === multi_click.lua === | ||
+ | |||
+ | '''''GhostMouse''''' '''''ScreenScrape''''' | ||
+ | |||
+ | Allows clicking of any number of identical buttons anywhere on your screen. This has some preset buttons to look for (e.g. "This is" is great for clicking to refresh all pinned windows, or "unpin" to dismiss all pinned windows), but you can also define custom buttons to look for on the fly - choose "Custom", and you will see a thumbnail of what part of the image it will search for (generally the first few letters of the text on the button is fine), and then after that you can click "Last custom" to search for and click all of these buttons again. | ||
+ | |||
+ | Example usage: Open up 20 Carpentry Shop windows, pin them, make sure they don't overlap much. Click "custom" and put the mouse over "plane a piece of wood", select that (press shift as directed in the on-screen instructions), and it will plane 20 pieces of wood, then choose "ThisIs.png" to refresh all the windows, and then click "Last custom" again, and you'll plane another 20 pieces of wood. Repeat to your heart's content! | ||
+ | |||
+ | === onions.lua === | ||
− | + | '''''ScreenScrape''''' | |
− | + | Grows 3x3 grids of onions, expects a ''fill jugs with water'' icon visible. | |
− | + | === quarry.lua - Automated Quarrying! === | |
− | + | '''''GhostMouse''''' '''''ScreenScrape''''' | |
+ | |||
+ | Works for 2-4 people. Not all people need to be running it (though ''much'' easier if they are!). Uses the "alphabetical" method of choosing a direction to work. Testing so far shows it can easily keep a high Endurance value constantly red on all workers, yielding about 1 marble/stone removed per minute at END of 22. | ||
+ | |||
+ | You can run multiple copies of VeggieTales and multiple copies of this script on the same computer (tile your ATITD windows so they're both visible, launch two VeggieTales, start one of them at a time). | ||
+ | |||
+ | If it gets stuck, someone can manually kick it back into action by intentionally tripping the quarry (just clicking the one your client should have clicked) and it should then recover. This has only been needed once while testing. | ||
=== raeli_color_mon.lua === | === raeli_color_mon.lua === | ||
− | Automatically saves a screenshot, with timestamp, every time a specified pixel changes color. | + | '''''ScreenScrape''''' |
+ | |||
+ | Automatically saves a screenshot, with timestamp, every time a specified pixel changes color. When first burning a [[Raeli Oven]], this will give you about 50-100 screenshots you can very quickly toggle through to get an accurate list of what colors are generated at what times. | ||
+ | |||
+ | === sand_mine.lua === | ||
+ | |||
+ | '''''GhostMouse''''' '''''ScreenScrape''''' | ||
+ | |||
+ | Repeated works a sand mine, repairs it when needed, and continues (just have enough materials for as many repairs as you want to do). | ||
+ | |||
+ | === single_click_stat_mon.lua === | ||
+ | |||
+ | '''''GhostMouse''''' '''''ScreenScrape''''' | ||
+ | |||
+ | Clicks a single button over and over again as long as your stats are not red (monitors all stats). You need to mouse over the specific button you wish to press when setting up this macro. | ||
+ | |||
+ | === timer.lua === | ||
+ | |||
+ | A simple timer that will play a sound every specified number of seconds (decimals are OK, e.g. 2.5 seconds) | ||
+ | |||
+ | === UITest.lua === | ||
+ | |||
+ | A couple examples of UI functions. | ||
+ | |||
+ | === wood.lua === | ||
+ | |||
+ | '''''GhostMouse''''' | ||
+ | |||
+ | Repeatedly harvests wood from a set of trees. Pin any number of tree windows (there are 9 Bottle Trees near the SA CS that work well), they can be anywhere on your screen, but the macro searches the screen top to bottom (but you can have multiple side by side as long as one is slightly lower than the one next to it, it will work right). These windows need to be arranged so that clicking on them in order forms a "cycle", you should be able to click on one, then the next, then the next, and you should be able to get from one tree to the next without having to move, and then back to the first again (after a minute to let the tree heal) (you may need to experiment with ordering them, since the way ATITD determines "This is too far away" is not exactly clear ;). | ||
+ | |||
+ | This should be run '''without''' a hatchet and with high perception. Hatchets do not improve the wood per tree per minute, since they increase the time it takes to regenerate, while only giving you one bonus from your perception. |
Latest revision as of 03:19, 17 June 2010
All of my macros and automation are written for VeggieTales - my LUA-based automation/macro engine. I was fed up with issues with ACTool and AutoHotKey, so I did what any self-respecting engineer would do - re-invent the wheel!
VeggieTales
Get it here: http://bigscreensmallgames.com/ATITD/VeggieTalesInstaller.exe
LUA Reference: http://www.lua.org/manual/5.1/ (Ignore the C API section)
General usage info - to come!
Notes on Specific Macros
All of these are available by installing VeggieTales (above), this page just lists information on these macros. Feel free to edit the descriptions to be more useful as needed (e.g. if you found that you needed to tweak some value to get it to work right, add that info here!).
In general, all macros, when first started, will prompt you for some initial parameters and then ask you to put the ATITD window in focus, and then press shift (may need to hold for a moment). You can also use this for other programs (or, for instance, have Photoshop open with a bunch of screenshots to toggle between, for testing purposes).
Also, generally, a macro will cancel if it detects you are holding Ctrl+Shift, and pause with Alt+Shift (some may have slightly different behaviors, they should all indicate on-screen which keys will do what).
Terms:
- GhostMouse - Mouse events are sent entirely without moving your cursor. This means that:
- You can freely use your mouse cursor (the only exception being do not click and drag within ATITD, because the mouse will not release where you were expecting).
- ATITD does not need to be in the foreground. You can have other programs/chat programs/web browser/etc active and open and in use while this macro is running.
- You do still need to have the ATITD window visible if the macro also requires ScreenScrape (e.g. for the quarry macro, at least the pinned quarry window and your Skills window need be visible. If the macro does not require ScreenScrape, then you can have the ATITD window completely obscured and it will still work fine (e.g. wood macro after initial setup)!
- If the macro does *not* use GhostMouse, then you must not touch your mouse cursor at all while the macro is running (though you can pause and resume, which will work for most macros).
- ScreenScrape - Macro requires reading of the screen - make sure to keep the screen visible
Thistle Mode
Details found at User:Jimbly/AutomaticThistles
Carrot Mode
This will plant up to 4 carrots at a time, water them, and harvest them, while refilling your water jugs from a nearby, pinned aqueduct. Currently some settings may need to be tweaked (apparently on some graphics cards the ATITD graphics render differently enough to throw off some of the image recognition), specifically the thresholds which determine whether a carrot patch has grown to the next size or not. If the program is often over-watering, observe the sizes reported for the carrots at each stage, and update config.txt appropriately. The sizes are the threshold it has to pass to be detected as the next size, so if an originally planted carrot is 75px, and when it grows it jumps up to 125px, you want the first size value set to around 100px (the middle between the two).
If the program encounters a situation it cannot resolve (it knows how to clean up after itself in some cases, like over-watering ;), it will play a sound to alert you that your intervention is required.
chem_helper.lua
Choose your Compound Type (Ra, Osiris, etc), your requirements, click Solve! Then, assemble your 5 ingredients, it shows a list of ingredients used in all recipes at the bottom, and assembles a list on the right side as you click on them to add them (each time filtering the list down to only those ingredients compatible with the ones you have already selected).
Screenshots and more explanation at User:Jimbly/Macros/ChemHelper
flax.lua
ScreenScrape
Must have Options|One-click|Enabled hotkeys on flax disabled.
Flax macro specifically designed for planting 6x6 arrays of Tedra #660 flax (requires exactly one weeding, no watering). Macro and image could be modified to handle other configurations. Edit the script if you cannot handle a 6x6 grid of flax at once (probably need 3 Dexterity).
If you can carry 2500 (3 STR and 3 DEX and 1000 base), then grab 216 flax seeds, have it run 6 passes, come back in a few minutes and you'll have 2160 flax.
flax_seeds.lua
Same as above, but for gathering seeds, not flax.
multi_click.lua
GhostMouse ScreenScrape
Allows clicking of any number of identical buttons anywhere on your screen. This has some preset buttons to look for (e.g. "This is" is great for clicking to refresh all pinned windows, or "unpin" to dismiss all pinned windows), but you can also define custom buttons to look for on the fly - choose "Custom", and you will see a thumbnail of what part of the image it will search for (generally the first few letters of the text on the button is fine), and then after that you can click "Last custom" to search for and click all of these buttons again.
Example usage: Open up 20 Carpentry Shop windows, pin them, make sure they don't overlap much. Click "custom" and put the mouse over "plane a piece of wood", select that (press shift as directed in the on-screen instructions), and it will plane 20 pieces of wood, then choose "ThisIs.png" to refresh all the windows, and then click "Last custom" again, and you'll plane another 20 pieces of wood. Repeat to your heart's content!
onions.lua
ScreenScrape
Grows 3x3 grids of onions, expects a fill jugs with water icon visible.
quarry.lua - Automated Quarrying!
GhostMouse ScreenScrape
Works for 2-4 people. Not all people need to be running it (though much easier if they are!). Uses the "alphabetical" method of choosing a direction to work. Testing so far shows it can easily keep a high Endurance value constantly red on all workers, yielding about 1 marble/stone removed per minute at END of 22.
You can run multiple copies of VeggieTales and multiple copies of this script on the same computer (tile your ATITD windows so they're both visible, launch two VeggieTales, start one of them at a time).
If it gets stuck, someone can manually kick it back into action by intentionally tripping the quarry (just clicking the one your client should have clicked) and it should then recover. This has only been needed once while testing.
raeli_color_mon.lua
ScreenScrape
Automatically saves a screenshot, with timestamp, every time a specified pixel changes color. When first burning a Raeli Oven, this will give you about 50-100 screenshots you can very quickly toggle through to get an accurate list of what colors are generated at what times.
sand_mine.lua
GhostMouse ScreenScrape
Repeated works a sand mine, repairs it when needed, and continues (just have enough materials for as many repairs as you want to do).
single_click_stat_mon.lua
GhostMouse ScreenScrape
Clicks a single button over and over again as long as your stats are not red (monitors all stats). You need to mouse over the specific button you wish to press when setting up this macro.
timer.lua
A simple timer that will play a sound every specified number of seconds (decimals are OK, e.g. 2.5 seconds)
UITest.lua
A couple examples of UI functions.
wood.lua
GhostMouse
Repeatedly harvests wood from a set of trees. Pin any number of tree windows (there are 9 Bottle Trees near the SA CS that work well), they can be anywhere on your screen, but the macro searches the screen top to bottom (but you can have multiple side by side as long as one is slightly lower than the one next to it, it will work right). These windows need to be arranged so that clicking on them in order forms a "cycle", you should be able to click on one, then the next, then the next, and you should be able to get from one tree to the next without having to move, and then back to the first again (after a minute to let the tree heal) (you may need to experiment with ordering them, since the way ATITD determines "This is too far away" is not exactly clear ;).
This should be run without a hatchet and with high perception. Hatchets do not improve the wood per tree per minute, since they increase the time it takes to regenerate, while only giving you one bonus from your perception.