Semwolf
Зарегистрирован:
19 мар 2010 14:09
Сообщения: 338
Откуда:
Украина
Добавлено: 24 июл 2012 10:17
Как открыть дверь
Для этого в Радианте создаем дверь (func_door_rotating), проделываем стандартные манипуляции для двери и в ее свойствах прописываем key -1 (дверь закрыта). Далее, если хотим, чтобы игрок или бот в определенный момент сценария ее открыл, создаем в том месте, где нужно браш таких размеров, чтобы игрок или бот обязательно его пересек. Покрываем этот браш текстурой trigger (из common) и присваиваем ему trigger_once. Также ставим объект target_lock и в его свойствах пишем key 0 (дверь открыта). После этого, соединяем поочередно с помощью Ctrl+K trigger_once и target_lock, а также target_lock и саму дверь.
Как открыть дверь, закрытую ключом
Нужна готовая дверь с ее функциями. В свойствах двери пишем key -1, а рядом ставим браш (с расчетом, чтобы игрок его задел, подходя к двери) с текстурой trigger и присваиваем ему trigger_once. Далее, в любом месте возле триггер-браша поставим target_print и в его свойствах напишем message Door is locked! Find a key! Соединим (Ctrl+K) trigger_once и target_print. Теперь игрок, подходя к двери получит предупреждение о том, что она закрыта и нужен ключ.
Займемся ключом. В том месте, где вы его положите (часто на столе), создайте из мелких брашей сам ключ. Выделите все браши ключа и присвойте им func_explosive. Рядом создайте target_kill и соедините с ключом. Еще поставьте target_relay и соедините с target_kill.
Далее создайте браш с текстурой trigger, присвойте ему trigger_once и положите на ключ. Этот браш создайте небольшим, чуть больше ключа, чтобы игрок, подходя, например, к столу, на котором лежит ключ, мог бы к этот trigger_once активировать. Соедините trigger_once и target_relay.
Теперь поставьте target_lock, в его свойствах напишите key 0. Соедините trigger_once с target_lock, а target_lock с закрытой дверью.
Также поставьте возле стола target_speaker, в его свойствах напишите noise sound/items/n_health.wav. Соедините trigger_once и target_speaker.
Далее создайте target_print и в свойствах напишите message You found the key! A door is open! Соедините trigger_once и target_print.
У нас все получилось и дверь открыта, но...
Представим такую ситуацию, что к закрытой двери вы еще не подходили и, соответственно, не задевали триггер, который бы активировал сообщение, о том, что дверь закрыта и нужен ключ, а сам ключ вы уже нашли и дверь открылась. Имеем проблему: игрок, подходя к уже открытой ключом двери, читает сообщение о том, что дверь закрыта и нужен ключ.
Решение совсем не сложное. Возле target_print (message Door is locked! Find a key!) ставим target_kill. Соединяем target_kill и target_print. А также trigger_once (что на ключе) и этот target_kill.
Получается, что активируя trigger_once и забирая ключ, мы также "убиваем" target_print с сообщением о том, что дверь закрыта. Проблема решена.