Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dwarf_Therapist_Manual_20.4_(russian).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.36 Mб
Скачать

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 и наоборот. Операция НЕ, другими словами. Числовые значения можно сравнивать операторами < , > и == . Строки должны быть заключены в двойные кавычки, "вот так".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]