multi_watcher

XashXT

multi_watcher

Энтить для реализации логического условия «if-else». Срабатывает, если определенные энтити находятся в заранее оговорённых состояниях.

Настройки

logic Логика работы (AND, OR, NAND, NOR, XOR, XNOR). Слова в скобках следует прописывать прямо в поле logic.
state Общее состояние всех энтить, за которым должен следить multi_watcher. Оставьте пустым, чтобы прописать индивидуальные состояния всем объектам. Допустимые состояния: ON, OFF, TURN ON, TURN OFF, IN USE, DEAD. Эти слова следует прописывать прямо в поле state либо напротив каждого имени цели для наблюдения.
target Цель активируется, когда все условия соблюдены.
offtarget Цель активируется, когда multi_watcher переходит из состояния ON (valid) в состояние OFF (invalid).

Остальные поля заполняются подобно multi_manager, где ключ — это имя цели для слежения, а значение — персональное отслеживаемое состояние, либо 0, если указано общее состояние для слежения (поле state).

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

  • Данный объект является модификацией одноимённого объекта из Spirit of Half-Life, но с расширенными возможностями. Данный объект позволяет реализовать практически любое логическое условие, базирующееся на внутреннем состоянии объектов. Состояния объектов, как уже говорилось, плотно связаны с их назначением. Иными словами, у каждого объекта переход из одного состояние в другое тесно связан с его особенностями. Некоторые объекты всегда выключены, такие как логические, вроде trigger_relay, trigger_auto и прочих. Другие объекты могут иметь состояние IN USE — на тот момент, когда их использует игрок. Лифты имеют состояние ON, когда движутся, и т. д.
  • Логика работы для тех, кто не знает булевой алгебры:
    • AND — Для выполнения условия все наблюдаемые объекты должны перейти в состояние, указанное маппером в настройках multi_watcher.
    • OR — Для выполнения условия один или несколько или все наблюдаемые объекты должны перейти в состояние, указанное маппером в настройках multi_watcher.
    • NAND — Инверсия режима AND. Просто меняет местами target и offtarget.
    • NOR — Инверсия режима OR. Просто меняет местами target и offtarget.
    • XOR — Исключающее «или». Для выполнения условия предполагается, что лишь один из наблюдаемых объектов перешел в необходимое состояние, тогда как другие остались в заведомо «ложном» состоянии.
    • XNOR — Инверсия режима XOR.
  • Данная энтить многофункциональна и может использоваться практически везде, начиная от кодовых замков и кончая сложными интерактивными скриптовыми сценами, которые учитывают действия игрока.
  • Объект удобно использовать в качестве мастера.