Сейчас 05.12.2024, 02:27



  • Страница 1 из 1
  • 1
Общий гайд по макросам
LamanshДата: Понедельник, 10.12.2012, 14:55 | Сообщение # 1
Феникс
Группа: Администраторы
Сообщений: 118
Награды: 3
Репутация: 501
Статус: Offline
Ранг: Победивший Смерть
Этот гайд научит вас создавать макросы, начиная от самых простых и заканчивая полнофункциональными и довольно сложными. Однако не рассчитывайте найти тут полный справочник — макро-команд в игре великое множество, и для описания всех их придется писать книгу. По мере возможностей будет рассмотрен каждый отдельно взятый этап создания сложного макроса с подробными пояснениями. Уделим внимание и тому, как сэкономить место и вложиться в 255-символьный лимит.

Что же такое макрос?
Макрос — это маленькая и очень простая программка (написанная на языке LUA), которая решает определенный круг задач.

Зачем нужны макросы?
- У каждого класса в игре есть огромное множество разных способностей и заклинаний, которые обычно занимают много места на панелях. Макросы позволяют вам объединить под одной кнопкой сразу несколько таких способностей, назначив каждой из них соответствующие экстра-клавиши (дальше будем называть их модификаторами) — Shift, Alt и Ctrl. При помощи макросов можно объединить до 24 способностей в пределах 1-6 кнопок.
- Макросы позволяют объединять несколько способностей под одной кнопкой так, что ее нажатие активирует одновременно их все, экономя время. Правда при условии, что только одно из заклинаний в макросе имеет время каста, или является мгновенным, но вызывает глобальную перезарядку.
- При помощи макросов можно так же делать необычные вещи. Например, считать ваш авойданс (если вы танк), или искать Затерянного во времени протодракона, когда вы летите по Грозовой Гряде.

Откройте "Меню" путем нажатия клавиши Escape.
Выберите в меню пункт "Макрос" и откройте окошко редактора макросов.
Создайте макрос, нажав на кнопку "Новый" в правом нижнем углу редактора.
Выберите иконку для своего макроса.
Назовите свой макрос как вам угодно, только не названием абилки — не называйте макрос "Огненный шар".
Назовите его ОШ, или Фаербол или как-нибудь в таком духе.
Нажмите "ОК" и введите в поле текст макроса, скопировав любой из представленных ниже, что бы убедиться в его работостопособности.
Когда закончите писать код макроса, просто нажмите кнопку "Новый" или перейдите к другому макросу в редакторе. Кнопки "Сохранить" здесь не предусмотрено.
Перетащите макрос на панель.

Самый простой макрос имеет вид:

Code
#showtooltip
/use Стрела тьмы

Команда #showtooltip заменяет красный вопросительный знак иконки макроса на иконку соответствующего заклинания, в данном случае это Стрела тьмы. Сам по себе красный "?" является временной заменой тому, на что покажет #showtooltip. Использование команды '/use' вместо '/cast' позволяет сэкономить нам целый символ, что особенно важно в больших макросах, близких по своему объему к максимальному лимиту в 255 символов.

Макрос работает точно так же, как и заклинание Стрела тьмы из вашей книги заклинаний. Перетащите этот макрос на панель и убедитесь в этом лично (если вы чернокнижник, конечно). Разумеется, на месте Стрелы тьмы может быть любое заклинание или способность из вашего арсенала. Поскольку этот макрос не дает абсолютно никаких преимуществ перед обычным заклинанием из книги, то нет никакого смысла в его создании. Я привел его для демонстрации самого простого примера.

Теперь перейдем к более полезным вещам, расширив нашу бесполезную заготовку до чего-то функционального. Добавим в этот макрос 4 модификатора. В общем виде такой макрос имеет вид:

Code
#showtooltip
/use [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] способность1

или тоже самое без [nomod] в конце, что сэкономит нам еще несколько символов:

Code
#showtooltip
/use [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2; способность1

(Есть ситуации, когда [nomod] необходим, о таких ситуациях мы поговорим ниже. В большинстве же случаев нет разницы, использовать или нет этот модификатор)

Если кликнуть на этот макрос с зажатым CTRL, произойдут две вещи: #showtooltip поменяет красный вопросительный знак иконки макроса на иконку способности4 и сработает способность4. Аналогично с модификаторами ALT и SHIFT. Если же ни одна клавиша-модификатор не нажата, макрос получит иконку способности1 и сработает способность1. Если же вы допустили ошибку при написании названия способности, или ее просто нет в книге заклинаний, на месте иконки макроса вновь окажется красный "?", оповещающий игрока о наличии ошибки в макросе.

Таким образом написав 6 таких макросов вы получите доступ сразу к 24 заклинаниям из вашей книги ценой всего 6 ячеек на панели. Вы можете вовсе не выносить эти макросы на панель, назначив им горячие клавиши через соответствующий аддон, например через BindPad. Сами горячие клавиши удобно выбирать рядом с кнопками передвижения — WASD или ESDF.

Вот еще один реальный пример такого макроса. Он демонстрирует свою универсальность, вне зависимости от того, какой класс этим макросом пользуется.

Code
#showtooltip
/use [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Призыв стража Скверны;[nomod] Стрела тьмы

Или без [nomod]

Code
#showtooltip
/use [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Призыв стража Скверны;Стрела тьмы

Ctrl + макрос: показывает иконку Бронзового дракона и призывает его
Alt + макрос: показывает иконку Ритуала призыва и начинает ритуал
Shift + макрос: показывает иконку стража Скверны и призывает его
Без модификаторов + макрос: показывает иконку Стрелы тьмы и кастует Стрелу тьмы

Вместе с редко-используемыми и/или не-боевыми способностями лучше всего использовать труднодоступные модификаторы (например, мне кажется наиболее неудобным CTRL). Поэтому на CTRL+макрос у меня назначен Бронзовый дракон. Все остальные способности так же следует размещать в порядке увеличения важности и удобства, ну а самые важные оставлять без модификаторов, как в этом случае было сделано со Стрелой тьмы.

Можно сделать макрос, который будет кастовать сразу несколько способностей нажатием одной кнопки. При этом обязательно должны выполняться два условия. Во-первых, только одно из этих заклинаний может иметь время каста. Во-вторых, только одно из заклинаний может вызывать глобальную перезарядку. Иными словами, если заклинание в макросе вызывает глобальную перезарядку, то все последующие команды по прочтению заклинания не сработают.

Вот пример из жизни. У чернокнижников есть экстренная кнопка на случай, если убили его прислужника. Обычно повторный призыв занимает целых 10 секунд, что непозволительно много, особенно в условиях PvP. Благодаря таланту Господство Скверны в сочетании с другими пассивными талантами, время призыва сокращается до 0.5 секунд.

Вот в общем-то отличный макрос, который позволяет нажать Господство Скверны и призыв прислужника одной кнопкой за одно нажатие.

Code
#showtooltip
/use Господство Скверны
/use Призыв Стража Скверны

Вместо того, что бы жать кнопку "Господство Скверны", а затем другую кнопку — "Призыв Стража Скверны", чернокнижнику нужно просто нажать на этот макрос, который нажмет обе кнопки за него, причем одновременно.

В добавок к этому примеру, если вы играете орком, можно еще использовать Кровавое неистовство, что бы новопризванный Страж Скверны выглядет несколько секунд немного эпичнее.

Code
#showtooltip
/use Кровавое неистовство
/use Господство Скверны
/use Призыв Стража Скверны

Этот пример работает потому, что заклинания Кровавое неистовство и Господство скверны — мгновенные и не вызывают глобальную перезарядку, а значит могут быть использованы одновременно друг за другом. У заклинания Призыв Стража Скверны есть время каста, поэтому оно должно находится в конце макроса, поскольку после кастующегося заклинания все остальные строчки макроса будут проигнорированы.

Еще один простой, но очень полезный для дамагера макрос на помощь (ассист). Он заставляет дамагера переключиться на ту цель, которую бьет главный танк.

Code
/target ИмяВашегоТанка
/assist

Первая строчка заставляет вас выбрать в цель главного танка (придется редактировать макрос каждый раз при смене главного танка в новом рейде). Вторая строчка выбирает в качестве цели цель главного танка. Макрос очень полезен и позволяет дамагеру всегда бить именно ту цель, которую нужно, не боясь сорвать аггро. Само собой, если танк назначил метками другую очередность убийства мобов (например, большую группу врагов), то тут уже придется самому выбирать цель в соответствии с порядком убийства.

Давайте теперь попробуем соединить воедино то, что мы создали на двух предыдущих шагах. Если просто взять и слепить воедино два отдельных макроса, результирующий макрос не будет работать так, как бы нам хотелось. Как вы думаете, что произойдет при нажатии такого макроса:

Code
#showtooltip
/use Господство Скверны
/use [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Ритуал душ;Призыв стража Скверны

Дело в том, что Господство Скверны будет каждый раз кастоваться при нажатии этого макроса. Даже когда вы будете зажимать CTRL, SHIFT или ALT. Если вы не хотите попусту тратить такой ценный кулдаун во время выполнения Ритуала призыва или посадки на маунта, стоит позаботится об этой проблемке.

Code
#showtooltip
/use [nomod] Господство Скверны
/use [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Ритуал душ;Призыв стража Скверны

Как видите, здесь добавление модификатора [nomod] перед Господством Скверны в первой строчке сыграло ключевую роль. Таким образом мы указываем игре, что Господство Скверны нужно использовать только при отсутствии модификаторов. Это именно то, о чем упоминалось в начале статьи.

Однако осталась еще и эстетическая проблема. Дело в том, что команда #showtooltip будет всегда отображать иконку заклинания Господство Скверны, вне зависимости от того, с какой дополнительной клавишей этот макрос нажат. Решается очень просто и по аналогии с последней строкой:

Code
#showtooltip [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Ритуал душ;Призыв стража Скверны
/use [nomod] Господство Скверны
/use [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Ритуал душ;Призыв стража Скверны

И наконец еще одна, последняя проблема. Макрос всегда кастует Господство Скверны при вызове стража Скверны, даже если вам это не нужно или вы хотите сохранить кулдаун до поры до времени. Так давайте изменим макрос так, что бы при нажатии с SHIFT макрос использовал Господство Скверны, а без модификаторов — не использовал. Не забудем так же подправить сразу команду #showtooltip.

Code
#showtooltip [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Призыв стража Скверны;Призыв стража Скверны
/use [mod:shift] Господство Скверны
/use [mod:ctrl] Бронзовый дракон;[mod:alt] Ритуал призыва;[mod:shift] Призыв стража Скверны;Призыв стража Скверны

В итоге мы получили очень удобный макрос, который по умолчанию призывает стража Скверны в течении ~10 секунд, а при зажатом шифте делает это почти моментально.

Можно написать макрос, который будет использовать заклинание только на определенной цели. Рассмотрим это на примере холи паладинов.

Вот этот макрос лечит Вспышкой Света текущую цель паладина:

Code
#showtooltip
/use Вспышка Света

А вот этот макрос всегда лечит только Вас (если вы паладин, конечно), вне зависимости от того, есть у вас цель или нет.

Code
#showtooltip
/use [target=player] Вспышка Света

Этот макрос лечит ту цель, которая находится у вас в фокусе:

Code
#showtooltip
/use [target=focus] Вспышка Света

Вот такой макрос лечит Вспышкой Света того игрока, на которого наведен курсор, даже если в качестве цели выбран кто-то другой:

Code
#showtooltip
/use [target=mouseover] Вспышка Света

Можно объединить написанные выше макросы в один при помощи модификаторов:

Code
#showtooltip
/use [mod:ctrl,target=player] Вспышка Света;[mod:alt,target=focus] Вспышка Света;[mod:shift,target=mouseover] Вспышка Света;[nomod] Вспышка Света

1. У ДК танка самой сильной способностью, которая вызывает много аггро по одной цели, является Рунический удар. Он становится доступен только когда рыцарь смерти уклонился или парировал атаку, а сам Рунический удар срабатывает не моментально, а только со следующей атакой ДК.

Не разбирающийся в макросах Рыцарь Смерти может просто разместить кнопку Рунического удара где-нибудь на панельке и постоянно следить за проком. Однако с макросами использование этой способности становится гораздо проще. Просто добавим Рунический удар перед каждым заклинанием, которое входит в нашу ротацию. Таким образом мы никогда не пропустим сработавший прок.

Code
#showtooltip [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Уничтожение
/use [nomod] !Рунический удар
/use [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Уничтожение

#showtooltip [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Смертоносный удар
/use [nomod] !Рунический удар
/use [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Смертоносный удар

#showtooltip [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Кровавый удар
/use [nomod] !Рунический удар
/use [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Кровавый удар

#showtooltip [mod:ctrl] способность4;[mod:alt] ability 3;[mod:shift] способность2;[nomod] Удар в сердце
/use [nomod] !Рунический удар
/use [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Удар в сердце

#showtooltip [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Удар Плети
/use [nomod] !Рунический удар
/use [mod:ctrl] способность4;[mod:alt] способность3;[mod:shift] способность2;[nomod] Удар Плети

Зачем здесь стоит восклицательный знак? При проке Рунического удара вы нажимаете кнопку чтобы активировать его, но удар сработает не сразу, а будет ждать вашу следующую атаку ближнего боя. И если в этот момент вы случайно еще раз нажмете на Рунический удар, игра воспримет это как приказ отменить атаку Руническим ударом и вы потеряете прок. Добавление !Рунический удар говорит о том, что нужно игнорировать все "случайные" нажатия клавиши после активации умения и просто ждать следующего мили-удара.

В последнем обновлении для многих способностей отпала необходимость использовать !, но для верности стоит его использовать.

2. Еще один пример многострочного макроса для Рыцаря Смерти — танка. Когда танк за доли секунды получает большой урон, этот макрос баффает ДК Кровью вампира и использует Рунический флакон с лечебным зельем. Такая комбинация позволяет танку самостоятельно поднять уровень своего здоровья с 20% до 80% за несколько секунд и пережить опасные моменты.

Code
#showtooltip
/use [mod:ctrl] что-нибудь;[mod:alt] что-нибудь;[mod:shift] что-нибудь;[nomod] Кровь вампира
/use [nomod] Рунический флакон с лечебным зельем

Здесь представлено несколько примеров макросов, которые не подходят под описание выше. Это даже скорее не макросы, а скрипты. Если вас заинтересует эта сторона вопроса, более подробную информацию можно найти на wowwiki, на странице, посвященной макросам.

1. Такой макрос будет полезен для выполнения достижения в Окулусе "без красных и зеленых драконов". Он помогает синхронизировать Остановку времени между пятью игроками. По аналогии такой скрипт можно использовать где-угодно, начиная отсчетами до начала пула, и заканчивая какими-то таймерами пиццы.

Code
/in 12 /rw Кастуй остановку времени #1 ИГРОК1
/in 27 /rw Кастуй остановку времени #2 ИГРОК2
/in 42 /rw Кастуй остановку времени #3 ИГРОК3
/in 57 /rw Кастуй остановку времени #4 ИГРОК4
/in 72 /rw Кастуй остановку времени #5 ИГРОК5
/in 87 /rw Кастуй остановку времени #6 ИГРОК1
/in 102 /rw Кастуй остановку времени #7 ИГРОК2
/in 117 /rw Кастуй остановку времени #8 ИГРОК3

2. Вы танк, и хотите посчитать свой общий авойданс? Этот скрипт изучит ваши статы и выдаст результат:

Для ДК:
Code
/run ChatFrame1:AddMessage(format("Avoidance with Stoneskin Gargoyle: %.2f%%", GetDodgeChance() + GetParryChance() + 6 + 1/(0.0625 + 0.956/(floor(GetCombatRatingBonus(CR_DEFENSE_SKILL))*0.04))))

Для Друида:
Code
/run ChatFrame1:AddMessage(format("Total avoidance: %.2f%%", GetDodgeChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))

Для Паладина:
Code
/run ChatFrame1:AddMessage(format("Total avoidance: %.2f%%", GetDodgeChance() + GetParryChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))

Для Воина:
Code
/run ChatFrame1:AddMessage(format("Total avoidance: %.2f%%", GetDodgeChance() + GetParryChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))

3. Для охоты на Затерянного во времени протодракона нам поможет следующий макрос:

Code
/tar Дирки
/tar Вира
/tar Зате
/stopmacro [noexists]
/w Ваше_имя %t следит за тобой!
/run RaidNotice_AddMessage(RaidBossEmoteFrame,"Вот же этот дракон! МОЧИ ЕГО!", ChatTypeInfo["RAID_WARNING"])
/script PlaySoundFile("Sound\\interface\\RaidWarning.wav")
 
  • Страница 1 из 1
  • 1
Поиск:

Unread posts Есть новые сообщения    No unread posts Нету новых сообщений    No unread posts [ Locked ] Закрытый форум