Гайд по макросам (общие понятия)
|
|
Protey | Дата: Понедельник, 19.12.2011, 15:56 | Сообщение # 16 |
 Лейтенант
Группа: Пользователи
Сообщений: 61
Награды: 0
Репутация: 0
Статус: Offline
| 2.5.6. stealth Как может показаться рогам среди читателей, что поскольку у рог нет других стоек, эта опция работает идентично к [stance], [stealth] также применимо к расовому умению ночных эльфов Shadowmeld, Invisibility у магов и так далее.
2.5.7. modifier:shift/ctrl/alt (mod) Клавиши-модификаторы хороший способ сберечь место на панелях действий, а также путь к принятию определенных решений. Скажем вы хотите включить в макрос чтобы при обычном использовании он выполнял одно заклинание, а при зажатой кнопке-модификаторе – другое:
Цитата: /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, во время использования заклинаний приведет к попытке наложить их на себя), хотя некоторые из аддонов дают возможность изменить это. Если сделать макрос вида:
Цитата: /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] будет всегда истинно.
Цитата: #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. Щелчок правой кнопкой по макросу всегда приведет к выбору одного из механических цыплят. Поведение максроса, если вы верхом: левый щелчок приведет к спешиванию, если мы только не в полете. Правый щелчок – всегда приводит к спешиванию. «Виртуальный щелчок» обычно можно игнорировать, но если вы используете аддон для модификации панелей действий, он может быть и полезным. Панели действий, реагирующие на различные состояния, преобразуют щелчки в виртуальные нажатия, чтобы определить какое из действий выполнить. Так как эти виртуальные нажатия зависят от конкретных аддонов, я не стану погружаться в дальнейшие объяснения.
|
|
| |
Protey | Дата: Понедельник, 19.12.2011, 15:57 | Сообщение # 17 |
 Лейтенант
Группа: Пользователи
Сообщений: 61
Награды: 0
Репутация: 0
Статус: Offline
| 2.5.9. equipped:<тип предмета> (worn)
[equipped] позволяет определять надет ли заданный тип предмета. Типом предмета может быть номер ячейки инвентаря, и собственно, тип или подтип предмета. За подробностями к списку типов обращайтесь на http://www.wowwiki.com/ItemType и http://www.wowwiki.com/API_TYPE_InventorySlotName. Вот пример макроса, который я использую для выбора Shield Bash или Pummel в зависимости, от того что на мне одето:
Цитата: #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 стойке, тогда
Цитата: /cast Shield Bash в противном случае, если щит одет
Цитата: /cast Defensive Stance в противном случае, если я в Berserker стойке, тогда
Цитата: /cast Pummel иначе
Цитата: /cast Berserker Stance Вот другой макрос, который придает Overpower мощности:
Цитата: /equip [noequipped:Two-Handed Axes] Crystalforged War Axe /cast [nostance:1] Battle Stance; [equipped:Two-Handed Axes] Overpower
2.5.10. channeling:<имя заклинания> Обычно, если вы вливаете заклинание (т.е. выполняете чэннелинг) и начинаете накладывать другое, оно прервет процесс вливания. Эта опция позволяет избежать таких случаев. К примеру, мы хотели бы прервать в таких случаях заданное заклинание, но не прерывать другие. [channeling] без параметров отвечает любому заклинанию, но можно также и использовать произвольный список имен заклинаний для проверки. Примечание: вливание (чэннелинг) это НЕ ТО ЖЕ САМОЕ что обычно чтение заклинаний. Использование [channeling] применимо только к заклинаниям типа Arcane Missiles, Drain Life, Mind Flay и так далее, когда после начала чтения, заклинание проявляет своей эффект с течением времени.
2.5.11. actionbar:1/…/6 (bar) Интерфейс по умолчанию предоставляет некоторое число страниц для панели действий. Эти страница применимы только к нежней левой панели действия, видимой в интерфейсе по умолчанию. К счастью, можно наделать макросов, которые соответствуют разным страницам панели действий, и разместить их на других панелях. Один из примером, позволяет охотникам эмулировать стойки с помощью аспектов:
Цитата: /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. Значит, можно сделать следующий макрос переключений:
Цитата: /cast [nobonusbar:5] Mind Control /cancelaura Mind Control Для детального описания по классам и их бонусным панелям, читайте http://www.wowwiki.com/API_GetBonusBarOffset.
|
|
| |
Protey | Дата: Понедельник, 19.12.2011, 15:58 | Сообщение # 18 |
 Лейтенант
Группа: Пользователи
Сообщений: 61
Награды: 0
Репутация: 0
Статус: Offline
| 2.5.13. pet:<имя или тип питомца> Все классы с питомцами должны оценить полезность этой опции. Она позволяет выбирать нужное действие в зависимости от активного питомца. Можно указывать имя питомца или его тип (Voidwalker, Boar, Imp, Wolf и т.д.). Само по себе [pet] означает любого из питомцев. Вот пример макроса, позволяющий магам выбирать между заклинанием Freeze у элементаля и своим собственным заклинанием Frost Nova:
Цитата: /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]. Это может быть полезно для классов с баффами:
Цитата: /cast [group, nomodifier] Arcane Brilliance; [help] [target=player] Arcane Intellect Если вы в группе, в общем случае макрос наложит Arcane Brilliance. Если вы удерживаете кнопку-модификатор или вы вне партии, макрос прочтет Arcane Intellect на дружественную цель или на вас самих.
2.6. Приложения для опций макросов Многие из команд, с которыми мы знакомились в Части 1, не очень-то полезны сами по себе, пока мы не используете с ними опции. Мы уже видели пару простых примером их использования, но все еще есть необходимость рассказать об этм более подробно. Следующие разделы свяжут все потерянные концы и, я надеюсь, вдохновят вас на собственные изыскания.
|
|
| |
Protey | Дата: Понедельник, 19.12.2011, 15:58 | Сообщение # 19 |
 Лейтенант
Группа: Пользователи
Сообщений: 61
Награды: 0
Репутация: 0
Статус: Offline
| 2.6.1. Использование фокуса Фокус - это ID цели как и target, player или raidpet1target (подробности читайте на http://www.wowwiki.com/UnitId ). Он разрешает вам обращаться к тому монстру, игроку, или НПЦ, который вы укажете. Простейшим применением фокуса является использование его с клавиатурными комбинациями. В меню клавиатурных комбинаций есть две фокусо-зависимых функции: Focus Target и Target Focus. Focus Target устанавливает ваш фокус на вашу текущую цель (он также сбрасывает фокус, если у вас нету цели). Когда цель-фокус установлена, можно использовать ID цели для всех прочих команд. Target Focus, как можно догадаться - использует как цель, ваш текущий фокус. Однако такая привязка не использует все преимущества фокуса. Чтобы выжать максимум из фокуса, нужно использовать макросы с опциями. Один из частых случаев использование – назначение цели для крауд-контроля. Маг может выбрать монстра для превращения в овцу, в качестве своего фокуса. Далее он сможет вернуться к цели для вливания повреждений и активировать следующий макрос, когда нужно переналожить превращение в овцу.
Цитата: /cast [target=focus] Polymorph Или лекарь может установить в качестве фокуса основного танка рейда. С аддоном вроде FocusFrame (http://wow.curse.com/downloads/details/5681/), он будет иметь отдельную панельку для облегченного лечения танка. К дополнению к клавиатурным комбинациям, существуют консольные команды /focus и /clearfocus. Без параметров, /focus работает также как и клавиатурная комбинация, назначая текущую цель вашим фокусом. Можно также задать любой из корректных ID целей или имя в качестве параметра для /focus:
Цитата: /focus party3target А вот пример более продвинутого «фокусирования»:
Цитата: /focus [target=focus, noharm] [target=focus, dead] [modifier] /stopmacro [target=focus, noexists] /cast [target=focus] Polymorph Первая строка устанавливает фокусом вашу текущую цель (или сбрасывает фокус, если цели нет), в зависимости от одной из ситуаций:
* У вас нет враждебного фокуса (если на деле он дружественен или не существует) * Ваш фокус мертв * Вы зажали кнопку-модификатор (в случае если вы хотите сменить фокус, имея уже установленный)
Вторая строка макроса, не выполняется если у вас нету фокуса. И, наконец, макрос накладывает заклинание Polymorph на ваш фокус. Это дает вам одно-кнопочное решение для крауд-контроля фокуса. Заметьте, мы могли бы использовать условие [exists] в команде /cast, вместо того чтобы разделять его командой /stopmacro. Но, /stopmacro дают дополнительную гибкость, останавливая прочие команды, которые мы могли бы добавить, вроде вывода предупреждений посредством /p. Можно и менять вашу цель и фокус, давая эффект двух целей, между которыми вы переключаетесь:
Цитата: /cleartarget [target=target, dead] /clearfocus [target=focus, dead] /target focus /cleartarget [target=focus, noexists] /targetlasttarget /focus target /targetlasttarget Первые две строки очищают цель и/или фокус, если они мертвы (если же вы действительно хотите отслеживать смерть множественных целей, чтобы, к примеру, воскрешать или забирать предметы с них, то нужно удалить эти строки). Четвертая строка нужна так как /target focus не сбрасывает цель, если у вас нет установленного фокуса (без неё, пятая строка выберет вашу предыдущую цель).
|
|
| |
Protey | Дата: Понедельник, 19.12.2011, 15:58 | Сообщение # 20 |
 Лейтенант
Группа: Пользователи
Сообщений: 61
Награды: 0
Репутация: 0
Статус: Offline
| 2.6.2. Разветвления макросов используя /click Скажем, нам нужна кнопка, которая выбирает между тремя заклинаниями, основанных на модификаторах shift, ctrl или без модификатора, а также при двух разных целях, в зависимости был выполнен левый или правый щелчок мышью. Все это можно сделать в макросе такого вида:
Цитата: /cast [modifier:shift, button:1, target=party1] [modifier:shift, button:2, target=player] Greater Heal; [modifier:ctrl, button:1, target=party1] [modifier:ctrl, button:2, target=player] Flash Heal; [nomodifier, button:1, target=party1] [nomodifier, button:2, target=player] Renew Такой вот громоздкий скрипт вышел (по факту, он больше ограничения в 255 символов). Его можно разделить на несколько строк для ясности и убрать избыточность, чтобы сэкономить место. Но даже тогда, он будет довольно зверским:
Цитата: /cast [modifier:shift, button:1, target=party1] [modifier:shift, target=player] Greater Heal /cast [modifier:ctrl, button:1, target=party1] [modifier:ctrl, target=player] Flash Heal /cast [button:1, target=party1] [target=player] Renew Но если использовать главный макрос для выбора цели, в зависимости от нажатой кнопки мыши и двух макросов, выбирающих заклинания по кнопкам-модификаторам, мы можем упростить понимание макроса. Ради нужд этих примеров, макросы 2 и 3 находятся на MultiBarLeftButton2 и MultiBarLeftButton3, соответственно.
Макрос 1:
Цитата: /click [button:1] MultiBarLeftButton2; MultiBarLeftButton3
Макрос 2: Цитата: /cast [modifier:shift, target=party1] Greater Heal; [modifier:ctrl, target=party1] Flash Heal; [target=party1] Renew
Макрос 3: Цитата: /cast [modifier:shift, target=player] Greater Heal; [modifier:ctrl, target=player] Flash Heal; [target=player] Renew Оффтопик: в моей теме с пожеланиями (http://forums.worldofwarcraft.com/th...icId=101150523) проскакивал запрос на команду, позволяющую задать target= для всех опций макросов. Макросы 2 и 3 вышли бы куда проще, если бы такое было возможно. Фактически, в зависимости от конкретной реализации, можно обойтись без облегчающей понимание /click. Может, что-то в духе:
Цитата: #target [button:1] party1; player /cast [modifier:shift] Greater Heal; [modifier:ctrl] Flash Heal; Renew Вы можете также сделать что-либо похожее используя /target вместо гипотетического #target и завершить макрос командой /targetlasttarget, но это лишает всякого смысла использование [target=], о котором упоминается выше.
|
|
| |
Protey | Дата: Понедельник, 19.12.2011, 15:59 | Сообщение # 21 |
 Лейтенант
Группа: Пользователи
Сообщений: 61
Награды: 0
Репутация: 0
Статус: Offline
| Часть 3: Дополнительные сведения
3.1. Пользовательские иконки Если вы хотите использовать пользовательские иконки для ваших макросов, для этого необходимо поместить их в папку World of Warcraft\Interface\Icons (предварительно создав ее, если такой нет). Файлы должны следовать таким же требованиям, как и текстуры для интерфейса. А именно, быть либо в BLP формате или 24 битными/24 битными + альфа-канал TGA файлами. Размер их должен быть кратен 2-м вплоть до 512 (т.е. 32х32, 512х12. Замечание: любые не квадратные изображения будут выглядеть искаженными на панели действий.
3.2. Содержание макросов на разных компьютерах До тех пор, пока Blizzard раздумывает над хранением макросов на серверах, необходимо копировать содержимое папки World of Warcraft\WTF\Account\Имя_аккаунта между компьютерами. Это также предохранит все ваши настройки для установленных аддонов, но каждый из аддонов должен быть установлен на каждый из компьютеров.
Если же вы хотите переносить одни лишь макросы, нужно копировать World of Warcraft\WTF\Account\Имя_аккаунта\macros-cache.txt для общих макросов, и World of Warcraft\WTF\Account\Имя_аккаунта\Ваше_Имя\Имя_ваш его_персонажа\macros-cache.txt для макросов конкретного персонажа.
|
|
| |