Утилита:DFHack

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску
Данная статья помечена как не оконченная.
Вы можете прочитать эту статью на английском или помочь проекту её переводом.
Консоль DFHack

DFhack — библиотека доступа к памяти и набор основных утилит, использующих данную библиотеку. Библиотека и утилиты находятся в активной разработке, выпускаются новые релизы и создаются новые утилиты. Существует большое количество сторонних программ использующих данную библиотеку для совершенно разных задач: визуализация, манипуляции с существами, сбор статистики и т.п.

Использование

Если DFHack установлен корректно, под Windows он автоматически запустится вместе с DF. В Linux и MacOS требуется запустить его из теминала, а затем использовать терминал для ввода команд.
Примечание:
Исполняемый файл DFHack предназначен для вызова команд DFHack из внешних скриптов и программ, когда DF+DFHack уже запущены, а не для обычного использования DFHack.
DFHack расширяет функционал Dwarf Fortress как выпадающая консоль расширяет его в играх на движке Quake.
Простейший способ использования DFHack — ввод команд в консоль.
Команда help выведет на экран небольшую справку. ls — список всех доступных команд.
У многих команд есть собственная справка или детальное описание, которое можно посмотреть, введя <Имя_команды> help или <Имя_команды> ?
Командная строка имеет несколько удобных фич, например, историю введенных команд (используйте стрелки вверх и вниз).

Еще один способ — назначение команд в качестве внутриигровых горячих клавиш. Это можно сделать двумя способами:
Старым способом это делается через меню Hot Keys. Там, с помощью пункта Change name нужно ввести команду в качестве имени соответствующей горячей клавиши.
Новый, более гибкий способ — назначение горячей клавиши через консоль DFHack. К сожалению, созданные таким образом горячие клавиши не запоминаются автоматически между запусками игры, поэтому необходимо использовать файл dfhack.init, чтобы быть уверенным, что эти сочетания будут воссоздаваться при каждом запуске игры.
Интерактивные команды, такие как liquids нельзя назначать в качестве сочетания клавиш.

DFHack.init

Если в вашей директории с DF лежит файл dfhack.init, то его содержимое будет выполняться при каждом запуске игры. Файл содержит список горячих клавиш, которые нужно пересоздавать при каждом запуске. В качестве примера вы можете использовать файл dfhack.init-example, исправив его под свои нужды и переименовав в dfhack.init.

Назначение горячих клавиш

Для назначения горячих клавиш используйте команду keybinding. Ее можно использовать как в консоли, так и в файле DFHack.init. На текущий момент поддерживаются любые сочетания клавиш Ctrl / Alt / Shift клавишами F1 - F9 или A - Z.
Способы вызова команды:

  • keybinding list <сочетание_клавиш> — показывает команды, назначенные для этого сочетания клавиш.
  • keybinding clear <сочетание_клавиш> <сочетание_клавиш>... — удаляет команды, привязанные к этим клавишам.
  • keybinding add <сочетание_клавиш> "команда" "команда"... — назначает сочетание клавиш для этого сочетания клавиш
  • keybinding set <сочетание_клавиш> "команда" "команда"... — удаляет команды, привязанные к сочетанию клавиш, а затем назначает новые.

Параметр <сочетание_клавиш> имеет следующий, чувствительный к регистру символов, синтаксис:

[Ctrl-][Alt-][Shift-]KEY[@context]

где KEY — клавиша F1 - F9 или A - Z, а в скобках [] заключены необязательные параметры (используются без скобок).

Когда несколько команд назначены для одного сочетания клавиш DFHack выбирает первую команду, которую можно выполнить в данной ситуации. Команды, добавленные позднее, имеют приоритет над теми, что добавлены ранее. Если несколько команд перечислено в команде keybinding add приоритет будет отдан порядку команд.
Команды, которые не предназначены напрямую для использования в сочетаниях клавиш будут всегда считаться выполнимыми.

В примере выше тег "context" используется для ограничения состояний игры, в которых это сочетание будет выполняться. Если вызвано без параметров, команда "keybinding", среди прочего, выводит строку с текущим контекстом (напр. "The current context is: dwarfmode/DesignateMine" - контекст: режим крепости, экран Designations, в нем выбрано Mine). Такие сочетания выполняются только в том случае,если их тег "context" совпадает с текущим контекстом полностью или до разделителя "/". Например, для контекста foo/bar/baz выполнимыми будут только теги @foo/bar/baz, @foo/bar и @foo.

Пример:

keybinding add Ctrl-V digv

Добавляет сочетание клавиш Ctrl - V для команды digv.

Команды

Синтаксис команд DFHack состоит из имени команды, за которой следуют аргументы, разделенные пробелами. Если аргумент сам содержит пробелы - его нужно заключить в двойные кавычки. Чтобы использовать двойные кавычки внутри двойных кавычек - используйте \".
Если первый символ в строке - #, то он не выполняется и считается комментарием.
Если первый символ в строке - :, это альтернативный режим. В таком случае символы от : до пробела - имя команды, а то, что после - первый аргумент. Две команды в примере ниже эквиваленты:

:foo a b "c d" e f
foo "a b \"c d\" e f"

Это предназначано для команд вроде "rb_eval", оперирующих выражениями на скриптовом языке.

Команды. Игровой процесс

die

Мгновенно завершает DF без сохранения.

forcepause

Принуждает игру встать на паузу. Полезно, когда ваш FPS падает ниже 1 и вы теряете контроль на игрой.

  • forcepause 1 — включение.
  • forcepause 0 — отключение.

nopause

Отключает паузу (и ручную и автоматическую). Исключение — пауза при обнаружении ада. Полезно, например, если нужно копать под рекой.

fastdwarf

Данная команда включает в себя два режима: speedydwarf и teledwarf. Speedydwarf заставляет дварфов двигаться и делать работу невероятно быстро. Teledwarf позволяет дварфам двигаться мгновенно, не оказывая влияния на скорость работы.

  • fastdwarf 0 0 — выключает оба режима
  • fastdwarf 0 1 — выключает speedydwarf и включает teledwarf
  • fastdwarf 1 0 — включает speedydwarf и выключает teledwarf
  • fastdwarf 1 1 — включает оба
  • fastdwarf 0 — выключает оба режима
  • fastdwarf 1 — включает speedydwarf и выключает teledwarf
  • fastdwarf 2 — ставит нативный дебаг-флаг в памяти игры, что добавляет агрессивности режиму speedydwarf

Команды. Интерфейс

follow

Игра будет следовать за перемещениями текущего юнита. Полезно, чтобы следить за шляющимися дварфами. Отключается ручным перемещением области видимости.

tidlers

Переключает положение счетчика бездельников (idlers) между всеми возможными позициями на экране.

twaterlvl

Включает/выключает показ глубины жидкостей цифрами.

copystock

Копирует параметры текущего склада в настройки произвольного склада en и переключает в режим размещения произвольного склада, позволяя быстро и легко копировать/вставлять склады.

rename

Позволяет переименовать:

  • rename squad <индекс> "имя" — переименовывает отряд по индексу. У отряда a в меню отрядов будет индекс 1, у отряда b — 2 и т. д.
  • rename hotkey <индекс> "имя" — переименовывает горячую клавишу по индексу. Позволяет задать в соответствие горячей клавише длинную команду.
  • rename unit "nickname" — переименовывает текущего выбранного в окне игры существа.
  • rename unit-profession "custom profession" — меняет название профессии выбранного в окне игры существа.
  • rename building "имя" — устанавливает имя для выбранного сооружения. Сооружение должно быть складом, мастерской, печью, ловушкой, осадным орудием или зоной активности.

Команды. Режим приключенца

adv-bodyswap

В режиме приключений команда позволяет брать под контроль ваших компаньонов или других существ. Например, вы можете взять контроль над ними и подобрать новое оружие, броню и т.д.

Использование:

  • Откройте информацию о существе/компаньоне. Выполните команду. Вы перехватите контроль над существом.
  • Для того, чтобы вернуться обратно, откройте экран статуса z и выполните команду снова.

advtools

Пакет утилит для режима приключенца (на текущий момент содержит лишь одну).

  • list-equipped [all] — Выводит список металлического оружия и доспехов на вас и ваших компаньонах. При использовании с параметром all показывает также неметаллические предметы.
  • metal-detector [all-types] [non-trader] — Показывает металлические доспехи и оружие в магазинах. Параметр all-types отключает проверку на тип объекта, а non-trader — показывает также объекты, находящиеся вне магазина.

Команды. Модификация карты

changelayer

Меняет материал геологического слоя под курсором на требуемый из числа неорганических RAW-материалов. Может затронуть не только зону высадки, но и окружающую ее местность.
По умолчанию не допускается менять камень на почву и наоборот.
По умолчанию меняется только слой под курсором. Не забывайте, что один слой может занимать несколько z-уровней.
По умолчанию меняется только геология, связанная с биомом под курсором, несмотря на то, что она может быть связана и с другими биомами. Жилы и кластеры внутри слоя сохранятся. Для их изменения нужно использовать команду changevein.

Параметры:

  • all_biomes — изменить выбранный слой на всех биомах карты. Остерегайтесь неприятных последствий, т.к. один слой может И БУДЕТ располагаться на нескольких z-уровнях нескольких биомов. Используйте команду probe, чтобы получить представление о том, как слои и биомы расположены на карте.
  • all_layers — меняет все слои на карте (но только для одного биома, если не использовать параметр all biomes). Сделает карту скучной, но аккуратной.
  • force — разрешает менять камень на почву и обратно. Осторожно! Может привести к неожиданным последствиям! Обратите внимание, что почва не будет магическим образом заменена камнем, а камень не будет магически заменен почвой. Однако у вас будет каменный пол после раскопок, если вы заменили почву камнем, так что вы можете сделать на нем гравировку. И наоборот, если вы заменили камень почвой, после раскопок вы получите пол из почвы и сможете выращивать на нем растения.
  • verbose — выводит некоторые подробности о том, что изменится.
  • trouble — предупреждает о возможных проблемах

Примеры:

changelayer GRANITE

Меняет слой под курсором на гранит.

changelayer SILTY_CLAY force

Меняет слой под курсором на почву, даже если там камень.

changelayer MARBLE all_biomes all_layers

Меняет все слои (кроме почвы) всех биомов на мрамор.

Примечания:

  • Если вы воспользовались командой, но ничего не произошло, попробуйте ненадолго поставить игру на паузу, а потом продолжить игру, двинуть курсор на другую клетку. Если не помогло, попробуйте еще раз. Если это не помогает — попробуйте временно изменить какой-нибудь другой слой, верните его обратно, а потом снова попробуйте заменить требуемый слой. Также может помочь перезапуск.
  • Все должно быть в порядке, если вы меняете только один слой, не используя force, однако лучше все-таки предварительно сохраниться.
  • Если вы меняете почву на камень — могут возникнуть странные последствия (клетки мигают, клетки заменены повсюду и т.д.). Попробуйте откатить изменения вручную, а лучше загрузите сохранение. Вы ведь сохранились, прежде чем?..

changevein

Меняет материал жилы под курсором требуемым неорганическим RAW-материалом. Затрагивает только клетки в пределах текущего блока 16х16. Для больших жил и кластеров используйте команду несколько раз.

Пример:

changevein NATIVE_PLATINUM — заменяет материал жилы под курсором самородной платиной.

changeitem

Позволяет менять материал и качество предмета. По умолчанию меняет выбранный в игре материал (например, выбранный клавишей k или внутри контейнера, инвентаря). По умолчанию менять разрешается только в пределах одного подтипа (дерево <-> дерево, камень <-> камень и т.д.). Это ограничение можно обойти с помощью команды force. Обратите внимание, что некоторые аттрибуты не будуз затронуты, что может привести к странным результатам. Для того, чтобы получить представление о том, как выглядит идентификатор RAW-материала, проверьте несколько предметов с помощью info. С помощью force можно получить предметы, которые невозможно сделать в мастерских (золотые кровати!)

Параметры:

  • info — ничего не меняет, просто выводит некоторую информацию о предмете.
  • here — меняет все предметы под курсором.
  • material, m — требуемый материал. Должен соответствовать корректному идентификатору RAW.
  • quality, q — меняет качество. Цифра от 0 до 5.
  • force — игнорирует подтипы, позволяет менять на любой материал.

Примеры:

changeitem m INORGANIC:GRANITE here

Делает все предметы под курсором гранитными.

changeitem q 5

Меняет качество выбранного предмета на шедевр.

colonies

Выводит список всех колоний вредителей на карте. Также может заменить их на колонии медоносных пчел.

Параметры:

createitem

Позволяет создать преметы любых типов из любых материалов. Предмет появится у ног выбранного существа.
Информация о типе предмета и материала записывается в том же виде, как и в RAW-файлах с реакциями, но с небольшими отличиями:

  • Предпочтительнее отделять предмет от материала пробелом, а не двоеточием.
  • Если предмет не имеет подтипа, не указывайте ":NONE".
  • Если предмет - REMAINS, FISH, FISH_RAW, VERMIN, PET, или EGG, укажите CREATURE:CASTE вместо материала.

Утилитой нельзя создать трупы, части тел и приготовленную еду.
Примеры:

createitem GLOVES:ITEM_GLOVES_GAUNTLETS INORGANIC:STEEL 2

Создать две пары стальных рукавиц.

createitem WOOD PLANT_MAT:TOWER_CAP:WOOD

Создать бревно tower-cap.

createitem FISH FISH_SHAD:MALE 5

Создать 5 очищенных shad, готовых к употреблению.

deramp (by zilpin)

Удаляет с карты все рампы, помеченные на удаление. Также удаляет все рампы вниз, оставшиеся от обвалов (вам даже не нужно ничего помечать на удаление для этого).

feature

Позволяет управлять особенностями карты:

  • Открывать магму, что позволяет строить магменные мастерские и печи.
  • Открывать пещеры, что запускает рост подземных растений и деревьев внутри почвенных слоев крепости.

Параметры:

  • list — показывает все особенности в зоне высадки
  • showX — помечает выбранную особенность (пещеру, озеро магмы и т.д.) как обнаруженную.
  • hideX — помечает выбранную особенность как не обнаруженную.

liquids

Позволяет добавить магму, обсидиан и воду. Заменяет обычную консоль DFHack, поэтому не может быть назначена для сочетания клавиш. Настройки команды стираются при закрытии DFHack. Предназначена для использования с командой liquids-here (которая может быть назначена для сочетания клавиш).

Режимы:

  • m — магма
  • w — вода
  • o — сделать обсидиановую стену
  • of — обсидиановый пол
  • rs — сделать исток реки
  • f — только менять поток
  • wcclean — убрать из параметров клетки флаги соленой и стоячей воды

Параметры (только для воды/магмы):

  • s+ — только увеличивать уровень жидкости.
  • s. — установить выбранный уровень жидкости.
  • s- — только уменьшать уровень жидкости.
  • f+ — жидкость будет с течением.
  • f. — не менять течение.
  • f- — жидкость будет стоячей.
  • 0-7 — установить уровень жидкости

Кисть:

  • point — одна клетка [p].
  • range — блок с курсором в нижнем северо-западном углу [r] (любое место и размер).
  • block — стандартный блок DF, внутри которого курсор (обычно 16х16х1).
  • column — колонна от курсора вверх до открытого пространства.
  • flood — клетки под курсором, покрытые полом (Используется только вместе с wclean).

Другое:

  • q — выход в консоль DFHack.
  • help или ? — справка.
  • Пустая строка — поместить жидкость.

Заметка:
Создание и удаление жидкости через DFhack может испортить данные для поиска путей, а также карты температуры (создавая тепловые ловушки).

liquids-here

Помещает жидкость под курсором, используя настройки из liquids (по умолчанию поместит под курсором клетку магмы уровнем 7/7). Курсор должен был активен. Команде можно назначить сочетание клавиш.

tiletypes

Используется для редактирования клеток карты, во многом похожа на liquids. Оперирует двумя наборами настроек и кистью. Кисть определяет какие клетки будут обработаны. Первый набор настроек — фильтр, может исключить из-под кисти клетки с определенными свойствами. Второй набор настроек — краска, определяет как выбранные клетки будут изменены.
Оба наборы настроек имеют кучу параметров, таких как форма (стена, пол и т.д.), материал (почва, камень, минерал и т.д.), состояние флагов назначений designated, hidden, освещенности.
Настройки могут быть заданы не полностью, так что вы можете сделать что-нибудь такое:

filter material STONE
filter shape FORTIFICATION
paint shape FLOOR

Это заменит все каменные фортификации полом, сохранив материал.
Или такое:

filter shape FLOOR
filter material MINERAL
paint shape WALL

Обращает полы из минералов обратно в стены.
Можно также менять некоторые флаги клетки:

paint hidden 1
paint hidden 0

Единица спрячет ранее разведанную клетку, 0 — откроет неразведанную.
Любые настройки можно отключить напрямую, используя ключевое слово ANY:

paint hidden ANY
paint shape ANY
filter material any
filter shape any
filter any

Можно использовать несколько кистей:

  • point — точка.
  • range — прямоугольник.
  • column — колонка от курсора вверх до первой твердой клетки.
  • block — стандартный блок DF (16x16).

Пример:

range 10 10 1

Делает кисть прямоугольником размером 10х10 и глубиной 1 уровень. Курсор должен находиться в нижнем северо-западном углу.

tiletypes-commands

Запускает команды утилиты tiletypes, разделенные ;. Это дает возможность менять режимы tiletypes с помощью горячих клавиш.

tiletypes-here

Применяет текущие настройки утилиты tiletypes к клетке, в которой находится курсор (а также в тех, которые затрагивает кисть). Можно использовать с горячей клавишей.

tiletypes-here-point

Применяет текущие настройки утилиты tiletypes к клетке, в которой находится курсор, но игнорирует настройки кисти, затрагивая только клетку под курсором. Можно использовать с горячей клавишей.

tubefill

Заново заполняет раскопанные адамантиновые жилы, но флаг вторжения демонов может остаться (известный баг).

extirpate

Помогает избавиться от кустов и деревьев, оставляя от них только кучку пепла. По умолчанию уничтожает только дерево/куст под курсором.
Параметры:

  • shrubs — уничтожить все кусты на карте.
  • trees — уничтожить все деревья на карте.
  • all — уничтожить все кусты и деревья.

grow

Все молодые деревья на карте (почти) мгновенно вырастут до взрослых деревьев.

immolate

Почти как extirpate, но деревья будут гореть. Огонь от них может (и будет!) распространяться.

regrass

Regrows grass. Not much to it ;)

weather

По умолчанию показывает погоду на данный момент. Но может также управлять ею:

  • snow — вызвать снег.
  • rain — призвать дождь.
  • clear — сделать ясную погоду.

Команды. Исследование карты

cursecheck

Проверяет одну клетку или всю карту на проклятых существ (привидений, вампиров, некромантов, оборотней, зомби). Если курсор в игре активен — будет обследована только клетка под ним. Иначе будет проверена вся карта. По умолчанию будет выведен только счетчик проклятых существ на случай, если вы просто хотите убедиться, не шляются ли такие по вашей крепости. Мертвые и неактивные создания (упокоившиеся привидения, мертвые вампиры и т.д.) будут проигнорированы. Вся нежить (скелеты, трупы, куски тел и пр.) будут помещена в категорию "зомби" en. Неизвестные зомби и восставшие части тел будут показаны как "безымянные создания" en.
Параметры:

  • detail — выводит полное имя, дату рождения, день, когда был проклят и некоторую другую информацию (хотя некоторые вампиры подделывают свою историю).
  • nick — устанавливает тип проклятия как никнейм (не всегда показывается в игре, некоторые вампиры не любят ников).
  • all — включает в список мертвых и неактивных. Можно получить очень длинный список после веселья с некромантами.
  • verbose — выводит все теги проклятий (если вам и правда хочется знать их все).

Примеры:

cursecheck detail all

Выводит расширенную информацию обо всех проклятых существах, в том числе мертвых и неактывных (курсор в игре неактивен)

cursecheck nick

Устанавливает ник всем живым/активным проклятым (курсор в игре неактивен)

Заметка:
Если вы делаете полный поиск (используя all) бывшие привидения будут выводиться с типом проклятия "неизвестно" en потому что флаг, который определяет их как привидений, уже снят. Но если неизвестный тип проклятия появится при поиске среди живых/активных проклятых, создатели DFHack просят поставить их в известность. К примеру, такое может случиться с модами, которые вводят в игру новые типы проклятий.

flows

Инструмент, позволяющий проверить, сколько на карте текущей жидкости. Если вы подозреваете, что ваше море магмы стекает в HFS, с помощью этого инструмента можно узнать это, не раскрывая карты.

probe

Выводит множество информации о клетке под курсором. Можно мерять температуру.

prospect

Вывобит список всех материалов и растений. По умолчанию выводит только список тех, которые представлены на открытой части карты.
Параметры:

  • all — сканирует всю карту, как если бы она была исследована целиком.
  • value — выводит ценность. Полезно для самоцветов.
  • hell — выводит z-уровни трубок HFS. Включает в себя "all".

Перед высадкой

Результат выполнения команды reveal

Если использовать команду на экране выбора места для высадки, то она покажет оценку наличия слоев камней. В данном случает оценка будет только приблизительной (±30% от реального значения, а то и хуже). В частности, не совсем понятно, как вычислить сколько слоев почвы будет в месте высадки, так что она может накинуть лишних, а может и пропустить существующий.

  • all — выведет также оценку жил минералов.

reveal

Открывает карту. По умолчанию HFS останется скрытым, так что триггер на вторжение демонов не сработает. Можно использовать "reveal hell", чтобы открыть всю карту, но тогда вы не сможете снять игру с паузы, пока не спрячете карту обратно. Если все-таки нужно снять игру с паузы с разведанным адом — используйте "reveal demons".
Reveal работает и в режиме приключенца, но действие команды будет исчезать каждый раз, когда вы двигаетесь, так что в данном случае вам не нужно использовать "unreveal".

unreveal

Возвращает карту в исходное состояние после команды "reveal".

revtoggle

Переключает между "reveal" и "unreveal".

revflood

Скрывает всю карту, а затем открывает только те клетки, к которым есть путь от курсора.

revforget

Когда вы используете "reveal", исходное состояние карты сохраняется. "Unreveal" использует эту информацию, чтобы вернуть все обратно. Данная команда стирает эту информацию.

showmood

Показывает все предметы, которые необходимы для странного настроения, активного на данный момент.

Команды. Указания

burrow

Предоставляет широкие возможности по управлению норами en, в том числе позволяет делать норы, автоматически расширяющиеся при раскопках.
Параметры:

  • enable feature ... — подключить функцию плагина
  • disable feature ... — отключить функцию плагина.
  • clear-units "Название норы 1" "Название норы 2" ... — удаляет из норы всех приписанных юнитов.
  • clear-tiles "Название норы 1" "Название норы 2" ... — удаляет из норы все приписанные клетки карты.
  • set-units "Целевая нора" "Нора-источник 1" ... — удаляет юнитов из целевой норы, затем добавляет в нее юнитов, приписанных к норам-источникам.
  • add-units "Целевая норма" "Нора-источник 1" ... — добавляет юнитов из нор-источников в целевую нору.
  • remove-units "Целевая норма" "Нора-источник 1" ... — удаляет из целевой норы тех юнитов, которые есть и в норах-источниках (разность множеств).
  • set-tiles "Целевая нора" "Нора-источник 1" ... — удаляет клетки карты из целевой норы, затем добавляет в нее клетки, приписанные к норам-источникам.
  • add-tiles "Целевая нора" "Нора-источник 1" ... — добавляет клетки из нор-источников в целевую нору.
  • remove-tiles "Целевая нора" "Нора-источник 1" ... — удаляет из целевой норы те клетки, которые есть и в норах-источниках (разность множеств).

Для трех последних парамертров вместо нор-источников можно использовать следующие ключевые слова:
ABOVE_GROUND ru, SUBTERRANEAN ru, INSIDE ru, OUTSIDE ru, LIGHT ru, DARK ru, HIDDEN ru, REVEALED ru.
Функции:

  • auto-grow — когда стена внутри норы, имя которой заканчивается на "+", раскопана, то нора автоматически расширяется до прилегающих свежераскопанных стен. Этот "+" в конце имени, можно опускать, если вы используете имя норы в параметрах команды burrow. Внимание: шахтер, находящийся внутри норы, будет копать одноклеточный коридор очень-очень долго.

digv

Дать указание на раскопку жилы целиком. Требуется активный курсор, указывающий на жилу. С параметром "x" будут учитываться также z-уровни (будут вырезаны лестницы в клетках того же материала).

digvx

Постоянный псевдоним для "digv x".

digl

Дает указание на раскопку слоя камней. Курсор должен указывать на слой. С параметром "x" будут учитываться также z-уровни (будут вырезаны лестницы в клетках того же материала). С параметром "undo" отменяет указание на раскопку (вдруг вам покажется, что раскопка слоя в 50 z-уровней — не такая хорошая идея?).

diglx

Постоянный псевдоним для "digl x".

digexp

digexp ladder
digexp cross

Команда для геологической разведки. Команда оперирует двумя переменными: паттерном и фильтром.
Паттерны:

  • diag5 — диагонали, разделенные пятью клетками.
  • diag5r — то же самое, но повернуто на 90 градусов.
  • ladderступенчатый паттерн.
  • ladderr — ступенчатый паттерн, повернутый на 90 градусов.
  • clear — удалить все указания на раскопки.
  • cross — крест в самом центре карты.

Фильтры:

  • all — разместить паттерн на всем z-уровне.
  • hidden — разместить паттерн только на скрытых клетках уровня (по умолчанию).
  • designated — разместить паттерн внутри размеченных областей.

Для того, чтобы заново применить предыдущий фильтр и паттерн, можно использовать команду digexp без параметров.
Примеры:

expdig diag5 hidden

Разметить для раскопок диагональный паттерн на всех скрытых клетках уровня.

expdig

Применить последние паттерн и фильтр.

expdig ladder designated

Взять текущие указания для раскопок и подменить их ступенчатым паттерном.

digcircle

Команда для легкой разметки кругов и окружностей. Имеет несколько типов опций.

Форма:

  • hollow — окружность (по умолчанию).
  • filled — круг.
  • # — диаметр в клетках (по умолчанию — 0, ничего не делает).

Действия:

  • set — разметить фигуру (по умолчанию).
  • inset — убрать разметку.
  • invert — убирает/размечает последнюю фигуру.

Указания:

  • dig — просто копать (по умолчанию).
  • ramp — копать рампы.
  • ustair — копать лестницы вверх.
  • dstair — лестницы вниз.
  • xstair — двунаправленные лестницы
  • chan — канал.

Если вы уже установили набор параметров, то команду можно выполнять без них.

Примеры:

digcircle filled 3

Копать круг диаметром 3

digcircle

То же самое еще раз.

digtype

Это команда дает каждой клетке карты с жилой того же типа то же указание, что у клетки под курсором. Если у выбранного файла нет указания — будет дано указание копать. Если же дан аргумент, то указание выбранной клетки игнорируется в пользу аргумента.
Аргументы:

  • dig — копать.
  • channel — канал.
  • ramp — рампа.
  • updown — двунаправленная лестница.
  • up — лестница вверх.
  • down — лестница вниз.
  • clear — удалить указания.

filltraffic

Назначить приоритет зоны передвижения на клетки, покрытые полом, начиная от курсора. Коды приоритетов:

  • H — высокий траффик.
  • N — обычный траффик.
  • L — низкий траффик.
  • R — нежелательная для передвижения зона.

Другие параметры:

  • X — назначать сквозь z-уровни.
  • B — включая здания и склады.
  • P — включая пустое пространство.

Пример:

filltraffic H

Если использовать в комнате с дверьми, назначит высокий траффик только внутри комнаты.

alltraffic

Установить приоритет зоны передвижения всем клеткам карты (полезно для сброса приоритетов). Коды приоритетов:

  • H — высокий траффик.
  • N — обычный траффик.
  • L — низкий траффик.
  • R — нежелательная для передвижения зона.

Пример:

alltraffic N

Установить обычный приоритет для всех клеток карты.

restrictliquid

Установить приоритет передвижения restricted для всех видимых тайлов с жидкостями.

restrictice

Установить приоритет передвижения restricted для всех видимых тайлов, покрытых льдом.

getplants

Команда позволяет по идентификатору RAW собрать определенные растения или вырубить конкретный вид деревьев. Имена должны быть разделены пробелом, если типов растений/деревьев несколько.
Параметры:

  • -t — выбрать только деревья (исключить кусты).
  • -s — выбрать только кусты (исключить деревья).
  • -c — очистить указания вместо их установки.
  • -x — применить ко всем растениям, кроме указанных (обратить выделение).

Выбор параметров "-t" и "-s" одновременно не даст никакого результата. Если не указано ни одного ID, будут выбраны все корректные ID растений.

Команды. Очистка и вывоз мусора

clean

Удаляет всю грязь, скопившуюся на карте, предметах и существах. В старой крепости это может значительно повысить FPS. Также может заспойлерить !!FUN!!, так что хорошенько подумайте перед использованием.
Параметры:

  • map — очищает клетки карты. По умолчанию не трогает ил и снег.
  • units — очищает сущевств. Даже враждебных.
  • items — очистит все предметы. Даже отравленный нож.

Аттрибуты для "map":

  • mud — удаляет еще и ил.
  • snow — удаляет и снег.

spotclean

То же, что и "clean map snow mud", но чистит только клетку под курсором.

autodump

Утилита, позволяющая быстро переместить все предметы, помеченные, как мусор. Предметы мгновенно переместятся в позицию курсора, причем флаг "dump" будет снят, а флаг "forbid" поставлен — словно они были выкинуты обычным путем. Имейте в виду, что все активные задачи по выносу мусора так и будут указывать на объект. Курсор нужно поместить над клеткой пола.
Параметры:

  • destroy — Не выкидывать, а просто уничтожить. Курсор не нужен.
  • destroy-here — уничтожить только те помеченные предметы, что под курсором.
  • visible — обрабатывать только объекты, которые не скрыты.
  • hidden — обрабатывать только скрытые объекты.
  • forbidden — обрабатывать только запрещенные объекты (по умолчанию обрабатываются только не запрещенные).

autodump-destroy-here

Уничтожить предметы под курсором помеченные как мусор. Аналогично "autodump destroy-here", но можно использовать с сочетанием клавиш.

autodump-destroy-item

Уничтожить выбранную вещь. Вещь может быть выбрана как внутри контейнера, так и в списке по клавише k. Если выполнена второй раз прежде, чем игра будет возобновлена — отменит уничтожение.

cleanowned

Конфискует собственность дварфа. По умолчанию конфискуются и выбрасываются испорченные вещи и еда, валяющаяся на полу.
Параметры:

  • all — конфискуются все вещи.
  • scattered — конфискуются и выбрасываются все вещи, разбросанные на полу.
  • x — конфискуются и выбрасываются вещи с износом "x" и более.
  • X конфискуются и выбрасываются вещи с износом "X" и более.
  • dryrun — тестовый прогон. Используйте с другими параметрами, чтобы посмотреть, что произошло бы, не будь это репетицией.

Пример:

cleanowned scattered X

Будет конфискована испорченная и брошенная еда, разбросанные на полу вещи и любые вещи со степенью износа "X" и выше.

Команды. Багфиксы

drybuckets

Удаляет воду из всех ведер, позволяя использовать их для производства щелочи.

fixdiplomats

До версии 0.31.12 эльфы посылали дипломатов только для того, чтобы обсудить квоты на вырубку деревьев, что было признано багом. С тех пор, как баг поправлен, эльфы перестали волноваться о вырубке деревьев. Команда добавляет эльфийской цивилизации должность дипломата, позволяя им вести переговоры о квотах вырубки деревьев, а вам - злить их, провоцируя на военные действия.

fixmerchants

Добавляет все человеческим цивилизациям должность торгового представителя, позволяя им заключать торговые соглашения (как они делали это до версии 0.28.181.40d).

fixveins

Удаляет некорректные ссылки на включения минералов, восстанавливает потерянные. Полезно, если вы накосячили с утилитами вроде tiletypes или случайно возвели конструкцию на полу из ценного минерала.

tweak

Исправления мелких багов.
Субкоманды:

  • clear-missing - Удаляет статус "пропавший" en у выбранного юнита. Позволяет выгравировать мемориальную плиту для привидения существа, тело которого не найдено.
  • clear-ghostly - Удаляет статус "пропавший" en у выбранного юнита и помечает его как мертвого. Позволяет упокоить забагованных призраков, которые не показываются в меню гравировки мемориальной плиты даже после команды clear-missing. Работает, но возможно представляет большую опасность, так что будьте осторожны. Вероятно (почти точно) это не даст того же эффекта, что и нормальные похороны. Вас предупредили.
  • fixmigrant - Удаляет у вабранного юнита флаг "житель/торговец". Предназначено для исправления бага с мигрантами/торговцами, которые застыли на краю карты и не идут в крепость. Работает только на дварфах (или на расе игрока, если это мод). Не злоупотребляйте этим на нормальных торговцах. (если уж вам так хочется их похитить - используйте "tweak makeown", иначе их одежда будет forbidden ru и т.д.).
  • makeown - вынуждает выбранного юнита стать членом вашей крепости. Так можно грабить караваны вместе с торговцами и их эскортом, даже если они не принадлежат к расе игрока. Иностранцы (люди, эльфы) могут работать, но им нельза назначать комнаты и они не будут отображаться в DwarfTherapist, потому что игра считает их чем-то вроде домашних животных. Захват животных с каравана может дать странные эффекты (животные сходят с ума, становятся берсерками или вовсе не считаются прирученными), но вы можете отправить их на скотобойню. Grabbing wagons results in some funny spam, then they are scuttled.

Субкоманды, которые действуют до перезапуска DF:

Результат работы readable-build-plate
  • stable-cursor - в режиме крепости сохраняет позицию курсора при переключении между меню t, q, k, d и т.п.
  • patrol-duty - делает так, чтобы приказы на тренировку не считались патрулями, что препятствует накоплению плохих мыслей. Не решает проблемы, когда солдаты уходят со службы, становясь гражданскими.
  • readable-build-plate - исправляет показ весового лимита в меню постройки нажимной плиты.
  • stable-temp - Fixes performance bug 6012 by squashing jitter in temperature updates. In very item-heavy forts with big stockpiles this can improve FPS by 50-100%
  • fast-heat - Further improves temperature update performance by ensuring that 1 degree of item temperature is crossed in no more than specified number of frames when updating from the environment temperature. This reduces the time it takes for stable-temp to stop updates again when equilibrium is disturbed.
  • fix-dimensions - исправляет вычитание небольшого количества нити/ткани/жидкости из стека путем разделения стека и вычитания оттуда одной вещи. Обязательное дополнение к патчу для бага 808.
  • advmode-contained - Works around bug 6202, i.e. custom reactions with container inputs in advmode. The issue is that the screen tries to force you to select the contents separately from the container. This forcefully skips child reagents.
  • fast-trade - делает так, чтобы нажание Shift - Enter на экране торговли и в меню Move Goods to Depot выбирало текущую вещь (полностью, если это стек) и перемещало курсор на следующую строку.
Результат работы military-color-assigned
  • military-stable-assign - сохраняет позицию курсора в меню назначения в отряд, т.е. курсор в меню со списком дварфов не будет постоянно оказываться вверху списка.
  • military-color-assigned - окрашивает имена солдат, уже назначенных в другие отряды в зеленый/коричневый цвет в списке кандидатов на назначение в отряд.
  • military-training - ускоряет тренировку отряда за счет устранения почти наверняка неумышленно сделанной Toady обратной зависимости скорости тренировки к количеству юнитов. (Т.е. чем больше юнитов - тем медленней). Также заставляет юнитов болше спарринговаться.

fix-armory

Включает хранение экипировки отряда в бараках.
Не дает носильщикам таскать экипировку отряда на склады, а с них обратно в weapon racks, armor stands и контейнеры.

Примечание: Чтобы это действительно работало необходимо пропатчить weapon racks и вручную приписать их к отряду. См. ниже документацию на gui/assign-rack.
К тому же, стандартная вместимость armor stand'ов довольно низка. Возможно вам заохочется увеличить ее патчем armorstand-capacity. Подробности.
Постройки в оружейной используются так:

  • Weapon rack (пропатченные) хранят любое оружие отряда. Каждый принадлежит конкретному отряду и может хранить до пяти предметов.
  • Armor stand принадлежат членам конкретного отряда и хранят броню и щиты. По умолчанию один armor stand хранит один предмет (вплоть до единственного ботинка или перчатки). Пропатченный хранит 2 предмета, этого должно быть достаточно.
  • Cabinet хранит одежду, приписанную члену конкретного отряда. Никогда не хранят их собственную одежду.
  • Chest (box и т.д.) хранит flask, backpack или quiver члена конкретного отряда. Возможно баг, но еда вываливается из рюкзака, когда тот хранится.

Warning:

Although armor stands, cabinets and chests properly belong only to one squad member, the owner of the building used to create the barracks will randomly use any containers inside the room. Thus, it is recommended to always create the armory from a weapon rack.

Contrary to the common misconception, all these uses are controlled by the Individual Equipment usage flag. The Squad Equipment flag is actually intended for ammo, but the game does even less in that area than for armor and weapons. This plugin implements the following rules almost from scratch:

  • Combat ammo is stored in chests inside rooms with Squad Equipment enabled.
  • If a chest is assigned to a squad member due to Individual Equipment also being set, it is only used for that squad's ammo; otherwise, any squads with Squad Equipment on the room will use all of the chests at random.
  • Training ammo is stored in chests inside archery ranges designated from archery targets, and controlled by the same Train flag as archery training itself. This is inspired by some defunct code for weapon racks.

There are some minor traces in the game code to suggest that the first of these rules is intended by Toady; the rest are invented by this plugin.

Команды. Переключение режимов игры и возврат крепости

lair

Позволяет пометить карту как "логово монстров", что предотвращает разбрасывание предметов, когда вы бросаете крепость. "lair reset" делает снимает метку. В отличие от "reveal", эта команда не сохраняет информацию, так что вы не сможете восстановить информацию о настоящих логовах с помощью "lair reset".
Параметры:

  • lair - помечает карту как логово монстров.
  • lair reset - помечает карту обычной (не логовом).

mode

Позволяет напрямую менять режим игры. Не все комбинации хороши, многие приведут к неприятным последствиям.

Пример:
Вы управляете крепостью и ставите игру на паузу. Затем переключаетесь в режим арены и берете существо под контроль en и переключаетесь в режим приключенца. Вы только что потеряли крепость и стали приключенцем. Можно вот еще что: вы управляете из режима крепости, ставите игру на паузу, перейдя в главное меню Esc. Переключаетесь в режим приключенца, потом используете Dfusion для того, чтобы взять существо под контроль en, затем сохраняетесь или уходите в отставку en. Вы создали возвращаемую крепость и стали приключенцем.

Автор не несет ответственности за последствия использования этой команды.

Команды. Визуализатор и экспорт данных

ssense / stonesense

Пример работы Stonesense

Stonesense - изометрический визуализатор, работающий в другом окне. Для работы требуется графический ускоритель и по крайней мере двухядерный процессор (иначе программа замедлит DF).
Все данные хранятся в директории "stonesense". Более подробная инструкция в stonesense/README.txt
Совместима с Windows XP sp3 и выше, а также с современными дистрибутивами Linux.
Старые версии, поддержка, дополнительная графика здесь.
Дополнительные ресурсы.

mapexport

Экспортирует текущую карту в файл. Можно будет использовать с визуализаторами.

dwarfexport

Экспортирует дварфов в RuneSmith-совместимый XML.

Команды. Управление заданиями

job

Команда для получения информации о заданиях и управления заданиями.
Параметры:

  • без параметров - выводит подробную информацию о работе, выбранной в мастерской или на экранах юнитов en и работ en.
  • list - выводит информацию обо всех работах в выбранной мастерской.
  • item-material <item-idx> <material[:subtoken]> - подставляет ID конкретного материала в задание на работу.
  • item-type <item-idx> <type[:subtype]> - подставляет точный ID типа предмета в задание.

job-material

Меняет материал, используемый в выбранной работе.
Работает так:

job-material <inorganic-token>

Используется с сочетанием клавиш:

  • В меню q, когда работа выбрана в мастерской или печи, меняет материал используемый для работы. Можно использовать только неорганические материалы.
  • В меню b, в ходе выбора компонентов постройки, курсор переместится на первый попавшийся компонент с выбранным материалом.

job-duplicate

  • В меню q, когда работа выбрана в мастерской или печи, дублирует ее.

workflow/GUI

Управление прозводственным потоком. Для этой команды существует также консольный интерфейс, детали обращения с которым здесь не приводится. workflow enable [option...], workflow disable [option...] Привяжите сочетание клавиш (пример настроек предлагает Alt-W), потом активируйте её при задав работу в мастерской (q - режим).



Скрипт предлагает простой интерфейс управления ограничениями workflow плагина. После активацииGUI содержит список ограничений для данной реакции и их статус на данный момент.

Ограничение задает краевые значения, с которыми будет сравниваться либо общее количество вещей данного типа (опционально — материала), либо число стаков. Когда количество вещей падает ниже меньшего значения диапазона — работа запускается. Если ниже верхнего предела — работа продолжается. Если значение выше или равно верхнему пределу — выпуск продукции опять прекращается.

Pressing 'I' switches the current constraint between counting stacks or items. Pressing 'R' lets you input the range directly; 'e', 'r', 'd', 'f' adjust the bounds by 5, 10, or 20 depending on the direction and the 'I' setting (counting items and expanding the range each gives a 2x bonus).

Pressing 'A' produces a list of possible outputs of this job as guessed by workflow, and lets you create a new constraint by choosing one as template. If you don't see the choice you want in the list, it likely means you have to adjust the job material first using job item-material or gui/workshop-job, as described in workflow documentation above. In this manner, this feature can be used for troubleshooting jobs that don't match the right constraints.

Команды. Управление крепостью

seedwatch

Включает и выключает приготовление семян и растений в зависимости от их количества. Для каждого вида растений может быть назначен свой лимит. Когда количество растений и семян этого типа падает ниже лимита - их приготовление запрещается. Когда количество вырастает больше лимита + 20 штук, приготовление разрешается.
Плагин требует того, чтобы игра работала в режиме крепости, иначе он автоматически завершает работу. Вам потребуется перезапускать его при каждом запуске режима крепости с помощью "seedwatch start".
Параметры:

  • seedwatch all - добавляет в список мониторинга все растения из листа аббревиатур.
  • seedwatch start - запускает мониторинг.
  • seedwatch stop - останавливает мониторинг.
  • seedwatch info - показывает осуществляется ли мониторинг, выводит список мониторинга.
  • seedwatch clean - очистка списка мониторинга.

Можно использовать следующие аббревиатуры для растений:

Примеры:

seedwatch MUSHROOM_HELMET_PLUMP 30

Добавить Plump helmet в список мониторинга, лимит - 30.

seedwatch MUSHROOM_HELMET_PLUMP

Удаляет Plump helmet из списка мониторинга.

seedwatch ph 30

То же самое, что и "seedwatch MUSHROOM_HELMET_PLUMP 30".

seedwatch all 30

Добавить все растения из списка аббревиатур в список мониторинга. Лимит - 30.

zone

Небольшая помощь в управлении зонами активности (пастбищами, ямами, прудами) и клетками.

Параметры:

  • set - устанавливает зону или клетку под курсором как клетку/зону по умолчанию для приписывания животных в будущем.
  • assign - привязать юнита/юнитов к пастбищу или яме, выбранной параметром "set". Если фильтры не заданы - юнит должен быть выбран в игре. Параметру может следовать ID зоны, которая будет использоваться взамен той, что по умолчанию.
  • unassign - открепить выбранное существо от его зоны.
  • nick <nickname> - массовое назначение ников.
  • rem-nick - массовое удаление ников.
  • tocages - разместить юнита/юнитов в клетках внутри пастбища.
  • uinfo - вывести данные о юните/юнитах. Если фильтры не заданы - юнит должен быть выбран в игре.
  • zinfo - вывести данные о зоне/зонах. Без фильтров будет выведена информация о зонах под курсором.
  • verbose - еще информация.
  • filters - вывести список параметров фильтра.
  • examples - вывести примеры использования.
  • not - "НЕ", отрицание следующего ключевого слова (для фильтра).

Фильтры:

  • all - обработать всех юнитов (для использования вместе с другими фильтрами).
  • count <N> - Обработать только N юнитов, где N - число. (для использования вместе с другими фильтрами).
  • unassugned - выбирать не приписанных к зоне, цепи или установленной клетке.
  • minage <age> - Минимальный возраст для отбора. Age - возраст.
  • maxage <age> - Максимальный возраст для отбора. Age - возраст.
  • race <rase RAW ID> - Раса для выбора. Должно употребляться с идентификатором расы (напр. BIRD_TURKEY, ALPACA и т.п.). Можно использовать с NOT.
  • caged - выбрать находящихся в установленной клетке. Можно использовать с NOT.
  • own - выбирать из принадлежащих цивилизации. Можно использовать с NOT.
  • merchant - торговец/принадлежащие торговцу. Должно использоваться для размещения животных в ямах, а не ждя их кражи (убой скота должен работать).
  • war - выбор боевых животных. Можно использовать с NOT.
  • hunting - выбор охотничьих животных. Можно использовать с NOT.
  • tamed - выбор питомцев. Можно использовать с NOT.
  • trained - тренированное животное. Находит охотничьих/боевых животных так же как и тех, чей уровень тренировки выше чем "одомашненный". Если вам нужны именно охотничьи/боевые особи ищите по "war" или "hunting". Можно использовать с NOT.
  • trainablewar - существо может быть тренировано для боя (но еще не тренировано). Можно использовать с NOT.
  • trainablehunt - может быть тренировано для охоты (но еще не тренировано). Можно использовать с NOT.
  • male - самец. Можно использовать с NOT.
  • female - самка. Можно использовать с NOT.
  • egglayer - раса относится к яйцекладущим. Можно использовать с NOT.
  • grazer - травоядное. Можно использовать с NOT.
  • milkable - млекопитающее. Можно использовать с NOT.

Использование с отдельными юнитами:
Один из удобных способов использования команды - назначение сочетания клавиш на команду "zone assign", а может еще и "zone set". Поместите курсор на пастбище или яму, используйте "zone set", чтобы пометить его. Теперь вы можете выбирать юнитов на карте (с помощью v или k) и использовать "zone assign", чтобы приписать их к новому дому (который вы пометили командой "zone set"). Кстати, позволяет сажать в ямы дварфов.

Использование с фильтрами:
Все фильтры можно использовать с командой "assign".
Ограничения: невозможно назначать юнитов, которые находятся внутри установленной клетки или на цепи потому, что в большинстве случаев это весьма нежелательно. Невозможно засунуть в клетку животное, у которого есть владелец, потому что владелец вскоре вытащит его из клетки, что приведет к бесконечному тасканию животного туда-сюда.
Обычно стоит использовать фильтр "own" (включающий в себя "tame"), если вы конечно не хотите использовать команду для того, чтобы садить в яму гостей. "own" игнорирует дварфов, если вы не укажете конкретно "race DWARF" (поэтому можно без опасений использовать "assign all own" для того, чтобы согнать всех ваших животных на одно большое пастбище). "egglayer" и "milkable" должно использоваться вместе с "female", если только у вас не установлен мод, который делает эльфийских мужиков яйцекладущими и все такое. Тогровцы и их животные игнорируются, если не использовать "merchant" (их можно засадить в ямы без всяких проблем, но красть и пасти их животных - не такая хорошая идея, т.к. они толком не значатся вашими. При этом их вполне можно пустить на убой). Многие фильтры могут идти с отрицанием (напр. "not grazer" - не травоядное).

Массовое переименование
Командой "nick" можно дать одинаковый ник множеству юнитов. Если используется без "assign", "all" или "count" - переименует всех юнитов в целевой зоне. В комбинации с "assign", "all" или "count" (и другими фильтрами) команда переименует юнитов, попадающих под условия фильтра.

Зоны с клетками
Используя "tocages" вы можете отправить юнитов в набор клеток, например в комнаты рядом со скотобойней. Животные будут распределены между доступными клетками, чтобы оптимизировать работы по переноске в клетки и из клеток (на бойню). Чтобы все это работало нужно установить клетки, а потом поместить одну зону pen/pasture над ними, закрыв ей все клетки, которые вы хотите использовать. Затем используйте "zone set" и "zone tocages filter1 filter2 ...". "tocages" затирает "assign", потому что их использование вместе не имеет смысла, но может использоваться с "nick", "remnick" и всеми фильтрами.

Примеры:

zone assign all own ALPACA minage 3 maxage 10

Отправить всех принадлежащих вашей крепости альпаков, возрастом от 3 до 10 лет на выбранное пастбище.

zone assign all own caged grazer nick ineedgrass

Отправить всех принадлежащих вашей крепости травоядных, сидящих в клетках на складах (напр. после покупки у каравана) на выбранное пастбище и дать им ник "ineedgrass".

zone assign all own not grazer not race CAT

Привязать к зоне всех принадлежащих вашей крепости НЕ травоядных, кроме котов.

zone assign count 5 own female milkable

Отправить до 5 принадлежащих вашей крепости самок сущевств, дающих молоко, на выбранное пастбище.

zone assign all own race DWARF maxage 2

Сбросить всех ваших бесполезных детей в яму:)

zone nick donttouchme

Переименовать всех юнитов в текущей зоне или клетке по умолчанию в "donttouchme". Полезнее всего использовать для специальных пастбищ или клеток, которые не помечены, как комнаты, а вы хотите защитить их от "autobutcher".

zone tocages count 50 own tame male not grazer

Отправить до 50 животных, принадлежащих вашей крепости, принадлежащих кому-то из дварфов, мужского пола, не травоядных, в клетки, построенные в текущей зоне по умолчанию.

autonestbox

Назначает яйцекладущих самок, не находящихся на пастбище в зоны с гнездовищами. Для этого нужно создать зоны pen/pasture над гнездовищами. Если пастбище больше, чем 1х1, гнездовище должно находиться в верхнем левом углу. На каждое пастбище, независимо от размера, будет назначено только одно животное. Возраст на текущий момент не проверяется, большинство птиц быстро взрослеют. Яйцекладущие, являющиеся еще и травоядными игнорируются, т.к. сажать их на пастбище в одну клетку - не слишком здравая мысль. Обработаны будут только питомцы и одомашненные особи, принадлежащие крепости, потому что полудикие особи разрушат ваши красивые зоны с насестами, если вновь одичают. Команда, вызванная без параметров будет выполнена один раз.

Параметры:

  • start - начать выполнение через каждые Х тиков. По умолчанию Х = 6000, примерно каждые 60 секунд при 100 FPS.
  • stop - остановить автоматическое выполнение.
  • sleep X - меняет время ожидания между автозапусками команды на Х тиков.

autobutcher

Autobutcher (автомясник) назначает на убой скот, когда его количество превышает определенное число (по умолчанию — 1 мужской, 5 женских детей; 1 мужской, 5 женских взрослых). Только tame (прирученные) животные будут назначаться. Именованные, боевые, охотничьи животные не будут назначаться.

  • autobutcher start — запустить скрипт
  • autobutcher stop — остановить скрипт
  • autobutcher sleep X — количество фреймов между запусками скрипта
  • autobutcher watch R — наблюдать за расой, R — id расы из равов (ALPACA, BIRD_TURKEY, RAT_GIANT, etc) или all
  • autobutcher unwatch R — прекратить наблюдать за расой R
  • autobutcher forget R — прекратить наблюдать и обнулить настройки для расы
  • autobutcher autowatch — включить автоматическое добавление новых рас
  • autobutcher noautowatch — выключить автоматическое добавление новых рас
  • autobutcher list — статус и список наблюдаемых рас
  • autobutcher list_export — сохранить в файл, который можно использовать, чтоб копировать настройки autobutcher в другой сейв.

Последовательность операций для копирования сейва: 1 — запустить сейв с нужными настройками; 2 — Зайти в папку с ДФ проводником или другим файловым менеджером; 3 — набрать в командной строке "dfhack-run autobutcher list_export > autobutcher.bat"; 4 — Закрыть текущий сейв, открыть новый, куда настройки копировать планируется; 5 — запустить autobutcher.bat.

  • autobutcher target fk mk fa ma R — установить допустимое количество особей для расы, где fk — дети женского пола, mk — дети мужского пола, fa — взрослые женского пола, ma — взрослые мужского пола, R — id расы (можно использовать также значения all — настройки для всех, и new — для будущих добавлений.

Примеры:
Итак, ваша цель - держать до 7 детенышей (4 самки, 3 самца) и до 3 взрослых (2 самки, 1 самец) альпак. Когда детеныши вырастают - старейшие из взрослых особей идут на забой. При этом детенышей будут забивать самых молодых, чтобы другие могли вырастать до взрослых особей. Любая кошка без имени будет зарезана при первой возможности:

autobutcher target 4 3 2 1 ALPACA BIRD_TURKEY
autobutcher target 0 0 0 0 CAT
autobutcher watch ALPACA BIRD_TURKEY CAT
autobutcher start

Автоматически добавлять все новые расы в список наблюдения и помечать безымянных животных на убой как только они окажутся в крепости. Настройки по умолчанию уже содержат список особых рас, которых не все это не затронет:

autobutcher target 0 0 0 0 new
autobutcher autowatch
autobutcher start

Прекратить наблюдение за расами альпак и кошек, но помнить настройки для этих рас, чтобы потом не вводить настройки заново. Чтобы добиться этого, нужно использовать "unwatch".
Важно: "autobutcher unwatch all" работает, но имеет смысл только если вы держите плагин запущенным в режиме "autowatch" или вручную добавили несколько новых рас с помощью "watch". Если вы просто хотите остановить работу плагина - используйте "autobutcher stop".

 autobutcher unwatch ALPACA CAT

autolabor

Автоматически управляет рабочими обязанностями дварфов.
Будучи запущенным, autolabor периодически проверяет дварфов, включает и выключает их labors. Утилита пытается держать загруженными работой как можно больше дварфов, но при этом сделать из них специалистов.
Предупреждение: работая, утилита перезапишет любые ручные изменения, внесенные вами в рабочие обязанности.
Использование:

  • autolabor enable - включить плагин.
  • autolabor disable - выключить.
  • autolabor <labor> <минимум> [<максимум>] - установить количество дварфов для работы <labor>. Максимум - необязательный параметр.
  • autolabor <labor> haulers - работа <labor> будет выполняться переносчиками.
  • autolabor <labor> disable - отключить autolabor для работы <labor>.
  • autolabor <labor> reset - сбросить настройки для этой работы к умолчаниям.
  • autolabor reset-all - сбросить настройки всех работ.
  • autolabor list - текущая информация обо всех рабочих обязанностях.
  • autolabor status - показать общую информацию.

Примеры:

autolabor MINE 2

Держать минимум двух шахтеров.

autolabor CUT_GEM 1 1

Держать одного и только одного дварфа как огранщика.

autolabor FEED_WATER_CIVILIANS haulers

Переносчики будут кормить больных дварфов и давать им воду.

autolabor CUTWOOD disable

Отключает autolabor для рубки леса.

Команды. Прочее

catsplosion

Мгновенно размножает котов. Использовать эту команду более одного-двух раз - довольно плохая идея.

dfusion

DFusion - сборник lua-плагинов от warmist/darius, запускаемый как плагин DFHack. Подтверждена работа следующих плагинов DFusion:

  • simple_embark - позволяет изменить число дварфов на этапе высадки.

Примечание:

  • Некоторые из плагинов DFusion пока не портированы до конца. Это может привести к падениям.
  • На текущий момент работает только под Windows.
  • Игра будет заморожена, пока вы используете этот плагин. Если она не отвечает - не паникуйте.

misery

Если включена, то все новые плохие мысли будут умножаться (по умолчанию на 2).
Использование:

  • misery enable n - включить misery c множителем n. Множитель должен быть положительным.
  • misery n - то же, что и "misery enable n".
  • misery enable - то же, что и "misery enable 2".
  • misery disable - прекратить добавление дополнительных плохих мыслей. Не удаляет уже накопившиеся. Эквивалент - "misery 1".
  • misery clear - удаляет фальшивые плохие мысли, добавленные в этой сессии DF. После сохранения мысли остаются навсегда! Не меняет множитель.

Скрипты

Скрипты на lua и ruby, помещенные в папку hack/scripts можно запускать, будто они являются командами DFHack. Они будут перечислены в конце списка, выводимого командой "ls".
Примечание: скрипты в подпапках директории hack/scripts также можно вызывать, но по команде "ls" они будут выводиться, только если использовать "ls -a". Это предназначено для того, чтобы скрыть неактуальные скрипты, скрипты для разработчиков и те, что предназначены для использования в сочетаниях клавиш.

fix/*

Скрипты в этой подпапке исправляют разные баги:

  • fix/dead-units - удаляет никому не интересных мертвых из unit List. Не дает какого-либо заметного выигрыша в производительности, однако, когда список юнитов достигает примерно 3000 - мигранты перестают приходить. Этот скрипт позволить волнам мигрантов снова прибывать в вашу крепость.
  • fix/population-cap - запускайте этот скрипт после каждой волны мигрантов, чтобы убедиться, что population cap ru не превышен. Штука в том, что этот предел сравнивается с населением на момент последнего каравана, так что если он падает ниже ограничения - мигранты будут приходить до следующего обновления.
  • fix/stable-temp - мгновенно приводит температуру всех валяющихся предметов в равновесие с их окруженим и останавливает обновления температуры. Однако, эффективнее использовать "tweak stable-temp" и "tweak fast-heat".
  • fix/item-occupancy - выявляет и исправляет случаи с несуществующими "items occupying site", что обычно является следствием багов "autodump" или другими неудачными взломами.

gui/*

В этой папке лежат скрипты, интерфейс которых встраивается прямо в окно игры.

quicksave

Будучи вызванной в режиме крепости, скрипт делает мгновенное автосохранение, используя флаг сезонного автосохранения.

setfps

  • setfps <число> - устанавливает ограничение FPS на случай, если вы хотите посмотреть битву в замедленном действии или что-нибудь в этом роде.

siren

Поднимает спящих, отменяет перерывы, останавливает вечеринки и воскрешает мертвых. По умолчанию - везде и всех, но можно использовать нору в качестве аргумента. Взамен дает плохие мысли о шуме, усталости и чувстве незащищенности. К тому же, юниты, оторванные от перерыва, довольно скоро снова пойдут отдыхать. Скрипт предназначен для ситуаций чрезвычайных, вроде той, когда к вам пришла осада, а все военные бухают.

growcrops

Мгновенно сажает семена на ваших фермах.
Без аргументов команда засадит фермы теми семенами, что указаны в их настройках. Если указать тип семян - посадит 100 таких семян из тех, что готовы к посадке. Вторым аргументом вы можете изменить это число.
Пример:

growcrops plump 40

Посадит 40 plump helmet

removebadthoughts

Удаляет плохие мысли. Скрипт помечает мысли как слишком старые, так что игра удаляет их, когда вы снимаетесь с паузы. Эффективное лекарство от тантрум-спиралей. Если выполнить с выбранным в меню v юнитом - очистит только его мысли. В противном случае - прочистит мозги всей крепости. Счастье каждого отдельного дварфа может не повыситься сразу после выполнения этой команды, но вскоре они станут куда веселей.
С необязательным параметром "-v" the script will dump the negative thoughts it removed.

slayrace

Убивает всех юнитов нужной расы.
Если запустить без агрументов - выводит список рас.
С аргументом "him" - только выбранное существо.
У любого не мертвого, не помещенного в клетку существа выбранной расы "blood_count" будет установлен на 0, что сулит им неизбежную гибель на следующем тике игры. Для таких существ, как вампиры, также устанавливает "animal.vanish_countdown = 2".
Также можно использовать второй аргумент - "magma". Тогда на существ будет обрушиваться магма 7/7, пока они не умрут. Не рекомендуется использовать на существах с иммунитетом к магме и птицах.
Поразит любого на разведанной части карты, даже если он в засаде.

Примеры:

slayrace gob

Убьет всех гоблинов.

slayrace him

Убивает выбранное в режиме v существо.

slayrace elve magma

Обрушит магму на всех эльфов на карте (могут быть !!побочные эффекты!!).

magmasource

Создает в выбранное клетке бесконечный источник магмы. Скрипт помечает клетку карты как magma source, и каждые 12 тиков в этой клетке будет добавляться один 1 уровень магмы.
Поместите курсор в нужное место (оно должно пропускать течение en и не находиться где-нибудь за облаками) и выполните команду "magmasource here".
Чтобы добавлять больше, чем одни уровень магмы за раз, вызовите команду еще раз.
Чтобы удалить один источник - поместите на него курсор и выполните "delete-here".
Для удаления всех установленных вами источников используйте "magmasourse stop".
Без аргументов команда выведет справку и список существующих источников магмы.

digfort

Скрипт для назначения области для копания, согласно плану, записанному в файле .csv вроде этого:

# this is a comment
d;d;u;d;d;skip this tile;d
d;d;d;i

Допустимые команды для разметки (на самом деле все то же, что и в меню Designations): d - копать, u - лестница вверх, j - лестница вниз, i - двунаправленная лестница, h - канал, r - рампа, x - удалить назначение.
Неопознанные символы игнорируются (как "skip this tile" в примере).
Пустые строки и текст после символа "#" игнорируется как комментарий. Чтобы пропустить строку в макете крепости - используйте строку с одним ";".
Ища файл с планом, скрипт понимает под корневой директорией папку корневую папку DF.

superdwarf

Почти как fastdwarf, но для отдельных существ.
Вы можете сделать любое существо сверхбыстрым, выбрав его в игре по клавише v и выполнив "superdwarf add".
Другие опции: del (удалить), clear (очистить список) и list (список).
Также плагин укорачивает им время сна и перерывов.

drainaquifer

Удаляет теги aquifer ru со всех клеток карты. Необратимо.

deathcause

Наведите курсор на часть тела - и скрипт покажет причину смерти этого существа.

lua

Есть несколько способов вызвать эту команду:

  • lua (без параметров) - запускает интерактивный интерпретатор lua.
  • lua -f "filename" или lua --file "filename" - загружает и выполняет файл "filename".
  • lua -s ["filename"] или lua --save ["filename"] - загружает и выполняет файл "filename" из директории save. Если имя файла не задано - загружается "dfhack.lua".
  • :lua lua statement... - выполняет выражение lua, как это бы сделал интерпретатор.

embark

Позволяет высадиться где угодно. Пока только для Windows.

lever

Позволяет манипулировать рычагами из консоли.
Может вывести список рычагов, их состояние, и то, к чему прикреплены:

lever list

Чтобы заставить дварфов дернуть рычаг 42:

lever pull 42

Это будет сделано так же, как если бы вы дали задание вручную.
Чтобы чудесным образом мгновенно дернуть рычаг:

lever pull 42 --now

stripcaged

Для мусора в клетках. Пометит выбранные вещи как мусор, тогда дварф сможет прийти и выкинуть их. См. также "autodump".
С аргументом "items" пометит на выброс только вещи, лежащие в клетке, исключая то, что одето на существах. "weapons" выбросит оружие, armor выбросит все, одетое на сидящих в клетке (включая одежду и броню). "all" выбросит все.
"stripcaged list" выведет в консоль список клеток и их содержимого.
Без дополнительных аргументов все эти команды отработают на всех клетках и ловушках для животных на карте. С аргументом "here" обработают только выбранную клетку (или клетку под курсором). Чтобы задать целью только конкретные клетки нужно вводить их ID:

stripcaged weapons 25321 34228

create-items

Создает нужные объекты под курсором.
Первый аргумент - категория, второй - материал, третий (необязательный) - количество объектов для создания (по умолчанию 20).
Сейчас поддерживаются категории: boulder, bar, plant, log, web.
Если использовать "list" вместо материала - будет выведен список допустимых материалов.
Категория "web" создаст на полу не собранную паутину.
Скрипт ни к чему не принуждает и спокойно позволит создать булыжник из жабьей крови, но список по команде "list" содержит только нармальные материалы.

Примеры:

create-items boulders COAL_BITUMINOUS 12
create-items plant tail_pig
create-items log list
create-items web CREATURE:SPIDER_CAVE_GIANT:SILK
create-items bar CREATURE:CAT:SOAP
create-items bar adamantine

locate-ore

Сканирует карту на наличие руд. Находит и помечает на раскопку один тайл с заданной рудой. Работает только с природными материалами, не с результатами реакций, вроде стали.
С аргументом "list" выводит список руд на карте.
Пример:

locate-ore list 
locate-ore hematite 
locate-ore iron

soundsense-season

Как известно, soundsense не может определить время года, когда игра загружена и играет музыку к рандомным временам года до тех пор, пока время года не сменится. Скрипт выводит в gamelog.txt строку о наступлении времени года. Эффективнее вызывать команду из файла dfhack.init.

multicmd

Запустить несколько команд DFHack. Команды разделяются символом ";" и выполняются последовательно и независимо. Можно использовать с горячими клавишами.
Пример:

multicmd locate-ore iron ; digv