momentary_rot_button
Описание
Объект momentary_rot_button используется для создания кнопок, которые вращаются при удерживании клавиши "Использовать" на них. Если отпустить клавишу "Использовать", то кнопка автоматически может возвратиться в своё начальное положение.
Особенности использования
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов
- Объект НЕ отбрасывает Lightmap-тени и динамические тени.
- Объект может использовать или не использовать свою модель столкновений. Выбирается в процессе создания карты.
- Объект может пересекаться с другими Brush-объектами.
- Объект может быть покрыт любым материалом.
Ошибки
Не обнаружены.
Параметры
- Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0;
- Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
- Start Position – (от 0 до 1.0) начальная позиция кнопки в начале каждого раунда; 0.0 – кнопка считается повёрнутой на угол 0 градусов; 1.0 – кнопка считается повёрнутой на угол "Rotation Distance";
- Start Direction – направление в котором будет вращаться кнопка при активации (Вперёд/Назад);
- Rotation Distance (deg) – на сколько градусов может поворачиваться кнопка при активации;
- Rotation Speed (deg/sec) – скорость вращения объекта (градусов в секунду);
- Auto-Return Speed (deg/sec) – скорость автоматического возврата кнопки; если значение это свойства равно 0, то кнопка будет работать точно так же как при включенном флажке "Toggle", даже если он не установлен; не используется если установлен флажок "Toggle";
- Sounds – звук, воспроизводимый при активации объекта;
- Solid Type – тип модели столкновений этого объект с другими объектами и игроками:
- VPhysics – модель столкновений VPhysics; другие объекты, касающиеся этого объекта, не смогут сохранять своё точное положение относительно этого объекта, когда этот объект движется или вращается;
- BSP – модель столкновений BSP; эта модель столкновений, в отличие от VPhysics, позволяет другим объектам, касающимся этого объекта, сохранять своё точное положение относительно этого объекта, когда этот объект движется или вращается;
- Render Mode – режим рендеринга объекта;
- FX Color (R G B) – цвет объекта;
- FX Alpha (0-255) – прозрачность объекта; 255 – полностью не прозрачен; 0 - полностью прозрачен; не используется если свойство "Render Mode" равно "Normal" или "Don’t Render";
- Render FX – эффект рендеринга объекта; например: мигание, плавное появление/исчезновение и т.п.;
- Disable Receiving Shadows – отключить динамические тени от других объектов на этом объекте;
- Minimum Light Level – минимальный уровень освещённости этого объекта; высокое значение этого свойства приведёт к тому, что объект станет очень ярким, будет хорошо заметен в темноте и на нём не будут различаться Lightmap-тени от других объектов; используется только в процессе компиляции карты;
- Origin (X Y Z) – точка опоры объекта (указывается при помощи Helper’а). вокруг этой точки объект будет вращаться.
Флаги
- Not Solid – объект не имеет физической модели и не будет сталкиваться с другими объектами и препятствовать их движению.
- Toggle – игрок сам поворачивает кнопку в обратном направлении; если установлен этот флажок, то свойство "Auto-Return Speed" не используется;
- X Axis – объект вращается по оси X; если установлен этот флажок, то флажок "Y Axis" не используется;
- Y Axis – объект вращается по оси Y; не используется если установлен флажок "X Axis";
- Use Activates – объект можно активировать клавишей "Использовать";
- Starts Locked – блокировать объект в начале каждого раунда;
- Jiggle When Used While Locked – если игрок попытается использовать кнопку когда кнопка заблокирована, то в течение полу-секунды кнопка будет покачиваться, создавая анимацию, имитирующую попытки игрока повернуть кнопку.
Inputs
- Enable – включить объект;
- Disable – выключить объект;
- SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
- Lock – заблокировать объект;
- Unlock – разблокировать объект;
- SetPosition <float> - (от 0.0 до 1.0) повернуть кнопку на указанную позицию; кнопка поворачивается со скоростью "Rotation Speed"; не издаются звуки "Sounds"; после поворота функция автоматического возврата не применяется;
- SetPositionImmediately - (от 0.0 до 1.0) моментально повернуть кнопку на указанную позицию; не издаются звуки "Sounds"; после поворота функция автоматического возврата не применяется;
- Color <R G B> - установить новое значение свойства "FX Color";
- Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";
Outputs
- Position <float> - выполняется тогда, когда кнопка вращается; возвращает изменённую позицию кнопки в виде дробного числа от 0 до 1, относительно максимально допустимого поворота кнопки;
- OnPressed – выполняется тогда, когда на объект нажимают; это событие не будет выполняться, если объект будет заблокирован при помощи функции "Lock", однако будет выполняться, если объект "Master" будет "выключен";
- OnUnpressed – выполняется тогда, когда игрок перестаёт использовать кнопку;
- OnUseLocked - выполняется тогда, когда объект заблокирован и его пытаются активировать.
- OnFullyClosed – выполняется тогда, когда игрок останавливает кнопку в позиции 1.0; при автоматическом возврате это событие не выполняется; это событие выполняется до 10 раз в секунду если игрок продолжает удерживать клавишу "Использовать";
- OnFullyOpen - выполняется тогда, когда игрок останавливает кнопку в позиции 0.0; при автоматическом возврате это событие не выполняется; это событие выполняется до 10 раз в секунду если игрок продолжает удерживать клавишу "Использовать";
- OnReachedPosition - выполняется всегда, когда кнопка достигает позиции указанной функцией "SetPosition"; другие функции и игрок не могут способствовать выполнению этого события.
Карта
csssdk_momentary_rot_button.vmf
Используются объекты
- momentary_rot_button
- func_button
- func_detail
- logic_branch
- math_remap
- env_explosion
- env_steam
- prop_dynamic
- logic_auto
Описание карты
На карте продемонстрировано несколько способов использования объектов momentary_rot_button.
При нажатии на первую кнопку взрыв объекта env_explosion происходит сразу же в момент нажатия, не дожидаясь пока кнопка докрутится до конца. Взрыв повторяется и в тот момент когда игрок перестаёт использовать кнопку. Так работают события "OnPressed" и "OnUnpressed".
При нажатии на вторую кнопку взрыв объекта env_explosion происходит только тогда, когда кнопка полностью повернётся на угол "Distance". Так работает событие "OnFullyClosed". На кнопку нельзя повторно нажать, пока она не вернётся на своё прежнее место. Обратите внимание, что взрыв производится не самим событием "OnFullyClosed", а с помощью объекта logic_branch. Дело в том, что когда кнопка докрутится до позиции 1.0 и игрок будет продолжать удерживать клавишу "Использовать", событие "OnFullyClosed" будет повторяться со скоростью 10 раз в секунду, что крайне не допустимо при взрывах, так как взрыв производит большую нагрузку на CPU и видеокарту.
Третья кнопка похожа на вторую за исключением того, что у неё используются два события - "OnFullyClosed" и "OnFullyOpen".
Четвёртая кнопка выполнена в виде рычага или рубильника, который можно переключать слева направо. Обратите внимание на то, где расположен синенький шарик кнопки (Helper) в редакторе Hammer. Вокруг этого шарика вращается кнопка. При движении этой кнопки её изменяемая позиция возвращается через событие "Position". Значение позиции передаётся в объект math_remap, преобразующий его в значение длины струи пара, находящегося за кнопкой. Чем дольше игрок держит клавишу "Использовать" на этом рычаге, тем выше струя пара.
Пятая кнопка сделана невидимой. К ней прикреплён объект prop_dynamic, который выглядит как вентиль. При нажатии на такую кнопку, кнопка начинает вращаться, но игроку этого не видно. Вместо кнопки игрок будет видеть вращение объекта prop_dynamic. Обратите внимание, что событие "OnFullyOpen" для этого объекта не срабатывает. Это происходит потому что кнопка возвращается в позицию 0.0 автоматически. Именно поэтому пар за этой кнопкой включить можно, а выключить – нельзя.
Шестая аналогична пятой, но вращается в другой плоскости и игрок может крутить её сам в любом направлении.
Седьмая кнопка при старте каждого раунда становится заблокированной, поэтому на неё нельзя нажать. Рядом на пульте расположена другая кнопка, применяемая для блокирования/разблокирования седьмой.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: