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

Объектные скрипты.

Скрипты, “повешенные” на объектах - это именованные скрипты, которые могут быть прикреплены к любому объекту. Это всегда локальные скрипты и они могут использовать любые функции, кроме специализированных команд для магических эффектов.

Квестовые скрипты.

Квестовые скрипты создаются с типом скрипта Quest, выбранном в окне редактирования скриптов. Никакой другой тип скрипта работать с квестами не будет. Квестовые скрипты - это нелокальные скрипты и потому должны использовать особый синтаксис в вызове функций.

Основные положения:

    • Квестовые скрипты выполняются только тогда, когда выполняется квест (вы можете определить это в игре, напечатав в консоли sqv QUEST_NAME). Квесты начинаются и заканчиваются с помощью команд StartQuest и StopQuest. Эти команды не зависят от того, завершен квест или нет. Завершение квеста означает, что он перемещается на панель завершенных квестов (Completed Quest tab) в журнале игрока – но скрипт все равно будет исполняться, пока квест не будет переведен в пассивное состояние командой StopQuest.

    • Квест автоматически начинается, когда в журнал игрока записывается запись от этого квеста. Поэтому команда SetStage QUESTNAME 10 (если запись 10 содержит текст) автоматически начнет квест.

    • В общем, вы должны останавливать квест, когда он завершен, чтобы скрипт, прикрепленный к квесту, перестал исполняться. Если по какой-то причине квест должен оставаться активным (у вас есть диалог или скрипт, необходимый после окончания квеста), создайте второй квест (например, MS38 и MS38FIN).

    • Значения квестовых переменных можно запрашивать и изменять, даже когда квест не активен. Когда квест останавливается, его скрипт перестает исполняться, но он все равно существует и его переменные также остаются в целости.

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

    • Объявите "магическую переменную" float fQuestDelayTime в вашем квестовом скрипте.

    • Присвойте переменной fQuestDelayTime число, определяющее требуемое время между циклами выполнения скрипта, в секундах. Чем меньше это значение, тем чаще будет выполняться ваш скрипт. Если число будет очень мало, например, 0.01 сек, то это будет соответствовать частоте исполнения скрипта 100 раз в секунду. Поскольку частота смены кадров (фреймов) на экране (fps) намного меньше, то ваш скрипт будет выполняться в каждом фрейме. Если вы установите его в 0, скрипт будет выполняться каждые 5 секунд (время по умолчанию). Используйте эту возможность с осторожностью и в особых случаях – значение fQuestDelayTime должно быть меньше 5-ти секунд.

Скрипты для магических эффектов.

Скрипты для магических эффектов – это особые скрипты, которые можно использовать для создания заскриптованных магических эффектов. Они создаются в окне редактирования скриптов, но у них должен быть тип Magic Effect, иначе использовать магические эффекты не удастся. Такой скрипт будет выполняться, если игрок находится рядом, и будет останавливаться вместе с игрой при вызове какого-либо меню. Эти скрипты не используют обычные типы блоков begin/end, поскольку выполняются до тех пор, пока эффект заклинания активен на цели. Для них существуют три специальных блока и одна особая функция. Типы блоков для магических эффектов:

  • ScriptEffectStart

  • ScriptEffectFinish

  • ScriptEffectUpdate

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

  • ScriptEffectElapsedSeconds

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

Примечание (Visman): Некоторые плагиностроители умудряются, кроме блоков для магических эффектов, использовать в магических скриптах и блок GameMode, и такие скрипты нормально работают.

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