Func platrot (Source)

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

Оригинал [ ]

Описание

Объект func_platrot используется для создания обыкновенных брашей (Entity-браши), которые могут двигаться только вверх или вниз и при этом вращаться.

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

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

Ошибки

Этот объект всегда появляется на карте так, как будто бы он уже прошёл путь снизу вверх и уже находится "вверху", поэтому для него в первую очередь нужно использовать функцию "GoDown". Эта ошибка проявляется только если у объекта есть имя.

Если в свойстве "Move Distance" будет установлено значение 0, то объект будет двигаться с ошибкой. При этом объект сначала начнёт своё движение (хотя не должен бы был), а спустя какое время резко окажется в той же точке, откуда начинал двигаться. При этом меняется его состояние "вверху"/"внизу".


  Warning.png Внимание:  Флажок "Toggle" должен быть всегда установлен, иначе игра при загрузке карты выведет ошибку: plat_trigger: backwards mins/maxs, а это, в свою очередь, приведёт к краху игры.

Советы

Воздержитесь от использования объекта func_platrot на ваших картах.

Параметры

  • Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);

  • Rotation Distance (deg) – на сколько градусов повернётся объект;
  • Move Distance – вертикальное расстояние от мнимой "стартовой точки", на котором находится объект; отрицательное значение означает, что объект находится "внизу", а положительное – находится "вверху"; (у этого свойства есть баг, см. пункт "Ошибки");
  • Move Speed – скорость движения объекта; не используется если установлен флажок "Don’t move";
  • Start Sound – звук, который воспроизводится в начале процесса открытия объекта (выбирается в Sound Resource Browser);
  • Stop Sound – звук, который воспроизводится в конце процесса открытия объекта (выбирается в Sound Resource Browser);
  • Sound Volume – (от 0.0 до 1.0) громкость звуков "Start Sound" и "Stop Sound";
  • 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’а).

Флаги

  • Toggle – игрок может сам деактивировать объект; если установлен этот флажок, то свойство "Delay Before Reset" не используется;
  • X Axis – объект вращается по оси X; если установлен этот флажок, то флажок "Y Axis" не используется;
  • Y Axis – объект вращается по оси Y; не используется если установлен флажок "X Axis";

Inputs

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

Карта

csssdk_func_platrot.vmf

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

  • func_platrot
  • func_button
  • func_detail
  • prop_dynamic
  • prop_physics
  • func_wall_toggle

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

На карте несколько платформ func_platrot. Для каждой поставлен пульт с двумя кнопками. Для всех пультов левая кнопка вызывает функцию "GoUp", а правая – "GoDown". Объект func_platrot испещрён ошибками и недоработками и ставит под большое сомнение необходимость и рациональность своего использования. Однако нужно познакомится с этим объектом поближе.

Первое на что стоит обратить внимание - для абсолютно всех платформ на этой карте первой нужно нажимать правую кнопку, чтобы платформа начала движение. Правая кнопка вызывает для платформ функцию "GoDown", о чём было сказано выше. Почему первой нужно вызывать функцию "GoDown", а не "GoUp"? Это баг, описанный в пункте "Ошибки". Обратите так же внимание на то, что абсолютно все платформы в начале каждого раунды появляются уже повёрнутыми на свой угол "Rotation Distance". Это тоже баг, описанный в пункте "Ошибки".

Не трудно заметить, что первые две платформы не работают. Точнее они работают, но с ошибками. Начиная двигаться в каком-либо направлении, они вдруг внезапно прекращают своё движение, и оказываются в той же точке, откуда начинали двигаться. Это происходи из-за того, что у этих платформ свойство "Travel Altitude" равно 0. Это ещё один баг, описанный в пункте "Ошибки".

Третья платформа кое-как настроена правильно. В свойстве "Travel Altitude" стоит значение "-100". Это означает, что платформа при вызове функции "GoDown" поедет вверх. Вообще бардак, правда? Если бы значение этого свойства равнялось "100", то при вызове функции "GoDown" платформа поехала бы вниз и уехала бы при этом за границы карты.

Четвёртая платформа. Тут всё ещё смешнее. Вроде как, платформа выглядит красиво – бордюрчики, бочка, стильный пульт управления. Однако за этой красотой скрывается ещё один недокументированный баг. Встаньте на платформу и начните на ней движение вверх, а во время движения заденьте что-нибудь, находящееся вместе с вами на платформе. Если это сделать, то здоровье игрока начнёт стремительно уменьшаться, потому что прикосновение к вращающейся платформе считается за попытку заблокировать объект func_platrot. Каждая попытка блокирования отнимает у игрока по 1 проценту жизни, а так как это происходит с частотой обновления сервера, то при стандартных настройках сервера, примерно за 3 секунды непрерывного блокировании объекта func_platrot, игрок потеряет всё своё здоровье. Во время блокировки платформа не будет двигаться вообще. Так же, при каждом блокировании направление движения платформы изменяется, поэтому платформа при стандартных настройках сервера, может менять направление своего движения до 33 раз в секунду.

Пятая и шестая платформы демонстрируют вращение объектов func_platrot вокруг разных осей вращения. Обратите внимание, что тени на платформах не меняются в каком бы положении не находились объекты.

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