Func button (Source)

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

Оригинал Func_button

Описание

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

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

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

Ошибки

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

Заметки

Параметры

  • Master – имя объекта multisource, который будет ограничивать работу данного объекта кнопки; если объект multisource будет "включен" то этот объект работать точно так же, как и обычно; если объект multisource будет "выключен" то этот объект будет считаться заблокированным или просто не будет работать. Однако, функции "Press" или "Use" будут работать (если они есть), а значит и будут выполняться соответствующие события при вызове этой функций;
  • Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
  • Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения); углы на которые будет повёрнут объект в начале каждого раунда;
  • Move Direction (Pitch Yaw Roll) – направление движения объекта при активации (нажатии); не используется если установлен флажок "Don’t move";
  • Move Speed – скорость движения объекта; не используется если установлен флажок "Don’t move";
  • Lip – на сколько объект будет торчать из стены после активации; не используется если установлен флажок "Don’t move";
  • Delay Before Reset (-1 stay) – время, в течение которого объект остаётся активированым; спустя это время объект автоматически будет деактивирован; значение -1 заставляет объект оставаться всегда активированым; не используется если установлен флажок "Toggle";
  • Sounds – звук, воспроизводимый при активации объекта;
  • Locked Sound – звук, который воспроизводится, когда происходит попытка активировать заблокированный объект;
  • Unlocked Sound – звук, который воспроизводится, когда активируется разблокированный объект; этот звук воспроизводится одновременно со звуком "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’а).

Флаги

  • Don’t move – объект не двигается; если установлен этот флажок, то свойства "Move Direction", "Move Speed" и "Lip" не используются;
  • Toggle – игрок может сам деактивировать объект; если установлен этот флажок, то свойство "Delay Before Reset" не используется;
  • Touch Activates – объект можно активировать просто задев его;
  • Damage Activates – объект можно активировать нанося ему повреждения;
  • Use Activates – объект можно активировать клавишей "Использовать";
  • Starts Locked – блокировать объект в начале каждого раунда;
  • 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_button.vmf

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

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

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

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

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

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


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

Пятая кнопка сделана невидимой и помещена на пульт. На место кнопки помещена декаль в виде кнопки. Эту кнопку можно активировать выстрелом или при помощи клавиши "Использовать".

Шестая кнопка тоже невидимая, но для внешнего облика кнопки был выбран prop-объект. Эта кнопка хитрая и можно не сразу сообразить как она работает. Всё просто - кнопка движется при нажатии, а объект prop_dynamic прикреплён к этой кнопке, поэтому тоже движется вслед за ней, создавая анимацию.

Седьмая кнопка при старте каждого раунда становится заблокированной, поэтому на неё нельзя нажать. Рядом на пульте расположена другая кнопка, применяемая для блокирования/разблокирования седьмой. Если попробовать нажать на заблокированную кнопку, то будет воспроизведён звуковой сигнал, оповещающий что кнопка заблокирована.

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