1.9.12. Сохранение целей для последующих нужд
Команда /focus разрешает сохранять цель, чтобы вернуться к ней позже. К примеру, скажем ваш лидер рейда отдает указание превратить цель в овцу. Первым делом, выберете монстра, и введите /focus. Теперь воспользуйтесь макросом, чтобы прочесть заклинание на фокусную цель.
Quote
/target focus
/cast Polymorph
/targetlasttarget
Замечу, что это не самый эффективный способ использовать возможности фокуса. Читайте «Использование фокуса» в Части 2 для более глубокого разбора этой механики. 1.9.13. Симуляция нажатия кнопок
Команда /click берет имя кнопки и действует так же, как если вы нажали эту кнопку мышкой. По умолчанию, она ведет себя как левый щелчок, но можно указывать команде другие кнопки. Есть пару способов определить имя интересующего вас элемента:
* Вы можете воспользоваться аддоном. Некоторые аддоны, включая MoveAnything, показывают имя элемента под курсором мыши.
* Можно просмотреть программный код UI для нужного элемента. Это подходит людям, разбирающимся в программировании аддонов.
* Можно назначить на клавишу следующий макрос и активировать его во время наведения курсора мышки на нужный элемент:
/run local f = GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end
/click можно применять во многих случаях. Вы можете связывать множественные макросы посредством симуляции щелчков мыши по другим макросам. К примеру, у вас есть весьма длинный макрос, длиннее ограничения в 255 символов. Поместите сколько влезет в первый макрос, дописав в конце следующую строку
Quote
/click MultiBarRightButton1
Остальную часть кода поместите в новый макрос, который затем вставьте в MultiBarRightButton1 (это первая кнопка правой вертикальной панели действий).
Можно также делать такие вещи, которые обычно не доступны в макросах или требуют сложных скриптов на Lua. Вот пример макроса, который автоматически выкупает и подтверждает выкуп на лоте аукциона (убедитесь, что выбрали нужный лот; все случайно неверные покупки будут на вашей совести):
Quote
/click BrowseBuyoutButton
/click StaticPopup1Button1
Вершина использования – это сложные разветвления с помощью /click, которые будут рассмотрены в Части 2. 1.10. Продвинутые скрипты
1.10.1. Чего не могут скрипты
Скрипты очень мощный инструмент, позволяющий принимать сложные решения на основе каких-то критериев. Из-за этой мощи, Blizzard ограничил тип дозволенных вещей, чтобы запретить макросам и аддонам выполнять действия, которые должен выполнять сам игрок. Я начинаю этот раздел с ограничений, чтобы у вас не было неоправданных надежд. Хотя скрипты полезны во многом, вы не можете использовать их чтобы читать заклинания, применять предметы, менять страницы панелей действий или влиять на вашу цель. Вы ограничены набором «безопасных» команд, уже описанных нами выше.
1.10.2. Что такое скрипт?
WoW UI контролируется кодом написанным на скриптовом языке Lua. Можно воспользоваться преимуществом скриптовой системы в макросах посредством команды /run или /script (но /run позволяет сэкономить пару символов). Весь скрипт должен находиться в одной строке, хотя дозволено иметь множество команд /run в одном макросе.
Полный курс Lua и программирование, безусловно, вне пределов этого руководства.
Blizzard предоставляет множество функций (именуемых API), которые могут использовать Lua скрипты, чтобы контролировать UI. Вы можете просмотреть API и другие возможности системы UI по ссылке http://www.wowwiki.com/Interface_Customization (если вы начнете писать скрипты и аддоны, то обнаружите WoWWiki незаменимым ресурсом в этом деле). Я не могу открыть вам все детали окружения UI, потому просто приведу в пример одного из моих любимых скриптов.
Следующий макрос (его я положил в основу моего аддона CCWarn), прошепчет всем в вашем рейде просьбу сменить цель, если она совпадает с вашей. Это поможет им избежать сбивания с монстра состояния овцы, которое накладывает этот макрос.
Quote
/cast Polymorph
/run for i=1,GetNumRaidMembers()-1 do local u,t=”raid”..i,”target”if UnitIsUnit(u..t,t)then SendChatMessage(”Change targets! Trying to sheep…”,”WHISPER”,nil,UnitName(u))end end
Есть две причины, по которым все выглядит крайне запутанным. Первая – ограничение в 255 символов; вам часто придется «срезать углы» чтобы засунуть ваш макрос в этот предел. Вторая – необходимо чтобы весь скрипт находился на в одной строке. При более идеальных условиях, этот скрипт мог бы выглядеть так:
Quote
for i = 1, GetNumRaidMembers() - 1 do
local unit = “raid”..i
if UnitIsUnit(unit..”target”, “target”) then
SendChatMessage(”Change targets! Trying to sheep…”, “WHISPER”, nil, UnitName(unit))
end
end
Добавлено (02.12.2009, 23:21)
---------------------------------------------
1.1 Что такое опции макросов?
Опции макросов это способ контролировать действия макросов, основываясь на разной информации. Чтобы сразу привести пример, следующий макрос прочитает заклинание Renew на дружественную цель и Shadow Word: Pain на враждебную.
Quote
/cast [help] Renew; [harm] Shadow Word: Pain
Во время выполнения этого макроса, проверяется состояние [help]. Оно определяет, является ли ваша цель той, на которую допустимо накладывать дружественные заклинания. Если состояние [help] истинно, дальше выполняется заклинание Renew, и макрос переходит к следующей строке. В противном случае (у вас или нету цели, или вы не можете использовать дружеское заклинание на текущую цель), неудача приводи к обработке следующего условия. Теперь макрос проверяет состояние [harm]. [harm] работает по принципу [help] только для атакующих заклинаний. Если условие истинно, используется Shadow Word: Pain. Если нет – (опять же нет цели, или цели невозможно навредить) больше ничего не выполняется, так как условий больше нет.
Примечание: Можно было убрать проверку на [harm] и макрос работал бы в практически также. Однако, если у вас нет цели или на нее невозможно использовать дружественные или атакующие заклинания, вы получили бы сообщение об ошибке, или, в зависимости от заклинания, курсор выбора цели. 1.2 Команды, допускающие опции
Только «безопасные» команды отвечают на опции макросов. Фактически, безопасные команды это та причина, по которой возникли опции. Небезопасные команды, вроде команд для чата, эмоции и так далее, могут выполнятся в скриптах на Lua и командой /run. Говоря больше, Blizzard не хотели путать людей использующих точку с запятой «;» в чате. Если бы команда /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/download...MacroTalk.html), добавляет несколько команд /opt____ для каждой команды чата и общую команду /opt, которая позволяет добавлять опции для прочих небезопасных команд.
1.3 [target=unit]
В дополнения к проверке условий, система макро опций предоставляет способ назначать цели для разных действий. К примеру, следующий макрос всегда использует бинты на игрока, независимо от текущей цели (для полного списка ID целей читайте http://www.wowwiki.com/UnitId ).
Quote
/use [target=player] Heavy Netherweave Bandage
Кроме установки цели для выполняемого действия, опция [target=] также задает цель для проверки условий. Это может звучать несколько непонятно, так что вот пример макроса, совмещающий концепцию двух примеров, использованных мной ранее:
Quote
/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 на самого игрока. Добавлено (02.12.2009, 23:23)
---------------------------------------------
2.4 Обзор синтаксиса
С пониманием как работают опции для макросов, может быть ужасная путаница, так что я воспользуюсь ранней возможностью, чтобы разъяснить их общую концепцию. Я буду использовать реальные примеры использующие действенные опции. Все опции будут раскрыты в деталях несколько позже.
2.4.1 Общие опции синтаксиса
Все консольные команды в принципе работают одинаково. У вас есть команда, и набор параметров для нее. Параметры зависят от команды, и некоторые команды используются без них. Вот несколько примеров:
Quote
/cast Smite
\___/ \___/
| |
| — параметр
– команда
Quote
/petattack
\________/ V
| |
| параметры (пустые)
|
команда
Quote
/castsequence reset=target Immolate, Corruption, Curse of Agony, Siphon Life
\___________/ \_________________________________________________ ___________/
| |
command parameters
Опции для макросов позволяют выбирать набор параметров на основе нескольких критериев. На наивысшем уровне, у вас есть набор групп критериев/параметров, разделенных точками с запятыми. Критерии состоят из нулевого или больше количества наборов условий. Каждый набор условий задается внутри квадратных скобок []. Вот иллюстрация общего синтаксиса:
Quote
/команда [условия] [еще условия] параметры; [условия] параметры …
Как видно из простых примеров, описанных выше, команда выполняется слева направо. Как только найден набор условий который является истинным, выполняется команд с соответствующими параметрами. Если условий в записи нет, она всегда будет истинна. По сути, можно представить команду /cast с одним заклинанием в качестве опции макроса, в единственной записи без условий. Если команда не может найти истинных условий, она вообще не выполнится. 2.4.2 Синтаксис для условий
Каждый из наборов условий есть простым списком разделенный запятыми. Условия могут задаваться в любом порядке, но [target=] всегда учитывается первым, перед любыми другими условиями. О разделителе «,» (запятая) можно думать как о слове «и». Условие вроде [help, nodead, target=focus] означает «Мой фокус дружественная цель И она не мертва».
Замечание: Условия чувствительны к регистру. Если использовать [Help] вместо [help], макрос выдаст ошибку. Однако, это не относится к параметрам условий (описанных ниже). По-прежнему, обычно лучше писать прописными буквами. Записывайте заклинания и предметы точно так же, как вы видите названия в их подсказках. И в точности следуйте примерам в этом руководстве.
Условия сами по себе строятся из нескольких блоков. Во-первых, как вы могли видеть в примере с «nodead», можно добавить приставку «no» перед условием для получения обратного значения. Заметьте, что [nohelp] не обозначает тоже что и [harm]. [harm] и [help] вернут истинное значение как минимум при наличии цели. По мимо этого, существуют некоторые цели, которым невозможно помочь или навредить (игроки с выключенным ПвП, небоевые питомцы, эскорт-квесты и так далее).
Некоторые из условий также требуют своего собственного набора параметров. Например, [stance] обозначает «Если включена любая стойка» (полезно для всех классов со стойками, кроме воинов так как они всегда находятся в стойке). Но можно указать одну или несколько конкретных стоек для проверки. Набор параметров начинается с двоеточия «:» и каждый параметр отделяется косой чертой «/», которая значит «или». Вот общая иллюстрация синтаксиса для одного условия, а все что в угловых скобках «<>» опционально.
Quote
[<no>condition<:parameter</parameter</parameter<...>>>>]
Вот простой пример использования умения Shield Bash в Defensive или Battle стойках, но если активна Berserker стойка – она переключается на Defensive.
Quote
/cast [stance:1/2] Shield Bash; Defensive Stance
Примечание: приставка «no» применяется ко всему условию и его параметрам. [nostance:1/2] будет означать «любая из стоек кроме 1 или 2»
2.4.3 Пустые параметры
Путаница возникает при использовании команд, не требующих параметров. Самая распространенная ошибка в написании макроса – добавлять лишнюю точку с запятой в конце, что приводит к неожиданным глюкам. Рассмотрим такой макрос:
Quote
/petattack [target=focus, harm];
Для не посвященных, выглядит будто я посылаю питомца на цель в фокусе если она враждебна, и больше ничего. Но давайте разобьем макрос на составляющие:
/petattack [target=focus, harm] ;
\________/ \__________________/ V V V
| | | | |
command options | | parameters (empty)
| |
| options (empty)
|
parameters (empty)
Видите дополнительный пустой набор опций и параметров? Запомните – пустые наборы опций всегда возвращают «истину», так что второй пустой параметр передается /petattack если первое условие не было истинно. 2.4.4 Пустые условия
Иногда нужна команда использующая умения при нужных условиях на определенную цель, но ведущая себя как обычно, если условия не истинны. В этом случае вы пожелаете использовать пустой набор условий, который всегда возвращает истину. Этот макрос прочитает Flash of Light на цель под курсором вашей мыши. Если цель под мышью враждебна или ее просто нет, макрос поведет себя как обычная команда /cast Flash of Light и выполнит заклинание на вашу цель, учитывая опции по авто-использованию умений на себя в настройках интерфейса.
Quote
/cast [target=mouseover, help] [ ] Flash of Light
2.4.5 [target=] с параметрами единицы
Некоторые команды разрешают использовать напрямую ID целей как свои параметры. Например, /target party1 использует целью первого человека в вашей партии. Команда /target [target=party1] более понятна, но ведет себя абсолютно так же. В то же время, разработчики в множестве случаев не дают использовать ID целей для проверки условий напрямую, по этому приходится использовать один или другой способ в зависимости от ситуации. К примеру, такой макрос не будет работать как надо:
Quote
/target [target=focus, dead] party1
WoW проигнорирует параметр party1, так как мы уже установили цель с помощью [target=]. Есть правда особые исключения из этого правила. Пару команд имеют «ключевые цели» в качестве основных для этих команд. Если вы используете некую цель в [target=], WoW разрешит задать еще одну, либо выберет цель по умолчанию, если ничего не задано. Этот нюанс требует конкретного примера:
Quote
/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 Добавлено (02.12.2009, 23:25)
---------------------------------------------
2.5. Условные переходы
Теперь рассмотрим полный список условий, и что они означают. Каждое из условий в свою очередь будет рассмотрено более подробно далее в руководстве.
2.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 – Вы входите в указанную группу
2.5.2. help и harm
Эти две опции мы уже рассмотрели довольно подробно. Мне нечего добавить больше, но ради полноты этот раздел останется здесь.
2.5.3. exists
Определяет существует ли заданная цель. Другими словами, если у вас нету цели, [exists] вернет ложь. Если у вас задан фокус, [target=focus, exists] вернет истину. Заметьте, что в некоторых случаях можно обойтись без [exists]. [help], [harm], [dead], [party], и [raid] все включают [exists] если они истинны.
2.5.4. dead
Если у вас есть цель, и она мертва, эта опция вернет истину.
2.5.5. stance:0/1/2/…/n (form)
Стойка - это термин широко используемый воинами, друидам, рогами (стелз), пристами (шадоуформа) и шаманами (призрачный волк). Стойки применяются только в тех ситуациях, когда определенные умения могут быть использованы в каких-либо формах. Именно по этому, ауры паладином (хоть они и находятся на панели форм) и аспекты охотников НЕ ЯВЛЯЮТСЯ стойками.
В простейшем случае, [stance], как упоминалось ранее, означает что вы находитесь в любой из стоек/форм. Это эквивалент [stance:1/2/3/.../n] где n это номер стойки. [stance:0] здесь то же что и [nostance], и возможно использовать условия вроде [stance:0/3], чтобы проверить находитесь ли вы в стойке 3 или вообще без стоек.
Стойки сами по себе имеют такие же порядковые номера, как их положение на панели стоек/форм. К примеру, формы друида начиная с Медведя, Аква-формы, Кота и формы для путешествий будет иметь номера стоек с 1 по 4. Чтобы вам было легче со всем этим, вот все стойки:
Quote
Сообщение от Warrior
Стойка 1 Battle
Стойка 2 Defensive
Стойка 3 Berserker
Quote
Сообщение от Druid
Стойка 1 Bear
Стойка 2 Aquatic
Стойка 3 Cat
Стойка 4 Travel
Стойка 5 MK/ToL
Стойка 6 Flight
Quote
Сообщение от Priest
Стойка 1 Shadowform
Quote
Сообщение от Rogue
Стойка 1 Stealth
Quote
Сообщение от Shaman
Стойка 1 Ghostwolf
Примечание: если у друида отсутствует нужная форма, все более высокие числа сдвигаются в таблице вверх.
Примеры:
Quote
/cast [stance:1] Overpower; Battle Stance
Этот макрос – автоматизация Overpower в два щелчка мышкой. Если вы в неправильной стойке, первый клик переведет вас в нее. Когда вы перейдете в Battle Stance, использования макроса выполнит Overpower.
Quote
/cancelform [noform:0/1/3]
/cast [form:1/3] Faerie Fire (Feral)(); Faerie Fire
В формах медведя или кота, этот макрос использует заклинание Faerie Fire (Feral), в форме для заклинаний – просто Faerie Fire. Во всех остальных формах, макрос переведет вас в заклинательную форму и наложит Faerie Fire. Добавлено (02.12.2009, 23:26)
---------------------------------------------
2.5.6. stealth
Как может показаться рогам среди читателей, что поскольку у рог нет других стоек, эта опция работает идентично к [stance], [stealth] также применимо к расовому умению ночных эльфов Shadowmeld, Invisibility у магов и так далее.
2.5.7. modifier:shift/ctrl/alt (mod)
Клавиши-модификаторы хороший способ сберечь место на панелях действий, а также путь к принятию определенных решений. Скажем вы хотите включить в макрос чтобы при обычном использовании он выполнял одно заклинание, а при зажатой кнопке-модификаторе – другое:
Quote
/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, связанная с чем-либо еще - макрос не выполнится, так как клавиатурные комбинации имеют больший приоритет.
2.5.7.1. Переменные modifier
В то время как клавиатурными модификаторами могут быть только shift, ctrl или alt, существует также набор системных переменных, которые также можно использовать в качестве модификаторов условий. Скажем, переменная SELFCAST означает «если включен модификатор на автоматическое использование заклинаний на себя». По умолчанию, это alt (удерживание клавиши alt, во время использования заклинаний приведет к попытке наложить их на себя), хотя некоторые из аддонов дают возможность изменить это. Если сделать макрос вида:
Quote
/cast [modifier:SELFCAST, target=player] [target=mouseover] [ ] Greater Heal
Он будет работать как нужно, независимо от клавиши, установленной в качестве «использование-на-себя». Некоторые другие из переменных и их условия по умолчанию (с заметно меньшими возможностями применения) такие: * AUTOLOOTTOGGLE (shift) – авто-сбор предметов
* STICKYCAMERA (ctrl) – статичная камера
* SPLITSTACK (shift) – разделение стопок
* PICKUPACTION (shift) – действие для подбора предметов
* COMPAREITEMS (shift) – сравнение предметов
* OPENALLBAGS (shift) – открытие всех сумок
* QUESTWATCHTOGGLE (shift) – слежение за квестами
2.5.8. button:1/2/…/5/<virtual click> (btn)
Похожим на условие [modifier]образом, опция [button] позволяет вашему макросу отвечать напрямую, в зависимости от того какая кнопка мыши использована для активирования макроса. Номера кнопок с 1 по 5 соответствуют левой, правой или средней кнопкам, и кнопкам 4 и 5 (если такие есть на вашей мышке). Если ваш макрос активируется по нажатию клавиатурной комбинации, условие [button:1] будет всегда истинно.
Quote
#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. Щелчок правой кнопкой по макросу всегда приведет к выбору одного из механических цыплят.
Поведение максроса, если вы верхом: левый щелчок приведет к спешиванию, если мы только не в полете. Правый щелчок – всегда приводит к спешиванию.
«Виртуальный щелчок» обычно можно игнорировать, но если вы используете аддон для модификации панелей действий, он может быть и полезным. Панели действий, реагирующие на различные состояния, преобразуют щелчки в виртуальные нажатия, чтобы определить какое из действий выполнить. Так как эти виртуальные нажатия зависят от конкретных аддонов, я не стану погружаться в дальнейшие объяснения. 2.5.9. equipped:<тип предмета> (worn)
[equipped] позволяет определять надет ли заданный тип предмета. Типом предмета может быть номер ячейки инвентаря, и собственно, тип или подтип предмета. За подробностями к списку типов обращайтесь на http://www.wowwiki.com/ItemType и http://www.wowwiki.com/API_TYPE_InventorySlotName. Вот пример макроса, который я использую для выбора Shield Bash или Pummel в зависимости, от того что на мне одето:
Quote
#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 стойке, тогда
в противном случае, если щит одет
Quote
/cast Defensive Stance
в противном случае, если я в Berserker стойке, тогда
иначе
Quote
/cast Berserker Stance
Вот другой макрос, который придает Overpower мощности:
Quote
/equip [noequipped:Two-Handed Axes] Crystalforged War Axe
/cast [nostance:1] Battle Stance; [equipped:Two-Handed Axes] Overpower
Добавлено (02.12.2009, 23:29)
---------------------------------------------
2.5.10. channeling:<имя заклинания>
Обычно, если вы вливаете заклинание (т.е. выполняете чэннелинг) и начинаете накладывать другое, оно прервет процесс вливания. Эта опция позволяет избежать таких случаев. К примеру, мы хотели бы прервать в таких случаях заданное заклинание, но не прерывать другие. [channeling] без параметров отвечает любому заклинанию, но можно также и использовать произвольный список имен заклинаний для проверки.
Примечание: вливание (чэннелинг) это НЕ ТО ЖЕ САМОЕ что обычно чтение заклинаний. Использование [channeling] применимо только к заклинаниям типа Arcane Missiles, Drain Life, Mind Flay и так далее, когда после начала чтения, заклинание проявляет своей эффект с течением времени.
2.5.11. actionbar:1/…/6 (bar)
Интерфейс по умолчанию предоставляет некоторое число страниц для панели действий. Эти страница применимы только к нежней левой панели действия, видимой в интерфейсе по умолчанию. К счастью, можно наделать макросов, которые соответствуют разным страницам панели действий, и разместить их на других панелях. Один из примером, позволяет охотникам эмулировать стойки с помощью аспектов:
Quote
/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. 2.5.12. bonusbar:1/…/5
Любой из классов, чьи панели действий основаны на определенных условиях (стойки, режим скрытности, владение и так далее) используют дополнительную, «бонусную панель». Так задается и диапазон ячеек действий, которые заменяют страницу 1 основной панели действий. Например, когда прист контролирует ум какой либо цели, их панель действий использует «бонусную» панель №5. Значит, можно сделать следующий макрос переключений:
Quote
/cast [nobonusbar:5] Mind Control
/cancelaura Mind Control
Для детального описания по классам и их бонусным панелям, читайте http://www.wowwiki.com/API_GetBonusBarOffset. 2.5.13. pet:<имя или тип питомца>
Все классы с питомцами должны оценить полезность этой опции. Она позволяет выбирать нужное действие в зависимости от активного питомца. Можно указывать имя питомца или его тип (Voidwalker, Boar, Imp, Wolf и т.д.). Само по себе [pet] означает любого из питомцев. Вот пример макроса, позволяющий магам выбирать между заклинанием Freeze у элементаля и своим собственным заклинанием Frost Nova:
Quote
/cast [pet] Freeze; Frost Nova
2.5.14. combat
Истинно, если вы в бою.
2.5.15. mounted, swimming, flying, indoors & outdoors
Само собой понятные опции (верхом, плывет, летит, в помещении и вне помещения). Они применимы только к вам, игроку.
2.5.16. flyable
Как было коротко сказано выше, [flyable] определяет, находитесь ли вы с Outland, где разрешены летающие маунты.
2.5.17. party & raid
Возвращает истину, если цель в вашей партии или рейде.
2.5.18. group:party/raid
Эта опция позволяет определять, в каком типе группы вы состоите. [group] эквивалентно [group:party]. [group:raid] включает в себя [group:party]. Это может быть полезно для классов с баффами:
Quote
/cast [group, nomodifier] Arcane Brilliance; [help] [target=player] Arcane Intellect
Если вы в группе, в общем случае макрос наложит Arcane Brilliance. Если вы удерживаете кнопку-модификатор или вы вне партии, макрос прочтет Arcane Intellect на дружественную цель или на вас самих.