Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSFM v1.2.0.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.49 Mб
Скачать

Результирующие скрипты.

Результирующие скрипты (Result scripts) – фрагменты скриптов, которые связаны с диалогами или стадиями квестов и возвращающие некий результат в поле result диалогового окна. Скрипты в поле “result” (Result scripts) диалоговых окон конструктора – это скриптовые фрагменты, которые выполняются один раз, когда наступает определенное событие.

Существует два типа таких скриптов:

  • Скрипты в поле result диалога выполняются, когда NPC говорит связанное со скриптом сообщение. Такие скрипты, как и скрипты, прикрепленные к объектам, являются локальными скриптами.

  • Скрипты в поле result стадии квеста выполняются, когда достигнута определенная стадия квеста, и НУЖНЫЙ ПАРАМЕТР предмета или сам предмет стадии квеста (stage item) соответствует заданным условиям. Эти скрипты относятся к нелокальным скриптам.

Скрипты в поле result имеют следующие ограничения по сравнению с именованными скриптами:

  • В них нельзя объявлять переменные.

  • В них нельзя использовать блоки begin/end.

  • В диалоговых скриптах нельзя использовать неявное обращение к переменным локального скрипта NPC.

В остальном, скрипты в поле result могут использовать все обычные функции и команды.

4.2.2 Как часто обрабатываются скрипты (Script Processing)

Когда и каким образом скрипты обрабатываются, зависит от того, с чем связан скрипт. В общем случае локальные скрипты на объектах выполняются только тогда, когда игрок находится рядом; квестовые же скрипты выполняются постоянно - до тех пор, пока выполняется квест. Как часто выполняются скрипты:

  • Квестовые скрипты: когда квест активен, выполняются каждые 5 секунд (по умолчанию). Вы можете изменять частоту выполнения скрипта, изменив вещественную переменную fQuestDelayTime в теле скрипта.

  • Скрипты на персонажах (существах и NPC): выполняются каждый раз, когда выполняется пакет ИИ (AI) актера. При наивысшем приоритете (загруженная область вокруг игрока) они выполняются в каждом фрейме. Если же игрока рядом нет, то гораздо реже (вплоть до одного раза за 15 минут игрового времени при самом низком приоритете). Но это единственные скрипты (кроме квестовых скриптов), которые выполняются, когда игрока нет рядом.

  • Скрипты на копиях: выполняются в каждом фрейме, когда ячейка загружена, совсем не выполняются, когда ячейка не загружена. То есть, они выполняются, только когда игрок рядом (что означает, что это хороший вариант для использования ресурсоемких скриптов, проверяющих, например, дистанцию).

  • Скрипты на объектах в контейнерах: выполняются, когда выполняются скрипты на контейнерах – поэтому скрипты вещей у актеров выполняются, когда обрабатывается актер; вещи в других контейнерах обрабатываются в каждом фрейме, когда ячейка загружена.

  • Скрипты на дверях: особый случай - эти скрипты выполняются, как скрипты на копиях (в каждом фрейме в загруженной ячейке), но они также выполняются один раз, когда персонаж взаимодействует с дверью.

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