Phys magnet

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

Оригинал Phys_magnet

Описание

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

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

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

Ошибки

Установка флажка "Suck On Touch" может привести к проблемам во время игры. Дело в том, что в момент когда магнит подбирает со всех сторон металлические предметы, он сам движется. Если масса магнита будет значительно меньше массы поднимаемых объектов, магнит резко дёрнется в сторону и начнёт непроизвольные колебания в воздухе. Чтобы этого избежать устанавливайте массу магнита как можно больше, или устанавливайте флажок "Motion Disabled", который запретит магниту двигаться.

Параметры

  • Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
  • Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
  • World Model – имя файла MDL-модели, которая будет использоваться в качестве основы для внешнего вида объекта (выбирается в окне Model Browser);
  • Skin – установить номер другого скина, если модель "World Model" использует несколько скинов; скин – это набор текстур для модели; изменяя скин, изменяется внешний вид модели; узнать какие скины использует модель можно в программе "Model Viewer";
  • Body Group – установить номер другого подобъекта, если модель "World Model" использует несколько подобъектов; подобъект – это другая модель, встроенная в тот же файл; изменяя подобъект, изменяется внешний вид объекта; узнать какие подобъекты использует объект можно в программе "Model Viewer";
  • Force Limit to Break (lbs) – минимальная сила, которую необходимо приложить для того чтобы сломать этот физический ограничитель;
  • Torque Limit to Break (lbs * dist) – минимальный момент силы, который необходимо приложить чтобы сломать этот физический ограничитель;

Maximum Attached Objects – максимальное количество металлических объектов, которое может быть прикреплено к магниту; 0 – неограниченно;

  • Mass Scale – множитель массы объекта; 0 или 1.0 – масса не меняется; не используется если в свойстве "Physics Override Parameters" одним из параметров является "mass";
  • Physics Override Parameters – список параметров для изменения некоторых физических свойств объекта:
    • mass <float|kilograms> - изменить массу объекта;
    • inertia <float|scale> - изменить инерцию объекта;
    • damping <float|scale> - изменить гашение линейной скорости объекта;
    • rotdamping <float|scale> - изменить гашение вращений объекта;
    • drag <float|scale> - изменить сопротивление воздуха для объекта;
    • surfaceprop<string|name> - изменить материал из которого сделан объект;
      • список изменений должен быть записан в следующей форме: <свойство,значение>,<свойство,значение>, ... и т.д. например: mass,10,inertia,3,damping,0.75,drag,5000,surfaceprop,glassbottle
  • Damage Filter – имя объекта-фильтра, который будет контролировать типы повреждений которые можно будет наносить этому объекту; (см. подробнее filter_damage_type или filter_multi);
  • Disable Damage Forces - отключить силы, прикладываемые к объекту при получении им повреждений (Нет/Да); например: выстрел по объекту не сдвинет его с места;
  • 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 в процессе компиляции карты.

Флаги

  • Start Asleep – объект будет "спать" в начале каждого раунда; объект не будет двигается пока его не "разбудят"; чтобы "разбудить" объект, нужно приложить к нему какую-нибудь силу (например: задеть его или выстрелить по нему) или вызвать функцию "Wake" или "EnableMotion"; не используется, если установлен флажок "Motion Disabled";
  • Motion Disabled – для объекта в начале каждого раунда автоматически будет вызвана функция "DisableMotion";}}
  • Suck On Touch – магнит будет притягивать к себе все металлические объекты вокруг себя в тот момент когда на магнит действую любое VPhysics взаимодействие, например: когда игрок задевает магнит, когда какой-нибудь физически объект задевает магнит, когда магнит задевает стены, когда на магнит действует какой-нибудь физический ограничитель и т.д.; (у этого флажка есть баг, смотрите пункт "Ошибки");
  • Allow Attached Rotation – металлические объекты, прикреплённые к магниту, могут вращаться на магните; если этот флажок не установлен, то металлические объекты будут намертво прикрепляться к магниту и не смогут на нём двигаться.

Inputs

  • TurnOn – включить объект;
  • TurnOff – выключить объект; если к магниту прикреплены металлические объекты в момент вызова этой функции, то событие "OnDetach" не будет выполнено;
  • Toggle – переключить состояние объекта (Включен/Выключен);
  • Ignite – поджечь объект;
  • SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
  • Skin <integer> – установить новое значение свойства "Skin";
  • SetBodyGroup <integer> - установить новое значение свойства "Body Group";
  • SetDamageFilter <string> - установить новое значение свойства "Damage Filter";
  • EnableDamageForces – установить значение свойства "Disable Damage Forces" равным "No";
  • DisableDamageForces – установить значение свойства "Disable Damage Forces" равным "Yes";
  • 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

  • OnAttach – выполняется тогда, когда к магниту прикрепляется новый металлический объект;
  • OnDetach – выполняется тогда, когда от магнита отрывается металлический объект; при вызове функции "TurnOff" это событие не выполняется;
  • OnIgnite - выполняется тогда, когда объект воспламеняется при вызове функции "Ignite".

Карта

csssdk_phys_magnet.vmf

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

  • phys_magnet
  • func_wall
  • prop_physics
  • prop_ragdoll
  • logic_auto
  • func_movelinear
  • phys_lengthconstraint

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

На карте установлено три больших магнита, каждый из которых подвешен в воздухе на своём объекте phys_lengthconstraint. Первый магнит нужно задеть, чтобы он поднял с земли автомобильную дверь и мост. Рядом с этим магнитом на земле выделена область с двумя гранатами. При помощи этих гранат можно оторвать от магнита прикреплённые к нему металлические объекты. Простыми выстрелами оторвать вряд ли получится. Два последующих магнита отличаются друг от друга только тем, что у одного разрешены вращения объектов на нём, а у другого – запрещены. Обратите внимание, что магниты могут прикреплять к себе металлические объекты абсолютно со всех своих сторон, а не только снизу. Так же обратите внимание на невзрачный объект func_movelinear, который создан на карте только лишь для изменения освещённости второго магнита. Этот объект func_movelinear движется из тени на солнце и обратно, меняя при этом яркость второго магнита.

Кстати, оружие тоже притягивается магнитом.