Func rot button (Source)

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Оригинал Func_rot_button

Описание

Объект func_rot_button используется для создания кнопок, которые вращаются при нажатии на них.

Особенности использования

  • Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
  • Объект должен быть установлен там, где будет использоваться.
  • На карте может быть установлено множество этих объектов
  • Объект НЕ отбрасывает Lightmap-тени и динамические тени.

Ошибки

Если установлен флажок "Sparks", то искры начнут отображаться только тогда, когда кнопка первый раз будет "отжата".

Если заблокировать кнопку функцией "Lock" (или используя "Master"-объект), в то время когда кнопка нажимается (поворачивается), то по нажатии (окончании поворота) событие "OnIn" не будет выполнено и кнопка будет заблокирована до начала следующего раунда без возможности разблокировать её. Как ни странно, но если заблокировать кнопку во время отжимания (поворачивания в другую сторону), то событие "OnOut" будет выполнено и кнопка сможет продолжать нормально функционировать.

Параметры

  • Master – имя объекта multisource, который будет ограничивать работу данного объекта кнопки; если объект multisource будет "включен" то этот объект работать точно так же, как и обычно; если объект multisource будет "выключен" то этот объект будет считаться заблокированным или просто не будет работать. Однако, функции "Press" или "Use" будут работать (если они есть), а значит и будут выполняться соответствующие события при вызове этой функций;
  • Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
  • Rotation Distance (deg) – на сколько градусов повернётся объект;
  • Rotation Speed (deg/sec) – скорость вращения объекта (градусов в секунду);
  • Delay Before Reset (-1 stay) – время, в течение которого объект остаётся активированым; спустя это время объект автоматически будет деактивирован; значение -1 заставляет объект оставаться всегда активированым; не используется если установлен флажок "Toggle";
  • Damage Activates – кнопку можно активировать нанося ей повреждения (Нет/Да);
  • Sounds – звук, воспроизводимый при активации объекта;
  • 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 – объект не имеет физической модели и не будет сталкиваться с другими объектами и препятствовать их движению.

Reverse Dir – открывать объект в другую сторону; если не установлен флажок "One Way", то объект всегда открывается в сторону игрока;

  • Toggle – игрок может сам деактивировать объект; если установлен этот флажок, то свойство "Delay Before Reset" не используется;
  • X Axis – объект вращается по оси X; если установлен этот флажок, то флажок "Y Axis" не используется;
  • Y Axis – объект вращается по оси Y; не используется если установлен флажок "X Axis";
  • Touch Activates – объект можно активировать просто задев его;
  • Damage Activates – объект можно активировать нанося ему повреждения;
  • Use Activates – объект можно активировать клавишей "Использовать";
  • Sparks – отображать искры из центра объекта.

Inputs

  • Lock – заблокировать объект;
  • Unlock – разблокировать объект;
  • Press – активировать объект; эта функция не будет работать, если кнопка будет заблокирована при помощи функции "Lock", однако будет работать, если объект "Master" будет "выключен";
  • SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
  • Color <R G B> - установить новое значение свойства "FX Color";
  • Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";

Outputs

  • OnPressed – выполняется тогда, когда на объект нажимают; это событие не будет выполняться, если объект будет заблокирован при помощи функции "Lock", однако будет выполняться, если объект "Master" будет "выключен";
  • OnIn - выполняется тогда, когда объект полностью нажат;
  • OnOut - выполняется тогда, когда объект полностью отжат;
  • OnDamaged - выполняется тогда, когда объект получает урон; это событие будет выполняться даже тогда, когда объект будет заблокирован при помощи функции "Lock" и/или объект "Master" будет "выключен";
  • OnUseLocked - выполняется тогда, когда объект заблокирован и его пытаются активировать.

Карта

csssdk_func_rot_button.vmf

Используются бъекты

  • func_rot_button
  • func_button
  • func_detail
  • env_explosion
  • env_steam
  • prop_dynamic
  • logic_auto

Описание карты

На карте продемонстрировано несколько способов использования объектов func_rot_button.

При нажатии на первую кнопку взрыв объекта env_explosion происходит сразу же в момент нажатия, не дожидаясь пока кнопка докрутится до конца. Так работает событие "OnPressed". На кнопку нельзя повторно нажать, пока она не вернётся на своё прежнее место.

При нажатии на вторую кнопку взрыв объекта env_explosion происходит только тогда, когда кнопка полностью повернётся на угол "Distance". Так работает событие "OnIn". На кнопку нельзя повторно нажать, пока она не вернётся на своё прежнее место.

На третью кнопку нельзя нажать – ей нужно причинить повреждение, чтобы активировать. Выстрелите в кнопку. При активировании кнопки, пар объекта env_steam начинает идти когда кнопка нажата и прекращает идти, когда кнопка отжата. Так работают события "OnIn" и "OnOut". Кнопку можно активировать и деактивировать в любое время. Обратите внимание где в редакторе Hammer находится "Helper" – это синий шарик для объекта. Вокруг этого шарика и крутится объект func_rot_button.

Четвёртая кнопка выполнена в виде рычага или рубильника, который можно переключать слева направо. Из четвёртой кнопки идут искры. В остальном эта кнопка работает так же как и третья, только активировать эту кнопку можно при помощи клавиши "Использовать".

Пятая кнопка сделана невидимой. К ней прикреплён объект prop_dynamic, который выглядит как вентиль. При нажатии на такую кнопку, кнопка начинает вращаться, но игроку этого не видно. Вместо кнопки игрок будет видеть вращение объекта prop_dynamic.

Шестая аналогична пятой, но вращается в другой плоскости.

Седьмая кнопка при старте каждого раунда становится заблокированной, поэтому на неё нельзя нажать. У этой кнопки нет работоспособного флажка, который мог бы автоматически блокировать объект в начале каждого раунда, поэтому пришлось прибегнуть к помощи logic_auto, который в начале каждого раунда явно вызывает функцию "Lock" для объекта func_rot_button. Рядом на пульте расположена другая кнопка, применяемая для блокирования/разблокирования седьмой. Обратите внимание, что если заблокировать седьмую кнопку во время её нажатия (поворачивания), то по окончании поворота кнопка полностью заблокируется без возможности разблокирования. Это баг, описанный в пункте "Ошибки".

Смотрите также