Учебник по созданию карт
Глава XVII. Машины, лифты, платформы.

§ 17.2 Простой лифт

В этой статье мы расскажем о том, как можно сделать лифт, который будет ездить между двумя этажами и вызываться кнопками. Подобный лифт есть на карте CS_SIEGE. Для создания лифта нам понадобятся следующие энтити-объекты:

Определяем форму лифта. Превращаем его в func_door. Чтобы лифт ездил вверх-вниз в параметре «Angle» необходимо выставить значение «Up». Также важно выставить параметр «Delay before close: -1», чтобы лифт оставался на новом этаже и автоматически не возвращался в исходное положение.

Также необходимо создать на каждом из двух этажей по кнопке (func_button), которая будет приводить лифт в движение через несколько секунд.

Устройство лифта


Func_door (лифт)
Angle: Up (направление движения, вверх-вниз)
Name: elevator (имя для лифта)
Speed: 120 (скорость лифта, юнитов в секунду)
Move sound: large rollers (звук движения)
Stop sound: ratchet stop (звук остановки)
Delay before close: -1 (при таком значении лифт будет ждать на новом этаже до следующего вызова)
Lip: -180 (дополнительное расстояние, на которое будет перемещается лифт, см. ниже)

Флаги:

Don't link
Toggle: лифт будет ждать следующей активации и не будет автоматически возвращаться назад


Одним из самых важных параметров лифта является «Lip», который используется для изменения расстояния перемещения лифта.

Дело в том, что по умолчанию лифт поднимается на расстояние своей высоты. Например, у нас высота лифта составляет 120 юнитов. По умолчанию он поднимется именно на такое расстояние. Расстояние же между двумя этажами у нас 300 юнитов. Это означает, что лифт не доедет до второго этажа и «застрянет» между этажами. В связи с этим расстояние, на которое перемещается лифт, необходимо увеличить. Это как раз и позволяет сделать параметр «Lip». Причем отрицательное значение параметра «Lip» увеличивает расстояние, а положительное — сокращает.


На схеме ниже лифт показан в нижней позиции (на первом этаже).
Менее контрастными цветами показано его положение при значении «Lip=0».
Пунктиром показано положение лифта в конечной позиции (на втором этаже).

Схема определения параметра Lip для лифта


Размерными линиями показано, какое расстояние считается за «Lip». У нас это расстояние составило 180 юнитов, следовательно, в параметр «Lip» мы должны записать значение -180.

Как уже говорилось выше, на каждом из этажей необходимо создать по одной кнопке func_button, которые будут запускать лифт. Свойства этих кнопок выглядят так:

Func_button (кнопка, запускающая лифт)
Target: elevator (сюда мы записали имя лифта)
Delay before trigger: 2 (время до активации лифта)
Delay before reset: 1 (время, в течении которого кнопка не может быть активирована повторно)

Флаги:

Don't move: кнопка не вдавливается в стену при нажатии



Ссылки

elevator.zip [25Кб] — в архиве карта-пример в форматах BSP и RMF.


Глава XVII. Машины, лифты, платформы.


К оглавлению Учебника

© http://cs-mapper.by.ru/
CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0091 ]