env_customize

XashXT

env_customize

Полный аналог одноимённой энтити из Spirit of Half-Life. Позволяет менять те или иные параметры у NPC.

Спаунфлаги

SF_CUSTOM_AFFECTDEAD 1 (разрешает применять настройки к мёртвым монстрам)
SF_CUSTOM_ONCE 2 (удалить объект после использования)
SF_CUSTOM_DEBUG 4 (выводить в консоль отладочные сообщения относительно данного объекта)

Настройки

m_iVisible Скрыть или показать видимую модель. Работает для всех объектов с моделью (не только для NPC).
m_iSolid Сделать модель нематериальной или материальной. Работает для большинства объектов. Обратите внимание, что вы не сможете задать материальность для изначально нематериальной модели. Вы сможете только включать или выключать её у изначально материальной.
m_iszModel Параметр: путь к новой модели. Позволяет динамически сменить модель у любого объекта. Однако объект с новой моделью может застрять в архитектуре уровня. Кроме этого, для него не будет пересчитан физический хулл. Используйте с осторожностью.
m_voicePitch Диапазон: 75–120. «Высота» голоса для говорящего монстра. Для остальных объектов не имеет значения.
m_iPrisoner Монстр перестаёт атаковать своих противников. Аналогичен спаунфлагу PRISONER в настройках самих монстров.
m_iMonsterClip Монстр перестаёт реагировать на невидимые преграды с названием func_monsterclip, либо начинает на них реагировать.
m_iClass Новый класс монстра. Определяет отношение ко всем остальным монстрам и игроку. Подробнее список классов можно прочитать в разделе Классы монстров и их поведение.
m_iPlayerReact Реакция монстра на игрока:
  • 0 — определяется классом
  • 1 — полное игнорирование игрока
  • 2 — дружественный до первого ранения
  • 3 — дружественный, если ранение не было преднамеренным, то есть игрок не стрелял в NPC умышленно, а случайно зацепил в перестрелке; случайность или неслучайность попадания определяется тем, куда попали
  • 4 — безусловный враг
m_iProvoked Заставляет NPC забыть или вспомнить о том, кто его ранил. Проще говоря, позволяет дружественного монстра сделать вражеским, не меняя остальных его параметров. Эффект аналогичен ранению монстра из оружия игрока.
m_iBloodColor Цвет крови NPC. Цвет — это число от 0 до 255, указывающее на номер индекса в палитре. Красная кровь — это номер 247. Желтая — номер 195.
m_fFramerate Позволяет сменить частоту кадров у произвольной энтити, которая использует переменную pev->framerate. Вероятность успешной работы с той или иной энтитью определяется исключительно опытным путём, т. к. детально не тестировалась.
m_fController0 Меняет положение bone-controller 0 для NPC или env_model.
m_fController1 Меняет положение bone-controller 1 для NPC или env_model.
m_fController2 Меняет положение bone-controller 2 для NPC или env_model.
m_fController3 Меняет положение bone-controller 3 для NPC или env_model.
skin Позволяет задавать skin как номер «шкурки» для модели либо contents для браша. Например, воду или лаву.
body Меняет тело для модели. Работает на всех энтитях, имеющих модель.
m_iReflection Позволяет сменить стиль отражения энтити в зеркалах:
  • 0 — по умолчанию
  • 1 — не отражать в зеркале
  • 2 — отражать только в зеркале

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

  • Для параметров, предусматривающих явное переключение параметра (включено/выключено) есть возможность гибко настраивать реакцию на тип активации.
    Данный параметр пишется напротив соответствующей настройки:
    CUSTOM_FLAG_NOCHANGE 0 (не менять данный параметр)
    CUSTOM_FLAG_ON 1 (применить данный параметр, независимо от типа активации)
    CUSTOM_FLAG_OFF 2 (отключить данный параметр, независимо от типа активации)
    CUSTOM_FLAG_TOGGLE 3 (переключить данный параметр с противоположного состояния)
    CUSTOM_FLAG_USETYPE 4 (учитывать тип активации, например, на USE_ON — включить, на USE_OFF — выключить, на USE_TOGGLE — переключить)
    CUSTOM_FLAG_INVUSETYPE 5 (то же самое, что и CUSTOM_FLAG_USETYPE, но параметры USE_ON и USE_OFF меняются местами)
    Для объектов, имеющих множественный выбор значения, таких как body, skin, m_iClass и других, используйте ключевое значение -1, чтобы игнорировать его применение.
  • Также энтить предусматривает в поле target особое значение *locus, чтобы применять настройки к тому, кто активировал объект.