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.

Difference between revisions of "Utility:Dwarf Companion"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m
 
(105 intermediate revisions by 21 users not shown)
Line 1: Line 1:
=== What? ===
+
{{uv|40d}}
 +
[[Image:dfcompanion1.png|thumb|This is a preliminary screenshot of the prototype.]]
 +
= What? =
 +
 
 
This project is about having a helper utility for dwarf fortress, hopefully filling gaps in the user interface. It will also allow some cool cheating, so that it would be possible to play with the engine. For example, you can now mark your nobles as butcherable! Ain't that cool?
 
This project is about having a helper utility for dwarf fortress, hopefully filling gaps in the user interface. It will also allow some cool cheating, so that it would be possible to play with the engine. For example, you can now mark your nobles as butcherable! Ain't that cool?
  
For now, a *PROTOTYPE* utility is available, for testings. It uses python and requires many dependencies. It will end up as a standard .exe tool once features are ironed out.
+
For now, a '''PROTOTYPE''' utility is available, for testings. It uses python and requires many dependencies. It will end up as a standard .exe tool once features are ironed out.
 +
 
 +
It supports version 40d16, supposedly. The latest screenshot is at [http://bartabox.banquise.net/df/screen1.png this place].
 +
 
 +
= Important warning =
 +
When fiddling with DF memory, you might get crashes. Here are two important advices:
 +
* when writing into memory (like updating a creature's data), pause the game, load the data, update it, save it and then unpause the game
 +
* do not teleport creatures that are hauling
 +
 
 +
= Self-packaged executables =
 +
There is an executable version by [[User:Valdemar|Valdemar]] available that does not require Python or any of the other of the dependencies to be installed. Unzip it and run "dfcompanion_prototype.exe" to bring up the core companion window. The scripts available in the pure python version also have exe equivalents:
 +
* revealVeins.exe - run with no arguments to reveal all vein tiles
 +
* reveal.exe - run with no arguments to reveal the whole map (very slow, a C utility like Tweak is recommended for this task)
 +
* designator.exe - see [[User:Bartavelle/DesignatorTiles]]
 +
* changeProfession.exe - run through command prompt like "changeProfession [id] [profession]" where id is the ID of the dwarf you want to change (find this through core companion; pull up the profile of a dwarf and look in the window title) and profession is the profession to change to (Mason, Peasant, Speardwarf, etc.)
 +
 
 +
[http://www.pindi.us/files/df/dfcompanion-0.16-exe.zip Download (Version 0.16)].
 +
[http://www.pindi.us/files/df/dfcompanion-0.17c-exe.zip Download (Version 0.17c)].
 +
 
 +
= How to install and run it =
 +
You need to install several things first. Do it right, or it will not work.
 +
 
 +
* [http://www.python.org/download/ Python] (should work with any version)
 +
* from [http://sourceforge.net/projects/gladewin32/files/ this page], the latest "Gtk+/Win32 Runtime Environment Installer" (the files that is named like that : gtk-2.12.9-win32-2.exe, scroll down a bit).
 +
 
 +
* For users of the -any versions, or python 2.4 users, you must:
 +
** Install the three modules from [http://www.pygtk.org/downloads.html this page] (PyCairo, PyGObject, PyGTK)
 +
** Grab the software, v0.17d, at [http://bartabox.banquise.net/df/companion-0.17d-any.zip this place].
 +
 
 +
* Reboot your computer. Although the software doesn't demand it, if you don't do so Python won't know where to find modules, leading to errors.
 +
* Double click on "dfcompanion_prototype.py"!
 +
 
 +
= Problems? =
 +
* Some black window flashes and nothing happens!
 +
You should run it from the command line. Start / run / cmd.exe. Then type
 +
----
 +
cd c:\where\companion\is\located\
  
[[Image:dfcompanion1.png]]
+
dfcompanion_prototype.py
 +
----
  
=== How ===
+
You can copy by clicking on the top-right icon, and click copy in the Edit submenu. Then select with mouse, and press enter to copy.
You need to install several things first:
 
* [http://www.python.org/ftp/python/2.4.4/python-2.4.4.msi Python 2.4] (this is a link to 2.4.4, should work with higher versions, like 2.6.*, but i did not test them)
 
* [http://sourceforge.net/project/platformdownload.php?group_id=78018 pywin32], select the package corresponding to your python version (should be pywin32-210.win32-py2.4.exe)
 
* from [http://www.pygtk.org/downloads.html this page], install PyCairo, PyGObject and PyGTK (check the corresponding python version!)
 
* from [http://gladewin32.sourceforge.net/modules/news/ this page], the latest "Gtk+/Win32 Runtime Environment Installer"
 
  
Now you can just grab the utility at [http://bartabox.banquise.net/df/utils.zip this place], unzip it and double click on "dfcompanion_prototype.py".
+
* The error message is something about a not finding pygtk, pycairo or pygobject
 +
You didn't install properly the 3 modules at the pygtk site (see link in the how section).
  
=== Problems? ===
+
* The error messages says it can't find a dll
Please run the tool from the command line if you experience problems, and copy/paste errors in the discussion page.
+
The GTK runtime environment is not properly installed.
  
The unit list often gets desynchronised (multiple dwarves appearing). To solve this, just press "refresh".
+
* The error messages says something like "g_assert_warning not found in libglib-2.0.0.dll"
 +
There is a DLL conflict. You should reinstall the GTK runtime environment. If this fails, you have to find the old DLL that is staying somewhere on your system and remove it. Probably in c:\windows\system32\
  
=== Usage ===
+
* No-one responds when I ask questions on the talk page.
The general idea is to have the main window open next to your DF windows. Order dwarves using the column "alerts" so that most important stuff is on top. You can play with creatures by double clicking them. Right now, you can interact by:
+
Have everyone look at the discussion page on the off chance that they might know something.
 +
 
 +
= Usage - what can you do? =
 +
First run Dwarf Fortress, and load your game. It won't work otherwise.
 +
 
 +
The general idea is to have the main window open next to your DF windows. It should help you play the game by providing useful hints while playing. Order dwarves using the column "alerts" so that most important stuff is on top : hungry, unhappy, moody, hurt dwarves. You can play with creatures and view detailed views of their attributes by double clicking them. Right now, you can interact by:
 
* clicking "heal", heals creature
 
* clicking "heal", heals creature
 
* clicking "hurt", hurts creature
 
* clicking "hurt", hurts creature
Line 29: Line 71:
 
** all flags (the checkbox stuff), most being unknown, please let us know about their use if you get it!
 
** all flags (the checkbox stuff), most being unknown, please let us know about their use if you get it!
 
** pain, exhaustion, hunger, thirst, drowsiness
 
** pain, exhaustion, hunger, thirst, drowsiness
 +
** race (still needs to be tested!)
 +
** mood type (fey, macabre, ...), and mood skill increased
 +
 +
Interesting effects are [http://mkv25.net/dfma/movie-236-lazydwarvesmustdie butcherable dwarves] and [http://img184.imageshack.us/img184/7919/straydognz6.jpg Corbine's crazy dogs]. Oh, and skeletal legendary miners that turn against your fortress.
 +
 +
= Random questions =
 +
* How to prevent a dwarf from bleeding to death ? Turn him zombie. It will make him hostile, but cure his bleeding. Turn him back when happy.
 +
* Reveal like tools and discovering the underground features : you have to uncover a tile belonging to an underground feature for it to be officially found. Just unreveal some tiles and dig through them.
 +
 +
= dwarfdbg scripts =
 +
Here is a collection of scripts that wouldn't fit in DC but might be useful. Copy them in the DC folder and run them.
 +
* [http://bartabox.banquise.net/df/butchercats.py butchercats.py] : marks all "unintersted" cats and kitten as ready for slaughter.
 +
* Soon, the "designator", with a list of cool stuff : [[User:Bartavelle/DesignatorTiles]]
 +
 +
= Changelog =
 +
* utils.zip : initial test, some bugs with accents
 +
* utils.0.1.zip : corrected problem with bad characters
 +
* utils.0.2.zip : corrected problem with long strings
 +
* utils.0.3.zip : corrected problem with creatures not in legends
 +
* utils.0.4.zip : quick (untested) upgrade to v0.27.169.33g
 +
* companion.0.5-any.zip - 07/01/2008
 +
** Skill edition
 +
** Removed the dependency on pydbg, should now work with python 2.x
 +
** Incomplete linux support, for those people who go on holiday with only their linux laptops ...
 +
** More details in the flags names
 +
** Disabled the regular refreshes for now
 +
** Body part name is resolved when showing damages
 +
** Right-click popup with quick features : heal, hurt, tame, make war animal, rest and restore
 +
** Civilization altering (steal that merchant swordsman!)
 +
* companion.0.6-any.zip - 22/01/2008
 +
** Better error handling for Window users, should help debugging ...
 +
** Firstname and nickname editor (finally)
 +
** Money warnings, and money cheat
 +
** Combat reports in DF mode
 +
** Bleeding/Paralysis/ ... can be tweaked
 +
** "Opinion poll"
 +
** More details
 +
** Instamood!
 +
* companion.0.7-any.zip - 07/02/2008
 +
** Couples list
 +
** Name editor
 +
** Right click / zoom now works
 +
** Support for 38a
 +
* companion.0.8-any.zip - 13/02/2008
 +
** Removal of the couple list, should hopefully fix bugs
 +
** Several scripts for more fun
 +
** Better support for stuff
 +
** Should be "final" of the prototype, next step will probably involve working on a standalone .exe, and the occasionnal fun script
 +
* companion.0.9-any.zip - 18/02/2008
 +
** Quick update to fix for the new DF version.
 +
* companion.0.9-any.zip - 26/02/2008
 +
** Another quick fix for 38b
 +
* companion.0.12-any.zip - 18/07/2008
 +
** tons of changes, this specific version just keeps up with DF
 +
* companion.0.13-any.zip - 18/08/2008
 +
** compatibility with 39f, should not work with previous versions
 +
** zoom feature is disabled, because of UI changes
 +
** added bugged slow reveal script :)
 +
* companion.0.14-any.zip - 14/09/2008
 +
** zoom is back
 +
** custom alerts are easier to add
 +
** corrected the map offsets, added a "revealVein.py" script
 +
* companion.0.15-any.zip
 +
** linux support is back
 +
** and now, it is fast
 +
* companion.0.16-any.zip - 05/10/2009
 +
** solves bug with additional languages
 +
* companion.0.17-any.zip - 27/11/2009
 +
** d16 support
 +
** ASLR support
 +
 +
= thanks =
 +
* the memory hackers!
 +
* Phil, for the clever python tricks
 +
* Corbine, for early testings, bug discovery, and flags discovery
 +
* sinoth, for early testings, bug discovery
 +
 +
[[Category:Hacking|DwarfCompanion]]
 +
[[Category:Utilities]]

Latest revision as of 20:48, 23 June 2017

This utility page is about v0.28.121.40d, an older version of DF.
This is a preliminary screenshot of the prototype.

What?[edit]

This project is about having a helper utility for dwarf fortress, hopefully filling gaps in the user interface. It will also allow some cool cheating, so that it would be possible to play with the engine. For example, you can now mark your nobles as butcherable! Ain't that cool?

For now, a PROTOTYPE utility is available, for testings. It uses python and requires many dependencies. It will end up as a standard .exe tool once features are ironed out.

It supports version 40d16, supposedly. The latest screenshot is at this place.

Important warning[edit]

When fiddling with DF memory, you might get crashes. Here are two important advices:

  • when writing into memory (like updating a creature's data), pause the game, load the data, update it, save it and then unpause the game
  • do not teleport creatures that are hauling

Self-packaged executables[edit]

There is an executable version by Valdemar available that does not require Python or any of the other of the dependencies to be installed. Unzip it and run "dfcompanion_prototype.exe" to bring up the core companion window. The scripts available in the pure python version also have exe equivalents:

  • revealVeins.exe - run with no arguments to reveal all vein tiles
  • reveal.exe - run with no arguments to reveal the whole map (very slow, a C utility like Tweak is recommended for this task)
  • designator.exe - see User:Bartavelle/DesignatorTiles
  • changeProfession.exe - run through command prompt like "changeProfession [id] [profession]" where id is the ID of the dwarf you want to change (find this through core companion; pull up the profile of a dwarf and look in the window title) and profession is the profession to change to (Mason, Peasant, Speardwarf, etc.)

Download (Version 0.16). Download (Version 0.17c).

How to install and run it[edit]

You need to install several things first. Do it right, or it will not work.

  • Python (should work with any version)
  • from this page, the latest "Gtk+/Win32 Runtime Environment Installer" (the files that is named like that : gtk-2.12.9-win32-2.exe, scroll down a bit).
  • For users of the -any versions, or python 2.4 users, you must:
    • Install the three modules from this page (PyCairo, PyGObject, PyGTK)
    • Grab the software, v0.17d, at this place.
  • Reboot your computer. Although the software doesn't demand it, if you don't do so Python won't know where to find modules, leading to errors.
  • Double click on "dfcompanion_prototype.py"!

Problems?[edit]

  • Some black window flashes and nothing happens!

You should run it from the command line. Start / run / cmd.exe. Then type


cd c:\where\companion\is\located\

dfcompanion_prototype.py


You can copy by clicking on the top-right icon, and click copy in the Edit submenu. Then select with mouse, and press enter to copy.

  • The error message is something about a not finding pygtk, pycairo or pygobject

You didn't install properly the 3 modules at the pygtk site (see link in the how section).

  • The error messages says it can't find a dll

The GTK runtime environment is not properly installed.

  • The error messages says something like "g_assert_warning not found in libglib-2.0.0.dll"

There is a DLL conflict. You should reinstall the GTK runtime environment. If this fails, you have to find the old DLL that is staying somewhere on your system and remove it. Probably in c:\windows\system32\

  • No-one responds when I ask questions on the talk page.

Have everyone look at the discussion page on the off chance that they might know something.

Usage - what can you do?[edit]

First run Dwarf Fortress, and load your game. It won't work otherwise.

The general idea is to have the main window open next to your DF windows. It should help you play the game by providing useful hints while playing. Order dwarves using the column "alerts" so that most important stuff is on top : hungry, unhappy, moody, hurt dwarves. You can play with creatures and view detailed views of their attributes by double clicking them. Right now, you can interact by:

  • clicking "heal", heals creature
  • clicking "hurt", hurts creature
  • clicking "apply", saves the following changes:
    • position X,Y,Z
    • strength, agility, toughness
    • all flags (the checkbox stuff), most being unknown, please let us know about their use if you get it!
    • pain, exhaustion, hunger, thirst, drowsiness
    • race (still needs to be tested!)
    • mood type (fey, macabre, ...), and mood skill increased

Interesting effects are butcherable dwarves and Corbine's crazy dogs. Oh, and skeletal legendary miners that turn against your fortress.

Random questions[edit]

  • How to prevent a dwarf from bleeding to death ? Turn him zombie. It will make him hostile, but cure his bleeding. Turn him back when happy.
  • Reveal like tools and discovering the underground features : you have to uncover a tile belonging to an underground feature for it to be officially found. Just unreveal some tiles and dig through them.

dwarfdbg scripts[edit]

Here is a collection of scripts that wouldn't fit in DC but might be useful. Copy them in the DC folder and run them.

Changelog[edit]

  • utils.zip : initial test, some bugs with accents
  • utils.0.1.zip : corrected problem with bad characters
  • utils.0.2.zip : corrected problem with long strings
  • utils.0.3.zip : corrected problem with creatures not in legends
  • utils.0.4.zip : quick (untested) upgrade to v0.27.169.33g
  • companion.0.5-any.zip - 07/01/2008
    • Skill edition
    • Removed the dependency on pydbg, should now work with python 2.x
    • Incomplete linux support, for those people who go on holiday with only their linux laptops ...
    • More details in the flags names
    • Disabled the regular refreshes for now
    • Body part name is resolved when showing damages
    • Right-click popup with quick features : heal, hurt, tame, make war animal, rest and restore
    • Civilization altering (steal that merchant swordsman!)
  • companion.0.6-any.zip - 22/01/2008
    • Better error handling for Window users, should help debugging ...
    • Firstname and nickname editor (finally)
    • Money warnings, and money cheat
    • Combat reports in DF mode
    • Bleeding/Paralysis/ ... can be tweaked
    • "Opinion poll"
    • More details
    • Instamood!
  • companion.0.7-any.zip - 07/02/2008
    • Couples list
    • Name editor
    • Right click / zoom now works
    • Support for 38a
  • companion.0.8-any.zip - 13/02/2008
    • Removal of the couple list, should hopefully fix bugs
    • Several scripts for more fun
    • Better support for stuff
    • Should be "final" of the prototype, next step will probably involve working on a standalone .exe, and the occasionnal fun script
  • companion.0.9-any.zip - 18/02/2008
    • Quick update to fix for the new DF version.
  • companion.0.9-any.zip - 26/02/2008
    • Another quick fix for 38b
  • companion.0.12-any.zip - 18/07/2008
    • tons of changes, this specific version just keeps up with DF
  • companion.0.13-any.zip - 18/08/2008
    • compatibility with 39f, should not work with previous versions
    • zoom feature is disabled, because of UI changes
    • added bugged slow reveal script :)
  • companion.0.14-any.zip - 14/09/2008
    • zoom is back
    • custom alerts are easier to add
    • corrected the map offsets, added a "revealVein.py" script
  • companion.0.15-any.zip
    • linux support is back
    • and now, it is fast
  • companion.0.16-any.zip - 05/10/2009
    • solves bug with additional languages
  • companion.0.17-any.zip - 27/11/2009
    • d16 support
    • ASLR support

thanks[edit]

  • the memory hackers!
  • Phil, for the clever python tricks
  • Corbine, for early testings, bug discovery, and flags discovery
  • sinoth, for early testings, bug discovery