Что такое опции макросов?

Опции макросов это способ контролировать действия макросов, основываясь на разной информации. Чтобы сразу привести пример, следующий макрос прочитает заклинание Renew на дружественную цель и Shadow Word: Pain на враждебную.

/cast [help] Renew; [harm] Shadow Word: Pain

Во время выполнения этого макроса, проверяется состояние [help]. Оно определяет, является ли ваша цель той, на которую допустимо накладывать дружественные заклинания. Если состояние [help] истинно, дальше выполняется заклинание Renew, и макрос переходит к следующей строке. В противном случае (у вас или нету цели, или вы не можете использовать дружеское заклинание на текущую цель), неудача приводи к обработке следующего условия. Теперь макрос проверяет состояние [harm]. [harm] работает по принципу [help] только для атакующих заклинаний. Если условие истинно, используется Shadow Word: Pain. Если нет – (опять же нет цели, или цели невозможно навредить) больше ничего не выполняется, так как условий больше нет.

Примечание: Можно было убрать проверку на [harm] и макрос работал бы в практически также. Однако, если у вас нет цели или на нее невозможно использовать дружественные или атакующие заклинания, вы получили бы сообщение об ошибке, или, в зависимости от заклинания, курсор выбора цели.

Команды, допускающие опции

Только «безопасные» команды отвечают на опции макросов. Фактически, безопасные команды это та причина, по которой возникли опции. Небезопасные команды, вроде команд для чата, эмоции и так далее, могут выполнятся в скриптах на Lua и командой /run. Говоря больше, Blizzard не хотели путать людей использующих точку с запятой «;» в чате. Если бы команда /say могла использовать опции для макросов, следующий пример вывел бы только «Привет»:

/say Привет; Я нуб

Вот список всех безопасных команд доступных в WoW:
» #show *
» #showtooltip *
» /assist
» /cancelaura
» /cancelform
» /cast
» /castrandom
» /castsequence
» /changeactionbar
» /clearfocus
» /cleartarget
» /click
» /dismount
» /equip +
» /equipslot +
» /focus
» /petagressive
» /petattack
» /petautocastoff
» /petautocaston
» /petautocasttoggle
» /petdefensive
» /petfollow
» /petpassive
» /petstay
» /startattack
» /stopattack
» /stopcasting
» /stopmacro
» /swapactionbar
» /target
» /targetenemy
» /targetexact
» /targetfriend
» /targetlastenemy
» /targetlastfriend
» /targetlasttarget
» /targetparty
» /targetraid
» /use
» /userandom

* #show и #showtooltip технически не безопасные команды, но они оперируют с опциями макросов как /use и /cast.

+ /equip и /equipslot также технически не безопасны, так как их возможности доступны аддонам и макро-скриптам.

Если вы пожелаете использовать опции для макросов с небезопасными командам, есть аддоны которые предоставляют такую возможность. Мой аддон, MacroTalk (http://www.wowinterface.com/downloads/i … oTalk.html), добавляет несколько команд /opt____ для каждой команды чата и общую команду /opt, которая позволяет добавлять опции для прочих небезопасных команд.

[target=unit]

В дополнения к проверке условий, система макро опций предоставляет способ назначать цели для разных действий. К примеру, следующий макрос всегда использует бинты на игрока, независимо от текущей цели (для полного списка ID целей читайте http://www.wowwiki.com/UnitId).

/use [target=player] Heavy Netherweave Bandage

Кроме установки цели для выполняемого действия, опция [target=] также задает цель для проверки условий. Это может звучать несколько непонятно, так что вот пример макроса, совмещающий концепцию двух примеров, использованных мной ранее:

/cast [help] [target=targettarget, help] [target=player] Flash Heal

Сначала он проверяет на срабатывание условия [help]. Если оно истинно, управление передается команде /cast c параметром Flash Heal. Если нет – переходит к следующему условию, [target=targettarget, help]. Здесь происходит та же проверка на дружественность цели, но в этот раз определяется, является ли цель вашей цели дружественной. Если так, выполняется /cast Flash Heal, но целью для команды /cast устанавливается цель вашей цели. Если же нужная цель так и не найдена, макрос перейдет к следующему условию, [target=player]. Так как действительных условий здесь нет, оно всегда будет истинно, что приведет к накладыванию заклинания Flash Heal на самого игрока.

Обзор синтаксиса

С пониманием как работают опции для макросов, может быть ужасная путаница, так что я воспользуюсь ранней возможностью, чтобы разъяснить их общую концепцию. Я буду использовать реальные примеры использующие действенные опции. Все опции будут раскрыты в деталях несколько позже.

Общие опции синтаксиса

Все консольные команды в принципе работают одинаково. У вас есть команда, и набор параметров для нее. Параметры зависят от команды, и некоторые команды используются без них. Вот несколько примеров:
/cast Smite
\___/ \___/
| |
| — параметр
– команда

/petattack
\________/ V
| |
| параметры (пустые)
|
команда

/castsequence reset=target Immolate, Corruption, Curse of Agony, Siphon Life
\___________/ \____________________________________________________________/
| |
command parameters

Опции для макросов позволяют выбирать набор параметров на основе нескольких критериев. На наивысшем уровне, у вас есть набор групп критериев/параметров, разделенных точками с запятыми. Критерии состоят из нулевого или больше количества наборов условий. Каждый набор условий задается внутри квадратных скобок []. Вот иллюстрация общего синтаксиса:

/команда [условия] [еще условия] параметры; [условия] параметры …

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

Синтаксис для условий

Каждый из наборов условий есть простым списком разделенный запятыми. Условия могут задаваться в любом порядке, но [target=] всегда учитывается первым, перед любыми другими условиями. О разделителе «,» (запятая) можно думать как о слове «и». Условие вроде [help, nodead, target=focus] означает «Мой фокус дружественная цель И она не мертва».

Замечание: Условия чувствительны к регистру. Если использовать [Help] вместо [help], макрос выдаст ошибку. Однако, это не относится к параметрам условий (описанных ниже). По-прежнему, обычно лучше писать прописными буквами. Записывайте заклинания и предметы точно так же, как вы видите названия в их подсказках. И в точности следуйте примерам в этом руководстве.

Условия сами по себе строятся из нескольких блоков. Во-первых, как вы могли видеть в примере с «nodead», можно добавить приставку «no» перед условием для получения обратного значения. Заметьте, что [nohelp] не обозначает тоже что и [harm]. [harm] и [help] вернут истинное значение как минимум при наличии цели. По мимо этого, существуют некоторые цели, которым невозможно помочь или навредить (игроки с выключенным ПвП, небоевые питомцы, эскорт-квесты и так далее).

Некоторые из условий также требуют своего собственного набора параметров. Например, [stance] обозначает «Если включена любая стойка» (полезно для всех классов со стойками, кроме воинов так как они всегда находятся в стойке). Но можно указать одну или несколько конкретных стоек для проверки. Набор параметров начинается с двоеточия «:» и каждый параметр отделяется косой чертой «/», которая значит «или». Вот общая иллюстрация синтаксиса для одного условия, а все что в угловых скобках «<>» опционально.

[<no>condition<:parameter</parameter</parameter<...>>>>]

Вот простой пример использования умения Shield Bash в Defensive или Battle стойках, но если активна Berserker стойка – она переключается на Defensive.

/cast [stance:1/2] Shield Bash; Defensive Stance

Примечание: приставка «no» применяется ко всему условию и его параметрам. [nostance:1/2] будет означать «любая из стоек кроме 1 или 2»

Пустые параметры

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

/petattack [target=focus, harm];

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

/petattack [target=focus, harm] ;
\________/ \__________________/ V V V
| | | | |
command options | | parameters (empty)
| |
| options (empty)
|
parameters (empty)

Видите дополнительный пустой набор опций и параметров? Запомните – пустые наборы опций всегда возвращают «истину», так что второй пустой параметр передается /petattack если первое условие не было истинно.

Пустые условия

Иногда нужна команда использующая умения при нужных условиях на определенную цель, но ведущая себя как обычно, если условия не истинны. В этом случае вы пожелаете использовать пустой набор условий, который всегда возвращает истину. Этот макрос прочитает Flash of Light на цель под курсором вашей мыши. Если цель под мышью враждебна или ее просто нет, макрос поведет себя как обычная команда /cast Flash of Light и выполнит заклинание на вашу цель, учитывая опции по авто-использованию умений на себя в настройках интерфейса.

/cast [target=mouseover, help] [ ] Flash of Light

[target=] с параметрами единицы

Некоторые команды разрешают использовать напрямую ID целей как свои параметры. Например, /target party1 использует целью первого человека в вашей партии. Команда /target [target=party1] более понятна, но ведет себя абсолютно так же. В то же время, разработчики в множестве случаев не дают использовать ID целей для проверки условий напрямую, по этому приходится использовать один или другой способ в зависимости от ситуации. К примеру, такой макрос не будет работать как надо:

/target [target=focus, dead] party1

WoW проигнорирует параметр party1, так как мы уже установили цель с помощью [target=]. Есть правда особые исключения из этого правила. Пару команд имеют «ключевые цели» в качестве основных для этих команд. Если вы используете некую цель в [target=], WoW разрешит задать еще одну, либо выберет цель по умолчанию, если ничего не задано. Этот нюанс требует конкретного примера:

/focus [target=focus, dead] [target=focus, noharm] target

Здесь «ключевая цель» это фокус. Так как используется [target=focus], WoW передаст цель команде /focus. Можно убрать «target» в конце, так как команда /focus берет по умолчанию вашу текущую цель. Ниже приведен список всех команд с их ключевыми целями и целями по умолчанию, если такие есть. Повторим еще раз, для ясности – ключевая цель это такая цель, которую можно использовать в [target=] и она позволит вам передать команде еще одну другую цель. Цель по умолчанию – эта такая цель, которая будет передана команде если цели не задано.Команда Ключевая цель Цель по умолчанию
/target target
/focus focus target
/startattack target target
/petattack pettarget target

1.5. Условные переходы

Теперь рассмотрим полный список условий, и что они означают. Каждое из условий в свою очередь будет рассмотрено более подробно далее в руководстве.

1.5.1. Полный список условий

Вот полный список условий доступных в системе макросов. Патч 2.0 поставил цель убрать из игры все старые «умные макросы», которые позволяли людям играть спамя одну кнопку. Но некоторые из задач, решаемых за счет макросов получили статус ОК и благословение Blizzard в качестве опций для макросов.

Если вы не находите в списке какое-либо условие, значит, не существует способов проверять его и выполнять нужные действия в бою. Это не обсуждается, но ситуация может изменится в будущем. Сокращенная запись указана в скобках.
» help - Может накладывать дружественные заклинания на цель
» harm - Может накладывать враждебные заклинания на цель
» exists - Цель существует
» dead - Цель мертва
» stance (form) - Находиться в стойке (форме)
» stealth – Скрыт
» modifier (mod) - Удерживается заданная кнопка
» button (btn) - Макрос активирован с заданной кнопкой мыши
» equipped (worn) - Одет нужный тип предмета (это может быть ячейка инвентаря, тип или подтип предмета)
» channeling - Заданное закливание передается (чэннелинг)
» actionbar (bar) - Выбрана заданная страница панели действий
» bonusbar - Заданная дополнительная панель активна
» pet – Указанный питомец доступен
» combat – В бою
» mounted - Верхом
» swimming – В воде
» flying – Верхом на летающем маунте
» flyable – В зоне, где разрешены летающие маунты
» indoors – В помещении
» outdoors – Вне помещения
» party – Цель является членом вашей партии
» raid – Цель является членом вашей партии или рейда
» group – Вы входите в указанную группу

help и harm

Эти две опции мы уже рассмотрели довольно подробно. Мне нечего добавить больше, но ради полноты этот раздел останется здесь.

exists

Определяет существует ли заданная цель. Другими словами, если у вас нету цели, [exists] вернет ложь. Если у вас задан фокус, [target=focus, exists] вернет истину. Заметьте, что в некоторых случаях можно обойтись без [exists]. [help], [harm], [dead], [party], и [raid] все включают [exists] если они истинны.

dead

Если у вас есть цель, и она мертва, эта опция вернет истину.

stance:0/1/2/…/n (form)

Стойка - это термин широко используемый воинами, друидам, рогами (стелз), пристами (шадоуформа) и шаманами (призрачный волк). Стойки применяются только в тех ситуациях, когда определенные умения могут быть использованы в каких-либо формах. Именно по этому, ауры паладином (хоть они и находятся на панели форм) и аспекты охотников НЕ ЯВЛЯЮТСЯ стойками.

В простейшем случае, [stance], как упоминалось ранее, означает что вы находитесь в любой из стоек/форм. Это эквивалент [stance:1/2/3/.../n] где n это номер стойки. [stance:0] здесь то же что и [nostance], и возможно использовать условия вроде [stance:0/3], чтобы проверить находитесь ли вы в стойке 3 или вообще без стоек.

Стойки сами по себе имеют такие же порядковые номера, как их положение на панели стоек/форм. К примеру, формы друида начиная с Медведя, Аква-формы, Кота и формы для путешествий будет иметь номера стоек с 1 по 4. Чтобы вам было легче со всем этим, вот простая таблица с номерами: Warrior Druid Priest Rogue Shaman
Стойка 1 Battle Bear Shadowform Stealth Ghostwolf
Стойка 2 Defensive Aquatic   
Стойка 3 Berserker Cat   
Стойка 4    Travel   
Стойка 5    MK/ToL   
Стойка 6    Flight   

Примечание: если у друида отсутствует нужная форма, все более высокие числа сдвигаются в таблице вверх.

Примеры:

/cast [stance:1] Overpower; Battle Stance

Этот макрос – автоматизация Overpower в два щелчка мышкой. Если вы в неправильной стойке, первый клик переведет вас в нее. Когда вы перейдете в Battle Stance, использования макроса выполнит Overpower.

/cancelform [noform:0/1/3]
/cast [form:1/3] Faerie Fire (Feral)(); Faerie Fire

В формах медведя или кота, этот макрос использует заклинание Faerie Fire (Feral), в форме для заклинаний – просто Faerie Fire. Во всех остальных формах, макрос переведет вас в заклинательную форму и наложит Faerie Fire.

stealth

Как может показаться рогам среди читателей, что поскольку у рог нет других стоек, эта опция работает идентично к [stance], [stealth] также применимо к расовому умению ночных эльфов Shadowmeld, Invisibility у магов и так далее.

modifier:shift/ctrl/alt (mod)

Клавиши-модификаторы хороший способ сберечь место на панелях действий, а также путь к принятию определенных решений. Скажем вы хотите включить в макрос чтобы при обычном использовании он выполнял одно заклинание, а при зажатой кнопке-модификаторе – другое:

/cast [modifier, help] [modifier, target=targettarget, help] Flash Heal; [help] [target=targettarget] Greater Heal

Этот макрос наложит дружественное заклинание на вашу цель, если это друг, а в противном случае – на цель вашей цели. Если же вы будете удерживать любую из кнопок-модификаторов, он выполнит Flash Heal, иначе - Greater Heal.

Конечно, кнопку-модификатор можно задать конкретно, например [modifier:shift/ctrl] означает «shift или control». Если хотите указать, что необходимы 2 модификатора одновременно: [modifier:shift, modifier:ctrl].

Будьте осторожны с установкой кнопок в ваших макросах. Если вы свяжите кнопку А с макросом, имеющим в себе, к примеру, модификатор [modifier:shift], а потом окажется, что существует клавиатурная комбинация shift-A, связанная с чем-либо еще - макрос не выполнится, так как клавиатурные комбинации имеют больший приоритет.

Переменные modifier

В то время как клавиатурными модификаторами могут быть только shift, ctrl или alt, существует также набор системных переменных, которые также можно использовать в качестве модификаторов условий. Скажем, переменная SELFCAST означает «если включен модификатор на автоматическое использование заклинаний на себя». По умолчанию, это alt (удерживание клавиши alt, во время использования заклинаний приведет к попытке наложить их на себя), хотя некоторые из аддонов дают возможность изменить это. Если сделать макрос вида:

/cast [modifier:SELFCAST, target=player] [target=mouseover] [ ] Greater Heal

Он будет работать как нужно, независимо от клавиши, установленной в качестве «использование-на-себя». Некоторые другие из переменных и их условия по умолчанию (с заметно меньшими возможностями применения) такие:
» AUTOLOOTTOGGLE (shift) – авто-сбор предметов
» STICKYCAMERA (ctrl) – статичная камера
» SPLITSTACK (shift) – разделение стопок
» PICKUPACTION (shift) – действие для подбора предметов
» COMPAREITEMS (shift) – сравнение предметов
» OPENALLBAGS (shift) – открытие всех сумок
» QUESTWATCHTOGGLE (shift) – слежение за квестами

button:1/2/…/5/<virtual click> (btn)

Похожим на условие [modifier]образом, опция [button] позволяет вашему макросу отвечать напрямую, в зависимости от того какая кнопка мыши использована для активирования макроса. Номера кнопок с 1 по 5 соответствуют левой, правой или средней кнопкам, и кнопкам 4 и 5 (если такие есть на вашей мышке). Если ваш макрос активируется по нажатию клавиатурной комбинации, условие [button:1] будет всегда истинно.

#show Swift Green Mechanostrider
/userandom [nobutton:2, flyable, nomounted] Ebon Gryphon; [nomounted] Black Battlestrider, Swift Green Mechanostrider
/dismount [noflying] [button:2]

Поведение макроса когда вы не верхом: левый щелчок выберет Ebon Gryphon если это возможно (проверка flyable), в противном случае макрос выберет в качестве маунта либо Black Battlestrider, либо Swift Green Mechanostrider. Щелчок правой кнопкой по макросу всегда приведет к выбору одного из механических цыплят.

Поведение максроса, если вы верхом: левый щелчок приведет к спешиванию, если мы только не в полете. Правый щелчок – всегда приводит к спешиванию.

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

equipped:<тип предмета> (worn)

[equipped] позволяет определять надет ли заданный тип предмета. Типом предмета может быть номер ячейки инвентаря, и собственно, тип или подтип предмета. За подробностями к списку типов обращайтесь на http://www.wowwiki.com/ItemType и http://www.wowwiki.com/API_TYPE_InventorySlotName. Вот пример макроса, который я использую для выбора Shield Bash или Pummel в зависимости, от того что на мне одето:

#show [equipped:Shields] Shield Bash; Pummel
/cast [equipped:Shields,stance:1/2] Shield Bash; [equipped:Shields] Defensive Stance; [stance:3] Pummel;Berserker Stance

Строка #show используется для отображения иконки Shield Bash либо Pummel. Без нее, будет показано заклинание стойки, когда это возможно. Вот псевдо-код, как расшифровка того, что делает вторая строка макроса:

Если щит одет и я либо в Battle или Defensive стойке, тогда
/cast Shield Bash

в противном случае, если щит одет
/cast Defensive Stance

в противном случае, если я в Berserker стойке, тогда
/cast Pummel

иначе
/cast Berserker Stance

Вот другой макрос, который придает Overpower мощности:

/equip [noequipped:Two-Handed Axes] Crystalforged War Axe
/cast [nostance:1] Battle Stance; [equipped:Two-Handed Axes] Overpower

channeling:<имя заклинания>

Обычно, если вы вливаете заклинание (т.е. выполняете чэннелинг) и начинаете накладывать другое, оно прервет процесс вливания. Эта опция позволяет избежать таких случаев, имея кроме того еще пару применений. К примеру, мы хотели бы прервать в таких случаях заданное заклинание, но не прерывать другие. [channeling] без параметров отвечает любому заклинанию, но можно также и использовать произвольный список имен заклинаний для проверки.

Примечание: вливание (чэннелинг) это НЕ ТО ЖЕ САМОЕ что обычно чтение заклинаний. Использование [channeling] применимо только к заклинаниям типа Arcane Missiles, Drain Life, Mind Flay и так далее, когда после начала чтения, заклинание проявляет своей эффект с течением времени.

actionbar:1/…/6 (bar)

Интерфейс по умолчанию предоставляет некоторое число страниц для панели действий. Эти страница применимы только к нежней левой панели действия, видимой в интерфейсе по умолчанию. К счастью, можно наделать макросов, которые соответствуют разным страницам панели действий, и разместить их на других панелях. Один из примером, позволяет охотникам эмулировать стойки с помощью аспектов:

/swapactionbar 1 2
/cast [actionbar:1] Aspect of the Hawk; Aspect of the Monkey

Этот макрос переключается между панелями действий 1 и 2. Когда он переключает панель на номер 1, он использует Aspect of the Hawk, когда на номер 2 – использует Aspect of the Monkey.

bonusbar:1/…/5

Любой из классов, чьи панели действий основаны на определенных условиях (стойки, режим скрытности, владение и так далее) используют дополнительную, «бонусную панель». Так задается и диапазон ячеек действий, которые заменяют страницу 1 основной панели действий. Например, когда прист контролирует ум какой либо цели, их панель действий использует «бонусную» панель №5. Значит, можно сделать следующий макрос переключений:

/cast [nobonusbar:5] Mind Control
/cancelaura Mind Control

Для детального описания по классам и их бонусным панелям, читайте http://www.wowwiki.com/API_GetBonusBarOffset.

pet:<имя или тип питомца>

Все классы с питомцами должны оценить полезность этой опции. Она позволяет выбирать нужное действие в зависимости от активного питомца. Можно указывать имя питомца или его тип (Voidwalker, Boar, Imp, Wolf и т.д.). Само по себе [pet] означает любого из питомцев. Вот пример макроса, позволяющий магам выбирать между заклинанием Freeze у элементаля и своим собственным заклинанием Frost Nova:

/cast [pet] Freeze; Frost Nova

combat
Истинно, если вы в бою.

mounted, swimming, flying, indoors & outdoors

Само собой понятные опции (верхом, плывет, летит, в помещении и вне помещения). Они применимы только к вам, игроку.

flyable

Как было коротко сказано выше, [flyable] определяет, находитесь ли вы с Outland, где разрешены летающие маунты.

party & raid

Возвращает истину, если цель в вашей партии или рейде.

group:party/raid

Эта опция позволяет определять, в каком типе группы вы состоите. [group] эквивалентно [group:party]. [group:raid] включает в себя [group:party]. Это может быть полезно для классов с баффами:

/cast [group, nomodifier] Arcane Brilliance; [help] [target=player] Arcane Intellect

Если вы в группе, в общем случае макрос наложит Arcane Brilliance. Если вы удерживаете кнопку-модификатор или вы вне партии, макрос прочтет Arcane Intellect на дружественную цель или на вас самих.

Приложения для опций макросов

Многие из команд, с которыми мы знакомились в Части 1, не очень-то полезны сами по себе, пока мы не используете с ними опции. Мы уже видели пару простых примером их использования, но все еще есть необходимость рассказать об этм более подробно. Следующие разделы свяжут все потерянные концы и, я надеюсь, вдохновят вас на собственные изыскания.

Использование фокуса

Фокус - это ID цели как и target, player или raidpet1target (подробности читайте на http://www.wowwiki.com/UnitId). Он разрешает вам обращаться к тому монстру, игроку, или НПЦ, который вы укажете. Простейшим применением фокуса является использование его с клавиатурными комбинациями. В меню клавиатурных комбинаций есть две фокусо-зависимых функции: Focus Target и Target Focus. Focus Target устанавливает ваш фокус на вашу текущую цель (он также сбрасывает фокус, если у вас нету цели). Когда цель-фокус установлена, можно использовать ID цели для всех прочих команд. Target Focus, как можно догадаться - использует как цель, ваш текущий фокус. Однако такая привязка не использует все преимущества фокуса. Чтобы выжать максимум из фокуса, нужно использовать макросы с опциями.

Один из частых случаев использование – назначение цели для крауд-контроля. Маг может выбрать монстра для превращения в овцу, в качестве своего фокуса. Далее он сможет вернуться к цели для вливания повреждений и активировать следующий макрос, когда нужно переналожить превращение в овцу.

/cast [target=focus] Polymorph

Или лекарь может установить в качестве фокуса основного танка рейда. С аддоном вроде FocusFrame (http://wow.curse.com/downloads/details/5681/), он будет иметь отдельную панельку для облегченного лечения танка.

К дополнению к клавиатурным комбинациям, существуют консольные команды /focus и /clearfocus. Без параметров, /focus работает также как и клавиатурная комбинация, назначая текущую цель вашим фокусом. Можно также задать любой из корректных ID целей или имя в качестве параметра для /focus:

/focus party3target

А вот пример более продвинутого «фокусирования»:

/focus [target=focus, noharm] [target=focus, dead] [modifier]
/stopmacro [target=focus, noexists]
/cast [target=focus] Polymorph

Первая строка устанавливает фокусом вашу текущую цель (или сбрасывает фокус, если цели нет), в зависимости от одной из ситуаций:
» У вас нет враждебного фокуса (если на деле он дружественен или не существует)
» Ваш фокус мертв
» Вы зажали кнопку-модификатор (в случае если вы хотите сменить фокус, имея уже установленный)

Вторая строка макроса, не выполняется если у вас нету фокуса. И, наконец, макрос накладывает заклинание Polymorph на ваш фокус. Это дает вам одно-кнопочное решение для крауд-контроля фокуса. Заметьте, мы могли бы использовать условие [exists] в команде /cast, вместо того чтобы разделять его командой /stopmacro. Но, /stopmacro дают дополнительную гибкость, останавливая прочие команды, которые мы могли бы добавить, вроде вывода предупреждений посредством /p.
Можно и менять вашу цель и фокус, давая эффект двух целей, между которыми вы переключаетесь:

/cleartarget [target=target, dead]
/clearfocus [target=focus, dead]
/target focus
/cleartarget [target=focus, noexists]
/targetlasttarget
/focus target
/targetlasttarget

Первые две строки очищают цель и/или фокус, если они мертвы (если же вы действительно хотите отслеживать смерть множественных целей, чтобы, к примеру, воскрешать или забирать предметы с них, то нужно удалить эти строки). Четвертая строка нужна так как /target focus не сбрасывает цель, если у вас нет установленного фокуса (без неё, пятая строка выберет вашу предыдущую цель).

Разветвления макросов используя /click

Скажем, нам нужна кнопка, которая выбирает между тремя заклинаниями, основанных на модификаторах shift, ctrl или без модификатора, а также при двух разных целях, в зависимости был выполнен левый или правый щелчок мышью. Все это можно сделать в макросе такого вида:

/cast [modifier:shift, button:1, target=party1] [modifier:shift, button:2, target=player] Greater Heal; [modifier:ctrl, button:1, target=party1] [modifier:ctrl, button:2, target=player] Flash Heal; [nomodifier, button:1, target=party1] [nomodifier, button:2, target=player] Renew

Такой вот громоздкий скрипт вышел (по факту, он больше ограничения в 255 символов). Его можно разделить на несколько строк для ясности и убрать избыточность, чтобы сэкономить место. Но даже тогда, он будет довольно зверским:

/cast [modifier:shift, button:1, target=party1] [modifier:shift, target=player] Greater Heal
/cast [modifier:ctrl, button:1, target=party1] [modifier:ctrl, target=player] Flash Heal
/cast [button:1, target=party1] [target=player] Renew

Но если использовать главный макрос для выбора цели, в зависимости от нажатой кнопки мыши и двух макросов, выбирающих заклинания по кнопкам-модификаторам, мы можем упростить понимание макроса. Ради нужд этих примеров, макросы 2 и 3 находятся на MultiBarLeftButton2 и MultiBarLeftButton3, соответственно.

Макрос 1:
/click [button:1] MultiBarLeftButton2; MultiBarLeftButton3

Макрос 2:
/cast [modifier:shift, target=party1] Greater Heal; [modifier:ctrl, target=party1] Flash Heal; [target=party1] Renew

Макрос 3:
/cast [modifier:shift, target=player] Greater Heal; [modifier:ctrl, target=player] Flash Heal; [target=player] Renew

Оффтопик: в моей теме с пожеланиями (http://forums.worldofwarcraft.com/threa … =101150523) проскакивал запрос на команду, позволяющую задать target= для всех опций макросов. Макросы 2 и 3 вышли бы куда проще, если бы такое было возможно. Фактически, в зависимости от конкретной реализации, можно обойтись без облегчающей понимание /click. Может, что-то в духе:

#target [button:1] party1; player
/cast [modifier:shift] Greater Heal; [modifier:ctrl] Flash Heal; Renew

Вы можете также сделать что-либо похожее используя /target вместо гипотетического #target и завершить макрос командой /targetlasttarget, но это лишает всякого смысла использование [target=], о котором упоминается выше.

Пользовательские иконки

Если вы хотите использовать пользовательские иконки для ваших макросов, для этого необходимо поместить их в папку World of Warcraft\Interface\Icons (предварительно создав ее, если такой нет). Файлы должны следовать таким же требованиям, как и текстуры для интерфейса. А именно, быть либо в BLP формате или 24 битными/24 битными + альфа-канал TGA файлами. Размер их должен быть кратен 2-м вплоть до 512 (т.е. 32х32, 512х128). Замечание: любые не квадратные изображения будут выглядеть искаженными на панели действий.

Содержание макросов на разных компьютерах

До тех пор, пока Blizzard раздумывает над хранением макросов на серверах, необходимо копировать содержимое папки World of Warcraft\WTF\Account\Имя_аккаунта между компьютерами. Это также предохранит все ваши настройки для установленных аддонов, но каждый из аддонов должен быть установлен на каждый из компьютеров.

Если же вы хотите переносить одни лишь макросы, нужно копировать World of Warcraft\WTF\Account\Имя_аккаунта\macros-cache.txt для общих макросов, и World of Warcraft\WTF\Account\Имя_аккаунта\Ваше_Имя\Имя_вашего_персонажа\macros-cache.txt для макросов конкретного персонажа.