Varic | Дата: Вторник, 08.11.2011, 20:06 | Сообщение # 1 |
Ник: Varic
Класс:
Сервер:
|
Данная статья расскажет вам о том, как писать макросы. Макрос – это набор слэш команд. Обычные слэш команды выглядят следующим образом:
Code /say (/s) /whisper (/w, /talk, /t) /reply (/r) /emote (/e, /em, /me) /dance
При помощи макросов эти команды можно будет назначить на определенные кнопки, а также станет возможным использовать их одновременно. Каждая команда должна быть написана с новой строки и иметь точно такой синтаксис, как если бы вы писали её в чате. Например, макрос, который заставит вашего персонажа закричать "Танцуют все!" и пуститься в пляс, будет выглядеть так:
Code /y Танцуют все! /dance
Примечание: должен вас предупредить, что макросы запускают все одновременно. Это означает, что после нажатия кнопки макрос исполняет каждую команду от начала до конца, прежде чем он возвратит контроль игре. Это дает два важных эффекта. Во-первых, если вы пишите длинный макрос, который будет очень долго исполнятся (например, /run for i=1, 10000000 do end), игра заморозится до тех пор, пока макрос не выполнится. Во-вторых, наиболее важный факт – нет способа подождать в макросе без заморозки игры. Это факт становится более очевидным, когда вы используете команду /cast или что-то подобное.
Создание макросов
Заклинания
Во время вашей игры вы врядли будете писать много слэш команд, которые могут быть полезными для макросов. Конечно, обычная команда эмоции может придать ролевой антураж вашей игре, но не более.
Введите /cast – самую наиболее используемую команду в макросах. Она позволяет произнести любое заклинание из вашей книги заклинаний или заклинание вашего питомца. Самый простой пример макроса:
Code /cast Shadow Word: Pain
Этот макрос повесит Слово тьмы боль на вашу цель. Макрос ведет себя точно также, как если бы вы просто использовали заклинание с панели заклинаний. Игра распознает макрос как заклинание, покажет кулдаун и расстояние до цели. Вы даже можете выбрать вашему макросу такое же изображение, как и у самой магии.
Зачем же использовать макрос, если можно просто поставить магию на панель? Ответ прост. Макросы позволяют комбинировать множество команд, и поэтому они столь полезны.
Представьте, что вы маг и хотите объявить вашей группе, когда вы овцуете кого-либо. Для этого вставьте заклинание и сообщение через /p в макрос:
Code /cast Превращение /p Овцую %t!
Примечание: Макрос запускает все сразу, поэтому вы скажете свою реплику сразу после того, как начнете произносить заклинание. Это значит, что если поместить эти команды в другом порядке, эффект будет тот же. Поэтому если у вас возникает желание сказать что-то только после того, как вы фактически произнесли заклинание, то вы можете воспользоваться аддоном AfterCast, который заставит следующую слэш команду работать только после того, как вы произнесете заклинание. Например:
Code /aftercast /p Нажмите на портал, чтобы призвать %t. /cast Ритуал призыва
Внимание: названия заклинаний
Команда /cast очень придирчива к тому, как вы пишите названия заклинаний. Для того, чтобы успешно написать макрос, вы должны полностью соблюдать орфографию, пунктуацию и интервалы. Гарантией верного написания заклинания будет следующее действие – во время написание макроса откройте вашу книгу заклинаний и shift+клик на нужную способность. Таким образом вы получите точное название заклинания в макросе, включая любые модификаторы вроде форм друида для Увечья.
Использование предметов и аксессуаров
Все очень просто. Команда для использования предметов - /use. Как и в случае с /cast, самая обычная форма записи использует название того, что вы хотите использовать:
Code /use Зеленый механодолгоног
Также есть несколько других форм этой команды
Code /use <ячейку инвентаря>
Эта форма позволяет использовать предмет в определенной ячейке. Номера ячеек представлены на данном рисунке:
Используется ваш верхний слот для аксессуара.
/use <номер сумки> <ячейка>
Вы можете использовать любой предмет из ваших сумок. Представьте, что еда для вашего питомца всегда лежит в первой ячейке вашего рюкзака. Вы можете легко написать макрос, чтобы покормить пета:
Code /cast Кормление питомца /use 0 1
Сумки пронумерованы от 0 до 4 с права на лево (0 – всегда рюкзак), а ячейки – от 1 начиная слева на право, сверху вниз (как чтение):
или
Code 1 2 3 4 5 6 7 8 9 10 …
На последок спешу сообщить, что /cast и /use работают совершенно одинаково. /cast может использовать предметы, а /use – произносить заклинания.
Несколько действий за один клик
В общем случае вы не можете использовать больше одного заклинания кликом макроса. Большинство заклинаний и некоторые предметы имеют глобальный кулдаун (ГКД), который не позволяет вам выполнять слишком много действий за раз. Некоторые заклинания можно произнести всего одним нажатием кнопки. За любым мгновенным заклинанием или заклинанием без ГКД может следовать другое. Всплывающая подсказка на заклинании сообщит мгновенное оно или нет, но чтобы узнать есть ли у него ГКД, вам нужно будет воспользоваться специальными сайтами, например WowHead. Примером такого макроса может служить следующий:
Code /cast Неистовый вой /cast Кровавое неистовство /cast Зов дикой природы
Выбор цели
Выбор цели – это ещё одна распространенная задача макросов. Используя обычные макросы, вы произносите заклинания на вашу текущую цель. Комбинирование команд /cast и /target дает возможность менять цель при нажатии на макрос.
Самая простой макрос выглядит следующим образом:
/target ищет совпадения между буквами, что вы написали, и целями вокруг вас. Это означает, что если вы использовали команду /target Вас и цель с таким именем стоит рядом, то вы выберете её. В зависимости от ситуации это может быть плюсом или минусом. К сожалению, данный макрос будет брать в цель и ненужные юниты (например, трупы).
Совместим две команды - /cast и /target:
Code /target Маг Крыла Тьмы /cast Бич агонии
Если рядом не будет Мага Крыла Тьмы, то вы возьмете в цель кого-то с именем, которое начинается на М либо Ма. Если это будет дружеская цель, то макрос вообще теряет смысл. Другой проблемой является то, что вы можете взять в цель кого-то за 100 ярдов от вас, кто вам не нужен в принципе. Поэтому в патче 2.3 ввели команду /targetexact, чтоб устранить данную проблему.
В дополнение ко всему вышесказанному, вместо имени желаемой цели вы можете использовать unit ID. Unit ID – это способ определить конкретного персонажа, моба, NPC. Например, вашу текущая цель можно выбрать с помощью «target» unit ID. Ваш персонаж может быть выбран с помощью «player» ID, а ваш питомец – «pet». Вы можете добавить «target» после любого правильного unit ID, чтобы выбрать цель этого юнита. Список ID юнитов: "arenaN" - Член вражеской команды арены. N = 1, 2, 3, 4 или 5. "bossN" - Активный босс текущего энкаунтера, если он доступен. N = 1, 2, 3 или 4. "focus" - Текущий фокус игрока. "mouseover" - Юнит, который находится (или недавно находился) под указателем мыши. "none" - нет юнита. Часто используется для того, чтоб запретить макросу авто-каст на себя (/cast [target=none] Волна исцеления). "partyN" - N-ый член группы, исключая вашего персонажа. N = 1, 2, 3 или 4. "partypetN" - питомец N-го члена группы. N = 1, 2, 3 или 4. "pet" - текущий питомец игрока. "player" - сам игрок. "raidN" - член рейда. N = 1, 2, 3, ..., 25. "raidpetN" - пет N-го члена рейда. N = 1, 2, 3, ..., 25. "target" - текущая цель игрока "vehicle" - текущее транстпортное средство игрока.
Другие команды по выбору цели
/assist
Самая по себе эта команда выбирает цель цели. Например, если вы выбрали меня в качестве цели, а я выбрал Ириэль, то /assist заставит вас выбрать Ириэль.
/cleartarget
Оставляет вас без цели.
/targetexact
Берет в цель юнит с точно указанным именем. Если имя написано неверно или юнит далеко от вас, то ваша цель не изменится.
/targetlasttarget, /targetlastfriend, /targetlastenemy
Первая команда выделит вашу предыдущую цель. Вторая – предыдущую дружественную цель, а третья – предыдущую враждебную. Если до этого у вас не было цели, то команда ничего не сделает.
/targetenemy, /targetfriend
Эти команды одну за другой перебирают цели определенного типа. /targetenemy – это все равно, что нажатие TAB, а /targetfriend - CTRL-TAB. Также вы можете добавить параметр «1» для того, чтобы перебирать цели в обратном порядке (/targetenemy 1 работает как нажатие SHIFT-TAB).
Примечание: Вы можете использовать эти команды только один раз на макрос.
Code /targetenemy /targetenemy 1
Code /targetfriend /targetfriend 1
/targetenemyplayer, /targetfriendplayer
Эти команды по очереди берут в цель определенный тип персонажей игроков. Они работают точно также как и /targetfriend and /targetenemy за исключением того, что берут в цель только игроков, игнорируя при этом всех, кого контролирует компьютер (NPC, мобы, петы, прислужники). Полезный макрос в PvP. Как и в случае с /targetenemy можете использовать параметр «1», чтобы изменить направление.
Code /targetenemyplayer /targetenemyplayer 1
Code /targetfriendplayer /targetfriendplayer 1
/targetparty, /targetraid
Поочередно перебирает цели из вашей группы или рейда. Как и в случае с /targetenemy можете использовать параметр «1», чтобы изменить направление.
Code /targetparty /targetparty 1
Code /targetraid /targetraid 1
Управление питомцами
Как уже было сказано, вы можете использовать /cast для того, чтобы использовать способности вашего питомца. Наиболее важные из них следующие:
/petattack
Заставляет пета атаковать вашу цель. Также можно указать имя или unit ID, тогда питомец будет атаковать конкретного юнита.
/petfollow
Ваш питомец следует за вами, а также прекращает атаковать, если нужно.
/petstay
Питомец стоит на месте, пока не получит другую команду.
/petmoveto
После использования данной команды требуется указать место, куда после этого отправится ваш питомец.
/petpassive, /petdefensive, /petaggressive
Устанавливает модель поведения вашего пета, также как кнопки на панели питомца.
/petautocaston, /petautocastoff, /petautocasttoggle
Эти команды управляют авто-кастом заклинания вашего пета. Первая включает автокаст, вторая – выключает. Например:
Code /petautocaston Мучение /petautocastoff Муки
/petautocasttoggle переключает авто-каст заклинаний питомца.
Code /petautocasttoggle Огненное дыхание
Включает авто-каст, если он выключен и наоборот.
Другие слэш команды
Мы разобрали основы, и теперь я хочу представить другие слэш команды. Некоторые из них могут показаться бесполезными на первый взгляд, но в комбинации с опциями макросов из раздела 2, они могут стать отличными штуками.
Одевание предметов
Существует три команды для того, чтобы одеть предмет: /equip, /equipslot и /equipset. /equip использует название предмета и перемещает его в стандартную ячейку, точно также, как вы бы кликнули по предмету правой кнопкой мыши. /equipslot использует ID ячейки инвентаря и название предмета, тем самым перемещая предмет в указанную ячейку.
Чтобы взять оружие в стандартную ячейку:
Code /equip Заточенный топор Бездны
Чтобы одеть аксессуар в нижнюю ячейку:
Code /equipslot 14 Морковка на палочке
Представим, что мы сохранили два набора вещей. Один назовем Tank (в нем есть меч и щит), а второй – DPS (двуручка). Используем следующий макрос, чтобы переключаться между ними:
Code /equipset [equipped:Shields] DPS; Tank
Если у вас в руках щит, то вы оденете набор DPS, в ином случае – набор Tank.
Поменять местами щит и офф-хенд можно с помощью такого макроса:
Code /equipslot [equipped:Shields] 17 Колун безжалостного гладиатора; 17 Гребень Ша'тар
Последовательность заклинаний и предметов
Часто возникают случаи, когда вы часто используете одну и ту же последовательность заклинаний (например, открываете ротацию). Чтобы облегчить вам жизнь, была создана команда /castsequence. Она использует список заклинаний и предметов, разделенных запятыми. Каждый раз, когда вы используете макрос, он активирует текущее заклинание или предмет. Если вы успешно использовали заклинание, то макрос переходит к следующему. То есть вы должны последовательно нажимать кнопку макроса, чтобы активировать заклинания одно за другим. Как только было произнесено последнее заклинание, макрос снова переходит к началу списка. Например:
Code /castsequence Жертвенный огонь, Порча, Бич агонии, Похищение жизни
Спешу заметить, что если Жертвенный огонь не был произнесен по каким-либо причинам (нехватка маны, вне зоны действия, сайленс), то макрос останется на той же точке.
Перед списком заклинаний вы можете определить условия сброса последовательности, чтобы начать всё сначала. Базовый синтаксис следующий:
Code reset=n/target/combat/shift/alt/ctrl
Где n – это количество секунд бездействия, после чего макрос будет сброшен. Другими словами, если вы не использовали макрос n секунд, то в следующий раз, когда вы его используете, начнете с первого заклинания в списке. «target» сбрасывает последовательность, когда вы меняете цель, «combat» - когда выходите из боя, «shift», «alt» и «ctrl» - когда активируете макрос с соответствующей зажатой клавишей. Вы можете использовать сразу несколько условий. Например:
Code /castsequence reset=10/shift Заклинание 1, Другое заклинание, Любой предмет
Вы можете написать макрос, который будет использовать заклинания из двух разных наборов, которые должны использоваться вместе, но каждый отдельный набор не может быть использован одновременно с другим (например аксессуары с одним КД). Макрос примет следующий вид:
Code /castsequence Берсерк, Стылая кровь /castsequence Trinket 1, Trinket 2
При первом нажатия макрос активирует Берсерк и Аксессуар 1, на втором - Стылую кровь и Аксессуар 2.
Случайные заклинания и предметы
/castrandom и /userandom позволяют произнести случайное заклинание из списка. Чаще всего это используется, чтобы оседлать случайного маунта. Например:
Code /castrandom Стремительный зеленый механодолгоног, Черный боевой механодолгоног, Призыв коня погибели
Атака
Поменять вашу цель и начать её атаковать:
Code /startattack Пеплогривый кабан
Перестать атаковать:
Code /stopattack Пеплогривый кабан Манипуляции с панелями заклинаний
Существует две команды, которые позволяют изменять страницы панелей заклинаний: /changeactionbar и /swapactionbar. /changeactionbar использует в качестве значения одно число и всегда переключается на страницу с этим номером. Примером использования может быть аспекты охотника. Например:
Code /cast Дух ястреба /changeactionbar 1
и
Code /cast Дух лисицы /changeactionbar 2
/swapactionbar использует две цифры в качетсве параметров, и в итоге меняет обозначенные панели между собой.
Отмена баффов
Команда /cancelaura позволяет вам отменять ненужные баффы. Например:
Code /cancelaura Горн зимы /cast Горн зимы
Выход из формы
За исключением воинов, любой класс со стойками (Друиды, Присты с Обликом тьмы, Роги с Незаметностью, и т.д.) могут использовать /cancelform, чтобы выйти из формы. Например:
Code /cancelform /use Гигантский флакон с лечебным зельем
Остановка каста
/stopcasting очень полезная команда в "ситуациях паники", когда нужно в любой момент остановить заклинание, что вы произносите и начать кастовать другое. Например:
Code /stopcasting /cast Ожог Тьмы
Спешивание
Заставляет вас слезть с маунта.
Сохранение цели для будущих действий
Команда /focus позволяет вам сохранить вашу цель, чтобы потом можно было вернутся к ней. Например, рейд лидер сказал вам превратить адда в овцу. Для начала, возьмите моба в цель, и напечатайте /focus. Теперь вы можете использовать макрос, чтобы в нужный момент превратить моба в овцу:
Code /cast [@focus] Превращение
Дополнительные скрипты
Для чего нужны скрипты?
Скрипты – очень мощный инструмент, который может решить множество проблем. По этой причины Blizzard ограничили круг возможностей скриптов. Начну с того, чего вы не можете делать с помощью скриптов. Вы не можете произносить заклинания, использовать предметы, изменять страницу панели заклинаний и влиять на вашу цель каким-либо образом . Вы ограничены набором «безопасных» команд. Скрипты
Интерфейс WoW контролируется кодом, который написан на языке Lua скриптов. Вы можете использовать преимущества системы скриптов в ваших макросах с помощью команды /run или /script. Целый скрипт должен быть написан одной строчкой. Можно использовать несколько /run в одном макросе.
Blizzard предоставляет много фунцкий (API), которые используются в скриптах, чтобы контролировать интерфейс. Я не могу вам рассказать все тонкости написания скриптов, поэтому приведу мой любимый скрипт в качестве примера. Данный макрос напишет каждом игроку в вашем рейде изменить его цель, если у него та же цель, что и у вас. Он помогает оградить их от снятия овцы с моба.
Code /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
Опции макросов Опции макросов позволяют контролировать действия на основе некоторых условий и правил. Сразу приведу пример – этот макрос произнесет Обновление на дружественную цель и Слово Тьмы: Боль на враждебную.
Code /cast [help] Обновление; [harm] Слово Тьмы: Боль
гда вы используете макрос, то проверяется условие [help]. Оно проверяет, можете ли вы наложить на цель исцеляющее заклинание. Если условие выполняется, то накладывается Обновление и макрос переходит на следующую строку. В ином случае (нет цели или не можете наложить полезное заклинание на цель) проверяется следующее условие. Теперь проверяется [harm], т.е. можно ли наложить на цель атакующее заклинание. Если условие выполняется, то вы произносите Слово Тьмы: Боль. Если же нет, то ничего не происходит, так как условий уже нет. Команды, поддерживающие опции
Добавлено (08.11.2011, 20:06) --------------------------------------------- Список команд, которые поддерживают опции: #show #showtooltip /assist /cancelaura /cancelform /cast /castrandom /castsequence /changeactionbar /clearfocus /cleartarget /click /dismount /equip /equipslot /equipset /focus /petagressive /petattack /petautocastoff /petautocaston /petdefensive /petfollow /petpassive /petstay /startattack /stopattack /stopcasting /stopmacro /swapactionbar /target /targetenemy /targetfriend /targetlasttarget /targetparty /targetraid /use /usetalents /userandom
[@unit] (в прошлом [target=unit])
В дополнении к проверке условий, система опций макросов позволяет нам установить цель многих действий. Например, следующий макрос всегда будет использовать бинты на вашего персонажа, независимо от того, кто в данный момент ваша цель:
Code /use [@player] Плотные бинты из ткани Пустоты
[target=unit] работает точно также, как и [@unit].
Общий синтаксис опций макросов Все слэш команды работают по одному принципу. У вас есть команда, и есть набор параметров. Параметры зависят от команды, некоторым командам параметры не требуются. Несколько примеров:
Code /cast Кара \___/ \___/ | | | параметры | команда
/petattack \________/ V | | | параметры (пустые) | команда
/castsequence reset=3Dtarget Жертвенный огонь, Порча, Бич агонии, Вытягивание жизни \___________/ \___________________________________________________________________/ | | команда параметры
Опции макросов позволяют вам выбрать набор параметров в зависимости от некоторых критериев. На самом высоком уровне вы устанавливаете наборы критериев/параметров, разделенных точкой с запятой. Точка с запятой рассматривается как «else» (иначе) или «else if» (иначе если). Критерий состоит из нуля и больше наборов условий. Каждый набор условий заключается в квадратные скобки. Иллюстрация синтаксиса:
Code /команда [условия] [ещё условия] параметры; [условия] параметры ...
Команда работает слева на право. Как только она находит набор условий, который истинен, команда запускается с соответствующими параметрами. Если нет условий, то считается, что всегда истина. Синтаксис условий
Каждый набор условий – это обычный список через запятые. Условия могут быть написаны в любом порядке, однако [@unit] всегда находится перед всеми условиями. Запятая – это все равно что «и». Условие [help, nodead, @focus] означает «Мой фокус дружественный И не мертвый».
Замечание: условия очень чувствительны к регистру. Например, если вы напишете [Help] вместо [help], макрос выдаст вам ошибку.
Сами условия состоят из некоторых блоков. Например, вы можете поставить «no» перед условием, и условие станет противоположным. Заметьте, что [nohelp] не означает то же самое, что и [harm]. [harm] и [help] оба возвращают «истину», если существует цель, на которую нужно наложить заклинание. Кроме того, существуют цели, которым нельзя помочь и нельзя навредить.
Некоторые условия имеют свой набор параметров. Например, [stance] означает «в любой стойке» (полезное условие для классов со стойками и формами, кроме воинов, которые всегда находятся в одной из стоек). Однако вы можете обозначить определенные стойки, по которым требуется сделать проверку. Набор параметров начинается с точки с запятой, а каждый параметр отделяется слэшем «/», который означает «или». Общая иллюстрация одиночного условия, где всё в угловых скобках «<>» является необязательным:
Code [<no>condition<:parameter</parameter</parameter<...>>>>]
Простой пример, который использует Неизвестное заклинание 72 в защитной и боевой стойке, но меняет стойку на защитную, если вы находитесь в стойке берсерка.
Code /cast [stance:1/2] Удар щитом; Оборонительная стойка
Говоря нормальным языком, мы написали «если мы в стойке 1 или 2, то используем Неизвестное заклинание 72, иначе переключаемся в защитную стойку».
Примечание: «no» на всё условие и все его параметры. [nostance: 1/2] будет означать «всё, кроме стойки 1 или 2».
Пустые параметры и условия
Одной из причин ошибок макроса является написание пустого параметра. Часто люди ставят точку с запятой в конце макроса, что приводит к некоторым неожиданным ошибкам. Например:
Code /petattack [@focus, harm];
Проанализируем макрос. Он заставляет вашего питомца атаковать ваш фокус, если ему можно нанеси вред, и не делать ничего в другом случае. Давайте рассмотрим схему данного макроса:
Code /petattack [@focus, harm] ; \________/ \____________/ V V V | | | | | команда опции | | параметры (пусто) | | | опции (пусто) | параметры (empty)
Как можно увидеть, не хватает набора опций и параметров. Запомните, что пустой набор опций, будет считаться всегда «истиной», поэтому если первое условие не пройдет проверку, то пустой параметр будет задействован.
Иногда вам потребуется произнести заклинание на определенную цель при некоторых условиях, но чтобы эта магия работала как обычно, если эти условия не выполняются. Примером такого случая служит следующий макрос. Он произнесет Вспышку света на юнит под вашей мышкой. Если никого под курсором не оказалось или цель враждебная, макрос просто произнесет Вспышку света на вас, если включена опция каста на себя.
Code /cast [@mouseover, help] [ ] Вспышка света
[target=] или [@] против параметров юнита
Некоторым команды используют юнитов к качестве параметров. Например, /target party1 выберет целью первого члена вашей группы. /target [@party1] имеет тот же эффект. Однако в большинстве случаев нам не разрешено устанавливать условия для одного юнита, а действовать уже на другого. Следующий макрос не будет работать, как было задумано:
Code /target [@focus, dead] party1
WoW проигнорирует
Сообщение отредактировал Varic - Вторник, 08.11.2011, 20:10 |
|
|
|