Создание триггеров в Dragon Age Toolset
Триггеры — это нарисованные на земле, или вертикально плоские фигуры, которые выполняют опредилённые события. Это может быть переход в другую локацию, вход кат сцену, срабатывать как ловушка и т.д. Теперь создадим сам триггер. После создание нового триггера выскочит окно для редактирования основных параметров триггера. Среди них требуется отредактировать следующие параметры:
General
Comments — основная информация про триггер.
Group — группа, к которой принадлежит модуль.
Resource Name — уникальный индификатор.
Tag — не уникальный индификатор.
Attributes
Script — скрипт, обрабатывающий события триггера.
Variable 2da — выбирает нужную таблицу переменных.
Variables — отображает поля выбранной таблицы переменных.
Теперь сохраните сделанный триггер. Теперь нарисуйте его в окне локации. Начало работы сделано.
Обработка событий триггера
Создатели тулсета сделали специальный скрит для обработки событий скрипта. Он называется trigger_core.nss.Его и введите в поле Script. Если вы хотите, чтоб триггер запускался только один раз — добавьте в скрипт следующее (разумеется, без коментариев).
if(IsPartyMember(oCreature)) { // ПРОВЕРКА ЯВЛЯЕТСЯ ЛИ ВОШЕДШИЙ СУЩЕСТВОМ, ВХОДЯЩИМ В ПАРТИЮ ИГРОКА. resource rCutscene = R"mycutscene.cut"; // НАЗНАЧЕНИЕ РЕСУРСА РОЛИКА. LoadCutscene(rCutscene); // ЗАГРУЗКА РОЛИКА. PlayCutscene(oCreature); // ЗАПУСК РОЛИКА. DestroyObject(OBJECT_SELF, 0); // УНИЧТОЖЕНИЕ ТРИГГЕРА ДЛЯ ПРЕДОТВРАЩЕНИЯ ЕГО ВТОРИЧНОГО ЗАПУСКА. }
Триггеры перехода
Как их делать написано в статье «Двери и триггеры».
Триггеры диалога
Триггеры диалога — это триггеры, запускающие определённый диалог. Создатели создали для них специальный скрипт и специальную таблицу переменных ("gen00tr_talk.nss" и "var_trigger_talk" ).
Триггеры поведения
Триггеры поведения — это триггеры, задающие определённое поведение существам, вошедшим в него. Для него также существуют специальный скрипт и специальная таблица переменных ("gentr_ambient.nss" и "var_trigger_ambient" ).
Триггеры, ведущие в кат-сцену
Для этих триггеров существует специальный скрипт. Но его нету в списке готовых. Заготовка этого скрипта есть в статье «Заготовки скриптов».
Триггеры-ловушки
Триггеры-ловушки — это триггеры, заменяющие ловушку. Для создания такого триггера надо просто правильно указать группу.
Переменные, требующие изменения
TRIGGER_AT_DEST_AREA_TAG |
Тэг флажка, куда игрок будет телепортирован. |
TRIGGER_AT_DEST_TAG |
Тэг локации, куда игрок будет телепортирован. |
TRIGGER_DO_ONCE_A and B |
Количество раз, сколько триггер будет работать. |
Это переменные таблицы «var_trigger 2da». Далее приведены переменные таблицы «var_trigger 2da».
TRIG_TALK_ACTIVE_FOR_FLAG |
Триггер срабатывает, только если указанный Plot-флаг активен. |
TRIG_TALK_ACTIVE_FOR_PLOT |
В переменной записывается Plot-файл, в котором находится Plot-флаг, указанный в предыдущей переменной. |
TRIG_TALK_DIALOG_OVERRIDE |
Ресурс диалога для подмены ассоциированного по умолчанию с целевым существом или размещаемым объектом. Указывается в формате "gen000_example.dlg" (без кавычек). |
TRIG_TALK_INACTIVE_FOR_FLAG and FLAG2 |
Триггер срабатывает, только если указанный Plot-флаг не активен . |
TRIG_TALK_INACTIVE_FOR_PLOT and PLOT2 |
В переменной записывается Plot-файл, в котором находится Plot-флаг, указанный в предыдущей переменной . |
TRIG_TALK_LISTENER |
Тэг Слушателя по диалогу. Используется для окружающих диалогов (НПС с НПС без загрузки оболочки диалога). |
TRIG_TALK_REPEAT |
Определяет возможность повторного срабатывания триггера. 1 - триггер срабатывает постоянно. 0 - триггер срабатывает один раз. |
TRIG_TALK_SET_FLAG and FLAG2 |
В данной переменной можно указать Plot-флаг, значение которого будет установлено при срабатывании триггера. |
TRIG_TALK_SET_PLOT and PLOT2 |
В переменной записывается Plot-файл, в котором находится Plot-флаг, указанный в предыдущей переменной. |
TRIG_TALK_SPEAKER |
Тэг Говоруна по диалогу. Единственная обязательная переменная. |
Это была вторая таблица переменных. Третья таблица переменных называется"var_trigger_ambient 2da".
AMBIENT_ANIM_FREQ_OVERRIDE |
Если значение не пустое, то данная переменная подменяет значение "AMBIENT_ANIM_FREQ" в таблице переменных существа. Тип переменной - flout (x.y). Переменная задаёт проигрываемые шаблоны поведения начиная с "x" и заканичвая "y". Например "-1.0" заставит существо проигрывать все шаблоны поведения по порядку в соответствии с ambient_ai.xls. |
AMBIENT_ANIM_OVERRIDE_COUNT |
Счётчик проигрываемых шаблонов поведения, после достижения которого восстанавливаются оригинальные значения переменных, подменённых триггером. По умолчанию значение равно -1, то есть без отсчёта (оригинальные значения не восстанавливаются). |
AMBIENT_ANIM_PATTERN_OVERRIDE |
ID шаблона анимации в ambient_ai.xls. Если значение не пустое, то данная переменная подменяет значение "AMBIENT_ANIM_PATTERN". |
AMBIENT_TARGET_FILTER |
Фильтр существ, вход которых в триггер или нахождение в нём, переопределяет их поведение. В данной переменной указываются тэги существ, поведение которых вы хотите подменить. |
AMBIENT_TRIGGER_FILTER |
Фильтр существ, чьё поведение переопределяется только при входе в триггер. Тэги существ также указываются через запятую. Используйте тэг "<hero>" для указания на игрока. Если данная переменная пустая, то используется переменная "AMBIENT_TARGET_FILTER". |