Facts

Система фактов представляет собой механизм глобальных переменных в движке. Она позволяет сохранять пары ключ-значение в специальную базу данных FactsDB. Каждый факт в базе данных характеризуется двумя параметрами:

  1. factID: уникальный строковый идентификатор факта

  2. value: целочисленное значение факта

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

Управления фактами

Создание/изменение

Многие блоки в квестах и сценах могут автоматически создавать факты если блоке есть соответствующий параметр. Например, элементы выбора в сценах обладают этой функциональностью.

Для ручного изменения можно использовать такие методы:

В квестах:

  • Создание и изменение: блок FactsDB Change

  • Удаление: скрипт RemoveFactQuest

В сценах:

  • Создание: скрипт AddFact_S

  • Удаление: скрипт RemoveFact_S

В скриптах:

script.ws

// Добавление факта
FactsAdd(factID, value, validFor);
// validFor  - опциональный параметр, задающий время жизни факта в секундах

// Чтение значения факта
FactsQuerySum(factID)

// Проверка существования факта
FactsDoesExist(factID)

// Обновление значения факта
FactsSet(factID, value, validFor)

// Удаление факта
FactsRemove(factID)

Проверка фактов

Для проверки фактов используется состояние (questCondition) CQuestFactsDBCondition. Его можно применять к любому блоку с параметром questCondition, включая оператор ветвления (flow condition).

Last updated