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

6.4 Описание функций tes 4 Oblivion

В этой главе размещены в алфавитном порядке все известные функции Обливиона (всего 359):

A

Activate

Синтаксис:

Activate ActivatorID (optional), NormalActivationFlag (optional)

Примеры:

Activate player Activate Activate player, 1

Функция Activate указывает объекту выполнить его действие по-умолчанию. Если ActivatorID опущен, то команда Activate будет использовать «текущий активатор» вызывающего объекта. Это очень полезно внутри блока OnActivate, когда вам нужно, чтобы активация проходила в обычном режиме, за исключением определенных условий. Это означает, что если вы вызовете

Activate

то это будет эквивалентно

ref actingref set actingref to GetActionRef Activate actingref

Если используется ActivatorID, вызывающий объект исполнит действие, привязанное к ActivatorID.

Тип объекта          

Активация

NPC

Диалог  

Контейнер

Открыть  

Дверь

Открыть  

Оружие, броня, и т.д.

Поднять  

Книга / Свиток

Читать

Если флаг NormalActivationFlag опущен, вызывающий объект исполняет нужное действие, пропуская любые блоки OnActivate, которые могут быть на нем. Обычно так и используется команда Activate, т.к. чаще всего она вызывается как раз внутри блока OnActivate. Если NormalActivationFlag установлен в 1, вызывающий объект будет активирован обычным способом, включая блок OnActivate. В основном этот флаг аннулирует активацию по умолчанию как представлено выше. Используйте данную возможность осторожно — если вы вызовете Activate на сам объект изнутри блока OnActivate, вы тем самым запустите бесконечный цикл. При осторожном использовании функция Activate может оказаться очень полезной для принудительного вызова и использования как псевдо-функция вызова между заскриптованным объектом и заклинаниями. Такое использование не предполагалось и требует тщательного планирования. Пример 1: Если вы вызовете этот скрипт на двери, то дверь будет действовать так, как будто ее активировал сам игрок (т.е., если это загрузочная дверь, игрок будет телепортирован в пункт назначения двери).

Activate player

Пример 2: Чтобы не переключило блок OnActivate, оно также вызовет Activate, как будто скрипта и нет.

begin OnActivate     if MyCrazyCondition == 1        Activate   else       ; делаем что-то еще     endif   end

Пример 3: Этот скрипт запускает бесконечный цикл — как только заскриптованный объект активирован, блок OnActivate будет выполняться вечно.

float infinity   begin OnActivate      ; НИКОГДА так не делайте!!        set infinity to infinity + .1       message "Infinity = %.1f", infinity       activate player 1   end

Пример 4: Вот правильный способ использования NormalActivationFlag:

begin OnActivate      ; активируем другой объект, когда этот активирован игроком        if IsActionRef player == 1             MyGate.Activate player 1        endif   end

Относится к типу: Object Functions

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