prop_sphere
Описание
Объект prop_sphere используется для создания физических объектов, которые будут иметь модель столкновений идеальной сферы. Такие объекты используют MDL-модели для своего отображения.
Особенности использования
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов
- Этот объект всегда обрабатывается на стороне сервера.
- Объект НЕ должен пересекаться с другими физическими объектами на карте.
- Объект НЕ отбрасывает Lightmap-тени и динамические тени.
- Для этого объекта нельзя настроить физические свойства, а так же этим объектом не используются физические свойства физических моделей, выбираемых в свойстве "World Model". По этой причине масса объекта не зависит от величины и материала модели "World Model" и всегда равна 1 килограмму.
- Физическая модель объекта – это идеальная сфера, радиус которой в игре CS:S всегда равен 12 и не может быть изменён.
Ошибки
Не обнаружены.
Заметки
Эти объекты при использовании их в игре дают не очень корректные физические столкновения с игроком, что может испортить игровой процесс. Например такие объекты при соприкосновениях с игроком могут подбросить его очень высоко вверх, а при падении игрок потеряет здоровье. Так же этот объект может помешать передвижению игроков, что скорей всего многим игрокам может не понравиться, а так же этот объект может способствовать высокому сетевому трафику, что так же может плачевно сказаться на игровом процессе для игроков.
На некоторых серверах может быть использована не интерактивная физика. Такая физика включается консольной командой "sv_turbophysics 1". При этом игроки не могут сдвинуть физические объекты просто толкая их. Чтобы толкать физические объекты нужно использовать на них клавишу "Использовать". При использовании такого типа физики игроки могут вставать на физические объекты сверху без опасений быть сброшенным в результате неточностей физических расчётов.
Параметры
- Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0;
- Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
- World Model – имя файла MDL-модели, которая будет использоваться в качестве основы для внешнего вида объекта (выбирается в окне Model Browser);
- Skin – установить номер другого скина, если модель "World Model" использует несколько скинов; скин – это набор текстур для модели; изменяя скин, изменяется внешний вид модели; узнать какие скины использует модель можно в программе "Model Viewer";
- Body Group – установить номер другого подобъекта, если модель "World Model" использует несколько подобъектов; подобъект – это другая модель, встроенная в тот же файл; изменяя подобъект, изменяется внешний вид объекта; узнать какие подобъекты использует объект можно в программе "Model Viewer";
- Radius – радиус сферы; для игры CS:S этот радиус всегда равен 12;
- Explosion Damage – количество повреждений от взрыва, создаваемого автоматически в момент когда объект ломается; если значение этого свойства не равно нулю, то взрыв будет произведён, даже если значение свойства "Explosion Radius" равно нулю; 0 – взрыв не будет произведён;
- Explosion Radius – радиус взрыва, создаваемого автоматически в момент когда объект ломается; если значение этого свойства не равно нулю, то взрыв будет произведён, даже если значение свойства "Explosion Damage" равно нулю; 0 – взрыв не будет произведён;
- Performance Mode – режим обработки частей физических объектов после их разрушения на стороне сервера; для того чтобы значение этого свойства нашло своё применение, необходимо чтобы модель, указанная в свойстве "World Model" была скомпилирована с особыми QC-параметрами, указанными в блоке "prop_data": $keyvalues { prop_data { "multiplayer_break" "server" } } или $keyvalues { prop_data { "multiplayer_break" "both" } } или имела особый тип материала, который подразумевает создание частей физических объектов на сервере;
- Normal – на стороне сервера могут и будут создаваться части физических объектов; не рекомендуется использовать, потому что на стороне клиента этих частей всё равно не будет видно и это никак не скажется на игровом процессе, однако будет создавать лишнюю нагрузку на сервер;
- No Gibs on Server Side – на стороне сервера не будут создаваться части физических объектов;
по умолчанию для всех моделей выбирается "multiplayer_break" = "client", поэтому крайне сложно найти модель, для которой понадобилось бы использовать это свойство, однако лучше чтобы значение этого свойства всегда было равно "No Gibs on Server Side";
- Pressure Delay - задержка перед тем как сломаться от давления, оказываемого со стороны другого объекта или игрока (секунды); работает только при включенном флажке "Break on Pressure";
- Min Damage to Hurt – объект будет игнорировать любые типы повреждений со стороны других объектов и игрока, если величина этих повреждений меньше значения этого свойства;
- Impact Damage Type - тип повреждений, который наносит этот объект другим объектам при ударе о них:
- Blunt – тупой удар; при ударе генерируется повреждение с типом "CRUSH";
- Sharp – острый удар; при ударе генерируется повреждение с типом "SLASH";
- Disable Damage Forces - отключить силы, прикладываемые к объекту при получении им повреждений (Нет/Да); например: выстрел по объекту не сдвинет его с места;
- Damage Filter – имя объекта-фильтра, который будет контролировать типы повреждений которые можно будет наносить этому объекту;
- Render Mode – режим рендеринга объекта;
- FX Color (R G B) – цвет объекта;
- FX Alpha (0-255) – прозрачность объекта; 255 – полностью не прозрачен; 0 - полностью прозрачен; не используется если свойство "Render Mode" равно "Normal" или "Don’t Render";
- Render FX – эффект рендеринга объекта; например: мигание, плавное появление/исчезновение и т.п.;
- Disable Shadows – отключить динамические тени, отбрасываемые этим объектом (Нет/Да);
- Shadow Cast Distance - максимальное расстояние на которое распространяются динамические тени от этого объекта;
- Fade Start Dist – расстояние от игрока до объекта, с которого объект начнёт плавно исчезать, а полностью исчезнет на расстоянии "Fade End Dist"; это расстояние должно быть меньше чем "Fade End Dist", но в игре они будут автоматически поменяны местами, если это не так; если значение этого свойства меньше нуля, то оно будет автоматически изменено и станет равным "Fade End Dist" - 400;
- Fade End Dist – расстояние от игрока до объекта, на котором объект становится полностью не видимым, начав исчезать с расстояния "Fade Start Dist"; если значение этого свойства меньше или равно нулю, то функция исчезновения будет отключена для этого объекта;
- Fade Scale – множитель для значений исчезновения объекта по умолчанию, используемых если:
- движок запущен в режиме DX7 и ниже;
- параметры исчезновения объектов настраиваются в объекте worldspawn (Hammer > Main menu > Map > Map properties...);
- движок будет использовать свои значения по умолчанию, когда свойства "Fade Start Dist" и "Fade End Dist" не указаны;
во всех этих случаях можно контролировать исчезновение объекта вручную:
-
- 0.0 – полностью отключить исчезновение, объект виден на любом расстоянии;
- меньше 1.0 – исчезновение начнётся с большего расстояния и будет более
растянутым по времени;
-
- больше 1.0 – исчезновение объекта начнётся на меньшей дистанции и будет выполнено быстрее обычного;
- Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
- Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.
Флаги
Debris – объект помечается как "Debris"; такие объекты не реагируют на прикосновения (Touch), поэтому они:
-
- не контактируют друг с другом;
- не контактируют с игроками;
- не контактируют с гранатами, но получают повреждения от взрывов;
- не контактируют с триггерами;
- не выполняют своё событие "OnPlayerUse", когда игроки нажимают на них клавишу "Использовать"; однако при всём при этом такие объекты продолжают контактировать с миром;
- Break on Touch – объект сломается если игрок заденет его; будет ли объект ломаться зависит от типа материала, указанного в свойствах (может быть указано в "Material Type" и "Prop Data"); не используется если установлен флажок "Only Break on Trigger";
- Break on Pressure – объект сломается если игрок окажет на него давление; например: когда игрок наступает на объект сверху; не используется если установлен флажок "Only Break on Trigger"; не используется если установлен флажок "Debris"; в свойстве "Pressure Delay" указывается задержка с момента оказания давления, до того как объект будет сломан;
- Generate OnPlayerUse on +USE – событие "OnPlayerUse" выполняется всякий раз, когда игрок нажимает клавишу "Использовать" на этом объекте; (см. флажок "Debris");
Inputs
- Wake – "разбудить" объект во время игры; (см. флажок "Start Asleep");
- Sleep - "усыпить" объект во время игры; (см. флажок "Start Asleep");
- EnableMotion – разрешить объекту двигаться; эта функция вызывается автоматически в момент выполнения условий для свойств "Health Level to Enable Motion" и/или "Force Amount to Enable Motion";
- DisableMotion – запретить объекту двигаться; объект замирает в воздухе; в то время как объект неподвижен, он использует модель столкновений BSP, а не Vphysics; эта функция вызывается автоматически в начале каждого раунда, если используются свойства "Health Level to Enable Motion" и/или "Force Amount to Enable Motion";
- SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;}
- Skin <integer> – установить новое значение свойства "Skin";
- SetBodyGroup <integer> - установить новое значение свойства "Body Group";
- Break – удалить объект точно так же как это делает функция Kill;
- SetHealth <integer> - переключиться на следующую анимацию объекта;
- AddHealth <integer> – добавить объекту указанное количество здоровья;
- RemoveHealth <integer> – отнять у объекта указанное количество здоровья;
- EnableDamageForces – установить значение свойства "Disable Damage Forces" равным "No";
- DisableDamageForces – установить значение свойства "Disable Damage Forces" равным "Yes";
- SetDamageFilter <string> - установить новое значение свойства "Damage Filter";
- Color <R G B> - установить новое значение свойства "FX Color";
- Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";
- EnableShadow – включить динамические тени от объекта;
- DisableShadow – выключить динамические тени от объекта;
- FadeMinDist <float> - установить новое значение свойства "Fade Start Dist";
- FadeMaxDist <float> - установить новое значение свойства "Fade End Dist".
Outputs
- OnPlayerUse – выполняется тогда, когда игрок нажимает клавишу "Использовать" на этом объекте; выполняется только если установлен флажок "Generate OnPlayerUse on +USE";
- OnMotionEnabled – выполняется тогда, когда для объекта вызывается функция "EnableMotion";
- OnBreak – вызывается тогда, когда объект ломается;
- OnHealthChanged <float> – вызывается тогда, когда у объекта изменится количество "жизни"; возвращает процент жизни относительно своего максимального значения (от 0.0 до 1.0).
Карта
csssdk_prop_sphere.vmf
Используются объекты
- prop_sphere
- phys_hinge
- func_physbox
Описание карты
На карте размещено три физических объекта prop_sphere в виде бомб. Эти объекты расположены на неустойчивой платформе, которая может расшатываться влево или вправо под тяжестью других объектов. При наклоне этой платформы, бомбы будут кататься по платформе под действием собственной силы тяжести. Если игрок прыгнет на какую-нибудь бомбу сверху, или бомба получит небольшое повреждение, то такая бомба взорвётся.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: