Недавно, Blizzard предоставило собственное официальное руководство по созданию макросов. Однако, хотя руководство от разработчиков World of Warcraft и может показаться кому-то более доступным в изложении, оно далеко незаконченное. Руководство от Cogwheel на данный момент самое полное и рассказывает о всех аспектах написания макросов. Часть 1 знакомит с основами макро-писания.
Содержание 1. Часть 1: Основы макросов
1.1. Что такое макрос?
1.2. Как создать макрос?
1.3. Как использовать заклинания?
1.3.1. Использования заклинаний без переключения
1.3.2. Замечания об именах заклинаний и их уровнях
1.4. Как использовать предметы или тринкеты?
1.5. Множественные действия за один щелчок мышью
1.6. Назначение целей и выбор объектов
1.6.1. /targer, /targetexact
1.6.2. Другие команды для прицеливания
1.6.2.1. /assist
1.6.2.2. /crealtarget
1.6.2.3. /targetlasttarget
1.6.2.4. /targetlasttarget
1.6.2.5. /targetlastenemy, /targetlastfriend
1.6.2.6. /targetenemy, /targetfriend
1.6.2.7. /targetparty, /targetraid
1.7. Как управлять своим питомцем (pet)
1.7.1. /petattack
1.7.2. /petfollow
1.7.3. /petpassive, /petdefensive, /petaggressive
1.7.4. /petautocaston, /petautocastoff, /petautocasttoggle
1.8. Управление ответной реакцией кнопок и знаком вопроса (?) с помощью #show
1.9. Другие консольные команды
1.9.1. Одевание предметов
1.9.2. Последовательности заклинаний и предметов
1.9.3. Случайные заклинания и предметы
1.9.4. Атака
1.9.5. Манипулирование панелью действий
1.9.6. Удаление баффов
1.9.7. Выход из форм
1.9.8. Прерывание заклинаний
1.9.9. Преждевременное прерывание макросов
1.9.10. Спешивание
1.9.11. Сохранение целей для последующих нужд
1.9.12. Симулирование нажатия клавиш
1.10. Продвинутые скрипты
1.10.1. Чего не могут скрипты
1.10.2. Что же такое скрипт?
Часть 1: Основы макросов
1.1. Что такое макрос?
Макрос это, попросту говоря, список консольных команд. Я уверен, что вы знакомы с некоторыми из них:
/say (/s)
/whisper (/w, /talk, /t)
/emote (/e, /em, /me)
/dance
И для вас ПвП-игроков, я не могу забыть о /spit
С макросами, мы можем не только использовать команды, как кнопки действий, но мы также можем использовать эти команды одновременно. Каждая из уникальных команд начинается с новой строчки и пишется точно так же, как и в окне чата. К примеру, если вы хотели иметь макрос, выкрикивающий «Танцуют все!» и затем начинающий ваш танец, вы бы записали это так:
/y Танцуют все!
/dance
Полный список консольных команд можно найти по адресу http://www.wowwiki.com/List_of_Slash_Commands однако на данный момент, некоторые из команд, добавившихся в патче 2.0, еще не добавлены туда. WoWWiki, чудесный источник дополнительной информации о макросах, особенно по скриптам с использованием команды /run (о которой мы еще поговорим далее).
Примечение: Заранее хочу заметить, что макросы всегда выполняются полностью. Это значит, что если вы нажали кнопку, макрос исполняет каждую команду от начала и до конца, перед тем как вернуть контроль игре. Это особенность имеет два важных момента. Во-первых, если вы напишите макрос, требующий долгого исполнения (к примеру, /run for i=1, 100000000 do end), игра повиснет на все время, пока исполняется макрос.
Во-вторых, и что еще важнее, нет ни какого способа дождаться конца макроса, не вешая игру. Этот факт станет более очевидным, когда мы начнем разбираться с командой /cast и ей подобными. Некоторые аддоны могут предоставлять способ отсроченного исполнения команд, но они могут использоваться лишь в случае «щадящих» функция вроде общения, эмоций и посылке команд другим аддонам (хотя, одевание оружия во время боя тоже разрешено).
1.2. Как создать макрос?
Для начала откройте окно макросов. Вы можете сделать это, открыв основное меню и выбрав пункт Macros, или же набрав команду /macro (/m) в окне чата. В верхней части окна, вы видите 2 закладки: General Macros (Общие макросы) и Ваше_имя Specific Macros (Специальные макросы для этого персонажа). Общие макросы хранятся отдельно для каждого аккаунта и доступны всем вашим персонажам. Специальные макросы, исходя из их названия, доступны только тому персонажу, в чьем профиле они созданы. Сразу же под закладками находиться таблица с 18 ячейками, где отображаются макросы. Ниже, панель, отображающая текущий выбранный макрос с кнопкой Change Name/Icon (Сменить Имя/Иконку). Еще ниже – поле для редактирования, где вы собственно и вводите макрос. И в самом конце, можно увидеть кнопки, которые, уверен не требуют разъяснения.
Чтобы создать макрос, нажмите кнопку New внизу окна. Это приведет к появлению другого меньшего окошка, где можно выбрать иконку для нового макроса и ввести его имя. Если выбрать иконку со знаком вопроса (?), WoW сам автоматически подберет иконку, соответственно используемым умениям или предметам в этом макросе. Когда вы выбрали иконку и имя для нового макроса, нажимайте кнопку Okay.
Несколько замечаний: Вы можете управлять, какая иконка отобразиться вместо знака вопроса посредством команды #show. Хотя и допустимо называть макросы одинаково, лучше избегать таких ситуаций, так как функции аддонов или же некоторые макро-команды обращаются к макросам по имени, что может привести к некорректной работе одноименных макросов. Вы также можете добавлять пользовательские иконки в список (читайте Часть 3).
Вы наверное заметили, что иконка макроса которую вы выбрали, добавилась в таблицу из 18 ячеек, о которой упоминалось раньше (еще на иконке отображается ее имя - столько символов, сколько помещается). Созданный новый макрос будет автоматически выбран, так что самое время егонзаписать. Щелкните на поле редактирования и начинайте вводить.
Примечание: Макрос не может быть длиннее 255 символов. Ходят слухи, это ограничение существует потому, что когда-нибудь макросы будут храниться на сервере. Пока этого не случилось, читайте Часть 3, чтобы узнать, как хранить макросы на нескольких компьютерах. Также существуют аддоны, расширяющие возможности хранения макросов используя безопасные шаблоны.
Когда закончили вводить ваш макрос, просто перетащите иконку из таблицы и поместите на вашу панель действий. Макрос автоматически сохраняется в момент использования или когда закрывается окно макросов. Щелкните кнопкой, и вуа-ля, готов ваш макрос!
1.3. Как использовать заклинания?
Во время естественного игрового процесса, вы вряд ли вводите множество консольных команд, настолько полезных, чтобы написать из них макрос. Конечно, иногда макросы для эмоций могут сделать ролевой отыгрыш более интересным, но все же… Должно же быть нечто больше, на что годятся макросы…
Так и есть. Познакомьтесь с командой /cast – наиболее часто используемой командой в макросах. Команда /cast позволяет выполнять заклинания по их именам из вашей книги заклинаний (или из книги заклинаний вашего питомца). Простейший пример:
/cast Shadow Word: Pain
Этот макроc прочитает на текущую цель заклинание Shadow Word: Pain наивысшего ранга. Макрос поведет себя также, как если бы вы перетащили на это же место заклинание SW:P из вашей книги заклинаний. Панель действий распознает код заклинания и покажет время кулдауна и диапазон действия на его иконке. Более того, если вы выбрали в качестве иконки знак вопроса, о чем упоминалось ранее, панель действий даже покажет иконку SW:P.
«Хм, хм…» - подумаете вы. Почему просто не положить нужное заклинание на панель действия? Вот здесь-то, совмещение нескольких команд придется очень кстати, и это то, что делает макросы полезными. Представьте, что вы маг и хотели бы сообщать вашей партии, когда превращаете кого-то в овцу. Ничего проще – просто вставьте ваше заклинание и сообщение по /p в макрос. Вообще-то, существует и лучший способ сделать макрос для этой цели, как например, мой аддон CCWarn (http://www.wowinterface.com/downloads/info6826-CCWarn.html), столь бессовестным способом рекламируемый в этот момент. Но для понимания механизмов использования макросов – это простой и доступный пример.
/cast Polymorph
/p Превращаю в овцу %t! Кто нарушит, тот и танкует!
Замечание: так как макрос исполняется весь сразу, команда /p будет выполнена во время начала чтения заклинания, не заботясь о том выбрана ли корректная цель или же заклинание Polymorph на кулдауна.
Это значит, что эти команды можно разместить в любом порядке и результат будет одинаковый. Если же вы хотите сказать что-либо после окончания чтения заклинания, вам потребуется помощь аддона, такого как AfterCast, http://www.wowinterface.com/downloads/info4167-AfterCast.html. AfterCast создает задание на выполнении команд после того как вы прочтете заклинание (с известными условиями, о которых говорилось в 1.1 Что такое макрос). Пример:
/aftercast /p Click the portal to get %t’s lazy butt over here
/cast Ritual of Summoning
1.3.1. Использования заклинаний без переключения
Как упоминалось выше, команда /cast ведет себя также, как если бы вы перетащили нужное заклинание на панель действий. Это значит, что переключаемые умения будут включаться и выключать каждый раз при исполнении макроса. Если вы хотите, чтобы макрос всегда включал заклинание, без переключений, нужно добавить знак восклицания (!) перед именем заклинания. Вот пример макроса, который будет пытаться активировать Auto Shot независимо от того стреляете вы уже или нет.
/cast !Auto Shot
Используя эту возможность и команду /castsequence (мы еще расскажем о ней подробнее), можно написать макрос для охотников:
/castsequence reset=target Steady Shot, !Auto Shot
1.3.2. Замечания об именах заклинаний и их уровнях
Команда /cast весьма требовательна к имени заклинания. Чтобы удачно выполнить заклинание, необходимо правильно написать его имя, правильно использовать разделители, пробелы и так далее. Лучший способ гарантированно ввести имя заклинания это открыть книгу заклинаний и вовремя написания макроса поместить курсор в место где нужно вставить заклинание, и зажав shift кликнуть на заклинание в книге. Заклинание и его ранг будут правильно вставлены, как в следующем примере:
/cast Shadow Word: Pain(Rank 5)
Можно не рискуя удалить (Rank 5) из макроса и тогда он автоматически выберет наивысший ранг заклинания – конечно, если вы так пожелаете; но существует достаточно ситуаций, когда выигрышно использовать определенный ранг заклинания (например, как особое координирование заклинания Banish у варлока). Но будьте осторожны. Некоторые заклинания со скобками в их именах требуют особой внимательности. Вот пример - если вставлять через shift-клик заклинание друида Faerie Fire, то получим следующее:
/cast Faerie Fire (Feral)(Rank 2)
Если удалить конечное (Rank 2), внутренние механизмы запутаются с частью (Feral), подумав что это ранг заклинания и оно не сработает. Чтобы все работало, как нужно, необходимо изменить макрос так:
/cast Faerie Fire (Feral)()
Пустые скобки обрабатываются как ранг, так как находятся в конце записи. И потому как они пусты, интерпретатор команд выберет наивысший ранг заклинания для прочтения. Вы также можете использовать и другие заклинания со скобками, но помните о ограничении в 255 символов. К сожалении, размер макроса все еще проблема.
1.4. Как использовать предметы или тринкеты
Просто: также как и заклинания. Команда для использования предмета (как некоторые могли догадаться) это - /use. Как и в случае с /cast, в простейшей форме она использует как параметр имя предмета, который вы хоотите использовать.
/use Green Mechanostrider
Есть еще другие формы использования команды /use:
/use <ячейка инвентаря>
Такой способ, позволяет использовать предмет в нужной ячейке. Для полного списка номеров ячеек смотрите http://www.wowwiki.com/InventorySlotId. Вот пример:
/use 13
Эта команда использует тринкет из верхней ячейки.
/use <сумка> <ячейка>
Как видно, эта форма позволяет использовать предмет в нужной ячейке какой-либо сумке. Скажем, вы храните еду для вашего питомца в первой ячейке первой сумки. Теперь вы можете написать простой макрос для кормление:
/cast Feed Pet
/use 0 1
Сумки пронумерованы от 0 до 4, начиная слева (несменный рюкзак всегда имеет номер 0), ячейки нумеруются начиная с 1 слева направо, сверху вниз (так же, как вы читаете эти строки).
1 2 3 4
5 6 7 8
…
или
1 2
3 4 5 6
7 8 9 10
…
Чтобы избежать путаницы, скажу вам, что команды /cast и /use это одно и тоже. /cast может использовать предметы, а /use может читать заклинания. Как можно было заметить, это не очень-то и полезно для простых макросов. Однако, когда вы начнете работать с опциями макросов и их последовательностями, вы будете довольны, возможностью смешивать заклинания и предметы одной командой.
1.5. Множественные действия за один щелчок мышью
В общих случаях, вы не можете использовать в макросах больше одного заклинания по единому нажатию мышки. Большинство заклинаний и некоторые предметы приводят к срабатыванию так называемого глобального кулдауна (ГК), которые не дает делать много действий за один раз. Даже если заклинание не будет выполнено, оно приведет к срабатыванию глобального кулдауна и не даст выполниться последующим командам /cast в макросе. Это не было проблемой до патча 2.0, по тому можно встретить до сих пор макросы вида:
/cast Overpower
/cast Execute
/cast Mortal Strike
/cast Sunder Armor
Такие макросы больше не работают. Как только Owerpower не сработает, игра заблокирует выполнение всех последующих заклинаний, даже не смотря на то, что глобальный кулдаун не сработал.
Но есть и немного хороших новостей. Определенные заклинания могут выполнятся одновременно одни единственным макросом. Все мгновенные заклинания, не запускающие ГК, могут сопровождаться другим заклинанием («Next Melee» умения вроде Heroic Strike тоже попадают в эту категорию). Подсказка при наведении на заклинание, скажет является ли оно мгновенным, но чтобы узнать, срабатывает ли ГК, нужно сперва использовать его и посмотреть на результат. Вот пример:
/use Talisman of Ephemeral Power
/cast Arcane Power
/cast Presence of Mind
/cast Pyroblast
1.6. Назначение целей и выбор объектов
Прицеливание еще одна часто используемая возможность макросов. Достигается она применением специальных консольных команд, меняющих вашу цель, или же при использовании опции макросов [targer=], для тех команд, которые это допускают. Когда вы используете макро-опции, вы в действительности читаете заклинание по цели напрямую, без смены текущей цели. Опции макросов мы рассмотрим очень детально в Части 3. Сейчас же вернемся к разбору команд для прицеливания.
1.6.1./targer, /targetexact
Наиболее простая команда прицеливания это /target. Использовать ее также просто:
/target Cogwheel
/target выбирает цель по ближайшему совпадению, что означает - если я буду стоять около вас, и вы исполните /target Cog, а рядом ни кого с таким именем не окажется, макрос выберет целью меня. Это может быть как плюсом так и минусом в конкретных ситуациях. К несчастью, эта команда также выбирает неподходящие цели (вроде трупов). Это делает макросы с прицеливанием менее полезными, чем может показаться на первый взгляд.
/target Blackwing Mage
/cast Curse of Agony
Если рядом не окажется этих Blackwing Mage, макрос может выбрать целью кого-то из вашего рейда, с буквами B и L в имени. Хотя они и в безопасности от вашего проклятья, это все равно сбивает с толку. Чтобы выручить из таких ситуаций, патч 2.3 ввел команду /targetexact.
/targetexact Blackwing Mage
/cast Curse of Agony
Этот макрос будет работать как и ожидается, хотя целью может оказаться что-либо несущественное за 100 ярдов от вас.
В дополнение к имени цели, вы можете добавлять также ID цели. ID цели это способ определить конкретного персонажа, монстра, NPC и так далее. К примеру, вы можете обращаться к вашей текущей цели по ID «target» (понятно, что это не самое полезное для команды обсуждаемой в этот момент). Ваш персонаж доступен по ID «player», а если у вас есть питомец – его ID «pet». Возможно дописывать слово «target» в конце любого ID, чтобы получить цель, на которую прицелен этот ID. По этому поводу есть шутка о Кевине Бэйкон, сделавшего макрос:
/target targettargettargettargettargettarget
Ссылка http://www.wowwiki.com/UnitId содержит список всех разрешенных ID целей.
1.6.2. Другие команды для прицеливания
Вот краткий обзор других команд для прицеливания:
/assist
Сама по себе, команда /assist устанавливает целью цель вашей цели (путано, но надеюсь понятно). Если вы нацелены на меня, а я нацелен на Iriel, /assist переключит вашу цель на Iriel. Можно также указать имя цели или ID для команды /assist, чтобы сменить цель на то, куда нацелен указанный в параметрах объект:
/assist Cogwheel
Существует опция интерфейса, автоматически переключающая вас в режим атаки, после смены цели по /assist.
/cleartarget
Сбрасывает цель.
/targetlasttarget
Это команда возьмет целью вашу предыдущую цель. Если до этого у вас не было цель, ничего не произойдет.
/targetlastenemy, /targetlastfriend
Эти команды действуют похожим на команду /targetlasttarget образом, но выбирают целью последнего врага или последнюю дружественную цель.
/targetenemy, /targetfriend
Эти команды меняют цель на следующие по их типу. /targetenemy идентично нажатию кнопки TAB, а /targetfriend то же, что нажатие ctrl-TAB (при настройках клавиатуры по умолчанию). Можно также добавить параметр «1», который переключает цели в обратном порядке (как нажатие shift-TAB в случае команды /targetenemy 1)
Замечание: эти команды можно использовать в макросе только один раз.
/targetparty, /targetraid
Переключение целей по ближайшим членам рейда или партии. Как и /targetenemy, можно добавлять в параметры 1, чтобы обратить порядок переключений целей.
1.7. Как управлять своим питомцем (pet)
Как было рассказано в разделе об использовании заклинаний, можно использовать умения вашего питомца по их именам с помощью команды /cast. Однажды, Blizzard были вынуждены изменить имя умения элементаля у магов с Frost Nova на Freeze, так как невозможно было использовать ее в макросах. Каждый, у кого есть питомец, знает, что это далеко не исчерпывающий список возможностей управлять своим питомцем. К счастью, череда патчей с выходом Burning Crusade внесла целый ворох команд для управления питомцами:
/petattack
Посылает вашего питомца в бой на вашу текущую цель. Можно в параметрах указать имя цели или ее ID, и питомец станет атаковать эту цель.
/petfollow
Отдает приказ питомцу следовать за вами, отменяя атаку если есть необходимость.
/petpassive, /petdefensive, /petaggressive
Переключает режим реагирования у вашего питомца, по типу кнопок на его панели действий.
/petautocaston, /petautocastoff, /petautocasttoggle
Эти команды управляют автоматическим использованием умений у вашего питомца. Первая команда всегда включает авто-использование, вторая всегда выключает, третья – переключает. Пример:
/petautocasttoggle Torment
1.8. Управление ответной реакцией кнопок и знаком вопроса (?) с помощью #show
По умолчанию, WoW использует первое заклинание или предмет, которые используется в макросе, для отображения кулдауна, радиуса действия или доступности этой кнопки, а также для выбора иконки, если вы использовали знак вопроса при создании макроса. Возьмем наш макрос с многими заклинаниями, приведенный ранее:
/use Talisman of Ephemeral Power
/cast Arcane Power
/cast Presence of Mind
/cast Pyroblast
В случае этого макроса, WoW выбирает Arcane Power для отображения данных о макросе. На самом деле, это вряд ли то, что вам нужно. Ключевой точкой этого заклинания – выполнение Pyroblast. Первые строки существуют как прелюдия, чтобы сделать Pyroblast более эффективным. Чтобы кнопка с макросом выглядела и вела себя как будто первое заклинание Pyroblast, нужно добавить в начале макроса следующую строку:
#show Pyroblast
Если вы использовали знак вопроса в качестве иконки макросу, кнопка примет вид Pyroblast без каких-либо ваших усилий. Параметры для #show (в нашем случае Pyroblast), работают так же как команды /cast и /use. Можно использовать имя заклинания, имя предмета, ID предмета (item:12345), ячейку инвентаря, или сумку и номер ячейки в ней.
Похожей на #show является опция #showtooltip. Обычно, когда вы наводите мышко поверх макроса в панели действий, подсказка отображает имя этого макроса. Пользы от этого мало (особенно, если использовать аддон TheoryCraft дающий детальную информацию в подсказках о заклинаниях). #showtooltip позволяет назначит заклинание, который будет отображаться в виде подсказки при наведении на макрос, как и с опцией #show. Если вы используете #showtooltip, нет нужды использовать #show.
Если вы довольны тем заклинанием, которое выбрал WoW для отображения к вашему макросу, можно использовать #showtooltip без параметров, чтобы сэкономить немного места. WoW будет отображать заклинание/предмет, что он подобрал для макроса, но еще и станет показывать подсказку для него.
Прошу заметить: в отличии от консольных команд, #show и #showtooltip должны ОБЯЗАТЕЛЬНО быть написаны в нижнем буквенном регистре.
1.9. Другие консольные команды
Теперь, когда вы получили основной базис знаний, я хотел бы кратко рассмотреть другие консольные команды, доступные для ваших нужд. Некоторые из них, могут показаться несколько бессмысленными на первый взгляд, но когда вы скомбинируете их с макро-опциями описанных в Части 2, можно будет делать много интересных финтов.
1.9.1. Одевание предметов
Существует две команды для одевания предметов: /equip и /equipslot. /equip просто использует имя предмета и одевает его в слот по умолчанию, как если бы вы щелкнули по предмету правой кнопкой в вашей сумке (т.е. одноручное оружие будет одето в основную руку). /equipslot использует в параметре ID ячейки (для подробностей читай (http://www.wowwiki.com/InventorySlotId) и имя предмета и одевает его в указанную ячейку. Примеры:
Надевает оружие в ячейку по умолчанию:
/equip Honed Voidaxe
Одевает тринкет в нижний тринкет-слот:
/equipslot 14 Carrot on a Stick
Заметка: Аддоны могут использовать функционал по одеванию предметов напрямую, даже во время боя. Тот же механизм доступен для команд одевания с использованием аддонов вроде AfterCast или Chronos. Если аддон сперва проверяет безопасность команды, у вас могут возникнуть проблемы; команды одевания включены в список безопасных, хотя такими и не являются.
1.9.2. Последовательности заклинаний и предметов
Множество раз вы будете использовать серии заклинаний или каких-то предметов в определенном порядке практически на каждом монстре, с которыми будете вести бой. Чтобы упростить работу, в нашем распоряжении есть команда /castsequence. /castsequence принимает список заклинаний и/или предметов, разделенные запятыми. Здесь используются те же правила что и при /cast и /use. Это значит, что вы можете чередовать комбинации названий заклинаний, имен предметов, ID предметов, ячеек сумок и инвентаря. Каждый раз, выполняя макрос, он активирует текущий предмет или заклинание. Если использование было удачным, последовательность переходит к следующей позиции. Вам нужно повторно активировать макрос чтобы использовать все заклинания в последовательности. Когда макрос достигнет последней позиции в списке, он начнет выполнять последовательность сначала. Пример:
/castsequence Immolate, Corruption, Curse of Agony, Siphon Life
Этот макрос может использовать варлоками в качестве открывающей атаки. Заметьте, если Immolate не сработает по какой-либо причине (нет маны, вне диапазона действия, вы заглушены и так далее), последовательность останется в этой точке. Из-за этого, вы не можете использовать /castsequence для спама подобного макроса:
/castsequence Overpower, Execute, Mortal Strike
Перед списком заклинаний, можно также указывать условие для сброса, начинающее последовательность до того как оно достигнет конца. Общий синтаксис для условий сброса следующий:
reset=n/target/combat/shift/alt/ctrl
Где n – число секунд. Вы можете указывать любое количество этих условий, разделенных косыми чертами «/». Секунды используются как таймаут для команды. Каждый раз во время выполнения последовательность сбрасывает таймер. Если макрос не был использован вами в течении заданного времени, последовательность начнется заново. Это очень важное отличие, так как таймер сброса невозможно использовать, чтобы подсчитать время кулдаунов. target сбрасывает последовательность при смене целей; combat – если вы выходите из режима боя; shift, alt и crtl – сбрасывают, если вы активируете макрос с зажатием одной из этих кнопок. Пример:
/castsequence reset=10/shift Spell 1, Other Spell, Some Item
Если использовать знак вопроса как иконку макроса, WoW автоматически будет изменять ее соответственно текущему элементы последовательности. Если перед /castsequence вставить команды /cast или /use, они будут конфликтовать и на данный момент нет способа обратить внимание WoW именно на последовательность.
1.9.3. Случайные заклинания и предметы
Одним из наиболее частых запросов на этом форуме – макрос использующий случайный маунт. Это очень просто, благодаря добавленных команд /castrandom и /userandom. Как и в случае /castsequence, /castrandom и /userandom использует в параметрах список заклинаний и/или предметов, разделенных запятыми и выбирает случайный элемент из списка при выполнении команды. Пример:
/castrandom Swift Green Mechanostrider, Black Battlestrider, Summon Dreadsteed
1.9.4. Атака
Есть две команды специально существующих для атаки по цели: /startattack и /stopattack, начинающий или прекращающих атаку. Команда /startattack также использует параметр в виде имени или ID для атаки заданной цели. Пример:
/startattack Cogwheel
Если нужен макрос, который ведет себя так же, как и умение Attack (т.е. переключающий атаку, а не только начинающий или прекращающий ее), можно делать это так:
/cast Attack
1.9.5. Манипулирование панелью действий
Имеются две команды, позволяющие переключать страницы панели действий: /changeactionbar и /swapactionbar. /changeactionbar использует параметром одно число и всегда переключает панель на эту страницу. Одним из возможных применений – эмуляция позиций-стансов (stances) у хантеров, за счет пары макросов вида:
/cast Aspect of the Hawk
/changeactionbar 1
или
/cast Aspect of the Monkey
/changeactionbar 2
/swapactionbar использует параметрами два номера страниц и переключает между ними во времякаждого исполнения. Если у вас активна другая страница панели действий, команда сменит ее на первую из двух.
/swapactionbar 1 2
1.9.6. Удаление баффов
Команда /cancelaura позволяет удалять ненужные баффы. Например, так может снимать бафф в макросе с помощью такой команды:
/cancelaura Blessing of Salvation
1.9.7. Выход из форм
За исключением воинов, любой класс со стансами (stances) (друиды, присты с Shadowform, и прочие) могут использовать команду /cancelform чтобы выходить из текущей формы. Значит, можно делать нечто в духе:
/cancelform
/use Super Healing Potion
1.9.8. Прерывание заклинаний
/stopcasting, как можно догадаться, используется для прерывания заклинания во время его использования. Это полезно для создания макроса отмены, прерывающего любые действия выполняемые вами в данный момент, в угоду чего-то более важного. Мой варлок, к примеру, пользуется таким макросом:
/stopcasting
/cast Shadowburn
1.9.10. Преждевременное прерывание макросов
/stopmacro одна из тех команд, бесполезных сами по себе, кроме тех случаем когда используется вместе с опциями макросами. Ее основное использование – создание «провальной» логики, предупреждающей исполнение макроса при срабатывании определенных условий. Для примера смотрите раздел «Использование фокуса» в конце Части 2.
1.9.11. Спешивание
/dismount
Ну что тут еще сказать…
1.9.12. Сохранение целей для последующих нужд
Команда /focus разрешает сохранять цель, чтобы вернуться к ней позже. К примеру, скажем ваш лидер рейда отдает указание превратить цель в овцу. Первым делом, выберете монстра, и введите /focus. Теперь воспользуйтесь макросом, чтобы прочесть заклинание на фокусную цель.
/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 символов. Поместите сколько влезет в первый макрос, дописав в конце следующую строку
/click MultiBarRightButton1
Остальную часть кода поместите в новый макрос, который затем вставьте в MultiBarRightButton1 (это первая кнопка правой вертикальной панели действий).
Можно также делать такие вещи, которые обычно не доступны в макросах или требуют сложных скриптов на Lua. Вот пример макроса, который автоматически выкупает и подтверждает выкуп на лоте аукциона (убедитесь, что выбрали нужный лот; все случайно неверные покупки будут на вашей совести):
/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), прошепчет всем в вашем рейде просьбу сменить цель, если она совпадает с вашей. Это поможет им избежать сбивания с монстра состояния овцы, которое накладывает этот макрос.
/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 символов; вам часто придется «срезать углы» чтобы засунуть ваш макрос в этот предел. Вторая – необходимо чтобы весь скрипт находился на в одной строке. При более идеальных условиях, этот скрипт мог бы выглядеть так:
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