Prop door rotating

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

Оригинал Prop door rotating

Описание

Объект prop_door_rotating используется для создания дверей из практически любых типов моделей. Такие двери могут открываются как обычные петельные двери. Такие модели как "models/props_c17/door01_left.mdl" имеют настройки озвучивания, точки расположения ручки на двери и внешнего вида двери, поэтому использование таких моделей сильно упрощает процесс создания дверей этого типа.

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

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

Ошибки

Дверь может вращаться на все 360 градусов, если она прикреплена к другому объекту через свойство "Parent".

Заметки

Для отладки дверей существует консольная команда "g_debug_doors 1".

В большинстве случаев рекомендуется использовать именно такой тип дверей, потому что он наиболее податлив на изменения и имеет множество возможных способов своего использования.

Для этого объекта почти что нет ограничений на тип и особенности модели "World Model", поэтому этот объект имеет богатую функциональность и возможности.

Параметры

  • Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
  • Start Disabled – выключать объект в начале каждого раунда (Нет/Да);
  • Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
  • Hardware Type – тип дверной ручки на двери:
    • None – нет ручки;
    • Lever – ручка в виде рычага;
    • Push bar – ручка в виде перекладины;
  • Spawn Position – какое состояние будет у двери в начале каждого раунда:
    • Closed – дверь закрыта;
    • Open forward – дверь открыта вперёд;
    • Open back – дверь открыта назад;
    • Ajar (use Ajar Angles) – дверь повёрнута на угол "Ajar Angles";
  • Ajar Angles (Pitch Yaw Roll) – угол на который будет повёрнута дверь в начале каждого раунда; используется только если значение свойства "Spawn Position" равно "Ajar";
  • Rotation Distance (deg) – на сколько градусов повернётся объект;
  • Rotation Speed (deg/sec) – скорость вращения объекта (градусов в секунду);
  • Delay Before Close (-1 stay) – задержка с момента полного открытия двери до того момента как дверь автоматически начнёт закрываться; -1 – дверь не будет закрываться автоматически;
  • Fully Open Sound – звук, который воспроизводится в момент полного открытия двери;
  • Fully Closed Sound – звук, который воспроизводится в момент полного закрытия двери;
  • Moving Sound – звук, который воспроизводится в процессе движения двери;
  • Locked Sound – звук, который воспроизводится, когда происходит попытка активировать заблокированный объект;
  • Unlocked Sound – звук, который воспроизводится, когда активируется разблокированный объект; этот звук воспроизводится одновременно со звуком "Sounds", если тот установлен;
  • World Model – имя файла MDL-модели, которая будет использоваться в качестве основы для внешнего вида объекта (выбирается в окне Model Browser);
  • World Model – имя файла MDL-модели, которая будет использоваться в качестве основы для внешнего вида объекта (выбирается в окне Model Browser);
  • Body Group – установить номер другого подобъекта, если модель "World Model" использует несколько подобъектов; подобъект – это другая модель, встроенная в тот же файл; изменяя подобъект, изменяется внешний вид объекта; узнать какие подобъекты использует объект можно в программе "Model Viewer";
  • Default Animation Name – установить для модели "World Model" анимацию, которая будет постоянно проигрываться во время игры; узнать какие анимации имеет модель можно в программе "Model Viewer";
  • Randomly Animate – проигрывать случайную анимацию модели "World Model" во время игры (Нет/Да); если значение этого свойства равно "Yes", то используются свойства "Min Random Anim Time" и "Max Random Anim Time" для указания периодичности проигрывания случайной анимации; после проигрывания очередной случайной анимации, для модели "World Model" автоматически будет включаться анимация по умолчанию;
  • Min Random Anim Time – минимальный промежуток времени между случайной анимацией модели "World Model"; используется только если используется свойство "Randomly Animate";
  • Max Random Anim Time – максимальный промежуток времени между случайной анимацией модели "World Model"; используется только если используется свойство "Randomly Animate";
  • 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 – объект будет игнорировать любые типы повреждений со стороны других объектов и игрока, если величина этих повреждений меньше значения этого свойства;
  • Damage Filter – имя объекта-фильтра, который будет контролировать типы повреждений которые можно будет наносить этому объекту; (см. подробнее filter_damage_type или filter_multi);
  • 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 – исчезновение объекта начнётся на меньшей дистанции и будет выполнено быстрее обычного;
  • Lighting Origin – имя любого объекта на карте, в точке которого будет измеряться освещённость этого объекта; как правило, используется точечный объект, например – info_target; например: этот объект находится в светлом помещении, а точка "Lighting Origin" находится в тёмном помещении; несмотря на то, что этот объект находится в светлом помещении, он будет иметь освещенность тёмной комнаты; если переместить объект "Lighting Origin" из тёмной комнаты в светлую – освещённость этого объекта тоже изменится;
  • Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
  • Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.

Флаги

  • Starts Open – объект будет открыт в начале каждого раунда;
  • Break on Touch – объект сломается если игрок заденет его; будет ли объект ломаться зависит от типа материала, указанного в свойствах (может быть указано в "Material Type" и "Prop Data"); не используется если установлен флажок "Only Break on Trigger";
  • Break on Pressure – объект сломается если игрок окажет на него давление; например: когда игрок наступает на объект сверху; не используется если установлен флажок "Only Break on Trigger";
  • Use Hitboxes for Renderbox – #назначение не известно#.
  • No VPhysics (BSP used) – использовать вместо модели столкновений VPhysics модель столкновений BSP; использование BSP даёт более качественный результат физически столкновений, чем VPhysics;
  • Disable Collision – объект может позволить игроку пройти через себя, но при этом он всё же будет создавать сопротивление; пули и гранаты будут беспрепятственно пролетать сквозь объект, но следы от пуль на объекте всё же будут оставаться;
  • Starts Locked – блокировать объект в начале каждого раунда;
  • Door Silent – объект не издаёт никаких звуков.

Шаблон:Sdk f use closes

  • Ignore player +USE – игнорировать попытки игрока воздействовать на объект при помощи клавиши "Использовать".

Inputs

  • Open – открыть объект; эта функция не будет работать, если объект будет заблокирован при помощи функции "Lock" или флажка "Starts Locked", однако будет работать, если объект "Master" будет "выключен";
  • OpenAwayFrom <string> - открыть дверь в другую сторону от объекта, имя которого указанно во входном параметре этой функции;
  • Close – закрыть объект; эта функция не будет работать, если объект будет заблокирован при помощи функции "Lock" или флажка "Starts Locked", однако будет работать, если объект "Master" будет "выключен";
  • Toggle – переключить состояние объекта (Включен/Выключен);
  • Lock – заблокировать объект;
  • Unlock – разблокировать объект;
  • SetRotationDistance <float> – установить новое значение свойства "Rotation Distance";
  • EnableCollision – включить столкновения между этим объектом и игроком; объект не разрешает игроку проходить сквозь себя;
  • DisableCollision - выключить столкновения между этим объектом и игроком; объект разрешает игроку проходить сквозь себя, но при этом всё равно его отталкивает, если игрок не пробует перемещаться;
  • SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
  • Skin <integer> – установить новое значение свойства "Skin";
  • SetBodyGroup <integer> - установить новое значение свойства "Body Group";
  • Ignite – поджечь объект;
  • TurnOn – сделать объект видимым;
  • TurnOff – сделать объект невидимым;
  • SetAnimation <string> – установить новую анимацию для модели "World Model"; входной параметр этой функции является именем анимации;
  • SetDefaultAnimation <string> - установить анимацию, используемую по умолчанию моделью "World Model"; входной параметр этой функции является именем анимации;
  • SetDamageFilter <string> - установить новое значение свойства "Damage Filter";
  • Break – удалить объект точно так же как это делает функция Kill;
  • SetHealth <integer> - переключиться на следующую анимацию объекта;
  • AddHealth <integer> – добавить объекту указанное количество здоровья;
  • RemoveHealth <integer> – отнять у объекта указанное количество здоровья;
  • Color <R G B> - установить новое значение свойства "FX Color";
  • Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";
  • EnableShadow – включить динамические тени от объекта;
  • DisableShadow – выключить динамические тени от объекта;
  • FadeMinDist <float> - установить новое значение свойства "Fade Start Dist";
  • FadeMaxDist <float> - установить новое значение свойства "Fade End Dist".
  • SetLightingOrigin <string> - установить новое значение свойства "Lighting Origin".

Outputs

  • OnBlockedOpening – выполняется в тот момент, когда дверь блокируют в процессе её открытия;
  • OnBlockedClosing – выполняется в тот момент, когда дверь блокируют в процессе её закрытия;
  • OnOpen – выполняется в тот момент, когда объект начинает открываться;
  • OnClose – выполняется в тот момент, когда объект начинает закрываться;
  • OnFullyOpen – выполняется в тот момент, когда объект полностью открыт;
  • OnFullyClosed – выполняется в тот момент, когда объект полностью закрыт;
  • OnUnblockedOpening – выполняется в тот момент, когда дверь продолжает своё открытие после блокировки;
  • OnUnblockedClosing – выполняется в тот момент, когда дверь продолжает своё закрытие после блокировки;
  • OnIgnite - выполняется тогда, когда объект воспламеняется при вызове функции "Ignite".
  • OnAnimationBegun – выполняется в тот момент, когда для модели "World Model" начинает выполняться новая анимация;
  • OnAnimationDone – выполняется в тот момент, когда для модели "World Model" прекращает выполняться анимация;
  • OnBreak – вызывается тогда, когда объект ломается;
  • OnHealthChanged <float> – вызывается тогда, когда у объекта изменится количество "жизни"; возвращает процент жизни относительно своего максимального значения (от 0.0 до 1.0).

Карта

csssdk_prop_door_rotating.vmf

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

  • prop_door_rotating
  • func_button
  • func_detail
  • func_areaportal
  • trigger_multiple
  • prop_physics
  • logic_auto
  • point_servercommand

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

Побегайте по карте, открывайте и закрывайте двери, чтобы разобраться в принципе действия тех или иных свойств дверей.

Предпоследняя дверь создана из двух одинаковых дверей prop_door_rotating. Чтобы открыть такую парную дверь достаточно просто указать для них одинаковое имя.

Последняя дверь используется для открытия/закрытия портала созданного при помощи объекта func_areaportal. Портал контролирует видимость частей карты. Находясь на улице мы не видим что находится за закрытой дверью, но стоит открыть дверь, как сразу же становится видно бочку стоящую за ней. Зайдя в внутрь маленького помещения и закрыв за собой дверь изнутри, можно увидеть, что улица не отображается, когда закрыта дверь. Так работает объект func_areaportal.

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