Отвечаю.
В
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
Если у Вас возникли вопросы – пишите в этот пост.

С Уважением, Касеопия.