Утилита: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
Выводит список всех колоний вредителей на карте. Также может заменить их на колонии медоносных пчел.
Параметры:
- bees — заменяет колонии на колонии медоносных пчел.
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
Восстанавливает траву.
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".
Перед высадкой
Если использовать команду на экране выбора места для высадки, то она покажет оценку наличия слоев камней. В данном случает оценка будет только приблизительной (±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
Команда для геологической разведки. Команда оперирует двумя переменными: паттерном и фильтром.
Паттерны:
- diag5 — диагонали, разделенные пятью клетками.
- diag5r — то же самое, но повернуто на 90 градусов.
- ladder — ступенчатый паттерн.
- ladderr — ступенчатый паттерн, повернутый на 90 градусов.
- clear — удалить все указания на раскопки.
- cross — крест в самом центре карты.
Фильтры:
- all — разместить паттерн на всем z-уровне.
- hidden — разместить паттерн только на скрытых клетках уровня (по умолчанию).
- designated — разместить паттерн внутри размеченных областей.
Для того, чтобы заново применить предыдущий фильтр и паттерн, можно использовать команду digexp без параметров.
Примеры:
digexp diag5 hidden
Разметить для раскопок диагональный паттерн на всех скрытых клетках уровня.
digexp
Применить последние паттерн и фильтр.
digexp 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, потому что игра считает их чем-то вроде домашних животных. Захват животных с каравана может дать странные эффекты (животные сходят с ума, становятся берсерками или вовсе не считаются прирученными), но вы можете отправить их на скотобойню. Если захватить повозки таким образом, будет генерироваться забавный спам.
Субкоманды, которые действуют до перезапуска DF:
- stable-cursor - в режиме крепости сохраняет позицию курсора при переключении между меню t, q, k, d и т.п.
- patrol-duty - делает так, чтобы приказы на тренировку не считались патрулями, что препятствует накоплению плохих мыслей. Не решает проблемы, когда солдаты уходят со службы, становясь гражданскими.
- readable-build-plate - исправляет показ весового лимита в меню постройки нажимной плиты.
- stable-temp - Исправляет баг производительности 6012, сглаживая колебания в обновлениях температуры.. В очень-очень крупных крепостях с большими складами может улучшить FPS на 50-100%
- fast-heat - еще больше улучшает производительность при обновлении температур, делая так, чтобы изменение на 1 градус происходила не более чем за заданное число фреймов. Это уменьшает время, которое требуется stable-temp, чтобы прекратить обновления температур после того, как температурное равновесие было нарушено.
- fix-dimensions - исправляет вычитание небольшого количества нити/ткани/жидкости из стека путем разделения стека и вычитания оттуда одной вещи. Обязательное дополнение к патчу для бага 808.
- advmode-contained - работает с багом 6202, т.е. с кастомными реакциями с содержимым контейнера в режиме приключенца. Дело в том, что экран пытается заставить вас выбрать содержимое отдельно от контейнера. Это исправление в принудительном порядке пропускает дочерние реагенты.
- fast-trade - делает так, чтобы нажатие Shift - Enter на экране торговли и в меню Move Goods to Depot выбирало текущую вещь (полностью, если это стек) и перемещало курсор на следующую строку.
- 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 члена конкретного отряда. Возможно баг, но еда вываливается из рюкзака, когда тот хранится.
Предупреждение:
Хотя оружейные стойки, шкафы и комоды принадлежать только одному члену отряда, владелец фурнитуры, использованной для создания казармы, будет случайным образом пользоваться любыми контейнерами в комнате. Поэтому рекомендуется всегда создавать оружейную комнату из weapon rack.
Вопреки распространенному заблуждению, все эти возможности контролируются флагом Individual Equipment ru. Флаг Squad Equipment ru на самом деле предназначен для боеприпасов, но в данной сфере игра делает даже меньше, чем с броней и оружием. Данный плагин практически с нуля реализует следующий набор правил:
- Боевые патроны en хранятся внутри комнаты, в chest со включенным Squad Equipment ru.
- Если chest приписан к члену отряда и флаг Individual Equipment ru установлен, он будет использоваться только для боеприпасов отряда; иначе любые отряды с флагом Squad Equipment у комнаты будут использовать любые chest случайным образом.
- Тренировочные патроны en хранятся в chest'ах внутри archery range размеченных из мишеней и контролируются флагом Train, как и сама тренировка стрельбы. Это вызвано каким-то дохлым кодом от weapon rack'ов.
Кое-какие следы в коде игры показывают, что первое правило задал Тоади; остальные введены этим плагином.
Команды. Переключение режимов игры и возврат крепости
lair
Позволяет пометить карту как "логово монстров", что предотвращает разбрасывание предметов, когда вы бросаете крепость. "lair reset" делает снимает метку. В отличие от "reveal", эта команда не сохраняет информацию, так что вы не сможете восстановить информацию о настоящих логовах с помощью "lair reset".
Параметры:
- lair - помечает карту как логово монстров.
- lair reset - помечает карту обычной (не логовом).
mode
Позволяет напрямую менять режим игры. Не все комбинации хороши, многие приведут к неприятным последствиям.
Пример:
- mode - показывает в каком режиме находится игра
- mode set - вызывает функцию для изменения режима
Вы управляете крепостью и ставите игру на паузу. Затем переключаетесь в режим арены и берете существо под контроль en и переключаетесь в режим приключенца. Вы только что потеряли крепость и стали приключенцем. Можно вот еще что: вы управляете из режима крепости, ставите игру на паузу, перейдя в главное меню Esc. Переключаетесь в режим приключенца, потом используете Dfusion для того, чтобы взять существо под контроль en, затем сохраняетесь или уходите в отставку en. Вы создали возвращаемую крепость и стали приключенцем.
Автор не несет ответственности за последствия использования этой команды.
Команды. Визуализатор и экспорт данных
ssense / 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
Управление прозводственным потоком.
Использование:
workflow enable [option...], workflow disable [option...]
Без параметров команды выше просто включают и выключают плагин. А с параметрами:
- drybuckets - автоматически опустошает брошенные ведра.
- auto-melt - возобновляет плавильные работы, когда есть объекты для плавления.
workflow jobs
Выводит список работ, контролируемых workflow (если они в мастерских, то фильтруется по ним).
workflow list
Выводит список активных ограничений и число их работ.
workflow list-commands
Выводит список активных ограничений в виде команд workflow, которые задают их; этот список можно скопировать в файл, а потом загрузить с помощью встроенной команды script.
workflow count <constraint-spec> <cnt-limit> [cnt-gap]
Задать ограничение, считая каждые стек одним предметом.
workflow amount <constraint-spec> <cnt-limit> [cnt-gap]
Задать ограничение, считая все предметы внутри стека.
workflow unlimit <constraint-spec>
Удалить ограничение.
workflow unlimit-all
Удалить все ограничения.
Функции
Будучи запущенным, плагин защищает все работы на повторе от удаления. Если они почему-либо исчезают, то немедленно добавляются в мастерскую заново и приостанавливаются.
К тому же, когда заданы ограничения на число предметов, работы на повторе, производящие эти предметы, будут автоматически останавливаться и запускаться, если число предметов будет выше или ниже лимита. Допуск (gap) определяет то, насколько ниже лимита должно упасть число предметов, прежде чем работа снова запустится; он предназначен для того, чтобы снизить частоту переключения состояний работы.
Скрипт gui/workflow, описанный ниже - простой интерфейс, интегрированный в игру.
Формат ограничений
Определение ограничения состоит из четырех частей, разделенных символом "/":
ITEM[:SUBTYPE]/[GENERIC_MAT,...]/[SPECIFIC_MAT:...]/[LOCAL,<quality>]
Первая часть является обязательной и определяет тип и подтип предмета, используя raw-токены предметов в том же синтаксисе, в котором они используются для, например, пользовательских реакций.
Последующие части опциональны:
- Generic material ru сужает ограничение на материал предмета до одного из жестко заданных классов, которые на текущий момент включают:
PLANT WOOD CLOTH SILK LEATHER BONE SHELL SOAP TOOTH HORN PEARL YARN METAL STONE SAND GLASS CLAY MILK
- specific material ru выбирает точный материал, используя raw-синтаксис для входных материалов реакций, например, INORGANIC:IRON, однако для удобства можно и просто IRON, или ACACIA:WOOD и т.п. См. токены материалов, для получения более детальной информации.
- Список разных флагов, разделенных запятой, которые на данный момент могут использоваться для того, чтобы игнорировать импортированные предметы или предметы с качеством ниже заданного.
Примеры ограничений:
Держать количество металлических болтов в пределах 900-1000, а деревянных и костяных - 150-200.
workflow amount AMMO:ITEM_AMMO_BOLTS/METAL 1000 100 workflow amount AMMO:ITEM_AMMO_BOLTS/WOOD,BONE 200 50
Держать количество стеков готовой еды и выпивки между 90 и 120
workflow count FOOD 120 30 workflow count DRINK 120 30
Быть уверенным, что всегда есть 25-30 пустых ящиков, бочек, сумок.
workflow count BIN 30 workflow count BARREL 30 workflow count BOX/CLOTH,SILK,YARN 30
Быть уверенным, что всегда есть 15-20 угля и 25-30 медных слитков.
workflow count BAR//COAL 20 workflow count BAR//COPPER 30
Производить 15-20 крафта из золота.
workflow count CRAFTS//GOLD 20
Собирать 15-20 сумок песка и кусков глины.
workflow count POWDER_MISC/SAND 20 workflow count BOULDER/CLAY 20
Быть уверенным, что всегда есть 80-100 dimple dye.
workflow amount POWDER_MISC//MUSHROOM_CUP_DIMPLE:MILL 100 20
Примечание
Чтобы это работало, вам нужно поменять материал на входе работы Mill Plants с PLANT на MUSHROOM_CUP_DIMPLE, воспользовавшись командой 'job item-material'. Иначе плагин не сможет отследить выходной материал.
Поддерживать 10-100 предметов местного крафта исключительного качества.
workflow count CRAFTS///LOCAL,EXCEPTIONAL 100 90
Команды. Управление крепостью
seedwatch
Включает и выключает приготовление семян и растений в зависимости от их количества. Для каждого вида растений может быть назначен свой лимит. Когда количество растений и семян этого типа падает ниже лимита - их приготовление запрещается. Когда количество вырастает больше лимита + 20 штук, приготовление разрешается.
Плагин требует того, чтобы игра работала в режиме крепости, иначе он автоматически завершает работу. Вам потребуется перезапускать его при каждом запуске режима крепости с помощью "seedwatch start".
Параметры:
- seedwatch all - добавляет в список мониторинга все растения из листа аббревиатур.
- seedwatch start - запускает мониторинг.
- seedwatch stop - останавливает мониторинг.
- seedwatch info - показывает осуществляется ли мониторинг, выводит список мониторинга.
- seedwatch clean - очистка списка мониторинга.
Можно использовать следующие аббревиатуры для растений:
- bs -> SLIVER_BARB
- bt -> TUBER_BLOATED
- bw -> WEED_BLADE
- cw -> GRASS_WHEAT_CAVE
- dc -> MUSHROOM_CUP_DIMPLE
- fb -> BERRIES_FISHER
- hr -> ROOT_HIDE
- kb -> BULB_KOBOLD
- lg -> GRASS_LONGLAND
- mr -> ROOT_MUCK
- pb -> BERRIES_PRICKLE
- ph -> MUSHROOM_HELMET_PLUMP
- pt -> GRASS_TAIL_PIG
- qb -> BUSH_QUARRY
- rr -> REED_ROPE
- rw -> WEED_RAT
- sb -> BERRY_SUN
- sp -> POD_SWEET
- vh -> HERB_VALLEY
- ws -> BERRIES_STRAW_WILD
- wv -> VINE_WHIP
Примеры:
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
Утилиты, встраиваемые в игру
Здесь представлены утилиты, которые добавляют в интерфейс DF диалоги и "заплатки", большей частью lua-скрипты.
Примечание:
Чтобы избежать недоразумения все эти утилиты выводят на экран слово "DFHack", когда активны. В тех случаях, когда это неуместно, потому что они просто добавляют подсказки к сочетаниям клавиш в существующие меню DF, используется красный цвет клавиши вместо зеленого. Исключение составляет плагин "tweak", описанный выше, потому что он всего лишь исправляет маленькие баги.
Dwarf Manipulator
Утилита, предоставляющая интерфейс, похожий на Dwarf Therapist, но, в отличие от последнего, встроена в игровое окно. Для запуска откройте экран units и нажмите l.
Крайняя левая колонка показывает счастье юнитов, выделяя цветом ее величину. Правая половина экрана показывает настройки рабочих обязанностей и уровни навыков каждого дварфа. Цифра от 0 до 9 означает навыки от Dabbing до Professional, буквы A-E - от Great до Grand Master, а U-Z - от Legendary до Legendary+5. Ячейки зеленовато-голубого цвета подсвечивают навыки, которые не контроллируются рабочими обязанностями (военные и социальные навыки).
Используйте клавиши стрелок (← / → / ↑ / ↓) или Num Pad чтобы передвигать курсор. Удерживайте при этом Shift, чтобы двигать курсор на 10 клеток за раз.
z + < и z + > - быстрое перемещение между категориями навыков. Клавиши numpad'а Z-Up и Z-Down перемещают к первому и последнему юнитам списка. Backspace перемещает в левый верхний угол.
Нажмите Enter, чтобы назначить выбранный навык выбранному юниту, Shift + Enter - назначить выбранному юниту все labors в выбранной категории.
Клавиши + / - сортируют список юнитов по выбранному навыку/рабочей обязанности,
* / / сортируют по имени, профессии, счастью или волне миграции (используйте Tab, чтобы выбирать использующийся здесь критерий сортировки).
Выбрав юнита, можно нажать v, чтобы посмотреть его свойства или c, чтобы выйти из утилиты и перейти в местоположение юнита.
Использование мыши:
- Щелчок по заголовку колонки - сортировка списка. Левыцй щелчок - в одном направлении (по убыванию для счастья или labors/skills, по возрастанию для имен или профессий), правый - в обратном.
- Левый щелчок по ячейке с рабочей обязанности назначает ее. Правый перемещает в нее курсор, не назначая обязанности.
- Левый щелчок на имени или профессии покажет свойства юнита. Правый перенесет в его местоположение.
Клавиша Esc возвращает на экран юнитов, но Shift + Esc переносит на главное окно режима крепости.
Search
Плагин добавляет поиск по экранам: Stocks, Animals, Trading, Stockpile, Noble (утверждение кандидатов), Military (назначение новобранцев), Burrows (список юнитов), Rooms, Announcements, Job List и Unit List.
Поиск работает так же, как и поиск на экране "Move to Depot". На перечисленных экранах вы увидите подсказку к горячей клавише (обычно s). После нажатия этой клавиши можно печатать запрос, а соответствующий список будет обновляться автоматически.
Нажатие Enter, Esc или клавиш со стрелками позволит вам вернуться к просмотру списка, теперь уже фильтрованного. Чтобы очистить фильтр вы можете снова нажать s и стереть написанное или просто нажать Shift + s. Выход из экрана автоматически очистит фильтр.
In the Trade screen, the actual trade will always only act on items that are actually visible in the list; the same effect applies to the Trade Value numbers displayed by the screen. Поэтому клавиша t недоступна во время поиска, чтобы снова воспользоваться ей нужно очистить фильтр. Alt + c очистит обе поисковые строки.
На экране складов поиск появляется только когда курсор находится в самой правой колонке.
Note that the 'Permit XXX'/'Forbid XXX' keys conveniently operate only on items actually shown in the rightmost list, so it is possible to select only fat or tallow by forbidding fats, then searching for fat/tallow, and using Permit Fats again while the list is filtered.
AutoMaterial
Этот плагин облегчает возведение конструкций (walls, floors, fortifications и т.д.), освобождая вас от поиска по большому листу материалов, когда вы используете какой-то один.
Плагин перемещает последний использованный для данной конструкции материал на верх списка, если он еще остался. Так, если вы построите стену из блоков мела, в следующий раз, когда вы будете строить стену эти блоки будут не вершине списка, независимо от расстояния (только в режиме группировки, в режиме выбора отдельных предметов список слишком огромен). Таким образом вы можете строить множество конструкций без поиска необходимого материала.
Нажатие клавиши a, когда материал подсвечен, включит автовыбор этого материала для данной конструкции. Вы можете включить автовыбор для нескольких материалов. В следующий раз, когда вы будете возводить эту постройку, плагин автоматически выберет эти материалы, и если их достаточно, конструкция будет установлена, вы даже не увидите меню выбора материала.
Выбрав постройку конструкции вы увидите несколько опций:
a для временного отключения автовыбора материала. После этого вы, например, можете перейти на экран выбора материалов и включить/отключить автовыбор нескольких материалов.
t - автовыбор типа постройки. Тогда, после постройки, вместо того, чтобы вернуться в главное меню построек, вы окажетесь в меню постройки этого же типа. Вместе с автовыбором материала это позволит разметить сложную конструкцию намного быстрее.
gui/liquids
Для использования создайте сочетание клавиш (в примере по умолчанию Alt + l) и активируйте его в режиме k.
Данный скрипт - GUI для для плагина liquids, соответственно, работает также, позволяя добавлять и удалять воду и магму, создавать обсидиановые стены и полы. Сделанные изменения нельзя откатить. Использование плагина может вызвать баги в поиске пути и создавать тепловые ловушки.
Клавиша b меняет настройки кисти. По умолчанию - прямоугольник, позволяет выделить область с помощью указания двух углов, как при обычной разметке назначений. Клавиша p позволяет выбрать между добавлением воды, магмы, обсидиановых стен и полов, или просто изменением флагов.
При добавлении жидкостей можно выбирать ее уровень клавишами + / - и выбирать между точной установкой, добавлением или уменьшением клавишей s.
В дополнение, клавишей f влючает и выключает вычисление течения для этой территории, а r переключает ее на режим "постоянного течения", что позволяет рекам питать водяные колеса, даже если до этого не питали.
После настройки всех параметров нажмите Enter, чтобы применить их.
gui/mechanisms
Для использования создайте сочетание клавиш (в примере по умолчанию Ctrl + m) и активируйте его в режиме q.
Выводит список механизмов, подключенных к строению, и их связи. Перемещение по списку центрирует вид на связанных постройках.
Для выхода нажмите Esc или Enter. Esc перемещает вид на первоначальное здание, а Enter оставляет фокус на текущем. Shift + Enter делает тоже самое, что и Enter, но после перезапускает плагин.
gui/rename
Этот скрипт, основанный на плагине rename, позволяет ввести желаемое имя в простом игровом меню.
- gui/rename [building] - в режиме q позволяет менять название постройки. Это может быть stockpile, workshop, furnace, trap, или siege engine. Можно переименовывать зоны из меню i.
- gui/rename [unit] - меняет ник юнита. В отличие от интерфейса от Тоади, переименовывает даже животных и врагов.
- gui/rename unit-profession - меняет название профессии. Как на картинке справа. Может быть применено к любому юниту, но переименование животного затрет строку с названием его вида.
Параметры building и unit автоматически заполняются тем, что выбрано в интерфейсе игры.
Естественно, все это стоит забить на горячие клавиши. В примере настроек используются сочетания Ctrl + Shift + n для построек/юнитов, Ctrl + Shift + t - для переименования профессии.
gui/room-list
Для использования привяжите к сочетанию клавиш (напр. Alt + r) и активируйте в режиме q (конкретно в нем или после открытия экрана назначения владельца комнаты).
Скрипт выводит список других комнат, имеющихся у владельца текущей, или у юнита, выбранного в списке назначения владельца комнаты. Позволяет "выселить" владельца из этих лишних комнат.
gui/choose-weapons
Для использования привяжите к сочетанию клавиш (напр. Ctrl + w) и активируйте на странице Equip->View/Customize экрана military.
В зависимости от положения курсора, скрипт либо меняет все записи "individual choice weapon" выбранного squad или position на использование конкретных типов оружия, соответствующих наиболее развитым навыкам юнитов, либо, если курсор в самом правом списке выбора оружия - перезаписывает только эту запись, но перезаписывает даже если там не 'individual choice'.
Обоснование: если есть хранилище оружия, то individual choice оказывается ненадежным и может привести к выбору неподходящего оружия.
gui/guide-path
Для использования привяжите к сочетанию клавиш (напр. Alt + p) и активируйте в меню Hauling с курсором на Guide order.
Скрипт показывает путь, который будет проделан при выполнении приказа.
gui/workshop-job
Для использования привяжите к сочетанию клавиш (напр. Alt + a) и активируйте в режиме q. Скрипт выводит список реагентов выбранного задания и позволяет изменить их как команды job item-type и job item-material. Нажатие клавиши i выводит диалоговое окно выбора тира реагента, а m - выбор материала реагента (если он позволяет выбирать). Т.к. материалов намного больше, чем типов, то меню выбора материалов имеет иерархическую структуру.
Предупреждение:
Вы должны выбирать тип реагента, если вы выбираете материал, иначе может быть назначен некорректный материал. Если вы все же выбираете материал, не выбрав типа, скрипт автоматически выберет тип реагента, если есть только один корректный тип, иначе вы получите сообщение об ошибке.
Каждый список фильтруется по текущему заданию, и каждый из них фильтруется относительно другого. Например, если вы выбираете тип реагента plant, то вы можете выбирать только из cookable материалов.
If you choose a barrel item instead (meaning things stored in barrels, like drink or milk), it will let you select any material, since in this case the material is matched against the barrel itself. Then, if you select, say, iron, and then try to change the input item type, now it won't let you select plant; you have to unset the material first.
gui/workflow
Управление прозводственным потоком. Для этой команды существует также консольный интерфейс, детали обращения с которым здесь не приводится.
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.
If you select one of the outputs with Enter, the matching constraint is simply added to the list. If you use Shift-Enter, the interface proceeds to the next dialog, which allows you to edit the suggested constraint parameters to suit your need, and set the item count range.
Pressing 'S' (or, with the example config, Alt-W in the 'z' stocks screen) opens the overall status screen, which was copied from the C++ implementation by falconne for better integration with the rest of the lua script:
This screen shows all currently existing workflow constraints, and allows monitoring and/or changing them from one screen. The constraint list can be filtered by typing text in the field below.
The color of the stock level number indicates how "healthy" the stock level is, based on current count and trend. Bright green is very good, green is good, red is bad, bright red is very bad.
The limit number is also color-coded. Red means that there are currently no workshops producing that item (i.e. no jobs). If it's yellow, that means the production has been delayed, possibly due to lack of input materials.
The chart on the right is a plot of the last 14 days (28 half day plots) worth of stock history for the selected item, with the rightmost point representing the current stock value. The bright green dashed line is the target limit (maximum) and the dark green line is that minus the gap (minimum).
gui/assign-rack
Для использования привяжите к сочетанию клавиш (напр. p) и активируйте в режиме q, когда просматриваете weapon rack. Скрипт - часть группы исправлений для багов, созданных, чтобы хранение оружия снова работало.
- Можно приписывать weapon rack к отряду.
- Даже если приписать, игра отменит это, если не применить патч. Патч называется weaponrack-unassign. Больше информации.
- Переносчики будут таскать вещи, хранящиеся в weapon rack обратно на склады, если не использовать плагин fix-armory (описан выше).
The script interface simply lets you designate one of the squads that are assigned to the barracks/armory containing the selected stand as the intended user. In order to aid in the choice, it shows the number of currently assigned racks for every valid squad.
gui/advfort
This script allows to perform jobs in adventure mode. For more complete help press ? while script is running. It's most confortable to use this as a keybinding. (e.g. keybinding set Ctrl-t gui/advfort). Possible arguments:
- -a or --nodfassign - uses different method to assign items.
- -i or --inventory - checks inventory for possible items to use in the job.
- -c or --cheat - relaxes item requirements for buildings (e.g. walls from bones). implies -a
- job - selects that job (e.g. Dig or FellTree).
gui/companion-order
Позволяет давать команды компаньонам в режиме приключенца. Выбор компаньнов символами в нижнем регистре, команды - в верхнем. Для того, чтобы отдать команду на конкретный тайл, нужно использовать в режиме look или talk.
- move - приказать выбранным компаньонам двигаться к локации. Если они следуют за вами, то будут держаться не дальше, чем в трех тайлах от вас.
- equip - постараться экипироваться вещами с земли.
- pick-up - постараться взять вещи в руки (и орудовать ими)
- unequip - выбросить снаряжение
- unwield - выбросить вещи из рук
- wait - временно покинуть ваш отряд
- follow - примкнуть к вашему отряду после "wait"
- leave - покинуть отряд (может примкнуть снова после разговора).
gui/gm-editor
Есть три способа открыть этот редактор:
- используя команду, сочетание клавиш gui/gm-editor - открывает редактор на том, что выбрано или просматривается (напр. экран unit/item description)
- используя gui/gm-editor <lua command> - выполняет команду lua от открывает редактор с результатами (напр. gui/gm-editor "df.global.world.items.all" показывает все вещи)
- используя gui/gm-editor dialog - показывает в игре диалог, в который нужно ввести команду lua.
Редактор позволяет менять и модифицировать почти все в DF. Подробнее в справке редактора.
Behavior Mods
These plugins, when activated via configuration UI or by detecting certain structures in RAWs, modify the game engine behavior concerning the target objects to add features not otherwise present.
DISCLAIMER
The plugins in this section have mostly been created for fun as an interesting technical challenge, and do not represent any long-term plans to produce more similar modifications of the game.
Siege Engine
The siege-engine plugin enables siege engines to be linked to stockpiles, and aimed at an arbitrary rectangular area across Z levels, instead of the original four directions. Also, catapults can be ordered to load arbitrary objects, not just stones.
Rationale
Siege engines are a very interesting feature, but sadly almost useless in the current state because they haven't been updated since 2D and can only aim in four directions. This is an attempt to bring them more up to date until Toady has time to work on it. Actual improvements, e.g. like making siegers bring their own, are something only Toady can do.
Configuration UI
The configuration front-end to the plugin is implemented by the gui/siege-engine script. Bind it to a key (the example config uses Alt-a) and activate after selecting a siege engine in q mode.
The main mode displays the current target, selected ammo item type, linked stockpiles and the allowed operator skill range. The map tile color is changed to signify if it can be hit by the selected engine: green for fully reachable, blue for out of range, red for blocked, yellow for partially blocked.
Pressing r changes into the target selection mode, which works by highlighting two points with Enter like all designations. When a target area is set, the engine projectiles are aimed at that area, or units within it (this doesn't actually change the original aiming code, instead the projectile trajectory parameters are rewritten as soon as it appears).
After setting the target in this way for one engine, you can 'paste' the same area into others just by pressing 'p' in the main page of this script. The area to paste is kept until you quit DF, or select another area manually.
Pressing t switches to a mode for selecting a stockpile to take ammo from.
Exiting from the siege engine script via Esc reverts the view to the state prior to starting the script. Shift-Esc retains the current viewport, and also exits from the q mode to main menu.
Power Meter
The power-meter plugin implements a modified pressure plate that detects power being supplied to gear boxes built in the four adjacent N/S/W/E tiles.
The configuration front-end is implemented by the gui/power-meter script. Bind it to a key (the example config uses Ctrl-Shift-m) and activate after selecting Pressure Plate in the build menu.
The script follows the general look and feel of the regular pressure plate build configuration page, but configures parameters relevant to the modded power meter building.
Steam Engine
The steam-engine plugin detects custom workshops with STEAM_ENGINE in their token, and turns them into real steam engines.
Rationale
The vanilla game contains only water wheels and windmills as sources of power, but windmills give relatively little power, and water wheels require flowing water, which must either be a real river and thus immovable and limited in supply, or actually flowing and thus laggy.
Steam engines are an alternative to water reactors that actually makes sense, and hopefully doesn't lag. Also, unlike e.g. animal treadmills, it can be done just by combining existing features of the game engine in a new way with some glue code and a bit of custom logic.
Construction
The workshop needs water as its input, which it takes via a passable floor tile below it, like usual magma workshops do. The magma version also needs magma.
ISSUE
Since this building is a machine, and machine collapse code cannot be hooked, it would collapse over true open space. As a loophole, down stair provides support to machines, while being passable, so use them.
After constructing the building itself, machines can be connected to the edge tiles that look like gear boxes. Their exact position is extracted from the workshop raws.
ISSUE
Like with collapse above, part of the code involved in machine connection cannot be hooked. As a result, the workshop can only immediately connect to machine components built AFTER it. This also means that engines cannot be chained without intermediate short axles that can be built later than both of the engines.
Operation
In order to operate the engine, queue the Stoke Boiler job (optionally on repeat). A furnace operator will come, possibly bringing a bar of fuel, and perform it. As a result, a "boiling water" item will appear in the t view of the workshop.
Note
The completion of the job will actually consume one unit of the appropriate liquids from below the workshop. This means that you cannot just raise 7 units of magma with a piston and have infinite power. However, liquid consumption should be slow enough that water can be supplied by a pond zone bucket chain.
Every such item gives 100 power, up to a limit of 300 for coal, and 500 for a magma engine. The building can host twice that amount of items to provide longer autonomous running. When the boiler gets filled to capacity, all queued jobs are suspended; once it drops back to 3+1 or 5+1 items, they are re-enabled.
While the engine is providing power, steam is being consumed. The consumption speed includes a fixed 10% waste rate, and the remaining 90% are applied proportionally to the actual load in the machine. With the engine at nominal 300 power with 150 load in the system, it will consume steam for actual 300*(10% + 90%*150/300) = 165 power.
Masterpiece mechanism and chain will decrease the mechanical power drawn by the engine itself from 10 to 5. Masterpiece barrel decreases waste rate by 4%. Masterpiece piston and pipe decrease it by further 4%, and also decrease the whole steam use rate by 10%.
Explosions
The engine must be constructed using barrel, pipe and piston from fire-safe, or in the magma version magma-safe metals.
During operation weak parts get gradually worn out, and eventually the engine explodes. It should also explode if toppled during operation by a building destroyer, or a tantruming dwarf.
Save files
It should be safe to load and view engine-using fortresses from a DF version without DFHack installed, except that in such case the engines won't work. However actually making modifications to them, or machines they connect to (including by pulling levers), can easily result in inconsistent state once this plugin is available again. The effects may be as weird as negative power being generated.
Add Spatter
This plugin makes reactions with names starting with SPATTER_ADD_ produce contaminants on the items instead of improvements. The produced contaminants are immune to being washed away by water or destroyed by the clean items command.
The plugin is intended to give some use to all those poisons that can be bought from caravans. :)
To be really useful this needs patches from bug 808, tweak fix-dimensions and tweak advmode-contained.