Суббота, 20.04.2024, 01:01
Under sky of Half-Life
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории каталога
На движке Valve Source [29]
На движке Half-Life 1 [1]

Главная » Статьи » Статьи по мэппингу » На движке Valve Source

Лифты на Source. Часть 2: Усложняем простой лифт
Лифты на Source. Часть 2: Усложняем простой лифт

Содержание
  1. Введение
  2. Глава третья - Делаем кнопки вызова
  3. Пример карты
  4. Перейти к предыдущей части статьи

Введение


Итак, мы насладились четкой работой лифта, и начинаем к нему придираться. У нормальных пацанов лифты с кнопками, а у нас какой-то странный, самоходный.
Сделать управляемый с кнопки лифт очень просто.


Глава третья - Делаем кнопки вызова

Для начала выберу простейший способ.
В свойствах лифта зайдем во вкладку 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.

Пример карты

Перейти к предыдущей части статьи

Категория: На движке Valve Source | Добавил: plazmer (01.08.2009) | Автор: JOHN
Просмотров: 2631 | Комментарии: 2
Всего комментариев: 2
1 karpovmak  
Давай часть три, на несколько этажей (на три, например). Я-то знаю, а некоторые - нет.

2 monolife  
> Я-то знаю, а некоторые - нет.
хм, тогда с тебя статейка smile

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Логин:
Пароль:

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

© 2024, MonoLife