player_keycatcher

XashXT

player_keycatcher

Данная энтить является логическим расширением функционала, предоставляемого trigger_impulse. Позволяет перехватывать кнопки игрока для активации событий на карте.

Настройки

m_iszKeyToCatch Имя кнопки, которую требуется отслеживать. Один player_keycatcher может отслеживать только одну кнопку (любую).
m_iszKeyPressed Цель, которая будет однократно вызвана, когда игрок нажмёт отслеживаемую кнопку.
m_iszKeyHoldDown Цель, которая будет вызываться каждый кадр, пока игрок держит отслеживаемую кнопку.
m_iszKeyReleased Цель, которая будет однократно вызвана, когда игрок отпустит отслеживаемую кнопку.
master Мастер для блокировки энтити. Заблокированный player_keycatcher не вызывает свои цели.

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

  • Максимальное количество энтить на карте — 64 штуки.
  • Вы можете создавать несколько player_keycatcher, которые отслеживают одну и ту же кнопку. Вы можете отслеживать их состояние (кнопка нажата — STATE_ON, кнопка отпущена — STATE_OFF).
  • Таблица соответствия виртуальных кнопок приведена ниже:
    attack Кнопка первичной атаки
    jump Прыжок
    duck Приседание
    forward Движение вперёд
    back Движение назад
    use Активация
    left Поворот влево
    right Поворот вправо
    moveleft Движение влево
    moveright Движение вправо
    attack2 Вторичная атака
    run Бег
    reload Перезарядка
    alt1 Свободная кнопка; назначается самостоятельно при помощи команды bind <нужная кнопка> +alt1
    score Cвободная кнопка (только для ксаш-мода); назначается самостоятельно при помощи команды bind <нужная кнопка> +score
  • Физическое расположение player_keycatcher не имеет значения.
  • Остерегайтесь использовать энтить в мультиплеере, поскольку она будет отслеживать нажатие кнопок всех игроков на сервере.
  • Энтить не будет работать, если игрок заморожен при помощи trigger_playerfreeze или спаунфлага Freeze Player у trigger_camera, поскольку зажатые кнопки обнуляются непосредственно в движке и перехватить это дело нет никакой возможности.