Предисловие
В этой статье будет подробно рассказано о том, как создавать макросы. Макрос – это список слеш-команд. Со списком слеш-команд можно ознакомиться в статье на нашем сайте: Slash-команды в World of Warcraft: полный список. Вы также можете ознакомиться с полезной статьей по званиям: Звания в World of Warcraft.
Пример простейших слеш-команд:
- /say (/s)
- /whisper (/w, /talk, /t)
- /reply (/r)
- /emote (/e, /em, /me)
- /dance
С помощью макросов эти команды можно назначить на клавиши и применять одновременно. Каждая уникальная команда должна идти с новой строки, и быть написана так, как если бы ее писали в окно чата. Например, вот команда, которая выведет в чат крик с текстом: «Танцуют все!» и запустит команду танца (/dance) для персонажа:
/y Танцуют все! /dance
Важно отметить, что в некоторых макросах код исполняется «одновременно», строка за строкой. Это означает, что, когда игрок запускает такой макрос, внутри макроса будут выполнены все команды от начала и до конца, до того, как контроль над игрой снова вернется к игроку.
Следовательно, если игрок создаст макрос, который будет исполняться долгое время (например, что-то вроде: «/run for i=1, 100000000 do end»), игра «зависнет» до тех пор, пока макрос не выполнится.
Если игрок не против таких фризов, вот небольшой лайфхак:
/script debugprofilestart();while debugprofilestop() < wait_time do end;
Где wait_time – это время ожидания в миллисекундах (1/1000 секунды). Можно использовать с множеством строк с /cast командами, главное выставить правильное время кулдаунов.
С помощью макросов можно вызвать каст необходимой способности, вызвать маунта, выбрать оружие и т.д. Важно помнить, что название предметов/заклинаний нужно прописывать, исходя из языка клиента игрока.
Например, для клиента на русском языке будет работать макрос:
/cast Слово Тьмы: Боль
Тогда как в английском клиенте нужно прописать:
/cast Shadow Word: Pain
Оглавление
Использование предметов и тринкетов
Выполнение множества действий одним кликом
Выбор иконки и поведения для «?» с помощью #show
Последовательность предметов/заклинаний (очереди)
[@unit] (ранее известное как [target=unit])
[target=] или [@] против unit параметров
button:1/2/.../5/(виртуальный клик)
Использование фокуса («Запомнить цель»)
Упрощение и ветвление макросов с помощью /click
Создание макроса
Для начала, нужно открыть окно макросов, прописав:
/macro или /m – в окне чата.
До макросов можно также добраться через меню (Esc -> Макросы).
В окне макросов есть две вкладки: «Общие макросы» и «Макросы %имя_персонажа%».
Общие макросы доступны всем персонажам игрока на аккаунте, тогда как «Макросы %имя_персонажа%» доступны только конкретному персонажу.
Чтобы создать макрос, нужно нажать на кнопку «Создать». Выскочит еще одно окно, где надо ввести произвольное название макроса и выбрать иконку (по желанию). Если выбрать первый из списка значок (знак вопроса «?»), то WoW автоматически подберет наиболее подходящую иконку, основываясь на тексте макроса.
После того, как выбраны иконка и название, нужно нажать «OK».
Игрок может управлять тем, что будет отображаться вместо иконки «?» с помощью команды #show .
И хотя допускается называть макросы одинаково, не следует этого делать, поскольку это может вызвать проблемы с некоторыми аддонами, которые и будут использовать эти макросы.
Макрос вмещает в себя 255 символов. Ходят слухи, что это вызвано тем, что макросы с некоторых пор хранятся на серверах Blizzard.
После создания макроса, прописав его тело, нужно просто перетащить его на панель и запускать как обычный скилл.
Каст заклинаний
/cast Слово Тьмы: Боль
Этот макрос применит к цели наивысший ранг данного заклинания (Слово Тьмы: Боль). Можно немного модифицировать макрос, добавив строку:
/cast Слово Тьмы: Боль /y Страдай %t!
После каста заклинания персонаж игрока крикнет «Страдай %t!», где вместо %t будет подставлено название цели.
Использование предметов и тринкетов
/use Осознанный кошмар
Данная команда вызовет маунта «Осознанный кошмар».
Примечание: нет необходимости вводить название предметов вручную. Можно вставить их название, использую shift+клик.
Использование ячеек инвентаря
/use 7
Данная команда вызовет использование надетого верхнего аксессуара.
Можно также использовать любую ячейку в инвентаре персонажа.
Если открыто окно банка:
От 40 по 67 = 28 банковских ячеек
От 68 по 74 = банковские сумки (слева направо)
/use <сумка> <ячейка>
Сумки нумеруются справа налево, от нуля до 4.
Внутри сумки нумерация идет от верхнего левого угла, до правого нижнего, от 1 до n, как при чтении.
Например, чтобы выпить напиток ("Особое Новолунное"), который лежит во второй сумке, в ячейке номер 16:
/use 1 16
/use и /cast очень похожи. /use – это, технически, правый клик мышкой по предмету. Если попробовать сделать /use на аксессуаре, то аксессуар будет надет на персонажа, если еще не надет. Если попытаться сделать /cast на аксессуаре, который не надет, то выйдет ошибка о том, что предмет следует сперва надеть.
Выполнение множества действий одним кликом
В WoW стоит ограничение на возможность одновременного использования заклинаний, так называемый глобальный кулдаун (Global Cooldown, GCD).
Некоторые заклинания можно применять в связке одновременно, например:
/cast Слово Тьмы: Боль /cast Уход в тень
Т.к. «Уход в тень» не вызывает глобальный кулдаун.
А вот такая связка уже работать, увы, не будет:
/cast Слово Тьмы: Боль /cast Рассеивание заклинаний
Т.к. эти заклинания имеют общий глобальный кулдаун.
Для использования нескольких заклинания поочередно, используют /castsequence. Данная команда будет разобрана в данной статье ниже.
Выбор цели (таргета)
/target или /tar
Данная команда весьма полезна т.к. может взять в таргет ближайшего противника/союзника, основываясь на имени.
/target Тренировочный манекен /cast Слово Тьмы: Боль
Есть пара моментов, которые следует знать перед использованием данной команды. Обычная команда «/target ПаладинНомерОдин» без модификаторов (о них ниже), возьмет в таргет ближайшую цель под именем ПаладинНомерОдин (даже если тот мертв). Если таковой цели рядом нет, /target попытается найти поблизости цель с похожим названием/ником. Т.е. ник ПаладинУбиваюВсехОдин так же может попасть под выборку данной команды. Плюс это или минус, зависит от ситуации. Чтобы использовать точный поиск, следует использовать команду /targetexact
Список UnitId:
Можно добавить суффикс ‘target’ к любой цели, например: ‘partypet2target’. В итоге игрок получите таргет своего таргета. Это можно повторять множество раз (playertargettarget), но если переборщить с длиной, то возможны фризы, т.к. игровой движок будет пытаться перескочить от цели к цели.
Если используется имя члена группы/рейда, игроку необходимо использовать тире в качестве разделителя: Ясовух-target-target
Прочие команды выбора цели
/assist
Выбор цели цели. Например, если игрок выбрал кого-то, и этот кто-то выбрал персонажа Тыковка, то /assist выберет Тыковку.
Можно также указать имя/targetID для ассиста:
/assist Тыковка
/cleartarget
Очищает таргет.
/targetexact
Выбрать цель со строгим соответствием в написании. Если имя цели указано не верно, или цели нет поблизости, таргет не изменится.
/targetlasttarget, /targetlastfriend, /targetlastenemy
/targetenemy – аналог нажатия TAB, /targetfriend – аналог нажатия CTRL-TAB. Можно добавить параметр 1 чтобы задать переключение целей в обратном порядке (/targetenemy 1 – аналог нажатия SHIFT-TAB).
В макросах эти команды можно использовать только единоразово:
/targetenemy
/targetenemy 1
/targetenemyplayer, /targetfriendplayer
Удобные для PvP команды, т.к. они фильтруют цели, игнорируя NPC, мобов, питомцев, миньонов и т.п. Как и /targetenemy, /targetfriend можно использовать с параметром 1:
/targetenemyplayer
/targetenemyplayer 1
/targetfriendplayer
/targetfriendplayer 1
/targetparty, /targetraid
Выбрать ближайшего члена группы/рейда. Можно использовать с параметром 1:
/targetparty
/targetparty 1
/targetraid
/targetraid 1
Команды для питомцев
/petattack
Отдает питомцу игрока команду атаковать. Можно использовать с UnitID или названием таргета.
/petfollow
Команда: следовать. Прерывает атаку питомца при необходимости.
/petstay
Приказ питомцу остаться на текущей позиции.
/petmoveto
Приказ питомцу остаться в конкретной локации.
/petpassive, /petdefensive, /petassist
Выбор модели поведения питомца (пассивная, защита, помощь в атаке).
/petautocaston, /petautocastoff, /petautocasttoggle
Включение/отключение автокаста способности питомца:
/petautocaston Мучение /petautocastoff Жертвоприношение
/petautocasttoggle переключает на противоположное состояние. Т.е., если автокаст включен, он его выключает и наоборот.
/petautocasttoggle Мучение
Выбор иконки и поведения для «?» с помощью #show
/use 1 1 /cast Уход в тень /cast Облик Тьмы
В данном макросе в качестве иконки WoW выберет иконку предмета, который находится в сумке 1, ячейке 1. Чтобы изменить иконку по умолчанию, нужно добавить следующее:
#show Облик Тьмы
Тогда как #show покажет только иконку, #showtooltip создаст ссылку на заклинание/предмет, как если бы его вынесли на панель.
#showtooltip Уход в тень
Нельзя использовать #show и #showtooltip одновременно в одном макросе. Последний будет проигнорирован. В отличие от слеш-команд, #команды должны быть написаны в нижнем регистре.
#show и #showtooltip могут использовать модификаторы условий:
#showtooltip [modifier:shift] Уход в тень; Облик Тьмы
При нажатии Shift иконка будет меняться. Со списком условий можно ознакомиться ниже.
Экипировка вещей
Надеть вещь:
/equip Сердце Азерот
Надеть аксессуар в нижний слот:
/equipslot 14 Гудящая чешуйка черного дракона
Если сохранить два комплекта экипировки, один назвать Танк (меч и щит), другой ДПС (двуручный меч), то переключаться между ними можно макросом:
/equipset [equipped:Щиты] ДПС; Танк
Надеть щит и меч:
/equipslot [equipped:Щиты] 17 Колун безжалостного гладиатора; 17 Гребень Ша'тар
Макрос не будет работать корректно, если попытаться надеть два одинаковых типа оружия одновременно в разные слоты.
Последовательность предметов/заклинаний (очереди)
/castsequence
Используют для создания «очереди» из заклинаний и/или предметов. Каждый вызов макроса будет запускать следующее заклинание в очереди, в отличие от /cast, когда заклинания применяются одновременно.
/castsequence Темное восстановление, Уход в тень
Чтобы очередь продолжилась, необходимо, чтобы заклинание/предмет были доступны. В таком случае, последовательность переходит к следующей итерации. После прохождения по всем элементам последовательности, она снова перезапускается.
Перезапустить последовательность можно также с помощью условий, которые необходимо добавить до списка заклинаний. В общем виде он выглядит так:
reset=X/target/combat/shift/alt/ctrl
Где X – это время неактивности в секундах, через которое макрос должен быть сброшен;
target – сброс последовательности при смене цели;
combat – сброс последовательности при выходе из боя;
shift, alt, ctrl – при нажатии соответствующих клавиш.
Пример:
/castsequence reset=10/shift Прикосновение вампира, Слово Тьмы: Боль
Если используются предметы наряду с заклинаниями, то можно использовать две последовательности, чтобы кулдауны предметов не пересекались с кулдаунами заклинаний:
/castsequence Прикосновение вампира, Слово Тьмы: Боль /castsequence Предмет 1, Предмет 2
Случайный выбор
/castrandom и /userandom
Подобно /castsequence, эти команды выбирают предметы/заклинания из списка, только в случайном порядке.
Пример:
/castrandom Азарт, Ржавый протодракон, Берилловый аргусский скиталец
Для выбора случайной игрушки данный макрос почему-то не работает, но можно обойти это ограничение скриптом:
/run local f,t=RnT or CreateFrame("Button","RnT",nil,"SecureActionButtonTemplate") f:SetAttribute("type","item") t=GetItemInfo(C_ToyBox.GetToyFromIndex(random(RANDOM_TOY_INDEX))) f:SetAttribute("item",t) print("Игрушка:",t) /click RnT
Где вместо RANDOM_TOY_INDEX нужно поставить значение от 1 до количества игрушек у персонажа. Выбор будет осуществляться в этом диапазоне. Количество игрушек можно посмотреть, нажав SHIFT+P на вкладке с игрушками:
В данном примере макрос будет выглядеть так:
/run local f,t=RnT or CreateFrame("Button","RnT",nil,"SecureActionButtonTemplate") f:SetAttribute("type","item") t=GetItemInfo(C_ToyBox.GetToyFromIndex(random(96))) f:SetAttribute("item",t) print("Игрушка:",t) /click RnT
Атака
/startattack и /stopattack
Запуск / остановка автоатаки./startattack ПолодинВася
Панели команд
/changeactionbar X
Данный макрос переключает панели команд.
/changeactionbar 2
/swapactionbar X Y
А данный макрос может переключать между панелями команд, в зависимости о того, какая в данный момент активна. Если активна 1, то переключится на 2 и наоборот.
/swapactionbar 1 2
Бафы, ауры и формы
/cancelaura
Чтобы отменить действие эффекта, следует использовать /cancelaura
/cancelaura Слово силы: Стойкость
/cancelform
Отменяет текущую форму (например, у друидов).
/cancelform
/stopcasting
Прерывает каст текущего заклинания
/stopcasting
/dismount
Спешивает с маунта.
/dismount
Запоминание цели
Цель можно запомнить с помощью команды /focus, а после использовать макрос:
/cast [@focus] Прикосновение вампира
Имитация кликов мышкой
/click Button
Данная команда имитирует нажатие клавиши мышки по заданной кнопке Button. По умолчанию, она имитирует клик левой кнопкой мыши.
Данная команда определит и выведет в чат расположение курсора:
/run local f = GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end
/click можно использовать для различных целей. Например, чтобы обойти ограничение в 255 символов в макросе, можно сделать так:
- Cоздать макрос и поместить в него максимум кода.
- В самый конец макроса добавить /click MultiBarRightButton1
- Остальной код поместить в другой макрос и положить его в ячейку MultiBarRightButton1 (крайняя правая верхняя ячейка дополнительной панели команд).
Названия кнопок на панелях команд
BonusActionBarFrame заменяет ActionBarFrame всех друидов, воинов, жрецов в ветке ШП и разбойников, и /click ActionButton#, и /click BonusActionButton# будут идентичны для этих классов.
Продвинутые скрипты
Чего скрипты делать НЕ умеют
Они не умеют играть за игрока, с помощью них нельзя выполнять сложные или небезопасные действия.
Интерфейс WoW написан с помощью языка Lua, более подробную информацию о нем можно найти в Интернете. Вот пример скрипта, который запустит Превращение, проверит таргеты всех членов рейда, и, если они совпадают с таргетом игрока, напишет в личку игрокам сообщение: «Смени цель! Кастую овцу».
/cast Превращение /run for i=1,GetNumRaidMembers()-1 do local u,t="raid"..i,"target"if UnitIsUnit(u..t,t)then SendChatMessage("Смени цель! Кастую овцу","WHISPER",nil,UnitName(u))end end
Код скрипта нужно размещать в одну строчку.
Опции макросов
Опции позволяют запускать определенный код по условию, так данный макрос, наложенный на союзника, запустит «Очищение от болезни» или «Рассеивание заклинаний» - если цель – противник.
/cast [help] Очищение от болезни; [harm] Рассеивание заклинаний
При запуске макроса проверяется условие [help]. [help] – это цель, на которую можно наложить положительный эффект в виде исцеления, снятия проклятия и т.д. Если это условие истинно – то запускается «Очищение от болезни» и макрос уходит на следующую строку. Если у вас нет цели, или на цель нельзя наложить благотворный эффект, но можно наложить отрицательный, срабатывает условие [harm] и на цель накладывается «Рассеивание заклинаний». По сути, [harm] – это антипод [help]. Если же ни условие [help], ни [harm] не истинны, то ничего не произойдет, т.к. больше условий не представлено.
Условия можно задавать через []:
#showtooltip /cast [help] Очищение от болезни; [harm] Рассеивание заклинаний; [@player] Очищение от болезни;
В данном примере на дружественную цель будет накинуто «Очищение от болезни», на вражескую – «Рассеивание заклинаний», а если целей не выбрано – то «Очищение от болезни» - на персонажа.
В общем виде условия макросов выглядят так:
#showtooltip /cast [A, B] [C] Заклинание1; [D] Заклинание2; Заклинание3
- А и B истинны? Если да, применить Заклинание1
- C истинно? Если да, применить Заклинание1
- D истинно? Если да, применить Заклинание2
- A, B, C, D ложны? Если да, применить Заклинание3
Команды с опциями
- #show *
- #showtooltip *
- /assist
- /cancelaura
- /cancelform
- /cast
- /castrandom
- /castsequence
- /changeactionbar
- /clearfocus
- /cleartarget
- /click
- /dismount
- /equip +
- /equipslot +
- /equipset +
- /focus
- /petagressive
- /petattack
- /petautocastoff
- /petautocaston
- /petdefensive
- /petfollow
- /petpassive
- /petstay
- /startattack
- /stopattack
- /stopcasting
- /stopmacro
- /swapactionbar
- /target
- /targetenemy
- /targetenemyplayer
- /targetfriend
- /targetlasttarget
- /targetparty
- /targetraid
- /use
- /usetalents +
- /userandom
* #show и #showtooltip технически не являются безопасными командами, но также используются в макросах наряду с /use и /cast.
+ /equip, /equipslot, /equipset и /usetalents тоже технически не относятся к безопасным, т.к. их функционал может использоваться в аддонах и скриптах.
[@unit] (ранее известное как [target=unit])
В дополнение к проверке условий, макросы предоставляют игроку установить таргет. Например, следующий макрос будет применить к персонажу «Темное восстановление» вне зависимости от выбранной цели.
/use [@player] Темное восстановление
Формат [target=player] тоже можно использовать, однако [@player] использует меньше символов.
Вот хороший пример использования таргетов:
/cast [help] [@targettarget, help] [@player] Темное восстановление
Прежде всего, макрос проверит, является ли цель дружественной ([help]). Если да, то на нее будет наложено «Темное восстановление». Если нет, то идет переход к следующему условию [@targettarget, help]. Теперь проверяется, является ли цель цели дружественной, если да, то на нее кастуется «Темное восстановление», если нет, проверяется следующее условие [@player]. Условие [@player] всегда истинно, поэтому «Темное восстановление» будет наложено на персонажа игрока.
Синтаксис
Синтаксис опций
Все слеш-команды, по сути, работают одинаково. У игрока есть команда и набор параметров. Параметры зависят от команды, некоторые команды не поддерживают параметры. Вот пример:
Опции макросов позволяют игроку выбрать набор параметров, основываясь на количестве критериев. На верхнем уровне у игрока есть набор групп критериев/параметров, разделенных точкой с запятой. Точку с запятой можно рассматривать как логическое «else» или «else if». Критерий состоит из нуля или более наборов условий. Каждое условие заключается в квадратные скобки. Вот пример, наглядно иллюстрирующий это:
/command [условия] [еще условия] параметры; [условия] параметры ...
Как показано в примерах выше, команда макроса строится слева направо. Если набор условий истинен, то команда выполняет список параметров. Если условий нет, то они по умолчанию заданы как истинные. Если в команда нет условий, которые истинны, то команда не будет выполнена.
Синтаксис условий
Каждый набор условий представляет собой список, разделенный точкой с запятой. Условия могут идти в любом порядке, хотя условие [target=] будет проверено в первую очередь. Запятую можно представить как логическое «И». Например, условие [help, nodead, target=focus] можно перевести как "Моя цель дружественна И не мертва."
Условия регистрозависимы, это значит, что [Help], в отличие от [help] вызовет ошибку и не будет выполнено. Однако, это не всегда относится к параметрам. Это может вызвать путаницу, поэтому рекомендуется писать название заклинаний/предметов так, как они написаны в игре. А лучше использовать shift+левый клик.
В условиях также есть свои блоки. В примере выше есть «nodead». Для придания противоположного эффекта используется частица «no». Однако, [nohelp] не равен [harm]. [harm] и [help] возвращают истину, только если цель удовлетворяет условию. Более того, существуют некоторые цели, которые не могут быть ни атакованы, ни подлечены/баффнуты (некоторые квестовые NPC, игроки не в PvP и т.д.).
Некоторые условия имеют свой собственный набор параметров. Например, [stance] само по себе означает «в любом облике/стойке» (может быть полезно для всех классов, кроме воинов, т.к. они всегда в какой-то стойке). Можно указать одну или несколько стоек для проверки. Набор параметров начинается с двоеточия (:) и каждый параметр разделяется слешем (/), который означает логическое «ИЛИ». Вот пример синтасиса, где все в <> опционально.
[condition<:parameter>>>]
Вот пример макроса, в котором в облике друида 1 или 2 (Облик медведя или Облик кошки) будет применена «Взбучка», а если игрок не в этих двух обликах, то будет применено заклинание «Облик медведя(Смена облика)».
/cast [stance:1/2] Взбучка; Облик медведя(Смена облика)
Т.е. можно перевести на псевдокод:
ЕСЛИ текущий облик = 1 ИЛИ текущий облик = 2 то «Взбучка» ИНАЧЕ «Облик медведя(Смена облика)»
“no” в условии будет применено ко всем параметрам. [nostance:1/2] будет означать НЕ в обликах 1 или 2.
Пустые параметры
Одной из частых ошибок является добавление точки с запятой после условий:
/petattack [@focus, harm];
Данный макрос будет интерпретирован так:
Дополнительный пустой набор с опциями и параметрами является ключевой проблемой в данном макросе. Пустой набор опций будет трактован как «истина», поэтому второй пустой параметр будет передан в /petattack, если первые условия ложны.
Пустые условия
Иногда нужно, чтобы заклинание срабатывало по определенной цели и по определенным условиям, но также и работало как обычно, если условия не проходят.
/cast [@mouseover, help] [] Темное восстановление
Данный макрос применит «Темное восстановление» по дружественной цели, на которую указывает курсор мыши. Если цель далеко и/или не дружественная, то «Темное восстановление» будет применено на ту цель, которая выделена. Если выделенных целей нет, заклинание применится к персонажу игрока.
[target=] или [@] против unit параметров
Некоторые команды принимают юниты в качестве параметров напрямую. Например, /target party1 возьмет в таргет первого члена группы. /target [@party1] имеет аналогичное поведение.
Но /target [@focus, dead] party1 не будет работать как ожидалось, т.к. существуют некоторые исключения.
WoW проигнорирует party1 т.к. уже был указан юнит с опцией цели [@]. У некоторых команд есть свои «ключевые юниты», которые являются основными для этих команд. Если используется этот юнит в опции [@], WoW даст возможность указать другой юнит или будет использовать дефолтный, если игрок не указал таковой. Например:
/focus [@focus, dead] [@focus, noharm] target
В данном примере ключевой юнит это @focus. WoW отправляет @focus в команду /focus. Можно также убрать уточнение в виде «target», т.к. /focus по умолчанию работает с выбранной целью.
Ниже представлен список ключевых юнитов и их дефолтных значений (если есть). Еще раз: ключевой юнит – это это юнит, который можно использовать в [@] опции и который позволяет отправить другой юнит в данную команду. Дефолтный юнит или юнит по умолчанию – это юнит, который будет отправлен в команду, если игрок не предоставил его значение.
Список условий
Примечание: ко многим условиям можно применить префикс «no», например: «nocombat».
help и harm
Если условие [help] истинно, то цель может получить благотворный эффект, например, лечение.
Если условие [harm] истинно, то цель может получить негативный эффект, например, урон.
exists
Определяет, существует ли данная цель. Другими словами, если игрок не выбрал себе цель, то [exists] вернет «ложь». Если у игрока есть фокус, то условие [target=focus, exists] будет истинным.
В некоторых случаях [exists] не нужен. [help], [harm], [dead], [party], и [raid] – все подразумевают [exists], если они истинны.
dead
Если у игрока есть цель и она мертва, [dead] вернет «истину».
stance и form
Стойка (форма) – это термин, применимый к персонажам класса Воин, Разбойник, Друид, Жрец и Шаман. Формы меняют панели команд, позволяя использовать заклинания, недоступные в иных случаях.
[form] – это псевдоним для [stance], т.е. их поведение идентично.
[stance] без параметров аналогичен интерпретируется как [stance:1/2/3/.../n] (любая форма).
[stance:0] – эквивалент [nostance]. Так запись [stance:0/3] означает «в форме 3 или без формы».
Формы нумеруются в том порядке, в каком они представлены на панели форм.
stealth
Работает как и [stance:n], и может использоваться любым классом, отличным от Охотника, у которого есть невидимость (например, друид в форме кошки, ночные эльфы и т.д.)
modifier:shift/ctrl/alt
Короткая запись, экономящая символы: mod (например, mod:shift/ctrl/alt)
Модификаторы клавиш (ALT, CTRL, SHIFT) – это хороший способ сэкономить место на панели команд за счет группировки заклинаний в макрос, и дальнейшее их применение, в зависимости от зажатой клавиши:
/cast [modifier, help] [modifier, @targettarget, help] Очищение от болезни; [help] [@targettarget] Темное восстановление
В данном примере при любой зажатой клавише-модификаторе будет применено к цели «Очищение от болезни», иначе, если клавиша не зажата, то «Темное восстановление» на цель цели.
Вот еще примеры макросов, которые работают идентично. При зажатой клавише-модификаторе вызовется Заклинание1, иначе - Заклинание2.
/cast [mod:ctrl] Заклинание1; Заклинание2
/cast [@target] Заклинание2; [mod:ctrl, @target] Заклинание1
/cast [nomod] Заклинание2; [mod:ctrl] Заклинание1
Можно добавить еще условие, что-то вроде [modifier:shift/ctrl], которое будет означать «Shift или Ctrl». Если же нужно, чтобы были зажаты оба, необходимо прописать так: [modifier:shift, modifier:ctrl].
Бывает, что нужно создать такой макрос, который задействует несколько заклинаний, которые вызываются с участием Ctrl. Например:
/cast [modifier:alt, modifier:ctrl] Слово Тьмы: Боль; [modifier:ctrl] Прикосновение вампира; Слово силы: Щит
При зажатых Ctrl+Alt накидывается дот «Слово Тьмы: Боль», при зажатой клавише Ctrl – «Прикосновение вампира», без зажатых клавиш – «Слово силы: Щит».
Нужно быть осторожным с биндингом клавиш, так, например, если у игрока в настройках сочетаний клавиш уже задействовано «Shift+C», то при назначении в макросе комбинации «Shift+C», приоритет будет отдан действию из настроек.
Переменные модификаторов
Помимо клавиш-модификаторов, которые могут быть только ALT, CTRL и SHIFT, есть еще несколько переменных, которые используются в условиях макросов. Например, переменная SELFCAST содержит значение клавиши из настроек, которая отвечает за наложение заклинания на персонажа игрока (по умолчанию: ALT).
/cast [modifier:SELFCAST, @player] [@mouseover] [ ] Темное восстановление
При зажатой клавише, отвечающей за наложение заклинания на себя, на игрока будет наложено «Темное восстановление».
Вот еще несколько переменных, назначение которых можно понять из названия:
- AUTOLOOTTOGGLE (shift)
- STICKYCAMERA (ctrl)
- SPLITSTACK (shift)
- PICKUPACTION (shift)
- COMPAREITEMS (shift)
- OPENALLBAGS (shift)
- QUESTWATCHTOGGLE (shift)
button:1/2/.../5/(виртуальный клик)
[button], аналогично [modifier], позволяет макросу запускать разные цепочки действий, в зависимости от того, какой клавишей мыши был запущен сам макрос. Клавиши (button) 1-5 соответствуют левой, правой, колесику, клавише 4, клавише 5 соответственно.
Если макрос активируется клавишей на клавиатуре, [button:1] всегда будет истинно. Например, вот макрос для маунтов:
#show /userandom [nobutton:2, flyable, nomounted] Ржавый протодракон; [nomounted] Берилловый аргусский скиталец, Звездный крылобег Бездны /dismount [noflying] [button:2]
При клике левой (или любой другой, кроме правой) кнопкой мыши или вызове клавишей, и если на территории возможны полеты, будет вызван «Ржавый протодракон», если кликнуть правой кнопкой – то будет вызван один из «Берилловый аргусский скиталец», «Звездный крылобег Бездны». При повторном клике клавишей левой кнопкой произойдет спешивание (если не в воздухе), или принудительное спешивание при нажатии правой кнопки мыши.
equipped: (тип предмета)
[equipped] позволяет определить, надет ли определенный тип предмета. К типам предметов относятся слоты инвентаря, различные предметы и валюта. Типы предметов локализованы и зависят от языка клиента, лучший источник списка этих типов и подтипов – аукцион.
#show [equipped:Щиты] Удар щитом; Зуботычина /cast [equipped:Щиты,stance:1/2] Удар щитом; [equipped:Щиты] Защитная стойка; [stance:3] Зуботычина; Стойка берсерка
Расшифровка:
Если щит экипирован и игрок в Боевой или Защитной стойке, тогда
/cast Удар щитом
Если щит экипирован
/cast Защитная стойка
Если игрок в стойке Берсерка
/cast Зуботычина
Иначе /cast Стойка берсерка
Вот еще один пример усиленного макроса:
/equip [noequipped:Двуручные топоры] Секира Хрустальной Кузницы /cast [nostance:1] Боевая стойка; [equipped:Двуручные топоры] Превосходство
channeling: (заклинание)
Обычно, если игрок кастует потоковое заклинание и в этот момент применяет другое заклинание, потоковое отменяется. Данная опция призвана это предотвратить.
Например:
#show /cast [nochanneling:Пытка разума] Пытка разума
Данный макрос проверит, не кастуется ли в данный момент игроком «Пытка разума». Если нет, то наложит на цель данное потоковое заклинание.
actionbar:1/.../6
[actionbar] проверяет, какая панель команд в данный момент видима (активна).
Например:
/swapactionbar 1 2 /cast [actionbar:1] Слово Тьмы: Боль; Прикосновение вампира
Данный макрос вызовет переключение нижней панели с 1 на 2 (и наоборот). И в зависимости от того, какая панель команд активна, запустит либо «Прикосновение вампира» (активна 2 панель), либо «Слово Тьмы: Боль» (активна 1 панель).
pet:(имя или тип питомца)
Чтобы узнать тип питомца можно воспользоваться макросом:
/script print(UnitCreatureFamily("pet"))
Например:
/cast [pet:Вурдалак] Отгрызть; Заморозка разума
[pet] сам по себе соответствует любому активному питомцу.
Например, макрос для мага, когда он может применять либо способность питомца, либо свою:
/cast [pet] Холод; Кольцо льда
talent:(строка#)/(столбец#)
Возвращает истину, если у текущего персонажа выбран талант по текущим координатам.
Тиры (строка 1-7), столбцы (1-3)
Пример для ДК:
/cast [talent:7/2] Нечестивое бешенство; [talent:7/3] Призыв горгульи
В зависимости от того, что выбрал игрок на 7 тире, будет выбрана способность «Нечестивое бешенство» или «Призыв горгульи»
.Отключаемые способности
/cast Крадущийся зверь
Этот /cast работает таким образом, что включает невидимость у друида, если таковая не активна. Если активна – выводит из невидимости.
Чтобы избежать автоотключения заклинания, нужно перед ним поставить восклицательный знак (!).
Например:/cast Инстинкты выживания /cast !Крадущийся зверь
Вот еще полезный макрос для друида, переключающий образ кошки (с применением невидимости, по возможности) и образ медведя:
/cast Облик кошки /cast [stance:3] [nostealth] Крадущийся зверь /cancelaura /cast Облик медведя
Использование фокуса («Запомнить цель»)
Фокус – это UnitId, например target, player, or raidpet1target. Он позволяет создать ссылку на моба, игрока или NPC.
Например, маг может накинуть «Превращение» на цель в фокусе (предварительно нужно нажать на цель ПКМ -> «Запомнить цель», т.е. добавить в фокус).
/cast [@focus] Превращение
Или, например, можно запомнить танка в рейде и кидать на него лечение.
Для фокуса можно также использовать переменные (описаны выше), например:
/focus party3target
Вот более сложный пример фокуса:
/focus [@focus, noharm] [@focus, dead] [modifier] /stopmacro [@focus, noexists] /cast [@focus] Превращение
Первая строка устанавливает фокус на текущую цель (или очищает фокус, если цели нет) в одном из следующих случаев:
- у игрока нет фокуса по вражеской цели;
- текущая цель, находящаяся в фокусе, мертва
- игрок зажал одну из клавиш-модификаторов (для смены фокуса, если фокус уже поставлен).
Вторая строка останавливает выполнение макроса, если у игрока отсутствует фокус.
Последняя строка накидывает «Превращение» на фокус.
Можно также переключать цель и фокус:
/cleartarget [@target, dead] /clearfocus [@focus, dead] /target focus /cleartarget [@focus, noexists] /targetlasttarget /focus target /targetlasttarget /cast [@focus] Лунный огонь(Лунная энергия)
Первые две строки очищают фокус, если цель мертва. Четвертая строка нужна, т.к. «/target focus» не очищает текущую цель, если нет активного фокуса (без нее пятая строка будет возвращать предыдущую цель).
Упрощение и ветвление макросов с помощью /click
Например, есть макрос, позволяющий запускать разные заклинания, в зависимости от зажатой клавиши-модификатора:
/cast [mod:shift, button:2, @player] [mod:shift, @party1] Омоложение; [mod:ctrl, button:2, @player] [mod:ctrl, @party1] Жизнецвет; [nomod, button:2, @player] [nomod, @party1] Восстановление
На первый взгляд не совсем очевидно, что именно происходит внутри макроса. Можно упросить его таким образом:
/cast [mod:shift, button:1, @party1] [mod:shift, @player] Омоложение /cast [mod:ctrl, button:1, @party1] [mod:ctrl, @player] Жизнецвет /cast [button:1, @party1] [@player] Восстановление
Однако, можно пойти дальше и сделать главный макрос для выбора цели, основываясь на клавише мыши, и макрос для выбора заклинания, взяв за основу клавиши-модификаторы.
В текущем примере макрос 2 и макрос 3 расположены на панели в ячейках MultiBarLeftButton2 и MultiBarLeftButton3 соответственно.
Макрос 1:
/click [button:1] MultiBarLeftButton2; MultiBarLeftButton3
Макрос 2:
/cast [mod:shift, @party1] Омоложение; [mod:ctrl, @party1] Жизнецвет; [@party1] Восстановление
Макрос 3:
/cast [mod:shift, @player] Омоложение; [mod:ctrl, @player] Жизнецвет; [@player] Восстановление
Пользовательские иконки
Чтобы добавить свои собственные иконки для макросов, нужно положить их в папку "World of Warcraft\Interface\Icons" (создать, если такой нету). Файлы должны соответствовать стандарту UI текстур:
- это должны быть файлы в формате BLP;
- или несжатые TGA файлы с битностью 24/32 и альфа-каналом