DOOMCENTER.RU - Сайт о Doom и Quake
 DOOMCENTER.RU
 Главная | Новости
 Архив новостей
 О проекте
 Ссылки
 Форум
 
 Doom 3
 Обзоры
 Коды Doom 3
 Враги (бестиарий)
 Оружие
 Секреты
 Прохождение
 Статьи о Doom 3
 
 Моды Doom 3
 В разработке
 Новые уровни
 Маппинг
 
 Doom 3: RoE
 Новые уровни
 
 Doom 2
 Об игре
 Руководство
 Предыстория
 Монстры
 Оружие
 Скрины
 
 Doom
 Об игре
 Предыстория
 Монстры
 Оружие
 Скрины
 





Форум о Doom 3

 Добавить в "Избранное"

Quake 4

 Обзоры
 Чит-коды
 Скрины
 

Quake 3

 Обзоры
 Чит-коды
 Скрины
 

Quake 2

 Скрины
 Чит-коды
 

Quake

 Чит-коды
 Скрины
 

Разное

Архив новостей

 2009 год
 2008 год
 2007 год
 2006 год
 2005 год
 2004 год
 


 

 


Используем триггеры




 Автор руководства: X-RAY



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

trigger_once
 

Попадая в область этого триггера игрок способен активировать заготовленную на карте функцию, скрипт, источник света или проиграть звук. Используется как включатель или выключатель какого-нибудь события ( entity ). Применяется для одноразового использования.

key: delay // Установить задержку между триггером и entity
val: // время задержки в сек.

key: call // Активировать скрипт под таким-то именем
val: // имя скрипта

key: requires // Устанавливаем требование для разрешающей активации триггера.
val: mykey // имя предмета

Для этого нужно поместить на карту предмет из папки items_ , а именно item_key_blue ( подойдет любой ключ-модель: yellow, aco )

и установить у него вот такой ключ

key: inv_name
val: mykey

Подбираем ключ-модель (item_key_blue ), получаем вот такую надпись в левом экране:

Теперь мы сможем активировать триггер.

key: anyTouch // По умолчанию этот триггер может активировать только игрок, но с этим ключом дело будет обстоять иначе – теперь монстры или дружественный народ войдя в область триггера смогут активировать подключенное к нему событие ( entity )
val: 1 вкл.\ 0 выкл.
 

key: triggerFirst // Если установить этот ключ у триггера то для его активации нужно будет вызвать на него действие от другого события. Например, если установить на карту монстра и подконнетить его к триггеру – то только после убийства монстра этот триггер можно будет использовать в дальнейшем сценарии. К триггеру также можно подконнетить патроны и оружие без подбора которых мы не сможем его активировать.
val: 1 вкл.\ 0 выкл
 

key: noTouch // Все то же самое что и у triggerFirst только после подбора предмета функции подключенные к триггеру сработают моментально. И ненужно будет входить в область триггера.
val: 1 вкл.\ 0 выкл.
 

key: noClient \\ При установке этого ключа триггер можно будет активировать только с помощью func_activator или NPC.
val: 1 вкл.\ 0 выкл.
 

Как применить func_activator?

1.Устанавливаем на карту триггер и func_activator. Берем этот кубик с функцией и прислоняем его к триггеру, да так чтобы они пересекались между собой. У func_activator выставляем вот такой ключ:
key: start_off // Выключаем
val: 1

2. Создаем еще один триггер, от которого пойдет сигнал на func_activator. А сигнал будем посылать через написанный скрипт. Для этого установим у триггера ключ вызывающий скрипт
key: call // Этой командой вызываем такой то скрипт
val: test_command // имя скрипта
 

Пишем скрипт:

void test_command ()
{
$func_activator_1.activate( $trigger_once_2 );
}

// $func_activator_1 – имя функции
// activate – название команды для скрипта
// $trigger_once_2 – имя триггера к которому прислонена func_activator

Сохраняем с таким же именем как у карты и закидываем в папку base\maps c расширением .script
 
 
 

trigger_multiple

Этот триггер аналогичен триггеру trigger_once только используется для многократного использования - плюс дополнительные ключи.

key: wait // Создаем отрезок времени через который можно будет заново использовать триггер
val: // Время в сек. При значении в –1, триггер используется один раз
 
 

trigger_hurt

Соприкоснувшись с областью этого триггера, игрок получает повреждение

key: delay // Задержка перед повреждением
val: // Время в сек.

key: def_damage // Подключаем систему повреждений
val: damage_lightBreak // Имя наносимого повреждения. Полный список находится в файле base\def\damage.def:

damage_triggerhurt_25
damage_co_electric_trac
damage_suicide и так далее…
 

key: on // В каком состоянии будет находится триггер после возрождения игрока на карте
( включенный или выключенный )
val: // 1 вкл.\ 0 выкл
 
 

trigger_entityname ( для многократного использования )

Все тоже самое, как и у trigger_multiple, кроме одного ключа.

key: entityname // Если установить этот ключ, то триггер сможет активировать только entity с указанным именем в значении
val: // имя ( name ) entity ( NPC, monsters )
 
 

trigger_once_entityname

Обладает теми же свойствами, как и trigger_entityname, но для однократного использования.
 
 

trigger_facing

Чтобы активировать этот триггер игроку нужно будет войти в область триггера и посмотреть, куда указана белая стрелка.

key: angle // Задаем направление угла. То есть, меняем направление стрелки, – в какую сторону нужно будет смотреть, чтобы активировать триггер
val: 180 // по-умолчанию 0.

key: angleLimit // Задаем лимит угла
val: 45 // ограничиваем угол обзора на 45 градусов.
 
 

trigger_fade

После активации этого триггера – произойдет затухание экрана.

key: fadeTime
val: 5 // сколько будет происходить затухание ( в сек. )

key: fadeColor // цвет затухания
val: 1 0 0 1 // если убрать последнюю единицу то будет происходить обратное действие.

первые три цифры – это какой цвет включить для затухания или наоборот
красный – 1 вкл
зеленный – 0 вык
синий – 0 вык

или так 0.415686 0.039216 0.039216 – цвет ( color ) от другого источника света

Прим* Если нужно выйти из эффекта затухания, то для этого потребуется установка схожего триггера с аналогичным ключом, но с другим значением в нем.

key: fadeColor
val: 1 0 0 // убираем единицу

и между ними установить задержку с помощью trigger_relay ( key: delay// задержка val: 5 // время задержки). Коннект ( Ctrl+K ) между триггерами должен происходить в таком раскладе: от trigger_once ( или _miltiple ) к trigger_fade ( с ключом для затухания ) дальше trigger_relay ( с задержкой ) и в конце цепочки еще один trigger_fade ( с ключом для обратного действия )
 
 

trigger_timer

Через этот триггер можно повторить вызов от другого триггера ( например, от trigger_once) причем этот вызов будет повторяться автоматически через определенное время.

key: start_on // В каком состоянии будет находится триггер после возрождения игрока на карте ( включенный или выключенный )
val: // 1 вкл.\ 0 выкл

key: wait // через какое время заново подать вызов на функции или скрипты
val: // время в сек.

Очень удобен для применения в скриптах. Приведу для этого небольшой пример.
Устанавливаем на карте trigger_once – его коннектим с trigger_timer, а trigger_timer с trigger_relay, у trigger_relay выставляем вот такой ключ:
key: call // вызываем скрипт
val: // имя скрипта

При такой комбинации работа функций подвязанных к скрипту будет повторяться через определенное время – указанное в trigger_timer

 
 

trigger_touch

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

void test_touch()
{
$func_mover_1.rotateOnce('0 0 90');
sys.wait(4);
$func_mover_2.moveToPos ( '8 88 104');
sys.wait(2);
$func_mover_3.moveToPos ( '8 -56 104');
sys.wait(1);
$char_campbell_1.playAnim( ANIMCHANNEL_TORSO, "turns" );
}

key: start_on // В каком состоянии будет находится триггер после возрождения игрока на карте ( включенный или выключенный )
val: // 1 вкл.\ 0 выкл

key: call // вызываем скрипт
val: // имя скрипта

Работает от вызова другого триггера ( например, от trigger_once ).если находится в выключенном состоянии.
 
 

trigger_count

Этот триггер блокирует поступающие вызовы от других entity - триггеров (trigger_multiple, trigger_once ) , NPC’s, monster’s. Используется как пропускной пункт – то есть мы можем установить блокировку на первые два поступающих вызова, а третий уже пропустить на дальнейшею функцию.

key: count
val: // сколько не пропускаем вызовов

key: repeat // повтор функции для блокировки
val: // 1 вкл.\ 0 выкл. При значении в 0, триггер используется один раз
 
 

trigger_flashlight

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

trigger_relay

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

key: delay // при поступления вызова от другого entity создается задержка
val: // время в сек.

key: call // активировать скрипт под таким-то именем
val: // имя скрипта






 
 
Rambler's Top100 liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня Рейтинг@Mail.ru