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 Talk:Utilities
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: | ||
− | + | == External Utilities == | |
+ | I thinking any Utilities that not made specifically for Dwarf fortress should put together at bottom which I have done. My question should we mark area with header say External utilities? [[User:Omagaalpha|Omagaalpha]] 08:22, 14 February 2008 (EST) | ||
+ | == AutoHotKey == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Should autohotkey be added as a utility tool for dwarf fortress? I know a few forum users have used it to do repetitive tasks like room designations, maybe it could have its own page and a few dwarf fortress specific script?--[[User:Thehunterunseen|Thehunterunseen]] 20:43, 31 October 2007 (EDT) | Should autohotkey be added as a utility tool for dwarf fortress? I know a few forum users have used it to do repetitive tasks like room designations, maybe it could have its own page and a few dwarf fortress specific script?--[[User:Thehunterunseen|Thehunterunseen]] 20:43, 31 October 2007 (EDT) | ||
Line 40: | Line 30: | ||
::::::AHK does tend to do wierd stuff in DF, but most of it is predictable. A lot of wierd errors that make no sense can be fixed by explicitely telling the script to focus on the Dwarf Fortress window, as well as generous Sleep statements. I found while rewalling a 30x30 outline, sleep 100 worked fine for the first two sides but posted about half of the second two. Sleep 150 placed the second two somewhat erraticly. Sleep 200 got the second two just fine. --[[User:Knivesu|Knivesu]] 10:22, 23 December 2007 (EST) | ::::::AHK does tend to do wierd stuff in DF, but most of it is predictable. A lot of wierd errors that make no sense can be fixed by explicitely telling the script to focus on the Dwarf Fortress window, as well as generous Sleep statements. I found while rewalling a 30x30 outline, sleep 100 worked fine for the first two sides but posted about half of the second two. Sleep 150 placed the second two somewhat erraticly. Sleep 200 got the second two just fine. --[[User:Knivesu|Knivesu]] 10:22, 23 December 2007 (EST) | ||
− | + | == Dwarf Foreman == | |
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | : | + | :Foreman is looking at the wrong address for the units... which is not a good sign, since I've seen it in the address it seems to be looking at. I've also seen it bounce around. Definitely not a good sign if the list location isn't static. Or we're just looking at the wrong one completely. --[[User:AzureLightning|AzureLightning]] |
− | + | It's pretty easy to find the addresses for this for new versions. Running the program in the directory with the new version gives you the check= value, and the others are moderately easy to suss. Also, I don't know exactly how it works or why it works, but from C->D->E start and pos were incremented 0x1000 each version, so laziness dictates trying that in future. [[User:Qalnor|Qalnor]] 16:37, 9 December 2007 (EST) | |
− | ==== | + | == Yourfilehost == |
− | |||
− | |||
− | |||
− | |||
− | + | Yourfilehost.com has kind of a lousy reputation, and I can confirm it's blocked on certain college networks. Could someone upload these utilities to a more reputable host? -- Mzbundifund 15:55, 04 November 2007 (EDT) | |
− | + | : Such as? --[[User:Rick|Rick]] 18:03, 4 November 2007 (EST) | |
− | + | :: Megaupload, rapidshare, filefactory, you pick one --[[User:Digger|Digger]] 17:40, 24 February 2008 (EST) | |
− | + | :::Uh, you know there is a special site for uploading DF files now, right? It's linked on the main page. Screw those other guys. --[[User:Jackard|Jackard]] 17:53, 24 February 2008 (EST) | |
− | + | ::::I say we scrap this section, then. --[[User:Digger|Digger]] 18:28, 24 February 2008 (EST) | |
− | |||
− | |||
− | == | + | ==heal.exe== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | heal.exe does not regrow missing limbs. However, "heal -hurt" on the command line brings missing limbs to red status, and "heal" thereafter restores the being to full health. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | I propose a -regrow parameter so we don't have to do this workaround, since if it's possible to bring missing limbs from dark grey to red status it's also possible to grow them back. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Also, when using the -hurt parameter, it still says "059E7210 had 31 body parts '''healed'''", when it should probably say "wounded". --[[User:JT|JT]] 17:58, 10 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | : Hmm, if it does heal missing limbs then I just need to change my logic slightly for healing. --[[User:Rick|Rick]] 19:01, 10 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | ==reveal.exe== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | From what I've tested, reveal for 33a does not work for 33b. --[[User:Sparksol|Sparksol]] 13:39, 17 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | :Correct. It uses hardcoded offsets, which will change every time new code is added to DF. | |
− | + | :I have a version hacked for .33b, which I will not distribute out of respect for Rick. | |
− | + | :However, if you are skilled with a hex editor, here's what to do: change the first 5 occurances of the pattern 85 45 01 to the pattern 95 45 01. (The 6th occurance of the pattern is a coincidental match and should not be changed.) Then change the pattern 8C 33 89 00 to the pattern 8C 43 89 00.<br/>—[[User:0x517A5D|0x517A5D]] 02:31, 19 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | </ | ||
− | + | :Actually, as it happens, it looks like Rick has produced updated versions of his tools for .33b. They were built on the 16th. However he hasn't linked to them. I don't know why. The URL they're at requests that no links be made to them, so I'm not going to tell you. Sorry, you'll just have to do the hexedit.<br/>—[[User:0x517A5D|0x517A5D]] 02:45, 19 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | + | :I just havn't mirrored them yet, that's all. --[[User:Rick|Rick]] 03:10, 19 November 2007 (EST) | |
− | < | + | ::Hey, I'm curious why the file sizes ballooned. Reveal went from 52k to 101k, a doubling in size. Heal grew even more. Maybe you didn't strip debugging info?<br/>—[[User:0x517A5D|0x517A5D]] 15:42, 19 November 2007 (EST) |
− | + | :::Usage of std libraries mostly. I made a library for working with DF so I wouldn't have to keep duplicating code through projects, and when writing it I figured I might as well make it more friendly for me to code in, hence usage of std:: stuff. --[[User:Rick|Rick]] 19:00, 19 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | + | :Whenever I try to open reveal.exe, the window will open up for a millisecond and then immedietely close. Is this a problem with the program or my windows? I am assuming its windows since everyone else seems to be able to use it. Has anyone else had this problem?--[[User:Varsashi|Varsashi]] 17:59, 26 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | + | ::It hasn't been updated to work with 33c, and doesn't. Hopefully it will be updated soon. If you're using 33b, it should open and close quickly but reveal all allocated squares. To allocate all squares for revealing, I'll repeat the advice I've seen elsewhere: go to the lowest level and designate the entire level for digging, then remove the dig designation and run the reveal utility. --[[User:Janus|Janus]] 20:08, 26 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | So how do people feel about deleting this section, and probably the heal.exe section above too?<br/>—[[User:0x517A5D|0x517A5D]] 00:56, 23 December 2007 (EST) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | ==== | + | ==How to use warp.exe?== |
− | < | + | How do you use warp.exe? There's no information on how to use these on the page.--[[User:Demosthenes|Demosthenes]] 02:10, 21 November 2007 (EST) |
− | + | : <code>warp.exe</code> by itself will list your current cursor position. After you have the position you want to warp a creature to, you do <code>warp.exe <x> <y> <z></code> as arguments, and it will warp the selected creature (selected with 'V'iew) to that destination, if it can. --[[User:Rick|Rick]] 18:10, 21 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | </ | ||
− | ==== | + | ==StartProfile== |
− | < | + | Perhaps, I don't understand how to use this correctly. I'm using 33e, and the StartProfile linked in the Utils section. I'm supposed to use this util at the Prepare for the Journey screen, correct? I tried testing the export function with the first dwarf, with no skills assigned. startprofile.exe -x 0 test.txt What I got back was:<br/> |
− | + | <code> | |
− | + | Mining: 1348403210<br/> | |
− | + | Wood Cutter: 1565676876<br/> | |
− | + | Carpenter: 3801123<br/> | |
− | </ | + | Engraving: 34079120<br/> |
+ | Record Keepe: 2293770<br/> | ||
+ | Liar: 34341293<br/> | ||
+ | Intimidator: 16843009<br/> | ||
+ | Conversationalist: 16843009<br/> | ||
+ | Comedian: 16843009<br/> | ||
+ | Flatterer: 16843009<br/> | ||
+ | Consoler: 16843009<br/> | ||
+ | Pacifier: 16843009<br/> | ||
+ | </code> | ||
+ | When I try to set a dwarf's skills using StartProfile I end up with huge amounts of either negative or positive points available, with no changes being made to the dwarf's skills. <br/ >--[[User:Stu72|Stu72]] 09:23, 11 December 2007 (EST) | ||
+ | : The offset for the skills must have changed. I guess I should've actually checked that, and not have assumed that just because the other values were correct, the skills were still correct. I'll check it out and post the appropriate fix. -- [[User:Jifodus|Jifodus]] | ||
+ | : The appropriate fix is redownloading it, when I hex edited the exe I messed it up field. -- [[User:Jifodus|Jifodus]] | ||
+ | :: Thanks, works beautifully. It's a terrific time saver. --[[User:Stu72|Stu72]] 15:30, 14 December 2007 (EST) | ||
− | + | How does one use this? The readme isn't very helpful. --[[User:Jackard|Jackard]] 01:08, 27 November 2007 (EST) | |
− | < | + | : Not knowing exactly what you're having trouble understanding, I'll give examples (the one thing I forgot to add in the readme).<br /><code>startprofile 0 Miner.txt</code> - This will set the skill profile of the first Dwarf, in the list of units, to the skills in Miner.txt<br /><code>startprofile 1 Jeweler.txt</code> - This will set the skills on the second Dwarf, in the list of units, to the skills in Jeweler.txt<br /><code>startprofile -x 3 Customprofile.txt</code> - This will save the set of skills on the fourth Dwarf to Customprofile.txt<br /><code>startprofile -v0.27.169.33b 0 Miner.txt</code> Same as the first example, except it'll work on the previous version of Dwarf Fortress.<br />-- [[User:Jifodus|Jifodus]] 03:28, 27 November 2007 (EST) |
− | + | ::Thanks, I'll try that out. --[[User:Jackard|Jackard]] 21:21, 27 November 2007 (EST) | |
− | |||
− | |||
− | |||
− | </ | ||
− | + | If you wish to edit the executable, you can modify it so that it works with 0.27.169.33d by making the following changes with a hex editor: | |
− | < | + | Offset Overwrite With |
− | + | ---------------------------- | |
− | + | 2A530 | 98 16 25 01 04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00 | |
− | + | 2A6A6 | 30 2E 32 37 2E 31 36 39 2E 33 33 64 | |
− | + | 2A77C | 02 | |
− | </ | + | -- [[User:Jifodus|Jifodus]] 20:14, 3 December 2007 (EST) |
+ | :CBW; PUSH SS; AND EAX, 00000401h; ADD AH, BL; ADD [EAX], AL; ... | ||
+ | :That makes no sense. Must be missing something off the head end. | ||
+ | :3 unknown bytes; ADD [EAX+EAX], EAX; ... No better. Worse, even. | ||
+ | :4 unknown bytes; ADD AL, 00h; ADD [EAX], AL; ... Unh uh. Don't think so. | ||
+ | :8 unknown bytes; ESC-4(00); ... Floating point? Really? No way. | ||
+ | :12 unknown bytes; LOCK OR [EAX], AL ... Insane. | ||
+ | :I don't know what those bytes are, but they're not code.—[[User:0x517A5D|0x517A5D]] 23:23, 3 December 2007 (EST) | ||
+ | ::You're right, they're data. First Row is (left to right, 5 dwords): [[User:Jifodus/Memory research#Addresses_3|Start Address]], Offset from address at start address, Dwarf List begin offset, Starting points offset, Skills offset, remaining skill points points. Second row is a character string (15 chars max). Third row is a dword indicating which data index is default. | ||
+ | :: <tt>//Start Addr, O, Lizt, Ponts, Skll, Remain</tt> | ||
+ | :: <tt>{ 0x01251698, 4, 0xDC, 0x8F0, 0x70, 0x1C0 }</tt> - The read/write locations and whatnot | ||
+ | :: <tt>"0.27.169.33d"</tt> - Used for string comparison (-v flag) | ||
+ | :: <tt>2</tt> - The default version to use is the third in the list (what the above just added). | ||
+ | :: Configuration data can be found between 'DATA_SET' and 'TES_ATAD'. The list has enough space for 16 versions (3 are now in use). I'll just say I didn't want to have to recompile it for all the versions -- [[User:Jifodus|Jifodus]] 21:52, 6 December 2007 (EST) | ||
+ | If you wish to edit the executable, you can modify it so that it works with 0.27.169.33e by making the following changes with a hex editor: | ||
+ | Offset Overwrite With | ||
+ | ---------------------------- | ||
+ | 2A550 |"98 26 25 01"04 00 00 00 DC 00 00 00 F0 08 00 00 70 00 00 00 C0 01 00 00 | ||
+ | 2A6B5 | 30 2E 32 37 2E 31 36 39 2E 33 33"65" | ||
+ | 2A77C |"03" | ||
− | ==== | + | == Patching Lavasquare == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Due to someone being interested in running lavasquare on version 33g, I determined how to patch the exe to work with later versions. With a hex editor, open lavasquare.exe and find and replace with appropriate values (replace the X's with the values underneath for the version you want). I only tested it for 33f, but I'm assuming that the values for 33g are correct (since I got them off the wiki). | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | (CursorX) | |
− | + | FIND: EE 57 68 88 E2 8F 00 FF 35 | |
− | : | + | REPLACE: EE 57 68 XX XX XX 0X FF 35 |
− | + | 33f 88 F2 8F 0 | |
− | + | 33g 88 62 90 0 | |
+ | 38a 88 F2 92 0 | ||
− | :: | + | (CursorY) |
+ | FIND: EC 57 68 8C E2 8F 00 FF 35 | ||
+ | REPLACE: EC 57 68 XX XX XX 0X FF 35 | ||
+ | 33f 8C F2 8F 0 | ||
+ | 33g 8C 62 90 0 | ||
+ | 38a 8C F2 92 0 | ||
− | + | (CursorZ) | |
− | : | + | FIND: E6 57 68 90 E2 8F 00 FF 35 |
− | + | REPLACE: E6 57 68 XX XX XX 0X FF 35 | |
+ | 33f 90 F2 8F 0 | ||
+ | 33g 90 62 90 0 | ||
+ | 38a 90 F2 92 0 | ||
− | + | (MapBlocks) | |
+ | FIND: FC 57 68 60 15 46 01 FF 35 | ||
+ | REPLACE: FC 57 68 XX XX XX 0X FF 35 | ||
+ | 33f 68 25 46 1 | ||
+ | 33g 80 96 46 1 | ||
+ | 38a CC 29 49 1 | ||
− | + | (To exit immediately after writing, since I don't want to | |
− | : | + | verify the other offsets) |
+ | FIND: FF 35 5C 80 40 00 E8 88 61 00 00 0F BF 7D | ||
+ | F8 57 0F BF 7D FA 57 8B 7D FC 81 C7 60 06 | ||
+ | 00 00 | ||
+ | REPLACE: FF 35 5C 80 40 00 E8 88 61 00 00 6A FF FF | ||
+ | 25 6C B1 40 00 CC CC CC CC CC CC CC CC CC | ||
+ | CC CC | ||
+ | -- [[User:Jifodus|Jifodus]] 02:05, 25 December 2007 (EST) | ||
− | + | To modify the above for the same behavior as water: | |
+ | FIND: 07 00 20 00 | ||
+ | REPLACE: 07 00 00 00 | ||
+ | -- [[User:Jifodus|Jifodus]] 17:09, 29 December 2007 (EST) | ||
− | + | Addresses for 0.27.173.38a: | |
+ | CursorX 0x0092F288 | ||
+ | CursorY 0x0092F28C | ||
+ | CursorZ 0x0092F290 | ||
+ | MapBlocks 0x014929CC | ||
+ | Offsets are still the same. | ||
+ | -- [[User:Jifodus|Jifodus]] 19:14, 7 February 2008 (EST) | ||
− | + | == Lavasquare Popup? == | |
− | + | How do I remove the prompt? It is a painful thing for large projects. The macro below helps some, though. --[[User:Jackard|Jackard]] 08:05, 4 January 2008 (EST) | |
− | : | + | #Persistent |
− | + | SetTimer, CloseLava, 100 | |
− | + | return | |
− | + | ||
− | + | CloseLava: | |
− | + | WinClose, lcc runtime | |
+ | return | ||
+ | |||
+ | del:: | ||
+ | IfWinActive Dwarf Fortress | ||
+ | { | ||
+ | send {down} | ||
+ | run C:\Program Files\Dwarf Fortress\Utilities\lavasquare 33g.exe | ||
+ | return | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | send {del} | ||
+ | return | ||
+ | } | ||
− | == | + | == Lavasquare == |
− | |||
− | |||
− | |||
− | |||
− | + | Why does it seemingly stop working after a while? It runs but summons no magma/lava. --[[User:Spelguru|Spelguru]] 12:28, 18 January 2008 (EST) | |
− | : | + | :No idea, never run into the problem though I've used it quite thoroughly. --[[User:Jackard|Jackard]] 17:52, 18 January 2008 (EST) |
+ | :I've run into this once. Restarting DF fixed the problem. --[[User:SquirrelFarmer|SquirrelFarmer]] 09:50, 29 January 2008 (EST) |