Показать сообщение отдельно
Старый 09.01.2008, 06:26   #3
Новичок
 
Аватар для Касеопия
 
Регистрация: 08.12.2007
Сообщений: 20
Репутация: 42 [+/-]
Exclamation Триггер - как спусковой крючок

Отвечаю.
В Radient есть штука, к помощи которой Вы будете прибегать не одну сотню раз… это Trigger’s (Триггеры).
Триггеры – это некий спусковой крючок, практически на все действия в DOOM’е. Их несколько типов (trigger_once, trigger_multiple, trigger_hurt, trigger_entityname, trigger_once_entityname, trigger_facing, trigger_fade, trigger_timer, trigger_touch, trigger_count, trigger_flashlight, trigger_relay). О каждом из них, я напишу небольшой мануал. Ну, а теперь вернемся к главному вопросу.
Есть несколько вариантов решения твоей проблемы. Мы рассмотрим только два: посредством входа в область триггера и посредством нажатия кнопки.

Пример №1:

Создадим комнату типа BOX (украшайте на свой вкус и цвет), прикрутим освещение (light) и точку старта игрока (info/info_player_start). Большую комнату делать не будем. Рассчитывайте место для двух импов и терминала.

Скрытый текст:


Создадим перед игроком trigger_once (trigger/trigger_once), ставим его перед игроком и растягиваем (от пола до потолка).
Далее создадим импа (monster/monster_demon_imp), например, в углу комнаты и не забываем повернуть его лицом к игроку (у меня angle - 315).

Теперь маленький совет. Когда Вы будете создавать большие карты, Вы столкнетесь с такой проблемой, что будете путаться в обилии монстров и других объектов на карте. Лично я делаю так. После создании комнаты, оружейной например, и создании в ней монстров, я причисляю им соответствующие имена (например «imp_weapons1», «imp_za_stenoi1»). А теперь, что будет если Вы создадите 160 монстров и Вам для триггера нужно найти «monster_demon_imp_89». Да, при написании имени в триггере, он автоматически проведет стрелку к назначенному монстру, но если к триггеру прикручено штук 30 заданий – стрелку можно просто не различить.
Поэтому, прописываем у импа в параметрах (Inspector/Entity):
name (в поле Key) – imp1 (в поле Var).
Далее, если Вы хотите, чтобы имп телепортировался на карту, прописываем ему значения:
teleport – 1
Потом мы пропишем следующие параметры:
trigger – 1 // (после активации триггера, появляется и делает заданную команду под грифом on_active)
Далее:
on_active – evade_right // (список доступной импу анимации, можно посмотреть в листбоксе, так же, если нажать кнопку «play», Вы увидете превью анимации).

Теперь создадим сам триггер. Щелкаем по карте левой кнопкой мыши и выбираем trigger/trigger_once. Ставим его перед игроков и растягиваем до размера стены, чтобы игрок не пропустил наш механизм.
Далее прописываем:

target – imp1 // (соединяем триггер с нужным нам объектом на карте, в грифе «var», как Вы уже поняли, прописываем имя).
Должна появиться стрелка от триггера к нашему импу. Если этого не возникло – проверьте правописание всех значений.
Есть маленькая хитрость, странно, что о ней мало кто знает. Можно сократить время при прописывании функции «target». Вместо того, чтобы запоминать имя и прописывать его, можно сделать так: выделяем триггер и нужный нам объект => и нажимаем сочетание клавиш «CTRL+K» - триггер автоматически забьет все параметры соединения.

Скрытый текст:


Все! Теперь нам нужно скомпилировать карту. Делается это, до боли просто. Сохраняем карту в папке Doom3/base/maps/ с именем Test_trigger. Далее, BSP/bsp noflood. Можно конечно и BSP/bsp (это лучше), но если на карте глюки или «leaks» - то карта может и не скомпилироваться.
Затем bsp/bspext (еще раз на всякий случай сейвимся). Потом нажимаем «F2», должно появиться ЖУТКО-ТОРМОЗЯЩЕЕ окно DOOM 3. Вызываем консоль и печатаем:
map test_trigger // Жмем Enter
Все. Карта запускается и проверяем действие триггера.

Пример №2:

Тут уже "посложнее" обстановка.
Наша цель: создать модель терминала, прикрутить к нему gui и прописать скрипт активации посредством нажатия на кнопку. Но не бойтесь – это легко. Как говориться: «Глаза боятся – руки делают».
Мы продолжим работать с нашей только что созданной картой.
Кликаем левой кнопкой мыши по карте и выбираем в списке «New Model…». Появится окно, в котором отобразиться древо папок. В последних же хранятся все модели игры. Нам нужно выбрать терминал. Мой выбор остановился на:
models/mapobjects/guiobjects/alphalabcon/alphalabcon.lwo
Хочу сделать маленькое отступление. В редакторе есть баг с созданием моделей. После того как Вы выбрали нужную Вам модель и создали ее, на карте останется все тот же маленький квадратик, т.е. модель не появится. Не надо кричать и рвать на голове волосы . Это исправить очень легко. Просто клонируем нашу модель, посредством нажатия клавиши «Пробел». Вот и все. Появится нормальная модель, а старую мы удаляем.
Передвигаем рабочую модель к стене и опускаем на уровень игрока. Если Вы скомпилируете карту, то увидите, что терминал пуст. Чтобы заполнить пустое пространство на месте экрана, нам нужно выбрать подходящий gui. Возвращаемся обратно к редактору. Выделяем терминал и в окне «Entity» нажимаем на кнопку «Gui…». Перед нами опять выскочит окно с древом папок хранящие в себе gui. Вы можете выбрать любой на свой вкус и цвет. Мой выбор остановился на:
guis/controlpanels/bridgesigng.gui

Скрытый текст:


Компилируем карту, убиваем импа – если он еще остался, подходим к терминалу – ВАУЛЯ! У нас появилось изображение, с управлением Света. Если мы нажмем на кнопочку – ничего не произойдет.
Вернемся к редактору.
Теперь создадим импа. Проще клонировать нашего предыдущего друга. Поменяем имя:
name – imp_terminal // (Вы можете придумать другое)
Ставим его на нужное нам место. Теперь снимаем выделение. Выделяем модель терминала, выделяем импа и нажимаем волшебное сочетание клавиш -> Ctrl+K.

Все! Если появилась стрелка от терминала к импу – вы можете поздравить себя с новым достижением в редакторе.

Скрытый текст:


Компилируем карту. Убиваем первого импа. Нажимаем на кнопку… к нам гости .

Если у Вас, что-то не получается, можете скачать мою карту и посмотреть в чем Вы ошиблись (карта немного модернизирована): test_trigger

Если у Вас возникли вопросы – пишите в этот пост.
С Уважением, Касеопия.
__________________
Начался третий этап завершения начала продолжения окончания установки Windows... ©

"<XXX> А если вырезать винду с диска Д и вставить на диск С
<XXX> Она будет работать?
<YYY> Вопрос типа "а еси вырезать сердце и пересадить его в ж*пу, человек жить будет?" ©

Последний раз редактировалось Касеопия; 09.01.2008 в 06:33.
Касеопия вне форума  
Отправить сообщение для Касеопия с помощью ICQ