- •Раздел I Введение
- •1 Что такое Dwarf Therapist?
- •2 Установка
- •Раздел II Основы
- •3 Подключение к Dwarf Fortress
- •4 Главное окно
- •4.1 Просмотр рабочих обязанностей
- •4.2 Режимы просмотра
- •4.3 Группировка и фильтрация
- •4.4 Индикатор популяции и панель статуса.
- •4.5 Главная панель
- •4.6 Плавающие панели
- •4.7 Главное меню
- •5 Управление дварфами
- •5.1 Правка рабочих обязанностей
- •5.2 Использование группировки
- •5.3 Использование сортировки
- •5.4 Групповые указания
- •5.5 Назначение ников
- •5.6 Дополнение. Управление животными
- •6 Настройки
- •6.1 Настройка внешнего вида экрана
- •Раздел III Продвинутые возможности
- •7 Роли
- •7.1 Составляющие роли
- •7.2 Использование ролей
- •7.3 Создание пользовательских ролей
- •7.4 Экспорт и импорт пользовательских ролей
- •8 Пользовательские профессии
- •8.1 Создание пользовательских профессий
- •8.2 Экспорт и импорт профессий
- •9 Пользовательские режимы просмотра
- •9.1 Создание собственного режима просмотра
- •9.2 Экспорт и импорт режимов просмотра
- •Раздел IV Экспертные возможности
- •10 Скрипты фильтрации
- •10.1 Написание сложных скриптов
- •11 Планы оптимизации
- •11.1 Экспорт и импорт планов оптимизации
- •12 Дополнение: Сканирование памяти
- •Раздел V Приложение
- •13 Горячие клавиши
- •14 Модификация данных игры
9.2 Экспорт и импорт режимов просмотра
Возможность экспорта и импорта режимов просмотра очень важна. И то, и другое доступно из меню File (Файл). В предыдущей главе я потратил полчаса на организацию и редактирование режима просмотра, а также запись изменений, сделанных для создания более удобной и читабельной таблицы профессий. Вы можете избавиться от большинства этих проблем (я сказал так, потому что наверняка есть вещи, которые вы захотите подкорректировать), если скачаете и импортируете мой режим просмотра с Dwarf Fortress File Depot:
http://dffd.wimbli.com/file.php?id=7880.
Раздел IV Экспертные возможности
10 Скрипты фильтрации
Dwarf Fortress предоставляет два простых и наглядных инструмента организации дварфов. В этой главе мы познакомимся с третьим, более продвинутым инструментом: скриптами фильтрации. С пользовательскими скриптами фильтрации вы можете отфильтровать тех дварфов, которые сейчас не нужны, оставив только тех, которых вы хотите видеть. Это куда более мощный и гибкий способ, чем группировка и сортировка. Однако, это не так-то просто, потому что для решения задач вам придется изучить синтаксис программы. Если у вас нет опыта программирования, вы можете столкнуться с трудностями в освоении данного инструмента.
Найдите пункт меню Scripting (Скрипты) и выберите Add New Filter Script (Добавить скрипт фильтрации). Появится окно создания и редактирования скриптов:
Как вы можете видеть, в правой части окна красиво и подробно описано, что могут скрипты фильтрации, затем перечислен список методов. На других вкладках — справочная информация о ID рабочих обязанностей, черт характера, навыков и атрибутов.
Двигая разделитель, вы можете как полностью скрыть правую часть окна, оставив только область ввода, так и растянуть ее на все окно для более комфортного чтения.
Скрипты фильтрации проводят логический тест дварфов, обрабатывая их в цикле. Dwarf Therapist берет управление циклом на себя, так что ваша задача заключается только в написании полезного фильтра: по сути, в конце работы фильтра над дварфом, вы должны прийти к значению true или false. Если результат — false, дварф не будет выведен на экран, если же true — будет показан. Все команды, которые вы вводите в редактор скрипта, подразумевают вызов от объекта «d», абстрактного дварфа: d.is_child(), например. Вот список доступных команд:
Команда |
Тип возврата |
Описание |
|
|
|
|
|
is_child() |
boolean |
Возвращает true, если ребенок, иначе false. |
|
is_adult() |
boolean |
Возвращает true, если взрослый, иначе false. |
|
is_animal() |
boolean |
Возвращает true, если животное, иначе false. |
|
profession() |
string |
Возвращает строку базовой профессии дварфа. |
|
raw_profession() |
integer |
Возвращает номер raw ID базовой профессии дварфа. |
|
custom_profession_name() |
string |
Возвращает строку пользовательской профессии, NULL если ее нет. |
|
nice_name() |
string |
Возвращает строку с ником, NULL если нет. |
|
noble_position() |
string |
Возвращает список должностей знати, разделенных запятой. |
|
get_raw_happiness() |
integer |
Возвращает значение счастья дварфа. |
|
attribute(attribute_id) |
integer |
Берет ID атрибута, возвращает его значение у дварфа. |
|
active_military() |
boolean |
Возвращает true, если дварф в активном воинском отряде. |
|
squad_id() |
integer |
Возвращает ID отряда (от нуля и далее, в порядке создания). |
|
can_set_labors() |
boolean |
Возвращает false, если дварф — ребенок или младенец. |
|
labor_enabled(id) |
boolean |
Включена ли работа с данным id у этого дварфа. |
|
is_labor_state_dirty(id) |
boolean |
Возвращает true, если есть не примененные изменения для данного навыка. |
|
labor_rating(id) |
integer |
Возвращает уровень навыка дварфа в этой работе. |
|
trait(trait_id) |
integer |
Возвращает числовое значение черты характера по ID. |
|
total_assigned_labors() |
integer |
Возвращает количество рабочих обязанностей, включенных у дварфа. |
|
Опционально принимает значение boolean: если false, то работы по переноске не учитываются. skill_level(int skill_id, bool raw, bool precise) Возвращает значение с плавающей точкой (float). Флаг raw возвращает уровень навыка, флаг precise — уровень опыта. |
|||
В дополнение к возможности вызывать атрибуты функцией attribute(), вы можете вызывать их по имени:
int strength() |
(сила) |
int agility() |
(ловкость) |
int toughness() |
(крепость) |
int endurance() |
(выносливость) |
int recuperation() |
(восстановление) |
int disease_resistance() |
(сопротивляемость болезням) |
int analytical_ability() |
(аналитические способности) |
int focus() |
(сосредоточенность) |
int willpower() |
(сила воли) |
int creativity() |
(креативность) |
int intuition() |
(интуиция) |
int patience() |
(терпение) |
int memory() |
(память) |
int musicality() |
(музыкальность) |
int kinesthetic_sense() |
(координация) |
int linguistic_ability() |
(лингвистические способности) |
int spatial_sense() |
(пространственное воображение) |
int empathy() |
(эмпатия) |
int social_awareness() |
(обществознание) |
К сожалению, для черт характера и рабочих обязанностей таких ярлыков нет.
Для логических конструкций Dwarf Therapist использует стандартные обозначения булевых операторов. || означает ИЛИ (OR). Результат объединения этим оператором двух выражений будет true, если хотя бы одно из выражений истинно. && означает И (AND). Этот оператор возвращает true только если оба выражения истинны. Оператор == определяет, равны ли выражения между собой, возвращая true, если равны и false — если нет. Выражения, окруженные скобками () будут вычисляться в первую очередь, как это происходит в математических выражениях. И, наконец, оператор ! перед логическим выражением инвертирует его результат — false станет true и наоборот. Операция НЕ, другими словами. Числовые значения можно сравнивать операторами < , > и == . Строки должны быть заключены в двойные кавычки, "вот так".
