**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). | Остальные поля заполняются подобно [[xashxt:ru:энтити:multi_manager|multi_manager]], где ключ — это имя цели для слежения, а значение — персональное отслеживаемое состояние, либо **0**, если указано общее состояние для слежения (поле **state**). **Особенности использования** ---- * Данный объект является модификацией одноимённого объекта из Spirit of Half-Life, но с расширенными возможностями. Данный объект позволяет реализовать практически любое логическое условие, базирующееся на внутреннем состоянии объектов. Состояния объектов, как уже говорилось, плотно связаны с их назначением. Иными словами, у каждого объекта переход из одного состояние в другое тесно связан с его особенностями. Некоторые объекты всегда выключены, такие как логические, вроде [[xashxt:ru:энтити:trigger_relay|trigger_relay]], [[xashxt:ru:энтити:trigger_auto|trigger_auto]] и прочих. Другие объекты могут иметь состояние IN USE — на тот момент, когда их использует игрок. Лифты имеют состояние ON, когда движутся, и т. д. * Логика работы для тех, кто не знает булевой алгебры: * AND — Для выполнения условия все наблюдаемые объекты должны перейти в состояние, указанное маппером в настройках **multi_watcher**. * OR — Для выполнения условия один или несколько или все наблюдаемые объекты должны перейти в состояние, указанное маппером в настройках **multi_watcher**. * NAND — Инверсия режима AND. Просто меняет местами **target** и **offtarget**. * NOR — Инверсия режима OR. Просто меняет местами **target** и **offtarget**. * XOR — Исключающее «или». Для выполнения условия предполагается, что лишь один из наблюдаемых объектов перешел в необходимое состояние, тогда как другие остались в заведомо «ложном» состоянии. * XNOR — Инверсия режима XOR. * Данная энтить многофункциональна и может использоваться практически везде, начиная от кодовых замков и кончая сложными интерактивными скриптовыми сценами, которые учитывают действия игрока. * Объект удобно использовать в качестве [[xashxt:ru:глобальные_системы_и_общие_настройки:состояния_и_мастера|мастера]].