v50 Steam/Premium information for editors
- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.
Editing 40d:Macros and keymaps
Jump to navigation
Jump to search
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
You are editing a page for an older version of Dwarf Fortress ("Main" is the current version, not "40d"). Please make sure you intend to do this. If you are here by mistake, see the current page instead.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | Playing Dwarf Fortress means lots of typing. Although the game (as of version v0.27.176.38c) has no internal macro/keymap system, using an external program can save you a great deal of time when dumping, rewalling, designating, and so forth. | |
− | |||
− | Playing Dwarf Fortress means lots of typing. Although the game has no internal macro/keymap system | ||
# Go to [[Utilities#AutoHotKey]] and download AutoHotKey. Installation is simple and the program uses few system resources. | # Go to [[Utilities#AutoHotKey]] and download AutoHotKey. Installation is simple and the program uses few system resources. | ||
Line 10: | Line 8: | ||
Users may experience some issues in getting scripts to work, particularly when using looping scripts when experiencing low frame-rates. | Users may experience some issues in getting scripts to work, particularly when using looping scripts when experiencing low frame-rates. | ||
* If experiencing low frame-rates, try adding delays ("Sleep 100" to pause for 100 milliseconds for example) within loops to allow the interface to keep up. If there are nested loops, sometimes adding a pause at the end of an inner loop is all that is needed to flush the keyboard buffer | * If experiencing low frame-rates, try adding delays ("Sleep 100" to pause for 100 milliseconds for example) within loops to allow the interface to keep up. If there are nested loops, sometimes adding a pause at the end of an inner loop is all that is needed to flush the keyboard buffer | ||
− | |||
* Make sure that Dwarf Fortress maintains focus. IM windows are the enemy! Who needs friends anyhow? You've got Dwarf Fortress. | * Make sure that Dwarf Fortress maintains focus. IM windows are the enemy! Who needs friends anyhow? You've got Dwarf Fortress. | ||
* This may go without saying, but most macros assume standard key-mappings. If you're using non-standard ones, you may have to edit the macro to get it to work. | * This may go without saying, but most macros assume standard key-mappings. If you're using non-standard ones, you may have to edit the macro to get it to work. | ||
* Visiting liaisons can bring up screens that eat keystrokes, throwing a long-looping script out-of-phase with where it expects the game to be. Wait for the farewell screen before running a long script. | * Visiting liaisons can bring up screens that eat keystrokes, throwing a long-looping script out-of-phase with where it expects the game to be. Wait for the farewell screen before running a long script. | ||
* The <B>SendPlay</B> function supports keys that the <B>Send</B> function does not, for example {{key|Shift-Enter}}. According to the AutoHotKey documentation, <B>SendPlay</B> may also be better at preventing dropped keystrokes. | * The <B>SendPlay</B> function supports keys that the <B>Send</B> function does not, for example {{key|Shift-Enter}}. According to the AutoHotKey documentation, <B>SendPlay</B> may also be better at preventing dropped keystrokes. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== AutoHotKey Examples == | == AutoHotKey Examples == | ||
===Dumping=== | ===Dumping=== | ||
− | |||
− | |||
− | |||
− | |||
====Stock Screen Dump==== | ====Stock Screen Dump==== | ||
Taken from an old version of [[User:Jackard|Jackard's user page]]. | Taken from an old version of [[User:Jackard|Jackard's user page]]. | ||
− | To use, first have your | + | To use, first have your bookeeper do enough desk work so you can view individual items in the stocks listing. Then bring it up and press del to quickly mark stuff. To adjust the key repeat rate, edit the KEY_HOLD_MS value in \data\init\init.txt. |
<pre> | <pre> | ||
Line 107: | Line 40: | ||
This script uses a system similar the commands in the designations menu to mark most of the contents of a large area for dumping. [[User:Dukederek|My talk page]] has more detailed instruction. | This script uses a system similar the commands in the designations menu to mark most of the contents of a large area for dumping. [[User:Dukederek|My talk page]] has more detailed instruction. | ||
− | Essentially you need to create two text files with the following titles and content. When playing DF it is safe to have blockdumpinit running constantly as long as you | + | Essentially you need to create two text files with the following titles and content. When playing DF it is safe to have blockdumpinit running constantly as long as you dont plan on using the ctrl-d combination for something else. |
'''blockdumpinit.ahk''' | '''blockdumpinit.ahk''' | ||
Line 349: | Line 282: | ||
SetKeyDelay, 12 ;Key delay, to keep Dwarf Fortress from being overwhelmed. | SetKeyDelay, 12 ;Key delay, to keep Dwarf Fortress from being overwhelmed. | ||
− | + | :Set higher if you get weird results, or lower to get the | |
− | + | :script to run faster | |
SLEEPTIME = 12 ;same thing, only used in the repeated key press loops though | SLEEPTIME = 12 ;same thing, only used in the repeated key press loops though | ||
Line 792: | Line 725: | ||
===Bed Assigning macro=== | ===Bed Assigning macro=== | ||
− | This will assign bedrooms to your | + | This will assign bedrooms to your dwarfs. Press F3 followed by a single digit indicating how many beds to assign. Can repeat the action, as the number of beds assigned is stored in a counter. Room size is default, but easily edited into the script. By [[User:Napsterbater|Napsterbater]]. |
<pre> | <pre> | ||
Line 821: | Line 754: | ||
This macro can read a spreadsheet and designate rooms according to it. [http://www.bay12games.com/forum/index.php?topic=1428.0 Version 1] | This macro can read a spreadsheet and designate rooms according to it. [http://www.bay12games.com/forum/index.php?topic=1428.0 Version 1] | ||
− | Version 2 of this macro apparently only works in versions up to and including 38c | + | Version 2 of this macro apparently only works in versions up to and including 38c <sup>[[verify]]</sup>, and can be found here: [http://www.bay12games.com/forum/index.php?topic=1890.0 Version 2] |
====Fedor's chambered circle==== | ====Fedor's chambered circle==== | ||
Line 924: | Line 857: | ||
</pre> | </pre> | ||
− | === | + | ===Easy Exploration Mining in 2 steps=== |
− | + | This macro will make a 5 row, 11 column UP/DOWN stairway grid (2 empty spaces between each row/column).<br> | |
− | + | Starting point as indicated (row 3, column 11)<br> | |
− | + | '''MUST BE IN DESIGNATION MODE WITH CURSOR AT THE ''<-- START HERE'' LOCATION'''<br> | |
− | + | Link is <ctrl> <windowskey> `<br> | |
+ | Dive is <ctrl> <alt> `<br> | ||
<pre> | <pre> | ||
− | + | Link | |
− | + | X--X--X--X--X--X--X--X--X--X--X | |
− | + | | | | | |
− | + | | | | | |
− | + | X--X--X--X--X--X--X--X--X--X--X | |
− | + | | | | | |
− | + | | | | | |
− | + | X--X--X--X--X--X--X--X--X--X--X <-- start here | |
− | + | | | | | |
− | + | | | | | |
− | + | X--X--X--X--X--X--X--X--X--X--X | |
− | + | | | | | |
− | + | | | | | |
− | + | X--X--X--X--X--X--X--X--X--X--X | |
− | + | </pre> | |
− | + | Filename is ExploreMine-Link.ahk | |
− | + | <pre> | |
+ | ;Link | ||
+ | ^#`:: | ||
− | + | send d | |
− | + | send {Enter} | |
− | + | tehLoop(30,"{NumPadLeft}") | |
− | + | send {Enter} | |
− | + | send {Enter} | |
− | + | tehLoop(6,"{NumPadUp}") | |
− | + | send {Enter} | |
− | + | send {Enter} | |
− | + | tehLoop(30,"{NumPadRight}") | |
− | + | send {Enter} | |
− | + | send {Enter} | |
− | + | tehLoop(12,"{NumPadDown}") | |
− | + | send {Enter} | |
− | send d | + | send {Enter} |
− | send | + | tehLoop(30,"{NumPadLeft}") |
− | + | send {Enter} | |
− | + | send {Enter} | |
− | + | tehLoop(9,"{NumPadUp}") | |
− | + | send {Enter} | |
− | + | send {Enter} | |
− | send | + | tehLoop(30,"{NumPadRight}") |
− | send | + | send {Enter} |
− | + | tehLoop(6,"{NumPadDown}") | |
− | + | send {Enter} | |
− | + | tehLoop(30,"{NumPadLeft}") | |
− | + | send {Enter} | |
− | + | tehLoop(3,"{NumPadDown}") | |
− | + | tehLoop(15,"{NumPadRight}") | |
− | send | + | send {Enter} |
− | send | + | tehLoop(12,"{NumPadUp}") |
− | + | send {Enter} | |
− | + | tehLoop(15,"{NumPadLeft}") | |
− | send | ||
− | send | ||
− | |||
− | |||
− | send | ||
− | send | ||
− | |||
− | |||
− | send | ||
− | send | ||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | send | ||
− | |||
− | send | ||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | send | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | send | ||
− | |||
− | send | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | send | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | send | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | |||
− | { | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | send i | |
− | + | send {Enter}{Enter} | |
− | + | tehOtherLoop("{NumPadDown}") | |
− | + | tehLoop(3,"{NumPadRight}") | |
− | + | send {Enter}{Enter} | |
− | send | + | tehOtherLoop("{NumPadUp}") |
− | + | tehLoop(3,"{NumPadRight}") | |
− | send | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | send | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | send {Enter}{Enter} | |
− | + | tehOtherLoop("{NumPadDown}") | |
− | send | + | tehLoop(3,"{NumPadRight}") |
− | send | + | send {Enter}{Enter} |
− | + | tehOtherLoop("{NumPadUp}") | |
− | } | + | tehLoop(3,"{NumPadRight}") |
− | + | send {Enter}{Enter} | |
− | + | tehOtherLoop("{NumPadDown}") | |
− | send | + | tehLoop(3,"{NumPadRight}") |
− | + | send {Enter}{Enter} | |
− | + | tehOtherLoop("{NumPadUp}") | |
+ | tehLoop(3,"{NumPadRight}") | ||
− | + | send {Enter}{Enter} | |
− | + | tehOtherLoop("{NumPadDown}") | |
+ | tehLoop(3,"{NumPadRight}") | ||
+ | send {Enter}{Enter} | ||
+ | tehOtherLoop("{NumPadUp}") | ||
+ | tehLoop(3,"{NumPadRight}") | ||
− | + | send {Enter}{Enter} | |
+ | tehOtherLoop("{NumPadDown}") | ||
+ | tehLoop(3,"{NumPadRight}") | ||
+ | send {Enter}{Enter} | ||
+ | tehOtherLoop("{NumPadUp}") | ||
+ | tehLoop(3,"{NumPadRight}") | ||
− | + | send {Enter}{Enter} | |
− | + | tehOtherLoop("{NumPadDown}") | |
− | + | tehLoop(6,"{NumPadUp}") | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | tehLoop(tehTimes,tehDir) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | loop | |
− | + | { | |
− | + | if tehTimes <= 0 | |
− | + | { | |
− | + | break | |
− | + | } | |
− | + | send %tehDir% | |
− | + | tehTimes-- | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | tehOtherLoop(tehOtherDir) | |
{ | { | ||
− | + | loop 4 | |
− | + | { | |
− | + | tehLoop(3,tehOtherDir) | |
− | + | send {Enter}{Enter} | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
− | + | Dive | |
− | X | + | X X X X X X X X X X X |
− | + | ||
− | + | ||
− | X | + | X X X X X X X X X X X |
− | + | ||
− | + | ||
− | X | + | X X X X X X X X X X X <-- start here |
− | + | ||
− | + | ||
− | X | + | X X X X X X X X X X X |
− | + | ||
− | + | ||
− | X | + | X X X X X X X X X X X |
− | </pre> | + | </pre> |
− | Filename is ExploreMine- | + | |
− | <pre> | + | Filename is ExploreMine-Dive.ahk |
− | ; | + | <pre> |
− | ^ | + | ;Dive |
− | + | ^!`:: | |
− | |||
− | |||
tehLoop(30,"{NumPadLeft}") | tehLoop(30,"{NumPadLeft}") | ||
− | |||
− | |||
tehLoop(6,"{NumPadUp}") | tehLoop(6,"{NumPadUp}") | ||
− | + | ||
− | + | send i | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | send i | ||
send {Enter}{Enter} | send {Enter}{Enter} | ||
tehOtherLoop("{NumPadDown}") | tehOtherLoop("{NumPadDown}") | ||
Line 1,405: | Line 1,067: | ||
} | } | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
+ | </pre> | ||
− | + | ===Interface Enhancement Scripts=== | |
− | + | ====The MOUSE control==== | |
+ | For unrivaled mouse control in DF try [http://www.dwarffortresswiki.net/index.php/User:Digger this DF Mouse script] | ||
+ | ====Tile Counter or Scrolling Accelerator==== | ||
+ | Lack of reference plus slow scroll speed make planning digging area frustrating,so here is the script that shows coordinate and speed scrolling up. | ||
+ | [http://www.dwarffortresswiki.net/index.php/User:Daedalusai ShowXY] | ||
− | + | ===4-Pour Water Creation script=== | |
− | + | For Automating creation of water using Gibbeds Tweak. | |
− | |||
− | |||
− | |||
− | |||
<pre> | <pre> | ||
− | ; | + | ; |
− | + | ; 4-pour.ahk | |
− | + | ; Dwarf fortress water creation script. | |
− | + | ; | |
+ | ;Use this script in conjunction with Gibbeds Dwarf Fortress Tweak to create endless amounts of water.; | ||
+ | ; | ||
+ | ;Directions | ||
+ | ; | ||
+ | ;1. Have DF running and position the screen such that when you press "K" the X will appear where you | ||
− | + | ;want the water to appear. | |
− | + | ;2. Have Gbbed's Dwarf Fortress tweak running in the background (with the proper process selected) | |
− | + | ;3. run the 4-pour script | |
− | + | ;4. press alt-p to get Pouring | |
− | + | ; | |
− | + | ;The script will then begin a cycle that moves the cursor around in a little 2x2 square editing each | |
− | |||
− | + | ;tile to have 7/7 of water, it then pauses for a half a seond to let the water flow a bit, and repeats. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | ;It does this until you.. | |
− | + | ; | |
− | + | ;5. press and hold <shift> to stop | |
− | + | ; | |
− | + | ;As always, save before you experiment with this | |
− | + | ;I hold no responsibility for what this script ends up doing to your dwarves/fortress/computer/carpet | |
+ | ;Feel free to clean it up, make it more usable, whatever | ||
+ | ; | ||
+ | ; | ||
− | + | #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. | |
− | + | SendMode Input ; Recommended for new scripts due to its superior speed and reliability. | |
− | + | SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. | |
− | |||
− | |||
− | |||
− | + | !p:: | |
− | + | loop | |
− | |||
− | |||
− | |||
− | |||
− | + | { | |
− | + | GetKeyState, state, Shift | |
− | + | if state = D | |
+ | Break | ||
− | + | IfWinActive Dwarf Fortress | |
{ | { | ||
− | + | WinActivate | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | send k | ||
+ | sleep 100 | ||
+ | send {NumpadRight} | ||
− | + | IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0] | |
{ | { | ||
− | + | WinActivate | |
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | click 38, 184, 2 | ||
+ | sleep 100 | ||
− | + | IfWinExist Tile Edit | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | WinActivate | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
+ | sleep 100 | ||
+ | click 63, 448 | ||
+ | sleep 100 | ||
+ | click 106, 70 | ||
+ | sleep 100 | ||
+ | click 207, 255 | ||
+ | sleep 100 | ||
+ | send {backspace} | ||
+ | sleep 100 | ||
+ | send 7 | ||
+ | sleep 100 | ||
+ | click 348, 449 | ||
+ | sleep 100 | ||
+ | IfWinExist Dwarf Fortress | ||
+ | { | ||
+ | WinActivate | ||
+ | } | ||
+ | sleep 100 | ||
+ | send {NumpadDown} | ||
− | + | IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0] | |
− | + | { | |
− | + | WinActivate | |
− | + | } | |
− | + | ||
− | + | click 38, 184, 2 | |
− | + | sleep 100 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | IfWinExist Tile Edit | |
{ | { | ||
− | + | WinActivate | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | + | sleep 100 | |
− | + | click 63, 448 | |
− | { | + | sleep 100 |
− | + | click 106, 70 | |
− | + | sleep 100 | |
− | + | click 207, 255 | |
− | + | sleep 100 | |
− | + | send {backspace} | |
− | + | sleep 100 | |
− | { | + | send 7 |
− | + | sleep 100 | |
− | } | + | click 348, 449 |
− | + | sleep 100 | |
+ | IfWinExist Dwarf Fortress | ||
+ | { | ||
+ | WinActivate | ||
+ | } | ||
+ | sleep 100 | ||
+ | send {NumpadLeft} | ||
− | + | IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0] | |
+ | { | ||
+ | WinActivate | ||
+ | } | ||
− | + | click 38, 184, 2 | |
− | + | sleep 100 | |
− | + | IfWinExist Tile Edit | |
− | + | { | |
− | + | WinActivate | |
− | + | } | |
− | + | sleep 100 | |
− | + | click 63, 448 | |
− | + | sleep 100 | |
− | + | click 106, 70 | |
− | + | sleep 100 | |
− | + | click 207, 255 | |
− | + | sleep 100 | |
− | + | send {backspace} | |
− | + | sleep 100 | |
− | + | send 7 | |
− | + | sleep 100 | |
− | + | click 348, 449 | |
− | + | sleep 100 | |
− | + | IfWinExist Dwarf Fortress | |
− | + | { | |
− | + | WinActivate | |
− | + | } | |
− | + | sleep 100 | |
− | + | send {NumpadUp} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | IfWinExist Gibbed's Dwarf Fortress Tweak [1.2.0.0] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{ | { | ||
− | + | WinActivate | |
− | + | } | |
− | |||
− | |||
− | + | click 38, 184, 2 | |
− | + | sleep 100 | |
− | + | ||
− | + | IfWinExist Tile Edit | |
− | + | { | |
− | + | WinActivate | |
− | + | } | |
− | + | sleep 100 | |
− | + | click 63, 448 | |
− | + | sleep 100 | |
− | + | click 106, 70 | |
− | + | sleep 100 | |
− | + | click 207, 255 | |
− | + | sleep 100 | |
− | + | send {backspace} | |
− | + | sleep 100 | |
− | + | send 7 | |
− | + | sleep 100 | |
− | + | click 348, 449 | |
− | + | sleep 100 | |
− | + | IfWinExist Dwarf Fortress | |
− | + | { | |
− | + | WinActivate | |
− | + | } | |
− | + | send {space} | |
− | + | sleep 800 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | </pre> | |
− | |||
− | ==== | + | ===Tesselated Apartments Builder=== |
− | |||
− | |||
− | + | This one is another tesselated apartments script, with some larger areas added. Credit for layout to GnomeChomsky. | |
− | |||
<pre> | <pre> | ||
; | ; | ||
− | ; | + | ; TessApts.ahk |
− | ; | + | ; Start script while in 'dig' mode with cursor on desired position of leftmost staircase |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
; | ; | ||
+ | ; CTRL+G : Central room, 8 apartments (necessary on at least one z-level) | ||
+ | ; ALT+G : No central room, 16 apartments | ||
+ | ; CTRL+ALT+G : Four "central room" layouts connected in center (28 apartments) | ||
+ | ; CTRL+SHIFT+G : Four "16 apartment" layouts, unconnected in center | ||
; | ; | ||
+ | !g:: | ||
+ | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | ||
+ | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | ||
+ | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}114444444 | ||
+ | return | ||
+ | ^g:: | ||
+ | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | ||
+ | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | ||
+ | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER} | ||
+ | Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER} | ||
+ | return | ||
+ | !^g:: | ||
+ | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | ||
+ | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | ||
+ | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER} | ||
+ | Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}88899999999 | ||
+ | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | ||
+ | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | ||
+ | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER} | ||
+ | Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}3333332 | ||
+ | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | ||
+ | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | ||
+ | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER} | ||
+ | Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER}111114444444 | ||
+ | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | ||
+ | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | ||
+ | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | ||
+ | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER} | ||
+ | Send 7444{ENTER}{ENTER}1114{ENTER}{ENTER}3332{ENTER}{ENTER}9996{ENTER}{ENTER}788{ENTER}11111{ENTER} | ||
+ | Send 9988888888{ENTER}999{ENTER}+444444 | ||
+ | return | ||
− | + | +^g:: | |
− | + | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | |
− | + | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | |
− | + | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | |
− | + | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | |
− | + | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}888889 | |
− | + | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | |
− | { | + | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} |
− | + | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | |
− | + | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | |
− | + | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}+221 | |
− | + | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} | |
− | + | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | |
− | + | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | |
− | { | + | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} |
− | + | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}+1+46 | |
− | } | + | Send i{ENTER}{ENTER}33332{ENTER}{ENTER}99996{ENTER}{ENTER}77778{ENTER}{ENTER} |
− | + | Send d7{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | |
− | + | Send 111{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER} | |
− | + | Send 333333{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}32{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER} | |
− | + | Send 99999988{ENTER}66{ENTER}2{ENTER}{ENTER}14{ENTER}22{ENTER}4{ENTER}{ENTER}78{ENTER}44{ENTER}8{ENTER}{ENTER}96{ENTER}88{ENTER}6{ENTER}{ENTER}+71144444 | |
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | { | ||
− | |||
− | } | ||
− | |||
− | |||
− | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Send | ||
− | Send | ||
− | Send | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Game_Interface FAQ}} | {{Game_Interface FAQ}} | ||
[[Category:ahk scripts]] | [[Category:ahk scripts]] |