Лифты на Source. Часть 2: Усложняем простой лифт
Содержание
- Введение
- Глава третья - Делаем кнопки вызова
- Пример карты
- Перейти к предыдущей части статьи
Введение
Итак, мы насладились четкой работой лифта, и начинаем к нему придираться. У нормальных пацанов лифты с кнопками, а у нас какой-то странный, самоходный. Сделать управляемый с кнопки лифт очень просто.
Глава третья - Делаем кнопки вызова
Для начала выберу простейший способ. В свойствах лифта зайдем во вкладку Flags. Здесь по идее стоит только Touch Opens. Это значит что дверь, (а в
нашем случае лифт) открывается (а в нашем случае едет) с тычка (а в нашем
случае с наступления ногой) :). Убираем эту птичку, и ставим Use Opens. Можно компилировать, теперь лифт сам не поедет. Нужно будет его поюзать. Хоть стенку, хоть пол, да хоть потолок в прыжке. У меня работает безотказно, у вас надеюсь тоже. Уж проще то некуда.
Но мы на этом не остановимся. Нам нужна нормальная кнопка с которой
лифт будет запускаться, а то это не серьезно - нажимать куда попало. Опять заходим в свойства лифта, во флагах убираем все птички, и ставим
только одну - Toggle. Это чтобы лифт сам не возвращался вниз. Я адаптировал условия к новому лифту. Сделал ему шахту на противоположной стороне, и место куда выходить на втором этаже. Чтобы сам лифт был виден на фоне шахты, я и его перекрасил.
Там где хотим вызывать лифт, создаем маленький браш - кнопку.
Покрываем любой понравившейся текстурой. У меня на картинке это
оранжевый прямоугольничек с двумя белыми кружками. Выделив кнопку, нажимаем Ctrl+T (конвертим в энтитю), и выбираем func_button. Сначала обеспечиваем функциональность. Заходим во вкладку Outputs, и нажав Add... добавляем новый аутпут. Кто не знает - аутпут это та фигня, которую одна энтитя пошлет другой. В данном случае приказ следовать на второй этаж. Итак настраиваем аутпут: My output named - OnPressed (когда нажата кнопка) Targets entities named - Elevator (имя нашего лифта) Via this input - Close (у двери это закрыться, а в нашем случае - следовать вниз). Тепрь лифт будет ходить вниз, и если мы вдруг нечаянно упадем, то сможем его вызвать повторно. Создаем еще одну кнопку, или дублируем эту перетащив удерживая кнопку
Shift (последнее намного проще и удобней), и пристраиваем ее уже к
самому лифту.
Аутпут этой кнопки будет несколько отличаться. Ведь нам этой кнопкой надо будет посылать лифт и вверх, и вниз. К счастью для этого есть все что надо. My output named оставляем как и есть - OnPressed Targets entities named тоже оставляем - Elevator (имя лифта) Via this input - Toggle (вот оно!) Эта кнопка теперь будет отправлять лифт в положение противоположное текущему. Т.е. снизу - вверх, а сверху - вниз. Но это еще не все. Надо чтобы кнопка ездила вместе с лифтом, сама она не догадается. Для этого в ее настройках предусмотрен наиполезнейший пункт - Parent. В самой первой вкладке свойств кнопки (Class info), во второй строке
находим пункт Parent, и справа выбираем к чему кнопка будет привязана.
Конечно к лифту. Соответственно выбираем Elevator.
Скоро, скоро придет конец мученьям! Но еще не пришел. Создаем третью - последнюю кнопку. Уже на втором этаже. Это чтобы вниз за лифтом не прыгать если он уехал. Копируем кнопку первого этажа(не лифта!) на второй. Все параметры такие же как и на первом этаже, только в единственном
аутпуте в строчке Via this input вместо Close ставим Open. Это чтобы
лифт подымался.
Ну вот и все. Почти. Лифт работает, но кнопки тормозят по 3 секунды, и уезжают при нажатии. В данный момент мне это не нужно. Я захожу в свойства всех кнопок, и выставляю: Delay Before Reset = 0 (задержка в нажатом состоянии в котором кнопки не юзаются) Потом во флагах (Flags) ставлю птичку - Don't move (не двигаться) И есть еще один параметр в свойствах дверей и кнопок (и тем более лифтов), про который важно знать. Если вам понадобится пустить лифт не на свою высоту, а выше, или ниже, смело ищите в первой вкладке свойств - Lip. Это величина на которую наш лифт или дверь "отклонится от курса". Если
там поставить 2, то кнопка или дверь, не дойдет до стены на 2 юнита. В
нашем случае это не серьезно. Если нашему лифту поставить в
этом поле -120 (минус 120), то он подымется сразу на 3 этаж (при условии
что у нас правильные этажи - 128 юнитов, и низ площадки лифта находится
на 8 юнитов выше пола). Таким образом вместо конструкции корпуса
лифта высотой с этаж, можно было сделать простую площадку, но в
параметре Lip, дополнительно задать необходимую поправку. Так
площадочке поверхность которой находится на уровне пола, при высоте
этажа в 128 юнитов, надо задать ровно (128 - 8) = -120 юнитов. Если пол площадки лифта стоит ровно с нашим полом, то значение будет уже 136. Считается так: Сама дверь (лифт) по умолчанию уезжает на высоту себя, то есть при ее высоте в 8 юнитов, она уезжает на 8. Т.к. нам надо подняться на 128 юнитов, просто прибавляем к высоте
площадки необходимую высоту, и вписываем в параметр Lip с отрицательным
значением. Т.е. -120.
Пример карты
Перейти к предыдущей части статьи
|