> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wing.cat/llms.txt
> Use this file to discover all available pages before exploring further.

# Логика и условия

> Как в макросах Vzmax устроены проверки, логические ветки, переключение модулей и вызов других макросов.

## Переключить модуль (`Enable Module`)

Позволяет включить, выключить или переключить другой модуль клиента. Это действие для сценариев, где макрос должен управлять не только предметами, но и состоянием самого клиента.
Банально это включить Aura после дебаффа, или наоборот выключить перед использованием зелья.

## Условие (`If Condition`)

Это главный логический блок в редакторе. Он проверяет состояние игрока, инвентаря или рук и только потом
запускает вложенные действия. Благодаря этому через условия удобно собирать нормальные пользовательские ветки
вроде "если предмет уже в хотбаре, используй сразу, иначе сначала переложи".

Если описывать его через UI, это именно Scratch-блок с вложенной секцией. Сам блок отвечает за проверку,
а внутрь него ты добавляешь дочерние блоки, которые должны отработать только при совпадении условия.

Поддерживаемые проверки:

| Проверка              | Что делает                         |
| --------------------- | ---------------------------------- |
| `hp`                  | смотрит здоровье игрока            |
| `on_ground`           | проверяет, стоит ли игрок на земле |
| `fall_distance_gte`   | проверяет дистанцию падения        |
| `has_item`            | ищет предмет в инвентаре           |
| `has_item_hotbar`     | ищет предмет именно в хотбаре      |
| `player_in_range_lte` | проверяет, есть ли игрок рядом     |
| `held_item_is`        | смотрит предмет в основной руке    |
| `offhand_item_is`     | смотрит предмет во второй руке     |

## Выполнить другой макрос (`ExecuteMacrosMA`)

Позволяет вызвать уже существующий макрос по имени. Это хороший способ переиспользовать удачный короткий
сценарий внутри другого, вместо того чтобы копировать один и тот же набор шагов по нескольким макросам.

<Tip>
  **Главная мысль**

  Если макрос зависит от предмета, цели или состояния игрока, почти всегда лучше начинать его с `IfConditionMA`,
  а не сразу с полезного действия.
</Tip>
