В WOW 2.0 макросы и аддоны очень сильно изменились. Недавно Slouken объявил нововведения в функционировании макросов в WoW 2.0, набор опций (условий) для /cast, /use, /target, /focus, /assist, /stopmacro, /cancelaura, /userandom, /castrandom, /castsequence слэш-команд. Этот пост планировался как гайд для чайников по их использованию.
Примечание: Хотя в большинстве приведенных примеров используется "/cast", эти опции применимы ко всем слэш-командам, перечисленным выше.
Большинство старых макросов бесполезны в 2.0. Достаточно сказать, что некоторые типа CastSpellByName() или TargetUnit()больше не работают в бою. Кроме того, большинство "составленных напрямую" макросов так же не будут работать. Однако, вы можете заменить функциональность многих популярных макросов этими новыми Макро Опциями.
На самом деле использование '/cast' очень просто. Формат команды следующий '/cast <spellname>' (кастует максимальный ранг указанного спелла), или '/cast <spellname>(Rank <#>)'. Например:
/cast Greater Heal /cast Arcane Intellect(Rank 3)
В новой системе этот формат работает точно так же, однако вы можете добавить опции, придав тем самым больше гибкости вашей команде. Новый формат команды '/cast':
'/cast [<первый набор опций>] <первый spellname>; [<второй набор опций>] <второй spellname> ; [<третий набор опций>] <третий spellname>; ...'
Принцип работы макроса следующий: проверяется первый набор опций (условий), если они верны (true), то кастуется первый спелл, если они ложны (false), то запускается проверка следующего набора условий, и если они верны, то кастуется второй спелл и так далее. Однако, вы должны помнить, что кастоваться будет только один спелл. Как только набор опций приравнивается 'true' игра кастует соответствующий спелл и эта строка макроса считается выполненной.
Возможно использование следующих опций:
Code
help - равняется 'true' если цель дружественная
harm - равняется 'true' если цель враждебная
combat - равняется 'true' если вы в бою.
stance или stance:# - равняется 'true' если вы в стойке (состоянии), или в конкретной стойке (состоянии) (см. ниже)
stealth - равняется 'true' если вы в состоянии невидимости.
modifier или modifier:shift|ctrl|alt - равняется 'true' если указанная клавиша удерживается нажатой во время запуска команды.
equipped:<item> - равняется 'true' если указанная вещь надета. Вещью может быть соответствующий слот инвентаря, класс или суб-класс вещей.
target=<unit> - Специальная опция. Меняет цель от принятого по умолчанию "target" на любой действующий юнит. (см. ниже)
actionbar:<number> - равняется 'true' если текущая панель actionbar совпадает с указанной.
Новые опции:
Code
pet:<pet type ИЛИ pet name> - равняется 'true' если пет существует. Допустимо использовать тип пета (Owl, Bear, Imp) или имя пета (Fluffy, MrBigglesworth). без модификатора (т.е. просто [pet]) равно 'true' если существует ЛЮБОЙ пет.
mounted, swimming, flying - равно 'true' если вы на маунте, плаваете или летите.
indoors, outdoors - равняется 'true' если вы внутри или снаружи помещения, соответственно.
button:<#> - равно 'true' если указанная кнопка использована для нажатия 'click' спелла, по умолчанию 1 (см. ниже).
channeling:<spell> - равно 'true' если вы кастуете channeling-спелл, равно true если любой спелл удерживается какое-то время.
exists и dead - равно true если цель существует в настоящее время, или умерла, соответственно.
party - равно true если цель является членом вашей группы
raid - равно true если цель является членом вашей группы или рейда
group - равно true если вы в группе
group:party/raid - равно true если вы находитесь в конкретном типе группы.
Новые макро команды:
Code
/castsequence - кастует определенный набор спеллов в последовательности (см.ниже)
show <spell>- показывает macro feedback для указанного спелла
Несколько дополнительных приемов, которые можно использовать: Вы можете добавить 'no' в начале любой опции (кроме target) чтобы инвертировать ее, т.е. 'nocombat' будет работать только если вы НЕ в бою. Разделение опций запятой ',' будет работать как 'and' подстановка; если оба условия выполняются (true), кастуется спелл. Разделение аргументов внутри опции слэшем '/' работает как 'or' подстановка; если один из аргументов true, то запускается команда. Заметьте, это работает только между аргументами внутри одной опции, а не между опциями (так [stance:1/2] верно, а [combat/help] нет). Выбор '?' иконки в редакторе макросов заставит подставить иконку данного спелла, для которого дается описание в макросе.
Несколько полезных примеров:
Code
/cast Greater Heal Очень простой макрос, который кастует Greater Heal на вашу цель.
/cast [help] Greater Heal Одна опция добавлена. Кастуется Greater Heal ЕСЛИ цель дружественная.
/cast [help] Greater Heal; Smite Второе заклинание добавлено. Поскольку оно не имеет опций, то будет кастоваться всегда, когда первое условие не выполняется.
/cast [help, combat] Flash Heal; [help, nocombat] Greater Heal; Smite Этот макрос будет кастовать Flash Heal на дружественную цель, если вы (а не ваше цель) находитесь в бою. Если вы не в бою и цель дружественная, будет кастоваться Greater Heal. Если ни одно из условий не выполняется (т.е.цель не дружественная) будет кастоваться Smite.
/cast [help] Greater Heal; [harm, combat] Smite; [harm, nocombat] Mind Flay Кастуется Greater Heal на дружественную цель, или Smite если игрок в бою, или Mind Flay если игрок не в бою и цель враждебная.
/cast [stealth] Ambush; Backstab Это будет кастовать Ambush если игрок в стелсе, Backstab если нет.
/cast [nostealth] Backstab; Ambush Делает точно то же самое что и предыдущий макрос, только другим способом.
/cast [actionbar:1] Greater Heal; [actionbar:2] Smite Кастуется Greater Heal если текущая панель actionbar is #1, Smite если она #2, ничего если панель 3+ выбрана.
/cast [harm] Polymorph /stopmacro [noharm] /p Sheeping %t! DO NOT TOUCH! Этот макрос кастует Polymorph если цель враждебная, потом останавливает макрос, если цель не враждебная (т.е. если polymorph не исчез). Затем он говорит группе, что цель была заовцована. Заметьте, что благодаря '/stopmacro' команде, если цель не была заовцована, группа не получит сообщения (что сокращает ненужный спам).
/cast [nopet] Call Pet; Revive Pet Этот макрос вызывает вашего пета если у вас его нет в данный момент, иначе (если есть, но сдох) пытается кастовать Revive Pet.
/cast [pet:owl] Dive; [pet:cat] Dash; [pet] Growl Этот макрос кастует Dive если у вас сова, Dash если кот, или Growl если у вас кто-либо другой.
/cast [pet:Voidwalker] Sacrifice; [pet:succubus] Seduction Кастует Sacrifice если у вас вызван Войд, Seduction если суккуба.
/use [nomounted,outdoors] Black War Steed Bridle Это пытается посадить вас на лошадь если вы еще не на лошади и находитесь вне помещения.
/cast [target=pet,dead] Revive Pet; [nopet] Call Pet; Mend Pet Это воскресит вашего пета, если он мертв, вызовет его, если он не вызван, либо будет лечить вашего пета.
/cast [group:party] Arcane Brilliance; Arcane Intellect Кастуется AB если вы в пати, или AI если нет.
/cast [raid] Blessing of Wisdom Кастует Blessing of Wisdom если ваша цель находится в одном рейде с вами.
Состояния (Стойки):
Stances работают таким же образом. Если не указан номер стенса, то она равна 'true' если игрок находится в любом стенсе. (Замечание для Warrior'ов, вы ВСЕГДА в каком-либо стенсе). если номер указан, то проверяется, действительно ли указанная форма активна в данный момент.
Каждый класс имеет разные номера для своих стенсов. Вот перечень стенсов с номерами:
Class: | Warrior | Priest | Druid | Rogue
Stance:1 | Battle | Shadowform | Bear | Stealth
Stance:2 | Defensive | |Aquatic
Stance:3 | Berserker | | Cat
Stance:4 | | | Travel
Stance:5 | | |Moonkin/Tree
Паладинские ауры больше не рассматриваются как Stances системой Макро-опций.
Заметьте, что если вы пропустили стенс (как Warrior, никогда не делавший Defensive Stance квест) то ваш перечень стоек будет другим, т.е. Berserker Stance будет stance 2.
Несколько примеров:
Code
/cast [nostance] Bear Form если вы не в какой-либо форме, это превратит вас в медведа.
/cast [stance:1] Overpower; [stance:2] Sunder Armor; [stance:3] Whirlwind Кастуется Overpower в Battle stance, Sunder Armor в Defensive, и Whirlwind в Berserker stance
/cast [stance:1] Growl; [stance:3] Claw Кастует Growl в Bear form, или Claw в Cat form.
/cast [nostance:3] Cat Form Превратит вас в кота, если вы еще не кот. Если вы уже в Cat form, макрос НЕ переключит вас из этой формы.
Перечень слотов инвентори: Two-Hand Bag Shirt Chest Back Feet Finger Hands Head Held In Off-hand Legs Neck Ranged Chest Off Hand Shoulder Tabard Thrown (ranged slot items like thrown daggers) Trinket Waist One-Hand Main Hand Off Hand Wrist
Несколько примеров проверки экипировки:
/
Code
cast [equipped:Two-Handed Swords] Mortal Strike; Heroic Strike Кастует Mortal Strike если вы используете двуручный меч.
/cast [equipped:Two-Handed Swords/Two-Handed Maces/Two-Handed Axes/Polearms] Mortal Strike Здесь используется '/' модификатор для установки 'or' условия. Этот макрос кастует Mortal Strike используется ЛЮБОЙ из указанных видов оружия.
/cast [equipped:Shields] Shield Bash Кастует Shield Bash если вы используете щит.
/cast [equipped:Shields, equipped:Daggers] Shield Slam Кастуется Shield slam только если вы используете кинжал И щит.
/cast [noequipped:Shields, equipped:Off Hand] Rampage Кастует Rampage если вы НЕ используете щит, И у вас есть что-то в off-hand слоте. В теории этот макрос активируется ТОЛЬКО если вы сражаетесь двумя руками (ну, блин, не переводится точно if you are dual-wielding).
Опция [button:<x>] работает так же как кнопка модификатора. Обычно, если вы делаете left-click на кнопку, it выполняется действие-спелл, или в нашем случае макрос. Однако, если вы укажете button-опцию, вы частично измените действие макроса.
Кнопка (button) по умолчанию 1, левая кнопка мыши. Причем если вы активируете действие с помощью забинденой клавиши, это расценивается как левый клик мышью. Нумерация кнопок такова: 1 или LeftButton 2 или RightButton 3 или MiddleButton 4 или Button4 5 или Button5 ... Или любыи клавиши, переназзначенные 'by the secure state headers'. Если честно я не знаю, что значит эта последняя фраза, я просто цитирую slouken.
/cast [button:2,target=player] Flash Heal; [help] Flash Heal Этот макрос кастовал бы Flash Heal на дружественную цель, ИЛИ если вы кликнете его ПРАВОЙ кнопкой мыши, он будет кастовать Flash Heal на вас.
[target=unit] это специальная опция. Вместо того, чтобы приравнивать ее к 'true' или 'false', она меняет цель последующего спелла И цель остальных параметров (опций).
"Unit"ом может быть любой действующий юнит, т.е. "player" (сам игрок), "target", "targettarget", "party1",
"party1target", и т.д.
Кстати, любой спелл имеет цель по умолчанию равную "target". Так, например:
/cast [help] Greater Heal
это то же самое, что и
/cast [target=target, help] Greater Heal
Если вы не добавили [target=unit] опцию, то по умолчанию это будет ваша текущая цель. Возможные варианты [target=unit]:
/cast [target=player] Flash Heal Этот макрос будет всегда кастовать flash heal на вас (на игрока). Имейте в виду, что ваша текущая цель не изменится.
/cast [help] Flash Heal; [target=targettarget] Flash Heal Это кастует Flash heal на вашу текущую цель, если она дружественная, ИЛИ кастует Flash Heal на цель вашей текущей цели.
/cast [help, combat] Flash Heal; [help, nocombat] Greater Heal; [target=targettarget, help, combat] Flash Heal; [target=player] Greater Heal
Это будет 1) кастовать flash heal если цель дружественная и вы находитесь в бою, 2) кастовать greater heal если цель дружественная и вы НЕ в бою, 3) кастовать Flash Heal на цель вашей цели если вы в бою и тот юнит дружественный, если не выполняется ни одно из этих условий, макрос будет кастовать Greater Heal на вас.
если вы используете юнит "none" это будет работать, как если вы не имеете текущей цели. Например:
/cast [target=none] Dispel Magic
Кастуется Dispel Magic и затем просят указать цель, при этом неважно какая действительно цель у вас выбрана.
Добавлено (26.03.2011, 20:33)
---------------------------------------------
Прошу закрепить тему, так как информация полезная