phys_slideconstraint
Описание
Объект phys_slideconstraint – это ограничитель физики, используемый для соединения двух физических объектов. При таком типе соединения объекты сохраняют свою ориентацию относительно друг друга и могут двигаться только вдоль указанной прямой.
Особенности использования
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов
- Для этого объекта не важно сколько объектов будет указано в свойствах "Entity 1" или "Entity 2" – два или один. И в том и в другом случае объекты будут двигаться вдоль прямой, указанной "Sliding Axis".
Ошибки
Не обнаружены.
Заметки
Этот объект может быть использован для создания раздвигающихся дверей.
Параметры
- Entity 1 – имя первого физического объекта для ограничителя;
- Entity 2 – имя второго физического объекта для ограничителя;
- Constraint System Manager – имя объекта phys_constraintsystem, в который будет добавлен этот ограничитель физики; все ограничители физики, добавленные в единую систему ограничений (phys_constraintsystem), не будут бороться друг с другом за право управлять объектами, что позволяет снизить нагрузку на сервер и выполнять более сложные физические взаимодействия не опасаясь физических коллизий; если указано это свойство, то функции "TurnOn" и "TurnOff" не будут работать;
- Force Limit to Break (lbs) – минимальная сила, которую необходимо приложить для того чтобы сломать этот физический ограничитель;
- Torque Limit to Break (lbs * dist) – минимальный момент силы, который необходимо приложить чтобы сломать этот физический ограничитель;
- Play Sound on Break – звук, воспроизводимый когда ломается этот физический ограничитель (выбирается в Sound Resource Browser); громкость звука постоянна.
- Friction – трение, возникающее при движении физических объектов вдоль прямой, указанной "Sliding Axis";
- Load Scale – множитель сил, прикладываемых к физическим объектам во время движения, вызванного функцией "SetVelocity";
- Sliding Axis – линия вдоль которой будут двигаться физические объекты (указывается при помощи Helper’а);
- Angles Fix (Read-Only) – используется только для того, чтобы в редакторе Hammer не выводилось сообщение об ошибке: Entity (phys_constraint) has unused keyvalue "angles"; не используется игрой CS:S.
Флаги
- No Collision until Break – если указан один из физических объектов "Entity 1" или "Entity 2", то он НЕ будет сталкиваться с World-геометрией карты; если указаны оба физических объекта "Entity 1" и "Entity 2", то они не будут сталкиваться между собой; эти ограничения накладываются до тех пор, пока не будет сломан этот физический ограничитель, или пока этот физический ограничитель не будет выключен функцией "TurnOff";
- Start Inactive – в начале каждого раунда автоматически выполнять функцию "TurnOff"; не используется если указано свойство "Constraint System Manager".
- Limit Endpoints – установить ограничение на максимальное расстояние между физическими объектами; если указано оба физических объекта "Entity 1" и "Entity 2", то расстояние между ними будет взято за максимальное; если указан только один физический объект "Entity 1" или "Entity 2", то в этом случае конечные точки будут определяться исходя из позиции указанного физического объекта, позиции этого физического ограничителя и/или точки "Sliding Axis".
Inputs
- TurnOn – включить объект; не работает если указано свойство "Constraint System Manager";
- TurnOff – выключить объект; не работает если указано свойство "Constraint System Manager";
- Break – сломать этот физический ограничитель; после вызова этой функции этот физический ограничитель удаляется, поэтому нельзя будет включать и выключать этот его функциями "TurnOn" и "TurnOff";
- ConstraintBroken – аналогична функции "Break".
- SetVelocity <float> - установить скорость движения физических объектов вдоль прямой, указанной "Sliding Axis"; если указано оба физических объекта "Entity 1" и "Entity 2", то они будут разъезжаться друг от друга, если указать в этой функции положительное значение; если указан только один физический объект "Entity 1" или "Entity 2", то он будет двигаться вдоль прямой в направлении по умолчанию.
Outputs
- OnBreak – вызывается тогда, когда объект ломается;
Карта
csssdk_phys_slideconstraint.vmf
Используются объекты
- phys_slideconstraint
- func_detail
- func_physbox
- logic_timer
Описание карты
На карте установлено несколько объектов func_physbox, которые можно двигать в вдоль некоторых прямых, заданных объектами phys_slideconstraint. Обратите внимание, что некоторые объекты func_physbox не контактируют с World-геометрией, но контактируют с игроком. По первым четырём объектам func_physbox можно просто пострелять и посмотреть за их реакцией. Вслед за ними установлен объект func_physbox в виде небольшого вагончика, который при помощи таймера приводится в движение функцией "SetVelocity" объекта phys_slideconstraint. Этот вагончик ездит назад и вперёд от стены к стене, и если игрок окажется на его пути, то игрок может пострадать, так как этот вагончик довольно массивен и может легко раздавить игрока. Обратите внимание, что для движения вагончика "вперёд" вызывается функция "SetVelocity 100", а для движения в обратную сторону – функция "SetVelocity -1". Возможно, это какая-то недоработка, но в обратную сторону вагончик движется значительно быстрее чем "вперёд". Дальше за вагончиком создано некое подобие лифта, который то поднимается, то опускается в результате вызова всё той же функции "SetVelocity". Если игрок окажется под лифтом в момент когда тот опускается, игрок будет раздавлен лифтом. Последние нерассмотренные объекты на карте – это два шара, объединённых одним физических ограничителем phys_slideconstraint. Эти шары могут двигаться в любом направлении, но они всегда сохраняют ориентацию к друг другу и перемещаются вдоль общей прямой, определённой их объектом phys_slideconstraint.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: