В этой статье мы расскажем о том, как можно сделать лифт, который будет ездить между двумя этажами и вызываться кнопками. Подобный лифт есть на карте CS_SIEGE. Для создания лифта нам понадобятся следующие энтити-объекты: func_door
func_button
Определяем форму лифта. Превращаем его в func_door. Чтобы лифт ездил вверх-вниз в параметре «Angle» необходимо выставить значение «Up». Также важно выставить параметр «Delay before close: -1», чтобы лифт оставался на новом этаже и автоматически не возвращался в исходное положение.
Также необходимо создать на каждом из двух этажей по кнопке (func_button), которая будет приводить лифт в движение через несколько секунд.
Code
[size=14]Func_door (лифт)[/size]
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». У нас это расстояние составило 180 юнитов, следовательно, в параметр «Lip» мы должны записать значение -180.
Как уже говорилось выше, на каждом из этажей необходимо создать по одной кнопке func_button, которые будут запускать лифт. Свойства этих кнопок выглядят так:
Code
[size=16]Func_button (кнопка, запускающая лифт)[/size]
Target: elevator (сюда мы записали имя лифта)
Delay before trigger: 2 (время до активации лифта)
Delay before reset: 1 (время, в течении которого кнопка не может быть активирована повторно)
Флаги:
Don't move: кнопка не вдавливается в стену при нажатии