Guide: How to macro it! Гайд: Как писать макросы!
Автор | Сообщение |
---|---|
|
6
Общая структура макроса на применение спеллов и абилок:Код: /cast [(no)mod:mod1, @target1, ] spell1; [(no)mod:mod2, @target2, ] spell2; etc... Код: /cast [(no)mod:mod1, @target1, ] [(no)mod:mod2, @target2, ] spell Код: /cast [(no)mod:mod1, @target1, ] [(no)mod:mod2, @target2, ] spell1; [(no)mod:mod3, @target3, ] spell2; etc... hint: если поставить в конце строки спелл с пустым блоком условий "[]" или же просто "...;spell", то он скастуется если никакой из предыдущих блоков не сработал. Один макрос может содержать несколько отдельных строк "/cast ...", но учтите, что вы не сможете одним макросом скастовать два спелла сидящих на гкд, для второго выведется сообщение об ошибке "заклинание еще не готово". Если назначение параметра spellX интуитивно понятно - название спелла/абилки, которое нужно применить в условиях X (hint: заклинание можно вставлять по шифт+клику из спеллбука, единственно, что стоит удалить указание уровня применяемого заклинания, тогда по умолчанию будет кастоваться максимально выученный уровень), то с блоками собственно самих условий не все так прозрачно. Давайте рассмотрим их подробнее. Общая структура блока условий:Код: [(no)mod:mod1, @target1, ] (no)mod:mod1 проверка на (не)используемый при вызове макроса модификатор. Ex. mod:ctrl Список возможных mod - ctrl, alt, shift Также их можно комбинировать в одном условии через символ "/", например nomod:shift/alt Если применить просто nomod, то выполнение блока будет происходить, только при вызове макроса без модификаторов вообще Пример макроса с модификаторами: Код: /cast [mod:ctrl] Holy Light; [mod:alt] Flash of Light; [mod:shift] Holy Shock; Blessing of Kings @target Этот параметр указывает к какой цели нужно применять привязанный к блоку условий спелл, а так же цель которую нужно проверять на соблюдение conditions (см. далее) Список возможных target - player, target, targettaget, focus, mouseover, party1 (от одного до 4(?)), arena1 (1-5). Список всех UnitID Раньше использовалась запись target=UnitID, like target=focus и хотя сейчас такая запись тоже доступна, для краткости макросов предпочитаю использовать @UnitID Пример: Код: /cast [nomod:shift, @target][mod:shift, @focus] Blind в упрощенной записи выглядит как Код: /cast [mod:shift, @focus] [] Blind Дополнительные условиясостояния цели Список возможных состояний - (no)exists, (no)dead, (no)harm, (no)help Пример: Код: /cast [help, dead] Ressurection; [help, nodead] Sign of the Wild; [harm, nodead] Faery Fire Набор условий в макрос языке скуден. Если вы хотите проверять находится ли цель в необходимом ренже, лосе или есть ли на ней какой-либо бафф/дебафф - сразу забудьте. Выполнить такую проверку посредством не /script макроса невозможно. stance У многих классов доступны различные так называемые стойки (типичный пример варриоры или друиды), в зависимости от которых возможны разные спеллы и прочее. Для проверки стоек используется выражение "(no)stance:x" в блоке условий. Пример: Код: /cast [stance:1] Увечье (медведь)(); [stance:3] Увечье (кошка)(); [nostance] Лунный огонь Список возможных stance для классов: Код: Warrior [1]Battle [2]Def [3]Bers Druid [1]Bear [2]Aqua [3]Cat [4]Travel [5]Moonkin/Tree [6]Flight *если у друида нет формы совы/дерева в талантах, то флай форма будет 5! Priest [1]Shadowform Rogue [1]Stealth [3]Shadow Dance Shaman [1]Ghost Wolf Warlock [2]Demon Form stealth Так же для классов разбойник и друид доступна проверка на наличие стелса - (no)stealth Код: /cast [stealth] Sap; [nostealth] Gouge (no)equipped Позволяет проверять в блоке условий тип экипировки. Нужен в основном варриорам для применения абилок доступных с определенным типом оружия Возможные типы предметов: shields, two-handed, one-handed; так же конкретные разновидности оружий: Two-Handed Swords, Daggers, etc. Пример: Код: /cast [equipped:shields] Shield Bash; [equipped:two-handed] Pummel Типы предметов на WoWWiki: pet Классы с петами могут в маросах проверять их наличие/тип условием "(no)pet=pet type/pet name" Пример для фрост магов: спызженно у SiG]F.S( Код: /cast [nopet] Призыв элементаля воды /stopmacro [nopet] /cast Холод /petattack Дополнительные команды в макросах:Кроме команды /cast в макросах доступны следующие командысписок всех возможных команд на русском и английском можно посмотреть тут Учтите, что почти ко всем этим командам можно применять блоки условий Примеры: Код: /equipset [noequiped:shields] Shield_set; Twohanded_set Код: /targetenemy [noharm][dead][noexists] Код: /use 10 8 слот ботинок, 6 слот пояса, 13 слот верхнего тринкета, 14 нижнего Код: /cancelaura вихрь клинков, длань защиты Примеры всяких макросов с комментариями:Kirkun писал(а): Помогите пожайлуста с макросом: нажатие клавиши юз абилки (мастерколл) на себя, нажатие клавиши+шифт юз на твою цель, но если цель враг, то юз на цель этого врага. Итак. Макрос должен выполнять 3 возможных действия: каст "Приказ хозяина" на самого игрока, каст в цель если она дружественна или в цель цели, если в таргете враг. Первый вариант - модификатор шифт не используется, нужно применить абилку в себя Код: [nomod:shift,@player] Второй вариант - нажат мод шифт и в таргете дружественная цель Код: [mod:shift,@target,help] Третий вариант - также нажат мод шифт, но в таргете враг, потому нужно применить мастерколл в цель цели, если она дружественная. В силу ограничений макрос-языка, невозможно проверить один юнитфрейм, а применить спелл к другому, но нужно учесть, что третий блок будет проверяться только если не сработал 1ый и 2ой. Т.е. в таргете находится недружественная цель (иначе бы сработал 2ой блок). Тогда 3ий блок будет выглядеть так Код: [mod:shift,@targettarget,help] Составим макрос целиком Код: #showtooltip /cast [nomod:shift,@player] [mod:shift,@target,help] [mod:shift,@targettarget,help] Приказ хозяина gem писал(а): помогите пожалуйста если это возможно написать макрос, чтоб приоритетом каст кидался по маусоверу, а когда мышка не наведена по фокусу Довольно несложный, но часто используемый тип макросов с приоритетом возможных целей 1ая цель - маусовер Код: [@mouseover,harm,nodead] 2ая цель - фокус Код: [@focus,harm,nodead] ну и добавим 3ью цель - текущую Код: [] Макрос целиком будет выглядеть так Код: #showtooltip /cast [@mouseover,harm,nodead] [@focus,harm,nodead] [] Harmfull spell Дополнительные tips:Код: #showtooltip Полезные ссылки:Надеюсь сей wall of text не сделает ваши глаза развидеть, и покажет ПРИНЦИПЫ написания макросов в ВоВ, или подскажет пути где их еще можно посмотреть. з.ы. вообщем если я чего-то где-то невнятно/недостаточно расписал - спрашивайте, буду уточнять. если вы вообще ничего не поняли, то опишите какой макрос вы хотели бы увидеть, я постараюсь его составить и описать для него где, что и почему Kirkun: есть только вопрос: Код: /cast [nomod:shift, @target][mod:shift, @focus] Blind Me: Макрос написан так специально, чтобы продемонстрировать возможности nomod на примерах и кстати именно nomod:shift может оказаться полезным. например у меня на альт кроме всего прочего забиндена функция push-to-talk вентрилы. догадываешься, что произойдет, если я, говоря что-либо в вентру, попытаюсь заблайндить цель в случае с просто nomod? правильно - ничего! а должен произойти блайнд Godzill: При написании макроса на перехват двуруча на 1н и щит (и обратно) не хватает места, названия слишком длинные, то есть для текущего сеанса все нормально, но стоит релогнуться и окончание макроса затирается, ограничение видать на количество символов. Как бороться с этим? Ufolog: Есть аддон называется Me: наверно более простой способ, уже упоминавшийся в соседнем треде про макросы, состоит в том, чтобы создать в стандартном эквип менеджере два сета shield_set и twohand_set. в них заполнить только ячейки с оружием (остальные поставить инактив, т.е. перечеркнутая красная окружность). тогда, вместо команды /equip можно использовать команду /equipset . просто своевременно пересохраняйте сеты, когда апгрейдите что-либо из предметов |
15 янв 2010, 01:03 |
|
|
0
Годный гайд. Главное - нужный начинающему.
Только в названии - gUide. И да , забыт /castsequence . |
15 янв 2010, 01:18 |
|
|
0
Хорошый гайд, написано в новом стиле кажысь в 3.3 добавили "@". А гайд по скриптам можешь нвписать? Ме всегда интересовала проверка на кулдауне ли руна у ДК, за ДК оченьбы спростило игру=)
Как помне /castsequence не очень харошая команда в макросах, раньше юзал макрос для ДК для нанесения болезней 1 кнопкой, написан был через /castsequence, если 1 из записаных абилок резисститса, парируется или мисает, то для повторного нанесения надо юзать всю последовательность опять, можно конешно поставить reset какойто на шыфт, на таргет это само собой понятно, но всеравно неудобно. |
15 янв 2010, 01:28 |
|
|
0
Ресет можно поставить на таймер, например reset = 10
+как минимум для лока макросы с /castsequence желательны, прим : /castsequence reset = 60 Господство Скверны,Призыв цобачке,Связка души |
15 янв 2010, 02:25 |
|
|
0
При написании макроса на перехват двуруча на 1н и щит (и обратно) не хватает места, названия слишком длинные, то есть для текущего сеанса все нормально, но стоит релогнуться и окончание макроса затирается, ограничение видать на количество символов.
Как бороться с этим? |
15 янв 2010, 11:23 |
|
|
0
Godzill писал(а): При написании макроса на перехват двуруча на 1н и щит (и обратно) не хватает места, названия слишком длинные, то есть для текущего сеанса все нормально, но стоит релогнуться и окончание макроса затирается, ограничение видать на количество символов. Как бороться с этим? Есть аддон называется |
15 янв 2010, 12:56 |
|
|
0
Это хорошо написанное руководство. Если вы можете написать один для этого http://www.rsclegacy.com/guide.php?m=game_guide, это было бы здорово, спасибо. |
15 янв 2010, 13:15 |
|
|
0
хороший гайд. автору зачет
|
15 янв 2010, 13:29 |
|
|
0
Kirkun писал(а): есть только вопрос: Код: /cast [nomod:shift, @target][mod:shift, @focus] Blind Зачем после nomod писать shift? Проще оставить чтобы не использовался спел при любом модификаторе. Макрос написан так специально, чтобы продемонстрировать возможности nomod на примерах и кстати именно nomod:shift может оказаться полезным. например у меня на альт кроме всего прочего забиндена функция push-to-talk вентрилы. догадываешься, что произойдет, если я, говоря что-либо в вентру, попытаюсь заблайндить цель в случае с просто nomod? правильно - ничего! а должен произойти блайнд Добавлено спустя 6 минут 14 секунд: Re: mini-gide:How to macro it! Zeratustro писал(а): Только в названии - gUide. И да , забыт /castsequence . я знаю, что guide правильно... а исправили зря По поводу /castsequence, я лично ей так и не научился пользоваться, ибо не возникало надобности. может быть чуть попозже допишу или скопипастю если кто-нибудь человеческим языком опишет со всеми тонкостями (а их там немало) Во! надо было еще про /castrandom написать, а то как же начинающим ДК без него играть |
15 янв 2010, 20:10 |
|
|
0
во, большое спасибо :) тему в избранное
|
15 янв 2010, 21:48 |
|
|
0
Ufolog писал(а): Godzill писал(а): При написании макроса на перехват двуруча на 1н и щит (и обратно) не хватает места, названия слишком длинные, то есть для текущего сеанса все нормально, но стоит релогнуться и окончание макроса затирается, ограничение видать на количество символов. Как бороться с этим? Есть аддон называется наверно более простой способ, уже упоминавшийся в соседнем треде, про макросы состоит в том, чтобы создать в стандартном эквип менеджере два сета shield_set и twohand_set. в них заполнить только ячейки с оружием (остальные поставить инактив, т.е. перечеркнутая красная окружность). тогда, вместо команды /equip можно использовать команду /equipset . просто своевременно пересохраняйте сеты, когда апгрейдите что-либо из предметов изменил в 1ом посте, извините, немного некорректно было написано + добавил в Q&A |
15 янв 2010, 21:53 |
|
|
0
Гайд хороший (но не совсем полный)
ничего нового не увидел |
15 янв 2010, 22:39 |
|
|
про stance.
Не увидел там проверку на стойку. [nostance:2] к примеру у воинов проверяет правдивость включеной защитной стойки. то есть, к примеру мы хотим на одну кнопку забиндить интерцепт и что бы избежать спама про "Не подходящая стойка" и т.д. пишем /cast [nostance:3] стойка берсерка /cast Перехват так же стоило уделить внимание команде /equip побольше. очень важно для классов которые носят одноручки или щиты. и что бы небыло казусов со сменой оружия лучше писать: /equipslot 16 - (Мейн_Хенд) /equipslot 17 - (Офф_Хенд) самое главное что хотелось бы увидеть в гайде так это разбор скрипта на подтверждение диалога. знаю что масово используется варлоками что бы быстро и без проблем на арене бафать свое оружие камнем. тоже вроди бы есть и у рогов. + раньше при помощи этих скриптов можно было получить 2 разных табарды илидари или красную\синюю табарду за какой то фест с Ахуном. |
15 янв 2010, 23:38 |
|
|
Вот за такой гайд я бы не раздумывая отдал ТК.
Спасибо огромное. |
15 янв 2010, 23:43 |
|
|
0
1nflame писал(а): про stance. Не увидел там проверку на стойку. [nostance:2] к примеру у воинов проверяет правдивость включеной защитной стойки. то есть, к примеру мы хотим на одну кнопку забиндить интерцепт и что бы избежать спама про "Не подходящая стойка" и т.д. пишем /cast [nostance:3] стойка берсерка /cast Перехват Ну про стансы я написал базовую информацию и продемонстрировал на примере друида, думаю по аналогии несложно сообразить как обращаться с варровскими стойками. Хотя согласен, нужен пример спаммабле макроса, который в случае неподходящих условий старается их подогнать под нужный каст. Единственно, что клятвенно обещаю скопипастить с воввики информацию о том какая цифра за какую stance отвечает у разных классов. Там очень кавайная табличка нарисована, ток придумаю как бы лучше ее нарисовать тут. 1nflame писал(а): так же стоило уделить внимание команде /equip побольше. очень важно для классов которые носят одноручки или щиты. и что бы небыло казусов со сменой оружия лучше писать: /equipslot 16 - (Мейн_Хенд) /equipslot 17 - (Офф_Хенд) Все же считаю, что сейчас вместо /эквипслот в подавляющем большинстве случаев лучше использовать /equipset вместе с сохраненными частичными сетами в эквип-менеджере, особенно если сменять надо более 1ой вещи (1ханд+щит например). Об этом я написал в доп. командах и в Q&A один вопрос этому посвящен. 1nflame писал(а): самое главное что хотелось бы увидеть в гайде так это разбор скрипта на подтверждение диалога. знаю что масово используется варлоками что бы быстро и без проблем на арене бафать свое оружие камнем. тоже вроди бы есть и у рогов. да, тоже что-то припоминаю, видел вроде где-то подобное, постараюсь найти Добавлено спустя 19 минут 25 секунд: Список возможных stance для классов: Код: Warrior [1]Battle [2]Def [3]Bers Druid [1]Bear [2]Aqua [3]Cat [4]Travel [5]Moonkin/Tree [6]Flight *если у друида нет формы совы/дерева в талантах, то флай форма будет 5! Priest [1]Shadowform Rogue [1]Stealth [3]Shadow Dance Shaman [1]Ghost Wolf Warlock [2]Demon Form *добавил в пост |
15 янв 2010, 23:58 |
|
|
0
хороший гайд, спасибо, пригодиться всем классам
|
16 янв 2010, 01:20 |
|
|
0
На счёт /castsequence
Этот макрос далеко не всегда бесполезен. Так, можно сделать "двукнопочный" макрос для ротации почти всех основных танкующих абилок протпала, известный как "696" (на самом деле, это два макроса). В первый запихиваются абилки с 6-сек кд, во второй -- с 8-9 сек кд. Получаем два макроса вида: 1) /castsequence Молот Праведника, Щит Праведности 2) /castsequence Щит небес, Правосудие Мудрости, Освящение Спамится по очереди двумя кнопками: 1-2-1-2-1-2... |
16 янв 2010, 02:06 |
|
|
0
лучший гайд если автор будет обновлять заслуживает не просто тк, а тк каждый мажор патч
|
16 янв 2010, 05:05 |
|
|
0
нид хелп, юзаю макрос типа:
Код: /cast [stance:1] Feral Charge - Bear /cast [stance:3] Feral Charge - Cat надо впихнуть в него же чардж в маусовер, пытался вставить Код: /cast [stance:1] [ target=mouseover, harm][harm] Feral Charge - Bear но что-то не выходит upd: разобрался Код: /cast [target=mouseover, harm][harm] [stance:1] Feral Charge - Bear /cast [stance:3] Feral Charge - Cat одно но, чаржу по маусоверу держа в таргете старую цель, а бить начинает новую цель, хотя в таргете не она.. |
21 янв 2010, 16:50 |
|
|
0
Enhq писал(а): одно но, чаржу по маусоверу держа в таргете старую цель, а бить начинает новую цель, хотя в таргете не она.. это баг, тоже самое твориться если чарджишься по фокусу - автоатака начинает бить в чарджунутую цель, причем если потом не менять таргеты, то так и останется, обилки будут кидаться в выбранную на самом деле цель, а автоатакой бить оффтаргет по поводу макроса, надо прокомментировать, а то он сейчас в том бредовом состоянии, которое позволяет ему делать то, что ты хочешь... но, мягко говоря, он неправильно написан Добавлено спустя 26 минут 18 секунд: Enhq писал(а): upd: разобрался Код: /cast [target=mouseover, harm][harm] [stance:1] Feral Charge - Bear /cast [stance:3] Feral Charge - Cat рассмотрим на конкретном примере, что происходит: в макросе содержится две команды "/cast" , которые обрабатываются отдельно /cast [target=mouseover, harm][harm] [stance:1] Feral Charge - Bear смотри, первый блок [target=mouseover, harm] проверяет, если у тебя под маусовером находится harm цель... и все :) потому сразу же будет попытка скастить медведский чардж в маусовер и пофигу в какой ты форме, в медведе, в коте или вовсе в гуманоиде. есстественно в некорректном случае просто в лог выкинется строка об ошибке, типа "вы должны быть в форме медведя, чтобы применить это заклинание". второй блок [harm], просто проверяет, если твой таргет враг... и опять же идет попытка bear чарджа, без проверки формы. ну и апофеоз маразма (не обижайся просто в рифму ) - третий блок, проверяющий на форму медведа и попытка чарджунться в текущий таргет, без проверки его дружелюбности. В итоге, если все же произошло чудо и ты поюзал макрос в медведе, то в принципе все сработает как надо, чаржнется в маусовер если там враг (1ый блок) или в текущий таргет, если там враг (2ой блок). Тогда 2ая строка с кастом кошко-чарджа не обработается из-за гкд (вернее выдаст в лог ошибку, что заклинание еще не готово) если же ты в кошаке, то первая строка макроса ругнется по всякому, но зато не будет гкд и сработает 2ая. если уж писать в соответсвии с мини-gide, то должно получиться что-то вроде такого: Код: /cast [@mouseover,harm,stance:1][stance:1] Feral charge - bear; [stance:3] Feral charge - cat |
23 янв 2010, 20:11 |
|