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.
- Данная энтить многофункциональна и может использоваться практически везде, начиная от кодовых замков и кончая сложными интерактивными скриптовыми сценами, которые учитывают действия игрока.
- Объект удобно использовать в качестве мастера.