Опции макросов позволяют вам выбрать набор параметров в зависимости от некоторых критериев. На самом высоком уровне вы устанавливаете наборы критериев/параметров, разделенных точкой с запятой. Точка с запятой рассматривается как 'else' (иначе) или 'else if' (иначе если). Критерий состоит из нуля и больше наборов условий. Каждый набор условий заключается в квадратные скобки. Иллюстрация синтаксиса:
/команда [условия] [ещё условия] параметры; [условия] параметры ... |
Команда работает слева на право. Как только она находит набор условий, который истинен, команда запускается с соответствующими параметрами. Если нет условий, то считается, что всегда истина.
Синтаксис условий
Каждый набор условий – это обычный список через запятые. Условия могут быть написаны в любом порядке, однако [@unit] всегда находится перед всеми условиями. Запятая – это все равно что 'и'. Условие [help, nodead, @focus] означает 'Мой фокус дружественный И не мертвый'.
Замечание: условия очень чувствительны к регистру. Например, если вы напишете [Help] вместо [help], макрос выдаст вам ошибку.
Сами условия состоят из некоторых блоков. Например, вы можете поставить 'no' перед условием, и условие станет противоположным. Заметьте, что [nohelp] не означает то же самое, что и [harm]. [harm] и [help] оба возвращают 'истину', если существует цель, на которую нужно наложить заклинание. Кроме того, существуют цели, которым нельзя помочь и нельзя навредить.
Некоторые условия имеют свой набор параметров. Например, [stance] означает 'в любой стойке' (полезное условие для классов со стойками и формами, кроме воинов, которые всегда находятся в одной из стоек). Однако вы можете обозначить определенные стойки, по которым требуется сделать проверку. Набор параметров начинается с точки с запятой, а каждый параметр отделяется слэшем '/', который означает 'или'. Общая иллюстрация одиночного условия, где всё в угловых скобках '≠' является необязательным:
[<no>condition<:parameter</parameter</parameter<...>>>>] |
Простой пример, который использует * в защитной и боевой стойке, но меняет стойку на защитную, если вы находитесь в стойке
берсерка.
/cast [stance:1/2] Удар щитом; Оборонительная стойка |
Говоря нормальным языком, мы написали 'если мы в стойке 1 или 2, то используем *, иначе переключаемся в защитную стойку'.
Примечание: 'no' на всё условие и все его параметры. [nostance: 1/2] будет означать 'всё, кроме стойки 1 или 2'.
Пустые параметры и условия
Одной из причин ошибок макроса является написание пустого параметра. Часто люди ставят точку с запятой в конце макроса, что приводит к некоторым неожиданным ошибкам. Например:
/petattack [@focus, harm]; |
Проанализируем макрос. Он заставляет вашего питомца атаковать ваш фокус, если ему можно нанеси вред, и не делать ничего в другом случае. Давайте рассмотрим схему данного макроса:
/petattack [@focus, harm] ;
\_______/ \___________/ V V V
| | | | |
команда опции | | параметры (пусто)
| |
| опции (пусто)
|
параметры (empty)
|
Как можно увидеть, не хватает набора опций и параметров. Запомните, что пустой набор опций, будет считаться всегда 'истиной', поэтому если первое условие не пройдет проверку, то пустой параметр будет задействован.
Пустые условия
Иногда вам потребуется произнести заклинание на определенную цель при некоторых условиях, но чтобы эта магия работала как обычно, если эти условия не выполняются. Примером такого случая служит следующий макрос. Он произнесет Вспышку света на юнит под вашей мышкой. Если никого под курсором не оказалось или цель враждебная, макрос просто произнесет Вспышку света на вас, если включена опция каста на себя.
/cast [@mouseover, help] [ ] Вспышка света |
[target=] или [@] против параметров юнита
Некоторым команды используют юнитов к качестве параметров. Например, /target party1 выберет целью первого члена вашей группы. /target [@party1] имеет тот же эффект. Однако в большинстве случаев нам не разрешено устанавливать условия для одного юнита, а действовать уже на другого. Следующий макрос не будет работать, как было задумано:
/target [@focus, dead] party1 |
WoW проигнорирует party1, потому что до этого вы задали юнит с помощью опции @.
Условия
Теперь я вас познакомлю со списком условий и тем, что они значат. Ниже разберу каждый из них подробнее.
Полный список условий
Многие из этих условий могут быть проверены на 'ложь' вместо 'истины'. Например, [nocombat] – это действующее условие, при котором что–то будет происходить только тогда, когда вы не в бою.
Полный список условий:
actionbar:1/…/6 или bar:1/…/6 — определенная панель заклинаний выбрана.
bonusbar:5 — Активна панель управления транспортным средством или другим игроком.
button:1/…/5/<виртуальный клик> или btn:1/…/5/<виртуальный клик> — макрос активирован указанной кнопкой мыши.
channeling:<spell name> — поддерживание указанного заклинания.
combat — в режиме боя.
dead — цель мертва.
equipped:<item type> или worn:<item type> — тип предмета одет (:<item type> может быть ячейкой инвентаря, типом предмета, подтипом предмета).
exists — цель существует.
flyable — в зоне разрешено летать
flying — на маунте/в летающей форме И в воздухе.
group: party/raid — вы находитесь в указанном типе группы.
harm — можно наложить вредное заклинание на цель.
help — можно наложить полезное заклинание на цель.
indoors — в помещении.
modifier:shift/ctrl/alt или mod:shift/ctrl/alt — зажав указанную кнопку.
mounted — на средстве передвижения.
outdoors — на открытом воздухе.
party — цель в вашей группе.
pet:<имя пета или тип> — указанный питомец активен.
raid — цель в вашей группе или рейде.
spec:1/2 — текущий активный спек.
stance:0/1/2/…/n or form:0/…/n — в стойке.
stealth — невидимый.
swimming — плавающий.
unithasvehicleui — цель макроса имеет интерфейс транспортного средства.
vehicleui — ваш персонаж имеет интерфейс транспортного средства.
help и harm
Условие [help] принимает значение 'истина', когда юнит может получить полезный эффект, например исцеляющее заклинание. Условие [harm] принимает значение 'истина', когда цель можно поразить заклинанием с отрицательным эффектом (например, нанести ей урон).
exists
Проверяет существует ли указанный юнит. Другими словами, если у вас нет цели, [exists] возвратит 'ложь'. Если у вас есть фокус, то [@focus, exists] будет 'истина'. В некоторых случаях [exists] необязателен. [help], [harm], [dead], [party], и [raid] подразумевают [exists], если они истинны.
dead
Если у вас есть цель и она мертва, то возвращается 'истина'.
stance:0/1/2/…/n или form:0/1/2/…/n
Стойка – это общий термин, который используется для воинов, друидов, рог, пристов и шаманов. Стойки применимы только в том случае, когда определенная способность может быть использована только в одной из стоек/форм. Поэтому ауры паладина и власти ДК, а также аспекты охотников не рассматриваются, как стойки.
Самая простая форма [stance] означает, что вы в любой из стоек. [stance:1/2/3/…/n], где n – число всех ваших стоек, определяет одну из стоек. [stance:0] эквивалентно [nostance]. Форма – это другое название стойки. Поэтому условие [form:1] будет работать точно также, как и [stance:1].
Стойки обозначенных классов:
Воин: 1 — Боевая стойка, 2 — Оборонительная стойка, 3 — Стойка берсерка.
Друид: 1 — Облик медведя, 2 — Водный облик, 3 — Облик кошки, 4 — Походный облик, 5 — Облик лунного совуха или Перевоплощение: Древо Жизни, 6 — Облик птицы.
Жрец: 1 — Облик Тьмы, 2 — Дух воздаяния.
Разбойник: 1 — Незаметность, 3 — Танец теней.
Шаман: 1 — Призрачный волк
Чернокнижник: 2 — 59672.
Примечание: если не хватает какой–то формы, то все нижние формы поднимутся вверх по номерам. Например, если у приста есть только Дух воздаяния, то это будет стойка 1.
Пример:
/cancelform [noform:1/3]
/cast [form:1/3] Волшебный огонь (облик зверя)(); [noform] Волшебный огонь |
В форме медведя и кошки, макрос произнесет Волшебный огонь (облик зверя). В форме кастера — Волшебный огонь. В любой другой форме, используя этот макрос, вы выйдите из формы.
stealth
Работает точно также как [stance:n] и может быть использовано любым классом, который имеет невидимость.
modifier:shift/ctrl/alt
Кнопки модификаторы – это легкий способ сохранить место на вашей панели заклинаний. Макрос может выполнять несколько функций в зависимости от того, какая клавиша зажата:
/cast [modifier, help] [modifier, @targettarget, help] Быстрое исцеление; [help] [@targettarget] Великое исцеление |
Данный макрос произнесет полезное заклинание, если ваша цель дружественная или на цель вашей цели. Когда вы зажимаете кнопку, он произнесет Быстрое исцеление. В другом случае — Великое исцеление.
channeling:<spell name>
Обычно, если вы поддерживаете заклинание и начинаете кастовать другое, то первое отменяется. Эта опция позволит вам избавиться от данного негативного эффекта.
actionbar:1/…/6
Стандартный интерфейс предоставляет нам несколько страниц панелей заклинаний. Эти страницы существуют только для основной панели, которая находится слева внизу. С помощью данной опции вы сможете переключаться между страницами. Например:
swapactionbar 1 2
/cast [actionbar:1] Дух ястреба; Дух лисицы |
pet:<имя пета или тип>Макрос переключит страницы 1 и 2. Если он включит страницу 1, то произнесется Дух ястреба, а если вторую – то Дух лисицы.
Каждый класс с петами найдёт эту опцию полезной. Она позволяет выбрать вам действие в зависимости от того, какой питомец сейчас активен. [pet] сам по себе означает любого пета. Например, маг может выбирать между заклинаниями Холодом его пета или Кольцом льда:
/cast [pet] Холод; Кольцо льда |
Чтобы узнать тип или имя пета, вы можете написать следующую команду после того, как вызвали своего питомца:
/script print(UnitCreatureFamily("pet")) |
combat
'Истина', если вы в режиме боя.
mounted, swimming, flying, indoors and outdoors
'Истина', если вы на маунте, летите, в помещении, на открытом воздухе.
flyable
'Истина', когда в зоне разрешено летать.
party и raid
'Истина', если цель в вашей группе или рейде, соответственно.
group: party/raid
Зависит от того, в каком типе группы вы находитесь.
Способности с переключением
Команда /cast включает и сразу же выключает некоторые из заклинаний. Примером таких заклинаний могут служить Незаметность, Выстрел, Массовое рассеивание (зеленый круг при касте). Если вы хотите использовать макрос и чтобы он не выключал сразу эти способности, поставьте перед названием заклинания знак восклицания.
/cast !Незаметность
/cast !Массовое рассеивание
/cast !Выстрел |
Использование фокуса
Фокус – это ID юнита, также как и target, player, or raidpet1target. Он позволяет в любой момент обратится к юниту, которого вы назначили. Самое простое использование фокуса – это Назначение клавиш. Существует две горячие клавиши связанные с фокусом – это Запомнить цель и Восстановить цель. Запомнить цель назначит фокусом того, кто в текущий момент является вашей целью. После того, как вы назначили фокус, вы можете использовать его как ID юнита в других командах. Восстановить цель выберет в качестве вашей цели запомненный фокус.
Самая распространенная функция фокуса – это назначение цели контроля (овца, жаба, и т.д.). Маг может выбрать кого овцевать и запомнить эту цель. В любой момент когда потребуется обновить жабу, магу всего лишь нужно будет нажать кнопку макроса:
/cast [@focus] Превращение |
В дополнении к горячим клавишам, существую слэш команды /focus and /clearfocus. Без параметров, /focus назначит вашу цель в качестве фокуса, а /clearfocus очистит ваш фокус. Также вы можете использовать ID юнитов или имена как параметры /focus:
Пользовательские иконки
Если вы хотите использовать свои личные иконки для макросов, вы можете их поместить в папку World of Warcraft\Interface\Icons folder (создайте папку, если её нет). Иконки должны быть в формате BLP или же 24–bit/32–bit alpha несжатые TGA–файлы. Они должны быть квадратными, и разрешение должно быть степенью двойки (до 512 пикселей), например 32х32, 64х64.
Вот и все, надеюсь Вам понравился этот гайд по макросам.
Первоисточник: WoW-Cricle