Предисловие

В этой статье будет подробно рассказано о том, как создавать макросы. Макрос – это список слеш-команд. Со списком слеш-команд можно ознакомиться в статье на нашем сайте: . Вы также можете ознакомиться с полезной статьей по званиям: .

Пример простейших слеш-команд:

  • /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

Оглавление

Создание макроса

Назад к оглавлению

Для начала, нужно открыть окно макросов, прописав:

/macro или /m – в окне чата.

До макросов можно также добраться через меню (Esc -> Макросы).

В окне макросов есть две вкладки: «Общие макросы» и «Макросы %имя_персонажа%».

Общие макросы доступны всем персонажам игрока на аккаунте, тогда как «Макросы %имя_персонажа%» доступны только конкретному персонажу.

Чтобы создать макрос, нужно нажать на кнопку «Создать». Выскочит еще одно окно, где надо ввести произвольное название макроса и выбрать иконку (по желанию). Если выбрать первый из списка значок (знак вопроса «?»), то WoW автоматически подберет наиболее подходящую иконку, основываясь на тексте макроса.

После того, как выбраны иконка и название, нужно нажать «OK».

Игрок может управлять тем, что будет отображаться вместо иконки «?» с помощью команды #show .

И хотя допускается называть макросы одинаково, не следует этого делать, поскольку это может вызвать проблемы с некоторыми аддонами, которые и будут использовать эти макросы.

Макрос вмещает в себя 255 символов. Ходят слухи, что это вызвано тем, что макросы с некоторых пор хранятся на серверах Blizzard.

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

Каст заклинаний

Назад к оглавлению

/cast Слово Тьмы: Боль

Этот макрос применит к цели наивысший ранг данного заклинания (Слово Тьмы: Боль). Можно немного модифицировать макрос, добавив строку:

/cast Слово Тьмы: Боль
/y Страдай %t!

После каста заклинания персонаж игрока крикнет «Страдай %t!», где вместо %t будет подставлено название цели.

Использование предметов и тринкетов

Назад к оглавлению

/use Осознанный кошмар

Данная команда вызовет маунта «Осознанный кошмар».

Примечание: нет необходимости вводить название предметов вручную. Можно вставить их название, использую shift+клик.

Использование ячеек инвентаря

/use 7

Данная команда вызовет использование надетого верхнего аксессуара.

Можно также использовать любую ячейку в инвентаре персонажа.

Инвентарь персонажаИнвентарь персонажа

Индекс ячейки
Наименование ячейки
0
боеприпасы
1
голова
2
шея
3
плечи
4
рубашка
5
грудь
6
пояс
7
ноги
8
ступни
9
запястья
10
руки
11
палец 1
12
палец 2
13
тринька (аксессуар) 1
14
тринька (аксессуар) 2
15
спина
16
правая рука
17
левая рука
18
оружие дальнего боя
19
накидка
20
первая сумка (крайняя справа)
21
вторая сумка
22
третья сумка
23
четвертая сумка (крайняя слева)

Если открыто окно банка:

От 40 по 67 = 28 банковских ячеек

От 68 по 74 = банковские сумки (слева направо)

/use <сумка> <ячейка>

Сумки нумеруются справа налево, от нуля до 4.

Нумерация сумокНумерация сумок

Внутри сумки нумерация идет от верхнего левого угла, до правого нижнего, от 1 до n, как при чтении.

Нумерация внутри сумкиНумерация внутри сумки

Например, чтобы выпить напиток ("Особое Новолунное"), который лежит во второй сумке, в ячейке номер 16:

/use 1 16/use 1 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:

UnitId
Описание
arenaX
Член вражеской команды на арене с индексом X (X входит в диапазон 1,2,3,4,5).
arenapetX
Питомец X-члена вражеской команды на арене (X входит в диапазон 1,2,3,4,5).
bossX
Активный босс в подземелье/рейде c индексом X (X входит в диапазон 1,2,3,4).
focus
Таргет текущего персонажа, выбранный командой /focus
mouseover
Таргет, на который указывает курсор или последний таргет, на который указывал курсор.
none
Ссылка на пустой объект. UnitName вернет "Unknown, nil" для этого UnitID. Используется чтобы предотвратить автоматическое накладывание на своего персонажа эффекта (/cast [target=none] Темное восстановление).
partyX
Член группы под индексом X (текущий персонаж не включается в это число) (X входит в диапазон 1,2,3,4).
partypetX
Питомец X-члена группы (X входит в диапазон 1,2,3,4).
pet
Питомец текущего персонажа.
player
Текущий персонаж.
raidX
X-член рейда (1,2,3,...,40).
raidpetX
Питомец X-члена рейда (1,2,3,...,40)
target
Текущая цель.
vehicle
Транспорт текущего персонажа.
npc
NPC, с которым контактирует текущий персонаж (распорядитель полетов, банкир и т.д.).
player name
Имя игрока, то, что возвращают функции UnitName, GetGuildRosterInfo, GetFriendInfo, COMBAT LOG EVENT и др. Вернет ошибку, если искомый игрок не является членом группы/рейда. Как и прочие 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 символов в макросе, можно сделать так:

  1. Cоздать макрос и поместить в него максимум кода.
  2. В самый конец макроса добавить /click MultiBarRightButton1
  3. Остальной код поместить в другой макрос и положить его в ячейку MultiBarRightButton1 (крайняя правая верхняя ячейка дополнительной панели команд).

Названия кнопок на панелях команд

Название
Описание
ActionButton#
Главная панель*
BonusActionButton#
Дополнительная панель для друидов, воинов, жрецов в ветке «Тьма» и разбойников*
MultiBarBottomLeftButton#
Нижняя левая панель
MultiBarBottomRightButton#
Нижняя правая панель
MultiBarRightButton#
Правая панель
MultiBarLeftButton#
Правая панель 2 (слева от "Правой панели")
PetActionButton#
Панель питомца
ShapeshiftButton#
Кнопки смены облика/форм, аур, стоек и т.д.
ExtraActionButton#
Доп. Кнопки как например в рейдах (привет, Ультраксион).

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
  1. А и B истинны? Если да, применить Заклинание1
  2. C истинно? Если да, применить Заклинание1
  3. D истинно? Если да, применить Заклинание2
  4. A, B, C, D ложны? Если да, применить Заклинание3

Команды с опциями

Назад к оглавлению

  1. #show *
  2. #showtooltip *
  3. /assist
  4. /cancelaura
  5. /cancelform
  6. /cast
  7. /castrandom
  8. /castsequence
  9. /changeactionbar
  10. /clearfocus
  11. /cleartarget
  12. /click
  13. /dismount
  14. /equip +
  15. /equipslot +
  16. /equipset +
  17. /focus
  18. /petagressive
  19. /petattack
  20. /petautocastoff
  21. /petautocaston
  22. /petdefensive
  23. /petfollow
  24. /petpassive
  25. /petstay
  26. /startattack
  27. /stopattack
  28. /stopcasting
  29. /stopmacro
  30. /swapactionbar
  31. /target
  32. /targetenemy
  33. /targetenemyplayer
  34. /targetfriend
  35. /targetlasttarget
  36. /targetparty
  37. /targetraid
  38. /use
  39. /usetalents +
  40. /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 по умолчанию работает с выбранной целью.

Ниже представлен список ключевых юнитов и их дефолтных значений (если есть). Еще раз: ключевой юнит – это это юнит, который можно использовать в [@] опции и который позволяет отправить другой юнит в данную команду. Дефолтный юнит или юнит по умолчанию – это юнит, который будет отправлен в команду, если игрок не предоставил его значение.

Команда
Ключевой юнит
Дефолтный юнит
/target
target
/focus
focus
target
/startattack
target
target
/petattack
pettarget
target

Список условий

Назад к оглавлению

Условие
Описание
actionbar:1/.../6 или bar:1/.../6
выбор панели команд
bonusbar:5
выбор доп. панели команд
button:1/.../5/ (virtual click) или btn:1/.../5/ (virtual click)
макрос активируется по нажатию определенной клавиши мыши
channeling: (название заклинания)
применение потокового заклинания
combat
в бою
cursor
на что в данный момент направлен курсор
dead
цель мертва
equipped: (тип предмета) или worn: (тип предмета)
предмет определенного типа экипирован (тип может быть слотом в инвентаре, типом предмета (валюта, рецепты, броня и т.п.), или подтипом предмета (одноручные мечи, двуручные мечи, удочки и т.п.))
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 или form:0/.../n
игрок находится в данной стойке/форме
stealth
игрок в невидимости (стелсе)
swimming
игрок в воде
talent:(тир#)/(столбец#)
талант игрока из тира# и столбца# выбран
unithasvehicleui
у цели макроса есть интерфейс средства передвижения
vehicleui
у игрока есть интерфейс средства передвижения

Примечание: ко многим условиям можно применить префикс «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 или без формы».

Формы нумеруются в том порядке, в каком они представлены на панели форм.

Стойка
Воин
Друид
Жрец
Разбойник
Шаман
Форма 1
Боевая стойка
Облик медведя
Оберегающий дух / Облик Тьмы в зависимости от специализации
Невидимость
Призрачный волк
Форма 2
Оборонительная стойка
Облик кошки
Танец теней
Форма 3
Стойка берсерка
Походный облик
Форма 4
Облик совуха
Форма 5
Форма 6

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] Превращение

Первая строка устанавливает фокус на текущую цель (или очищает фокус, если цели нет) в одном из следующих случаев:

  1. у игрока нет фокуса по вражеской цели;
  2. текущая цель, находящаяся в фокусе, мертва
  3. игрок зажал одну из клавиш-модификаторов (для смены фокуса, если фокус уже поставлен).

Вторая строка останавливает выполнение макроса, если у игрока отсутствует фокус.

Последняя строка накидывает «Превращение» на фокус.

Можно также переключать цель и фокус:

/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 текстур:

  1. это должны быть файлы в формате BLP;
  2. или несжатые TGA файлы с битностью 24/32 и альфа-каналом