Основные ключ-параметры, входы и выходы

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Русский (ru)中文 (zh)Translate (Translate)

Ниже приведены общие ключ-параметры, входы и выходы, доступные для всех объектов. Они не обязательно присутствуют в FGD-файле(en) каждой игры/объекта, но существуют у каждого объекта, поскольку наследуются из класса CBaseEntity(en). Если они отсутствуют в FGD-файле для объекта, это может быть связано с тем, что их использование для этого объекта не предусмотрено или может работать некорректно (например, наследование prop_physics), и такие случаи придётся тестировать и описывать на странице соответствующего объекта. Некоторые объекты могут переопределять функциональность указанных ключей/входов/выходов, и такие случаи также будут описаны на странице данного объекта.

Note.pngПримечание:Здесь перечислены не все ключ-параметры, так как многие из них редко применяются или имеют очень специфическое применение.


Ключ-параметры

<dl id="Name(en)" style="margin-block:.4em 1em">

Name(en) (targetname) <строка(en)>
Имя объекта, по которому другие объекты могут ссылаться на этот объект, через Входы/Выходы(en) или другие ключ-параметры(en) (например parentname(en) или target).
Оно отображается на 2D-видах в Hammer и Отчёте об объектах (Entity Report)(en).

<dl id="Class(en)" style="margin-block:.4em 1em">

Class(en) (classname) <строка(en)>
Определяет свойства объекта до его появления в игровом процессе.
Tip.pngСовет:Изменение этого параметра во время выполнения имеет некоторые преимущества, но его следует применять с осторожностью, поскольку некоторые объекты ожидают, что у необходимых объектов будут определенные имена классов. Например, использование имени класса, определенного в белом списке S_PreserveEnts(en), приведет к восстановлению объекта в новых раундах.

<dl id="Global Entity Name(en)" style="margin-block:.4em 1em">

Global Entity Name(en) (globalname) <строка(en)>
При передаче объекта на другую карту, содержащую объект с таким же внешним именем (и именем класса), свойства этого объекта (цвет, точка отсчёта, углы и т.д.) будут скопированы в этот объект (если только данное свойство не помечено как не подлежащее передаче, например, модель).
Icon-Important.pngВажно:Предназначено для использования в одиночных играх в стиле Half-Life 2 с передачей между картами (Серия игр Left 4 DeadСерия игр Left 4 Dead не является таковой)
Model (model) <строка(en)>
Визуальное представление отображаемого объекта. Для объёмных объектов(en) это ссылка на ненулевой индекс [[Ru/Bmodel|]](en) в текущем BSP-файле. Для точечных объектов(en) это путь к MDL-файлу(en) трёхмерной модели(en) или VMT-файлу(en) спрайта(en) относительно корневого каталога игры. Не все объекты будут отображать модель, некоторые объекты будут отображать только предварительно кэшированную(en) определенную здесь модель (без предварительного кэширования она отображаться не будет).

<dl id="Origin(en) (X Y Z)" style="margin-block:.4em 1em">

Origin(en) (X Y Z) (origin) <координаты(en)>
Положение точки отсчёта (origin) этого объекта в пространстве мира. Вращающиеся объекты обычно вращаются вокруг своей точки отсчёта.
Icon-Bug.pngБаг:Редактирование вручную в Hammer не приводит к соответствующему перемещению точечных объектов в редакторе.
Note.pngПримечание:Объёмные объекты с этим ключ-параметром учитываются при проверке пространства карты на утечки(en), а при его отсутствии не учитываются. Это связано с тем, что при отсутсвии этого ключ-параметра применяется значение по умолчанию 0 0 0, которое всегда игнорируется при проверке на утечки.
Pitch Yaw Roll (Y Z X) (angles) <углы(en)>
Ориентация этого объекта в мире. Тангаж (pitch) - поворот по оси Y, рысканье (yaw) - поворот по Z и крен(roll) - поворот по X.
Note.pngПримечание:Это работает для большинства объёмных объектов, хотя Hammer не показывает новые углы.

<dl id="Flags(en)" style="margin-block:.4em 1em">

Flags(en) (spawnflags) <flags(en)>
Переключает специфические возможности объекта, конечное числовое значение определется комбинацией включенных признаков. В Hammer на соответствующей вкладке свойств объекта называемой 'Flags (Признаки)(en)'
Damage Filter (damagefilter) <фильтр(en)>
Имя фильтра урона, определяющего, какие объекты могут наносить урон этому объекту (обычно filter_damage_type).

Наследование

<dl id="Parent(en)" style="margin-block:.4em 1em">

Parent(en) (parentname) <имя объекта(en)>
Поддерживает заданное смещение относительно точки отсчёта другого объекта. Также можно использовать точку крепления, указав её после запятой в конце (parentname [targetname],[attachment]).
Tip.pngСовет:Объекты передаются на следующую карту вместе с родительскими объектами (нет в Серия игр Left 4 DeadСерия игр Left 4 Dead)
PlacementTip.pngОбходной приём:Можно использовать phys_constraint, если наследование не работает.

Сценарии

Entity Scripts (vscripts) <список сценариев(en)> (Во всех играх начиная с Left 4 Dead 2) (также в Ветвь Team Fortress 2)
Список файлов сценариев VScript(en), разделенных пробелами (без расширения файла), которые выполняются после создания всех объектов. Все сценарии выполняются в едином потоке расчёта, и последующие сценарии перезаписывают все идентичные переменные и функции. Сценарии, выполняемые для объекта мира(en), будут выполняться в корневом потоке расчёта.

<dl id="Think function(en)" style="margin-block:.4em 1em">

Think function(en) (thinkfunction) <строка(en)> (Во всех играх начиная с Left 4 Dead 2) (также в Ветвь Team Fortress 2)
Имя функции в сценарии объекта, которая будет вызываться автоматически каждые 100 миллисекунд или с заданным пользователем интервалом, если функция возвращает число. Должен быть указан до появления объекта, установка этого ключ-параметра позже (например, через AddOutput) не будет работать. Избегайте ресурсоёмких(en) операций в этой функции, так как это может привести к проблемам с производительностью.

Отображение

RenderFields:

Render Mode (rendermode) <байт(en) выбор>
Устанавливает нестандартный режим отображения этого объекта.
Режимы отображения
  • 0: Нормально
  • 1: Цвет
  • 2: Текстура
  • 3: Свечение
  • 4: Цельный/Тест прозрачности Obsolete
  • 5: Наложение
  • 6: Удалён, ничего не делает Obsolete
  • 7: Промежуточные кадры
  • 8: Добавление прозрачности
  • 9: Масштабируемое свечение
  • 10: Не отображать

<dl id="Render FX(en)" style="margin-block:.4em 1em">

Render FX(en) (renderfx) <байт(en) выбор>
Various somewhat legacy alpha effects. See render effects.
Render Amount / Transparency (renderamt) <байт(en)>
Transparency amount, requires a Render Mode other than Normal. 0 is invisible, 255 is fully visible.
Render Color (R G B) (rendercolor) <цвет КЗС(en)>
Color tint.

Тени:

Disable Shadows (disableshadows) <булева переменная(en)>
Отключить создание объектом простых текстурных теней, или теней в виде световой карты, если объект является prop_static. Не влияет на карты теней.
Shadow Cast Distance (shadowcastdist) <целое число(en)> Отсутствует в FGD!
Установить максимальную дальность применения динамических теней от объекта. 0 обозначает дистанцию, заданную по умолчанию в объекте shadow_control.
Note.pngПримечание:Ключ-параметры, относящиеся к текстурным теням, не влияют на большинство объёмных объектов, поскольку они запрограммированы в C_BaseEntity, чтобы не отбрасывать текстурные тени. Некоторые объекты переопределяют это поведение, например объект func_physbox.
Disable Receiving Shadows (disablereceiveshadows) <булева переменная(en)>
Отключить отображение динамических теней на объекте.
Disable Shadow Depth (disableshadowdepth) <булева переменная(en)> (Во всех играх начиная с Portal 2)
Отключение отображения глубины теней (для проецируемых текстур) на этом объекте.
Disable flashlight (disableflashlight) <булева переменная(en)> (Во всех играх начиная с Portal 2)
Отключение проецируемого текстурного освещения и теней на этом объекте.
Projected Texture Cache (shadowdepthnocache) <целое число(en) выбор> (Во всех играх начиная с Portal 2)
Указывает системе проецируемых текстур кэшировать размер тени этого объекта вместо принудительно покадрового расчёта отображения.
Варианты
  • 0 : По умолчанию
  • 1 : Без кэша - обрабатывать покадрово
  • 2 : Кэшировать - обрабатывать однократно

Прочие

<dl id="Effects(en)" style="margin-block:.4em 1em">

Effects(en) (effects) <flags(en)> Отсутствует в FGD!
Набор признаков эффектов для использования.

<dl id="Lag Compensation(en)" style="margin-block:.4em 1em">

Lag Compensation(en) (LagCompensate) <булева переменная(en)> Отсутствует в FGD! (Во всех играх начиная с Left 4 Dead 2)
Установите значение Yes, чтобы компенсировать задержки этого объекта. Следует использовать в исключительных случаях!
Is Automatic-Aim Target (is_autoaim_target) <булева переменная(en)> Отсутствует в FGD! (Во всех играх начиная с Counter-Strike: Global Offensive)
Если установлено значение 1, этот объект будет замедлять движение прицеливания на игровых приставках и джойстиков, когда объект находится под перекрестием прицела.


Входы

<dl id="AddOutput(en)" style="margin-block:.4em 1em">

AddOutput(en) <строка(en)>
Присваивает этому объекту новый выход или ключ-параметр. Для некоторых ключ-параметров необходимо выполнение дополнительного кода, и они не будут работать, если их просто изменить через этот вход.
Формат: <имя> <целевой объект>:[имя входа]:[параметр]:[задержка]:[количество срабатываний, -1 - бесконечно]
Формат: <ключ> <значение>

<dl id="Kill(en)" style="margin-block:.4em 1em">

Kill(en)
Удаляет из игрового процесса этот объект и всех связанных потомков этого объекта.
FireUser1 to FireUser4  <строка(en)>
Срабатывает соответствующие выходы OnUser. Смотрите раздел Пользовательские входы и выходы(en).
Warning.pngПредупреждение:Can take string parameter and doesn't do anything with it. This can cause an issue if this input is fired from outputs that can send a value. Make sure to specify dummy string in such cases other-wise the output will use its value as parameter causing the input to fail with "bad input/output link" error in console.
SetDamageFilter <имя объекта(en)>
Устанавливает фильтр(en), определяющий урон, получаемый данным объектом.

Наследование

SetParent <имя объекта(en)>
поддерживает !activator, но не !caller
Определяет родительский объект для совместного перемещения объекта вместе с ним. Смотрите Иерархия объектов мира (наследование)(en).
SetParentAttachment <строка(en)>
Преопределяет точку крепления(en) родительского объекта для присоединения этого объекта. Объект будет перемещён таким образом, чтобы положение его коренной кости(en) совпадало с положением точки крепления. Перед использованием этого входа необходимо указать родительский объект.
SetParentAttachmentMaintainOffset <строка(en)>
Аналогичен предыдущему, но без перемещения. Объект сохраняет свое смещение относительно точки крепления в момент срабатывания входа.
ClearParent
Удаляет этот объект из иерархии движений, позволяя перемещаться самостоятельно.
KillHierarchy
Работает аналогично входу Kill, за исключением того, что объект и все его дочерние объекты уничтожаются за один шаг расчёта, что немного быстрее, чем вход Kill.

Сценарии VScript

RunScriptFile <сценарий(en)> (Во всех играх начиная с Left 4 Dead 2) (также в Ветвь Team Fortress 2)
Execute a VScript(en) file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
RunScriptCode <строка(en)> (Во всех играх начиная с Left 4 Dead 2) (также в Ветвь Team Fortress 2)
Execute a string of VScript source code in the scope of the entity receiving the input. Variables activator, caller, self are available when the script is run (same applies to RunScriptFile).
Warning.pngПредупреждение:Using the quote symbol " in any text field of a Hammer Object Properties Dialog will lead to VMF corruption, fixable only by editing the VMF directly with a text editor and removing the added quote symbol.
Tip.pngСовет:In Ветвь Team Fortress 2 backticks ` are converted to " when the input is processed. If a string is needed in other games then foreach can be used like foreach(k,v in {the_string_I_need=0}) printl(k), but that looks confusing and only strings that are also valid identifiers can be created this way so it's preferable to use RunScriptFile or Entity Scripts(en) instead. Mind that using quotes itself within IO events is not an issue, so using EntFire or adding outputs via script can be done by escaping the quotes \". Hammer does not provide a way to escape them. Example: EntFire("target", "RunScriptCode", "printl(\"I am: \" + self + \" !\")").
Icon-Bug.pngБаг:Trying to use activator or caller by running this input on an entity that doesn't yet have a script scope will cause error as those variables are only populated when script scope exists. Calling the input second time will have them because the first call did create the script scope. This is fixed in Ветвь Team Fortress 2 Ветвь Team Fortress 2.
CallScriptFunction <строка(en)> (Во всех играх начиная с Left 4 Dead 2) (также в Ветвь Team Fortress 2) Отсутствует в FGD!
Calls a VScript function defined in the scope of the receiving entity.
Note.pngПримечание:activator and caller are unavailable.
Note.pngПримечание:If the function requires arguments/parameters, then RunScriptCode or RunScriptFile will need to be used instead.
TerminateScriptScope  (только в Ветвь Team Fortress 2) Отсутствует в FGD!
Destroys the script scope of the receiving entity.

Текстовые блоки

AddContext <строка(en)>
Добавляет к объекту список текстовых ответов(en). Смотрите Контекст(en).
ClearContext
Очищает список текстовых ответов этого объекта.
Warning.pngПредупреждение:Should not be used outside of debugging purposes if vscript modding is available as one never knows what they might be deleting especially on player entities. There are often vscript mods that store information as contexts for various purposes.
RemoveContext <строка(en)>
Удаляет текстовый ответ из списка этого объекта. Имя должно соответствовать ключу существующего блока текста.

Отображение

RenderFields:

Alpha <целое число(en) 0–255>
Sets the entity's transparency to a number from 0 (invisible) to 255 (fully visible). Requires the entity to have its rendermode set to a number other than 0.
Color <цвет КЗС(en)>
Sets an RGB color for the entity.

Shadow:

DisableShadow
Turn dynamic shadows off for this entity. Identical to applying  EF_NOSHADOW.
EnableShadow
Turn dynamic shadows on for this entity.
DisableReceivingFlashlight  (Во всех играх начиная с Portal 2)
This object will not receive light or shadows from projected textures.
EnableReceivingFlashlight  (Во всех играх начиная с Portal 2)
This object may receive light or shadows from projected textures.

Прочие

Use  Отсутствует в FGD!
Same as a player invoking +use(en); no effect in most cases.
SetTeam <целое число(en)> Отсутствует в FGD!
Changes this entity's team.
TeamNum <целое число(en)> Отсутствует в FGD!
This input changes value for TeamNum property.
DispatchResponse <строка(en)> Отсутствует в FGD!
Dispatches a response to the entity. See Response(en) and Concept(en).
DispatchEffect <строка(en)> (удалено начиная с Left 4 Dead) Отсутствует в FGD!
Dispatches a special effect from the entity's origin; See also List of Client Effects(en). Replaced by the particle(en) system since Left 4 Dead.
SetLocalOrigin <координаты(en)> (Во всех играх начиная с Portal 2) Отсутствует в FGD!
Send this entity to a spot in the map. If the entity is parented to something, it will be offset from the parent by this amount.
SetLocalAngles <углы(en)> (Во всех играх начиная с Portal 2) Отсутствует в FGD!
Set this entity's angles.


Выходы

OnUser1 to OnUser4
!activator = объект, активировавший входы FireUser1-4
!caller = this entity
Каждый из этих выходов срабатывает в ответ на срабатывание соотвествующего входа от FireUser1 до FireUser4; смотрите раздел Пользовательские входы и выходы(en).
OnKilled  (только в Left 4 Dead)
!activator = !caller = none
Этот выход срабатывает, когда объект уничтожается и удаляется из игры.


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