Макросы для чайников

Макросы, аддоны, советы по оптимизации игрового процесса

Макросы для чайников

Сообщение Душесос 18 окт 2010, 03:58

Решил написать просто о сложном.

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

I. Что это? Как написать?

Макрос - это набор текстовых команд, которые записываются последовательно в консоль (в чат). Даже если вы никогда не слышали о них, вы ими пользовались. Вот вам пример макроса, который я пишу руками (от большой любви к согильдийцам) в окно чата каждый раз при входе в игру:
Код: Выделить всё
/g Всем трям!

А вот другой макрос, также часто используемый:
Код: Выделить всё
/dance


Практически любое действие, которое можно совершить в игре, можно совершить при помощи подобной консольной команды. Например, аналогом нажатия на кнопку заклинания "Гроза" является написание в чат макрокоманды
Код: Выделить всё
/cast Гроза

Таким образом ВоВ можно превратить в текстовую рпг, если не жамкать на кнопки, а писать в чат соответствующие команды. :)

Это весело, но глупо, согласен. В чем же тогда смысл макросов? Вся сила этого инструмента проявляется тогда, когда команды объединяются в блоки и сохраняются в специальном интерфейсе макросов. Таким образом можно создавать довольно сложное поведение с разветвленными системами условий и хитрых переходов, назначив все это безобразие всего на одну кнопку на панельке.

Но, обо всем по порядку. Для начала, научимся сохранять наши макросы для дальнейшего использования. Открыть окно сохраненных макросов можно одним из трех способов: нажать кнопку Esc и выбрать пункт Макросы, выбрать аналогичный пункт из выпадающего меню чата, или... правильно, макрокомандой, введя ее в чат :)
Код: Выделить всё
/macro

В открывшемся окне вы видите 2 закладки: "Общие макросы" и "Макросы персонажа". Сохраненное в первой вкладке доступно всем персонажам вашего аккаунта, а во второй - конкретному персонажу. Это имеет смысл, поскольку макрос Душесоса на управление суккубом Душесову на сдался, а вот макрос на редичек полезен обоим.
Сразу же под закладками находиться таблица с ячейками, где отображаются сохраненные макросы. Ниже - панель, отображающая выбранный макрос с кнопкой "Смена названия/значка". Еще ниже – поле для редактирования, куда мы будем вводить команды макроса.
Чтобы создать новый запомненный макрос, нажмите кнопку "Создать" внизу окна. В открывшемся окне введите название (постарайтесь сделать так, чтобы вы потом поняли, что имели ввиду) и выберите иконку для макроса из длиииинного списка. Если выбрать знак вопроса в качестве иконки, игра сама постарается подобрать иконку на основе заклинаний, использованных в теле макроса (если заклинаний и способностей там не окажется, игру ждут проблемы на этом тернистом пути, иконка так и останется вопросительной). Жамкаем "ОК", половина дела сделана.
Осталось написать что-нибудь осмысленное в поле "Введите макрос". Ну, а почему бы не ввести? Как вам такой вариант, специально для грац-ботов:
Код: Выделить всё
/g Я вас так сильно поздравляяяю!

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

Однако попробуем соорудить что-нибудь более полезное, хватит баловаться. Нас ждет вторая глава.

Изображение
Аватара пользователя
Душесос
Слонопотам
 
Сообщений: 768
Зарегистрирован: 19 янв 2010, 01:59
Откуда: Санкт-Петербург
Медали: 1
Великий волейболист (1)
Персонаж в игре: Душесос

Re: Макросы для чайников

Сообщение Душесос 18 окт 2010, 05:07

Повторение пройденного: примеры веселых небоевых макросов
Код: Выделить всё
/укус
/крик Я сегодня злой!

Использует на цель эмоцию "укус" и кричит о том, что вы сегодня злой.

Код: Выделить всё
/s Не выспался...
/sleep

Сообщаем, что не выспались и засыпаем.

Как видите, я объединил две различные команды в один макрос и тем облегчил "отыгрыш". Уже фаново, но пока не очень полезно. Тем не менее, побалуйтесь с этим, такие простые макросы дают кучу понимания того, как вся эта бодяга работает. Напишите свой собственный макрос с эмоцией, с сообщением в гилдчат, в рейдчат, с криком. Потренируйте логику. Попробуйте объединить несколько эмоций в один макрос, посмотрите, что вышло.

(Для тех, кто не знает названия каналов, приведу очень кратко список команд, отправляющих сообщение в нужный чат, думаю, уже назрело:
/y - крикнуть
/s - сказать
/g - гильдия
/1 ... /n - номер чата (торговый, оборона, общий и т. д.)
/w <ник> - приватное сообщение
/p - чат группы, не работает, если вы не в группе
/ra - чат рейда, не работает, если вы не в рейде
/rw - объявление рейду, доступно тем, у кого есть ассист в рейде, сообщение выскакивает посередь экрана с характерным звуком)


(Обратите внимание, что команды можно использовать как русскоязычные, так и англоязычные. И даже можно смешивать их в одном макросе, от этого ничего не поломается. Чего не скажешь о названиях способностей, они должны быть написаны ровно так, как в вашей книге заклинаний. Это знание вам пригодится позже.)

II. Знакомство с Факерами.
Команды заклинаний.

Здесь мы познакомимся с основными командами, которые делают макросы столь полезными.

A) Встречайте: команда /cast, она же /закл.
Команда /cast позволяет выполнять заклинания по их именам из вашей книги заклинаний (или из книги заклинаний вашего питомца). Простейший пример использования я уже приводил:
Код: Выделить всё
/cast Гроза

То есть синтаксис прост: после команды вы пишете название заклинания, которое нужно произнести. Кнопка с таким макросом ведет себя полностью аналогично тому, как если бы вынесли на панель заклинание из своей книги.
"ЗАЧЕМ?!!!" - скажете вы. Если аналогично. И вот тут-то мы вспоминаем, что можем комбинировать в макросе несколько команд и все встает на свои места. Вот вам пример резкого "поумнения" заклинания за счет того, что мы положили его в макрос:
Код: Выделить всё
/cast Гнев деревьев
/p Ставлю в корни %t! Кто собъет, тот танк!

Этот макрос не только поставит в корни вашу цель, но и сообщит в чат группы, что вы сделали это. Вы предупредили, с вас взятки гладки.

(%t - это специальное обозначение вашей цели. Игра сама подставит на место этих символов имя цели и в чате появится что-то вроде "Ставлю в корни Смертокрыл! Кто собъет, тот танк!" другое такое специальное обозначение: %f - ваш фокус.)

Приведу сразу еще несколько аналогичных примеров оповещения товарищей:
Код: Выделить всё
/cast Возрождение
/rw Душесов кастит БР, цель %t, похильте и побафайте!

Код: Выделить всё
/закл Ритуал душ
/rа Помогите поднять унитаз


(Как я уже писал, команда /cast требовательна к написанию имени заклинания вплоть до больших букв, пробелов и двоеточий. Чтобы команда выполнила заклинание, необходимо правильно написать его имя, ровно как в книге. Лучший способ ввести имя заклинания - открыть книгу заклинаний во время написания макроса. Далее нужно поместить курсор в место, где нужно вставить заклинание, и зажав shift, кликнуть на заклинание в книге. Заклинание будет вставлено автоматически. Причем, сразу вместе с командой /закл, если дело происходит в новой строке. Это удобно, попробуйте.)

Думаю, вы поймали идею. Напишите макрос на свой шакл/овцу сами и едем дальше.

B) Другая, очень похожая на /cast команда - команда /use. Она применяется для использования предметов вашего инвентаря или экипировки. Синтаксис команды тот же:
Код: Выделить всё
/use Губительный клинок всадника
/s О! Тыкаффки...

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

А вот более полезный пример использования команды /use. Сова сорвала агро и, помимо "молиться на хила" хочет сделать что-то еще для своего спасения. В такой стиуации здорово одной кнопкой съесть локовский камень и врубить дубовую кожу:
Код: Выделить всё
/закл Дубовая кожа
/use Камень здоровья из скверны

Или нам сдали БЛ и надо бы заюзать триньку и выпить хастпот. Напишите такой макрос сами. ;)

(Важно упомянуть, что, в принципе, если вы напишете /cast Губительный клинок всадника, то игра разберется, что вы имели ввиду и корректно использует предмет. То есть, фактически, команда /use является избыточной, предметы можно "кастить" так же, как и заклинания. Это упрощает написание сложных макросов с точки зрения синтаксиса, но путает тех, кто их пишет, особенно на первых порах.

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


До сих пор я хитро обходил в макросах одно существенное ограничение, но дальше это не возможно. Настал момент вас с ним познакомить. Ограничение называется ГКД.
Большинство заклинаний вызывает глобальное время восстановления, в течение которого вы не сможете использовать другое заклинание. По этой причине наивно написанный макрос вида
Код: Выделить всё
/cast Рой насекомых
/cast Лунный огонь

удивит вас своим "неадекватным поведением". Рой насекомых скастится, а вот Лунный огонь - нет. И вы получите сообщение о том, что заклинание пока не может быть использовано. Это происходит потому, что макрос выполняется целиком и сразу, так что игра пытается запустить одновременно оба заклинания, но обламывается, поскольку ГКД не дает выполнить второй каст. По этой причине макросы, состоящие из нескольких заклинаний в столбик, не работают. Исключение составляют только заклинания, не вызывающие ГКД, такие как Горение души чернокнижников, Природная стремительность друидов и другие подобные "спецэффекты". Ну и использование предметов ГКД не подвержено, именно поэтому мы так вольготно объединяли камень и дубовую кожу в предыдущем примере.

То есть, еще раз:
Рабочий макрос -
Код: Выделить всё
/cast Природная стремительность
/cast Покровительство природы

Нерабочий макрос -
Код: Выделить всё
/cast Омоложение
/cast Покровительство природы


C) "Тю", - скажете вы, - "Я только разогнался, хотел сложить всю свою мега ротацию в одну кнопку, а тут такой облом..." Не переживайте. Ротацию в одну кнопку загнать все-таки можно (если еще есть классы, у которых есть "ротация"). Делается это специальной командой, которая вместо "столбика заклинаний" делает "строчку заклинаний". Знакомьтесь: /castsequence. Она позволяет выстроить "очередь" из заклинаний. При первом нажатии на кнопку макроса будет произнесено первое заклинание, при втором - второе, при третьем - третье... и так далее. Вот как это выглядит:
Код: Выделить всё
/castsequence Лунный огонь, Рой насекомых, Гнев

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

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

Так или иначе, вот пример вполне жизнеспособного использования команды "самой по себе" для совиного АоЕ (если у вас есть глиф на Тайфун)
Код: Выделить всё
/castsequence reset=combat Тайфун, Гроза, Гроза, Гроза

Что такое reset=combat? Это правильный вопрос. Дело в том, что если вы вышли из боя, КД на тайфун у вас откатился, а последовательность застряла где-то на второй Грозе. А вы хотите теперь Тайфун, он же откатился пока вы топали от пака к паку. Вот для того, чтобы сбрасывать последовательность в начало, и существует модификатор reset для данной команды.
Он вставляется между самой командой и перечнем заклинаний в последовательности и может иметь следующие значения (через символ "/" можно задать сразу несколько условий, любое из которых сбросит последовательность):
- reset=target - сброс последовательности при смене цели
- reset=combat - при выходе из боя
- reset=shift - при нажатии на кнопку макроса с зажатым shift
- reset=alt - то же для alt
- reset=ctrl - то же для ctrl
- resrt=n - число секунд. Если вы не жмете на кнопке n секунд, последовательность сбрасывается в начало.
То есть в самом общем случае команда выглядит так:
Код: Выделить всё
/castsequence reset=10/shift/target Заклинание, Другое заклинание, Шмотка, Тринька, Что-то еще

Да, в последовательность можно вставить использование предметов, поскольку, как я писал выше, использования предметов - такие же "заклинания" с точки зрения игры, как и заклинания в книге.

D) И для полноты картины познакомлю вас с еще одной командой, имеющей отношение к применению заклинаний. Это команда /castrandom. Она используется для применения случайного заклинания. Аналогичная ей команда - /userandom, использующая случайный предмет из списка. Единственное, сколько нибудь разумное использование команды, я вижу только в призыве случайного маунта, или питомца. Возможно, вы придумаете что-то более интересное и поделитесь со мной. Синтаксис такой же как у /castsequence, только список будет выполняться не последовательно, а случайным образом.
Код: Выделить всё
/castrandom Тундровый мамонт путешественника, Конь погибели, Небесный скакун, Большой кодо хмельного фестиваля

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

Изображение
Аватара пользователя
Душесос
Слонопотам
 
Сообщений: 768
Зарегистрирован: 19 янв 2010, 01:59
Откуда: Санкт-Петербург
Медали: 1
Великий волейболист (1)
Персонаж в игре: Душесос

Re: Макросы для чайников

Сообщение борода 18 окт 2010, 08:55

/cast и /use абсолютно одинаковы :) можно юзать спелы и кастовать предметами, про условия в макросах (harm,dead и тд) полезно знать, замечательная команда aftercast, , стойки, ! тоже не описал, а ведь можно с помощью ее создать нечто подобное:

/cast [stance:3]!Облик кошки(Смена облика); [stance:1] !Облик лютого медведя(Смена облика); [stance:5]!Облик лунного совуха(Смена облика)

вроде бы зачем такой макрос, когда можно и вручную сменить форму, но он позволяет сменить форму, не выходя из этой формы, занимая при этом 1 гкд
вот полезная ссылка
http://www.wowwiki.com/Category:Macros
борода
Кристофер Робин
 
Сообщений: 248
Зарегистрирован: 20 янв 2010, 08:15
Персонаж в игре: КренФерил

Re: Макросы для чайников

Сообщение Душесос 18 окт 2010, 09:08

Бар, не беги впереди паровоза. "Для чайников". От простого к сложному. Если ты думаешь, что я что-то из этого не знаю, ты заблуждаешься. Не пугай людей раньше времени, впереди много уроков. И про стенсы, и про экзакт, и про условия, и про команды прицеливания, и про управление питомцами, и про скриптовые команды даже напишу, если читатель до них доживет. :)

А про идентичность Каста и Юза я написал, хотя это и не слишком базовая информация. Писал и боялся запутать.

Изображение
Аватара пользователя
Душесос
Слонопотам
 
Сообщений: 768
Зарегистрирован: 19 янв 2010, 01:59
Откуда: Санкт-Петербург
Медали: 1
Великий волейболист (1)
Персонаж в игре: Душесос

Re: Макросы для чайников

Сообщение Душесос 18 окт 2010, 11:56

Напишу еще главку. Я правда-правда, очень настоятельно рекомендую пробовать то, что написано в тексте в живую. Иначе уже в этой главе вы начнете терять нить, если раньше с макросами не сталкивались.

Повторение пройденного, сложные комбинации, задачки на логику.
Код: Выделить всё
/cast Настой ледяного змея
/castsequence reset=2 Гнев, Лунный огонь
/cast Жизнецвет

Подумайте, каков будет эффект от данного макроса. А от этого (в цель выбран недружественный игрок)?
Код: Выделить всё
/castrandom Жизнеотвод, Похищение жизни
/w %t Русская рулетка в действии.
/w %t Кто потеряет хиты в следующий раз? Ты или я?
/y Делай ставку!

Есть ли в этих макросах ошибки? Ответы напишу как-нибудь потом. :)

III. Шире круг.
Расширяем список знакомых команд. Начнем с команд, позволяющих как следует прицелиться.

Часто возникает необходимость взять кого-то в цель. Или, как подвариант задачи, в фокус. Фокус - это некая запомненная цель, за которой вы осуществляете слежение. Вы можете сколько угодно менять свои текущие цели, но при этом отслеживать свой фокус в отдельном фрейме и возвращаться к нему при необходимости. Например, вы наложили на моба контроль и хотите знать, когда он спадет, чтобы немедленно его обновить. Фокус для этих целей - то, что нужно. Для того, чтобы забрать в цель или в фокус определенного субъекта, существуют специальные команды.

А) Начнем с цели. Чтобы взять в цель, скажем, лично Душесоса собственной персоной, используется команда /target:
Код: Выделить всё
/target Душесос

Старый добрый простой синтаксис: пишем команду, а затем то, к чему ее нужно применить, через пробел. Ровно также как и с командой /cast: пишем команду, а потом заклинание, к которому нужно применить действие "каст". Давайте скомбинируем эти две команды:
Код: Выделить всё
/target Душесос
/cast Жизнецвет

Этот макрос выберет в цель Душесоса, а затем повесит на него Жизнецвет. Естественно, команда /target и ей подобные не вызывают ГКД, а потому мы смело написали их "в столбик", и это сработает.

(Если в поле вашей досягаемости окажутся Душесос и ДушесосТаврический, команда /target выберет ближайшего из них и это может оказаться Таврический, к моему разочарованию. Чтобы этого не случилось, можно использовать команду /targetexact, которая будет искать полнейшее соответствие тому, что написано после нее. С другой стороны,
Код: Выделить всё
/target Душ

найдет и Душесоса, и Душесова, а
Код: Выделить всё
/targetexact Душ

не найдет ни того, ни другого.

Второй нюанс заключается в том, что
Код: Выделить всё
/targetexact Душесос

найдет и выберет в цель меня, даже если я в сотне ярдов от вас. Вы не сможете повесить на меня Жизнецвет, но эта команда все понимает буквально, в отличие от команды /target, которая попытается найти что-то релевантное и может подсунуть вам кого-то другого на Д, если он доступен, а я нет.)

В качестве объекта для команд /target и /targetexact может быть использован любой идентификатор цели, не обязательно имя персонажа. Например, это может быть "pet", тогда в цель будет выбран питомец, или "player", тогда будет выбран ваш персонаж. Список всех разрешенных идентификаторов цели можно посмотреть тут.

Поскольку там махровый программистско-английский, выпишу их сюда с пояснениями в порядке условной значимости:
player - ваш персонаж
pet - ваш питомец
target - ваша цель (целиться в цель несколько странно, конечно, но не спешите с выводами)
focus - ваш предварительно запомненный фокус
mouseover - персонаж, находящийся под указателем мыши (интересно, что если у вас под мышью фрейм персонажа, это тоже считается, хилам на заметку)
partyN - член группы с номером N (N - число от 1 до 4)
partypetN - питомец N-ного члена группы (да, его может и не быть)
raidN, raidpetN - то же для рейда (N - число от 1 до 40)
arenaN - N-ный опонент на арене (N - число от 1 до 5)
bossN - N-ный босс энкаунтера, если боссов в бою несколько (N - число от 1 до 4)
npc - неигровой персонаж, с которым вы в данный момент взаимодействуете. очень хитрая опция...
none - никто. в качестве цели можно указать конкретно никого и, как бы глупо это ни звучало, изредка это полезно.
Для написания макросов реально значимыми являются первые 5, остальное куда актуальнее при написании скриптов, а до этого мы с вами в этом году не доберемся. Так что посмотрите, но не засоряйте голову.

А вот про эту опцию знать обязательно надо. К любому идентификатору цели в конец может быть дописано "target". Например, если к идентификатору pet дописать в конец target и прицелиться в это дело, получится такая команда:
Код: Выделить всё
/target pettarget

Этой командой мы выбираем в цель цель своего питомца. И вот тут всплывает идентификатор target в полный рост. Так, следующей командой мы выбираем цель нашей цели:
Код: Выделить всё
/target targettarget

Уловили суть? Ну, если хотя бы с третьего раза, то из вас получится отличный макросописец :)
Тогда добью вас сообщением, что команда
Код: Выделить всё
/target targettargettargettargettargettargettargettarget

не только работает, но и делает, что должна: выбирает в цель цель цели цели цели цели цели цели вашей цели. :ROFL:


B) Для того, чтобы забрать кого-то в фокус, используется команда /focus. Если не использовать после этой команды ничего, команда заберет в фокус вашу текущую цель.
Код: Выделить всё
/focus

А можно забрать в фокус... да опять, того же Душа. Здесь в качестве объекта также может быть использован любой из разрешенных идентификаторов цели, не обязательно имя персонажа.
Код: Выделить всё
/focus Душесос

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

С) Остальные команды прицеливания я презентую вам скопом. Просто знайте, что они есть, пригождаться они будут в весьма специфических ситуациях.
/assist - устанавливает целью цель вашей цели. Если я не взорвал вам мозг этой правдивой фразой, вот пример: если у меня в цели Мотыга и вы напишете
Код: Выделить всё
/assist Душесос

то вашей целью установится Мотыга. Аналогично кнопке "F", если вы ее не переназначили.
/cleartarget - сбрасывает вашу цель, теперь вы ни в кого не целитесь.
/targetlasttarget - возвращает вас к предыдущей цели. Если вы целились в Мотыгу, потом прицелились в меня, то после использования этой команды вы снова целитесь в Мотыгу.
/targetlastenemy - тот же эффект, но исключительно для врагов. В списке ваших последних целей находится последняя враждебная цель и происходит переключение на нее.
/targetlastfriend - тот же эффект, но исключительно для друзей.
/targetenemy - выбирает в цель ближайшее враждебное существо. Аналогично кнопке Tab.
/targetfriend - то же, но для дружественных целей. Аналогично Ctrl-Tab.
/targetparty - выбирает в цель ближайшего члена вашей группы.
/targetraid - выбирает в цель ближайшего члена вашего рейда.

(Подобно тому, как работает кнопка Tab, работают и эти команды. То есть, при последовательных нажатиях макросы с этими командами будут перебирать ближайшие легальные цели. Это позволяет, например, последовательно обвесить всех в группе Жизнецветом, если вам приспичило:
Код: Выделить всё
/targetparty
/cast Жизнецвет

15 нажатий - и вся группа под тремя стаками блумов.)

Надеюсь, вы еще не заблудились. В следующей главе я для разрядки расскажу о командах управления питомцами и всяких мелких украшательствах, после чего нас ждет еще одна сложная концепция: условные модификаторы. Хорошая новость в том, что, если вы ее осилите (и осилили то, что я уже написал), вы сможете написать практически любой ходовой макрос на свой вкус.

Изображение
Аватара пользователя
Душесос
Слонопотам
 
Сообщений: 768
Зарегистрирован: 19 янв 2010, 01:59
Откуда: Санкт-Петербург
Медали: 1
Великий волейболист (1)
Персонаж в игре: Душесос

Re: Макросы для чайников

Сообщение strike 18 окт 2010, 13:59

http://www.wowwiki.com/HOWTO:_Make_a_Macro
Хороший гайд, но на английском) Впринципе достаточно для написания чего угодно, не считая скриптового программирования интерфейса
Изображение
strike
Все-все-все
 
Сообщений: 225
Зарегистрирован: 20 янв 2010, 03:10
Откуда: Мос. Область
Персонаж в игре: Нутрикула

Re: Макросы для чайников

Сообщение Душесос 18 окт 2010, 14:57

Нутри, вот тебе перевод этого гайда, практически подстрочник:
http://games.olympus.ru/forum/showthread.php?t=33914
Гайд шикарный. У меня этот гайд в закладках вот уже 2 года и я с ним периодически сверяюсь до сих пор.

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

Изображение
Аватара пользователя
Душесос
Слонопотам
 
Сообщений: 768
Зарегистрирован: 19 янв 2010, 01:59
Откуда: Санкт-Петербург
Медали: 1
Великий волейболист (1)
Персонаж в игре: Душесос

Re: Макросы для чайников

Сообщение strike 18 окт 2010, 16:40

Мое дело подкинуть материал, а ты уже можешь постараться сделать понятным для "кухарок")
Изображение
strike
Все-все-все
 
Сообщений: 225
Зарегистрирован: 20 янв 2010, 03:10
Откуда: Мос. Область
Персонаж в игре: Нутрикула

Re: Макросы для чайников

Сообщение Душесос 28 окт 2010, 19:38

Еще глава, надеюсь, это кому-то помогает осваивать макросы. Начну, как обычно, с материала для закрепления, еще раз советую пробовать написанное, простым прочтением вы тему не осилите.

Задача 1. У вас в таргете находится босс. Напишите макрос на то, чтобы одним нажатием бросить Жизнецвет в Душесоса и вернуться к боссу. В тех же условиях напишите макрос на то, чтобы одним нажатием бросить Жизнецвет в игрока под указателем мыши и вернуться к боссу. А теперь то же, но в себя (тремя способами ;)).

Задача 2. Напишите макрос на последовательное обвешивание заклинанием Семя порчи всех врагов в пределах досягаемости.

Задача 3. Напишите макрос, который бросает в ваш фокус Покровительство природы Под природной стремительностью.

Ответы на предыдущие вопросы:
1. Макрос при каждом нажатии выпивает настой и по очереди кастит Гнев и Звездный огонь. При этом он еще и выдает сообщение "заклинание еще не готово" при попытке скастить Жизнецвет одновременно с Гневом или звездным огнем соответственно. Если вы не нажимали на макрос 2 секунды, то последовательность сбросится в начало и при нажатии вы получите Гнев, на чем бы ни остановились 2 секунды назад. Дурацкий макрос. :)

2. Макрос случайным образом кастит либо Жизнеотвод, либо Похищение жизни. Если в настройках игры у вас стоит автокаст на себя при невозможности каста в цель, то соответственно, либо вы теряете жизнь, либо цель. В противном случае на Жизнеотводе макрос фейлится.
Кроме этого, макрос отправляет подряд 2 виспа вашей цели:
Русская рулетка в действии.
Кто потеряет хиты в следующий раз? Ты или я?

А затем кричит:
Делай ставку!


IV. Взять! Служить!
Команды для управления питомцами.

А) Ну, во-первых, стоит заострить внимание на том, что все способности ваших питомцев считаются точно такими же заклинаниями, как ваши собственные. То есть вы смело можете смешивать в макросах свои и "питомские" способности:
Код: Выделить всё
/cast Соблазн
/cast Порча

Логично, что способности питомца не вызывают ГКД на ваши заклинания, но вызывают на его собственные. Обращайте на это внимание. Вы не можете писать свои заклинания в столбик, вы не можете писать в столбик заклинания питомца, но вы можете написать в столбик свое заклинание и заклинание питомца. Надеюсь, понятно.

В) Помимо собственно способностей питомца, существует целый ворох команд, связанных с управлением его поведением. Вот они:
/petattack - посылает вашего питомца в бой. Без модификаторов - на вашу цель. Можно указать цель в виде ника или идентификатора.
/petfollow - переключает питомца в режим следования; как и при нажатии на соответствующую кнопку, отменяет атаку.
/petpassive - переключает режим агрессивности в пассив
/petdefensive - ... в деф
/petaggressive - ... в агрессив
/petautocaston - команда для включения автокаста способности питомца (если способность поддерживает автокаст)
Код: Выделить всё
/petautocaston Всплеск боли

/petautocastoff - аналогичная команда для отключения автокаста
/petautocasttoggle - аналогичная команда для переключения автокаста. Если он был включен, станет выключен, и наоборот.

Любую из этих команд, как и любую другую, можно вставить в макрос отдельной строкой. Например, так:
Код: Выделить всё
/petattack
/castsequence reset=target Порча, Нестабильное колдовство, Бич Агонии, Блуждающий дух, Стрела тьмы

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

V. Ой, стоп!
Различные команды отмены и прочие "ограничители".

Часто при написании макросов требуются различные действия, связанные с прерыванием макроса, отменой текущего действия и всякое такое прочее. Несмотря на то, что эти команды имеют различный смысл и применение, я решил их свести в отдельную главку, чтобы вам было проще их искать. Иначе пришлось бы их распихать по всему гайду, а это не совсем удобно.

А) Ограничение "переключаемых" способностей.
Есть целый класс способностей, которые работают с переключением. Например, если вы нажмете кнопку формы медведя находясь в форме коровы, вы превратитесь в медведя, а если в форме медведя, то форма отменится и вы превратитесь в корову. Или если вы нажмете кнопку автоматической стрельбы, то при первом нажатии вы начнете стрелять, а при втором прекратите. Макросы в этом смысле ведут себя точно так же, то есть макрос
Код: Выделить всё
/cast Облик кошки(Смена облика)

Будет переключать ваш облик на кошку и обратно. Однако, существует возможность для таких способностей ограничить поведение только включением, вместо переключения. Для этого перед названием способности нужно поставить знак "!".
Код: Выделить всё
/cast !Облик кошки(Смена облика)

Такой макрос перекинет вас в кошку, если вы не в ней, а если вы уже в ней, то не отменит форму, просто ничего не произойдет. Аналогично
Код: Выделить всё
/cast !Автоматическая стрельба

Заставит вашего персонажа стрелять, но не отменит стрельбу, если он уже в процессе.

В) Удаление баффов
Это, возможно, немного экзотическая команда, но она есть. Команда позволяет отменить положительный эффект, наложенный на вас:
/cancelaura
Пример использования:
Код: Выделить всё
/cancelaura Костюм скелета


C) Выход из форм
Короткое лирическое отступление. Все формы классов, которые умеют менять формы, технически являются стойками (stances). Отличие от стоек воинов заключается в том, что формы можно отменять, а стойки воина - нет. Тем не менее, формы друидов, пристов, шаманов откликаются на имя "стойка" с точки зрения макросописательства. Имейте это ввиду и не путайтесь, когда я буду далее писать о стойках друидов, например.

Сейчас при попытке применения заклинания, требующего находиться в форме гуманоида, практически всегда форма сбрасывается сама. Практически, но не всегда. Поэтому команда на отмену формы иногда бывает актуальна. Вот она:
/cancelform
Результат применения - переход в базовую форму, как не сложно догадаться. Хотел написать "в форму гуманоида", но это не совсем корректно, поскольку ШП в теневой форме, например, после применения этой команды перейдет в обычную форму.

D) Прерывание заклинаний.
Прервать чтение заклинания можно подпрыгнув, побежав, или нажав кнопку Esc. А еще это можно сделать специальной командой. Это разумно, если у вас есть заклинание, которое всегда необходимо использовать немедленно, не дожидаясь окончания предыдущего каста. Это может быть связано с проком, или это может быть какая-то спасалка. Так или иначе, вот команда, и она полезная:
/stopcasting.
Ну, скажем, вы осознали, что умираете, спасите себя немедленно:
Код: Выделить всё
/stopcasting
/use Камень здоровья из скверны
/cast Дубовая кожа

И если вы в этот момент давили из себя, скажем, Звездный огонь, он будет оборван и приняты немедленные меры по спасению.

Е) Преждевременное прерывание макросов
Существует специальная команда для создания "провальной логики" работы макросов. Сама по себе она бесполезна, но в действительности имеет широкое применение в сочетании с системой условных модификаторов, о которой мы поговорим позже.
/stopmacro
В общем случае команда останавливает выполнение макроса. То есть все, что написано ниже этой команды, выполнено не будет. Это позволяет создавать сложное поведение, основанное на условиях. Я понимаю, что это пока не очень понятно, но приведу пример, на будущее.
Код: Выделить всё
/cast [nocombat] Оживление
/stopmacro [nocombat]
/cast Возрождение
/ra Душесов применяет Возрождение, цель %t

Если вы в бою, то макрос попытается возродить цель БРом и скажет об этом в рейд, а иначе использует не боевое возрождение, не попытается слить кд на БР и ничего не скажет.

F) Спешивание
Специальная команда, сбрасывающая вас с маунта. Тоже своего рода команда отмены, потому попала в этот раздел.
/dismount
На практике я ее ни разу не применял, но она есть.
Собственно, с командами отмены все.


Ну и на сладкое, маленькая, но очень полезная украшалочка, команды, которые не являются командами как таковыми, никак на содержание макроса не влияют, но делают макросы чуть более интуитивными.

Как вы, наверное, заметили, если выбрать в качестве иконки макроса знак вопроса, игра использует для отображения иконки заклинания первую способность или предмет, встречающиеся в тексте. При этом, даже если вы выбрали иконку вручную, для отображения КД , радиуса действия и доступности, все равно используется тот же принцип.
Чтобы изменить это поведение, существует специальная команда #show. Она позволяет выбрать заклинание, которое будет использовано для отображения на иконке и всего остального из вышеперечисленного. Применяется так:
Код: Выделить всё
#show Стрела тьмы
/use Зелье быстроты
/use Нетающий кристалл льда
/cast Стрела тьмы

Теперь, несмотря на то, что первым в макросе используется Зелье быстроты, на иконке у вас стрела и проверка расстояния до цели будет красить ее в красный, если цель недосягаема.

При наведении мыши на кнопку в панели вы увидите скромную подсказку в виде названия макроса, что не слишком полезно. Если вы хотите показать подсказку конкретной способности, вы можете использовать команду, похожую на предыдущую: #showtooltip.
Код: Выделить всё
#showtooltip Стрела тьмы
/use Зелье быстроты
/use Нетающий кристалл льда
/cast Стрела тьмы

Команда #showtooltip включает в себя команду #show, то есть заодно, прицепом, меняет и иконку на кнопке, и проверку дальности/доступности/кд.

Команда #showtooltip может быть использована и без названия заклинания, тогда подсказка будет заменена на подсказку заклинания, выбранного игрой для отображения. Это может иметь смысл для последовательностей. Так, в нижепреведенном макросе иконка, а заодно и подсказка на кнопке, будет меняться по мере выполнения последовательности: сначала это будет Порча, затем Нестабильное колдовство и т. д. Теперь вы всегда можете знать, в какой точке последовательности находитесь в данный момент и даже почитать подсказку текущей способности.
Код: Выделить всё
#showtooltip
/petattack
/castsequence reset=target Порча, Нестабильное колдовство, Бич Агонии, Блуждающий дух, Стрела тьмы



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

Изображение
Аватара пользователя
Душесос
Слонопотам
 
Сообщений: 768
Зарегистрирован: 19 янв 2010, 01:59
Откуда: Санкт-Петербург
Медали: 1
Великий волейболист (1)
Персонаж в игре: Душесос

Re: Макросы для чайников

Сообщение Ивилмастард 19 мар 2011, 06:26

Душесос, а где же продолжение этого замечательного гайда?!
Изображение
Ивилмастард

 
Сообщений: 2
Зарегистрирован: 07 мар 2011, 00:39
Откуда: красноярск
Персонаж в игре: Ивилмастард

След.

Вернуться в Горшочки с медом


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron