Утилита:DFHack: различия между версиями

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску
Нет описания правки
Строка 145: Строка 145:
*'''showX''' - помечает выбранную особенность (пещеру, озеро магмы и т.д.) как обнаруженную.
*'''showX''' - помечает выбранную особенность (пещеру, озеро магмы и т.д.) как обнаруженную.
*'''hideX''' - помечает выбранную особенность как не обнаруженную.
*'''hideX''' - помечает выбранную особенность как не обнаруженную.
=== liquids ===
Позволяет добавить магму, обсидиан и воду. Заменяет обычную консоль DFHack, поэтому не может быть назначена для сочетания клавиш. Настройки команды стираются при закрытии DFHack. Предназначена для использования с командой liquids-here (которая может быть назначена для сочетания клавиш).<br /><br />
Настройки (только для воды/магмы):
*'''f+''' - жидкость будет с течением.
*'''f.''' - don't change flow state (read state in flow mode).
*'''f-''' - жидкость будет стоячей.
*'''0-7''' - установить уровень жидкости<br />
Кисть:
*'''point''' - одна клетка [p].
*'''range''' - блок с курсором в нижнем северо-западном углу [r] (любой место и размер).
*'''block''' - стандартный блок DF, внутри которого курсор (обычно 16х16х1).
*'''column''' - колонна от курсора вверх до открытого пространства.
*'''flood''' - клетки под курсором, покрытые полом (Используется только вместе с wlean).<br />
Другое:
*'''q''' - выход в консоль DFHack.
*'''help или ?''' - справка.
*'''Пустая строка''' - поместить жидкость.<br /><br />
Note:<br />
Spawning and deleting liquids can F up pathing data and temperatures (creating heat traps). You've been warned.
=== liquids-here ===
Помещает жидкость под курсором, используя настройки из liquids (по умолчанию поместит под курсором клетку магмы уровнем 7/7).
Курсор должен был активен. Команде можно назначить сочетание клавиш.


=== autobutcher ===
=== autobutcher ===

Версия от 19:47, 28 августа 2013

Данная статья помечена как не оконченная.
Вы можете прочитать эту статью на английском или помочь проекту её переводом.
Консоль 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 приоритет будет отдан порядку команд.
Команды, которые не предназначены напрямую для использования в сочетаниях клавиш будут всегда считаться выполнимыми.

The context part in the key specifier above can be used to explicitly restrict the UI state where the binding would be applicable. If called without parameters, the keybinding command among other things prints the current context string. Only bindings with a context tag that either matches the current context fully, or is a prefix ending at a '/' boundary would be considered for execution, i.e. for context foo/bar/baz, possible matches are any of @foo/bar/baz, @foo/bar, @foo or none.

Пример:
keybinding add Ctrl-V digv - добавление сочетания клавиш Ctrl - V для команды digv.

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

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

Копирует параметры текущего склада to the custom stockpile settings and switches to custom stockpile placement mode, позволяя быстро и легко копировать/вставлять склады.

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

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

Параметры:

deramp (by zilpin)

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

feature

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

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

Параметры:

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

liquids

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

Настройки (только для воды/магмы):

  • f+ - жидкость будет с течением.
  • f. - don't change flow state (read state in flow mode).
  • f- - жидкость будет стоячей.
  • 0-7 - установить уровень жидкости

Кисть:

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

Другое:

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

Note:
Spawning and deleting liquids can F up pathing data and temperatures (creating heat traps). You've been warned.

liquids-here

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

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 — для будущих добавлений.