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

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

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

Сообщение Душесос 19 мар 2011, 21:59

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

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

VI. Ситуация резко усложняется и выходит из под контроля.
Условные модификаторы команд.

Довольно часто (практически всегда) основная причина, заставляющая вас искать утешение в макросах, выглядит так: "Я хочу, чтобы при нажатии на кнопку происходило А, но если <что-нибудь>, то происходило B". Иными (программистскими) словами, нам нужны конструкции условных переходов типа "если-то-иначе". Если бы макросы не позволяли их строить, цена была бы им грошик и гайда они бы не стоили. По счастью, они это умеют.

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

Он не слишком сложный. Если помните, все макро-команды мы записывали так:
Код: Выделить всё
/команда к_чему_применить

На самом деле, это был сокращенный вариант полной записи команды. В общем случае, любая команда может быть записана так:
Код: Выделить всё
/команда [условие1] к_чему_применить_если_условие1_выполнено;
[условие2_если_не_выполнено_условие1] к_чему_применить_если_условие2_выполнено;
... (повторять до полного удовлетворения)

Вот еще одна попытка объяснить ту же структуру, более формальная, покороче:
Код: Выделить всё
/команда [если] то действие1; [иначе, если] то действие2; ...


Сразу приведу пример, для наглядности. Если зажат модификатор alt, то нужно прокастить Бич агонии, а если не зажат, то Бич судьбы:
Код: Выделить всё
/cast [mod:alt] Бич агонии; Бич судьбы

В этом примере я пропустил второе условие. То есть, если условие [mod:alt] не выполнено, то без дополнительных условий и экивоков мы переходим к Бичу судьбы.
А вот если, например, написать так:
Код: Выделить всё
/cast [mod:alt] Бич агонии; [mod:shift] Бич судьбы

то при нажатии альта уйдет Агония, при шифте Судьба, а без модификаторов не произойдет вообще ничего.

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

В частных случаях можно опустить любую часть этой конструкции, кроме самой команды. Приведу столбик из макросов по мере уменьшения их "полноты", все рабочие:
Код: Выделить всё
/cast [mod:alt] Бич агонии; [mod:shift] Бич судьбы; [] Порча

Пустые квадратные скобки иногда можно встретить в макросах, такие макросы пишут программисты. Это означает "если что угодно" и эквивалентно тому, чтобы вообще ничего не писать:
Код: Выделить всё
/cast [mod:alt] Бич агонии; [mod:shift] Бич судьбы; Порча

Здесь я задал 3 вложенных проверки на условия. А вот макрос, в котором эта регулярная структура опущена, всего с одним условием на проверку:
Код: Выделить всё
/cast [mod:alt] Горение души
/cast Камень здоровья

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

Во второй строке этого макроса мы видим еще более вырожденный случай записи, каким мы привыкли его писать в предыдущих главах. На самом деле, тут, конечно же, тоже есть условие типа "что угодно", написанное в опущенных квадратных скобках и выполняющееся всегда. То есть, на самом деле, там вот так, просто мы не стали это писать (мы же не программисты):
Код: Выделить всё
/cast [mod:alt] Горение души
/cast [] Камень здоровья

Наконец, самый вырожденный способ записи:
Код: Выделить всё
/petattak

Как вы уже, наверное, догадались, в этой записи есть и параметры, и цель применения команды. В действительности, эта запись эквивалентна полной записи команды:
Код: Выделить всё
/petattak [] target

Умный ВоВ нас понимает с полуслова, но это не должно вас путать. Даже когда команда записана в упрощенном виде, в глубине души она все равно всегда имеет структуру, которую я описал в самом начале:
Код: Выделить всё
/команда [если] то действие1; [иначе, если] то действие2; ...

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

Все эти условные переходы применимы ко всем командам, не только типа "cast". Например, вот макрос, который будет искать Душесоса и кидать в него Омоложение, но только в том случае, если он живой. А если неживой, то даже в цель его не заберет, а Омоложение уйдет в текущую цель.
Код: Выделить всё
/target [nodead] Душесос
/cast Омоложение



Пока вы перевариваете синтаксис, я вывалю на вас список условий, которые могут быть использованы в макросах.

A) Условия состояния цели: help, harm, dead, party, raid и exists

1. Условие [help] определяет, является ли ваша цель той, на которую допустимо накладывать дружественные заклинания.

2. Условие [harm] работает по принципу [help] только для атакующих заклинаний, проверяя цель на допустимость атакующих заклинаний для вашей цели.

Код: Выделить всё
/cast [help] Омоложение; [harm] Лунный огонь

Если состояние [help] истинно, дальше выполняется заклинание Омоложение, и макрос переходит к следующей строке. В противном случае (у вас или нету цели, или вы не можете использовать дружеское заклинание на текущую цель), неудача приводит к обработке следующего условия. Теперь макрос проверяет состояние [harm]. Если условие истинно, используется Лунный огонь. Если нет – (опять же нет цели, или цели невозможно навредить) больше ничего не выполняется, так как условий больше нет.

3. Условие [dead] вернет истину, если у вас есть цель, и она мертва.

4. Условия [party] и [raid] возвращают истину, если цель находится в вашей группе или рейде.

5. Условие [exists] определяет существует ли цель заклинания. Другими словами, если у вас нету цели, условие вернет ложь. Во многих случаях можно легко обойтись без условия [exists], поскольку [help], [harm], [dead], [party], и [raid] включают в себя это условие (если уж цель дружественна, значит она, как минимум, есть и проверять ее наличие дополнительно не нужно).

B) Условия состояния персонажа: group, combat, stance, stealth, channeling, pet и equipped (worn)

1. Условие [group] проверяет, состоите ли вы в группе. Кроме этого, она содержит два подусловия:
    [group:patry] проверяет, состоите ли вы в группе до 5 ппл, то же самое, что просто [group]
    [group:raid] проверяет, состоите ли вы в рейде (вхождение в обычную группу заставит вернуть ложь)
Таким образом, можно проверить, состоите ли вы в какой-либо группе вообще, и, в частности, в рейдовой группе. Раньше это было полезно для кнопки баффов: в группе вешаем инту на всех, в соло - персональную. Сейчас - трудно сказать.

2. Условие [combat] истинно, если вы находитесь в бою.

3. Условие [stance].

Стойка - это общее название всех ситуаций, когда определенные умения требуют нахождения в каких-либо формах или состояниях. Ауры паладинов (хоть они и находятся на панели форм) и аспекты охотников не являются стойками, поскольку не требуют "быть в состоянии Х".

В простейшем случае [stance] означает, что вы находитесь в любой из стоек/форм. Это не слишком часто полезно, поэтому обычно условие используется с дополнительным параметром - номером стойки (или списком номеров стоек). В общем случае записывается это так: [stance:1/2/.../n] где n - это номер стойки.
Тут есть мелкий трюк: [stance:0] означает состояние "без стойки", что позволяет использовать условия вроде [stance:0/3] чтобы проверить, находитесь ли вы в стойке 3, или вообще без стоек.

Стойки сами по себе имеют такие же порядковые номера, как их положение на панели стоек/форм. К примеру, формы друида начиная с Медведя, Аква-формы, Кота и Формы для путешествий будет иметь номера стоек с 1 по 4. Приведу номера всех стоек для всех классов:

Воин
    Стойка 1 Боевая стойка
    Стойка 2 Оборонительная стойка
    Стойка 3 Стойка берсерка
Друид
    Стойка 1 Облик медведя
    Стойка 2 Водный облик
    Стойка 3 Облик кошки
    Стойка 4 Походный облик
    Стойка 5 Облик лунного совуха / Древо жизни
    Стойка 6 Облик птицы
Если у друида отсутствует нужная форма, все номера стоек сдвигаются вверх по списку.

Жрец
    Стойка 1 Облик Тьмы
Разбойник
    Стойка 1 Незаметность
Шаман
    Стойка 1 Призрачный волк

Пример использования для воина. Если вы не в боевой стойке, первое нажатие переведет в нее, а второе (после отката ГКД) всадит Превосходство. Если вы уже в стойке, просто уйдет Превосходство.
Код: Выделить всё
/cast [stance:1] Превосходство; Боевая стойка


4. Условие [stealth] используется для проверки состояния невидимости. Разбойникам может показаться, что, поскольку у разбойников нет других стоек, эта опция работает идентично [stance]. Однако, [stealth] применимо к расовому умению ночных эльфов, невидимости магов и любой другой невидимости, не связанной со стойками.

5. Условие [channeling].

Существует класс поддерживаемых заклинаний, так называемых потоковых. Обычно, если вы вливаете заклинание (т.е. выполняете чэннелинг) и начинаете накладывать другое, оно прервет процесс вливания. Условие [channeling] позволяет избежать таких случаев (с использованием префикса no, описанным ниже), либо, наоборот, создавать макросы на действия, связанные с тем, что вы поддерживаете какое-то заклинание. Ну, например, вы бегаете в афли в ПвП с суккубой и хотите кастить страх сами, но если вы поддерживаете Похищение жизни или души, страховать себя поцелуем от девочки, а не прерывать каст:
Код: Выделить всё
/cast [channeling] Соблазн; Страх

Очевидно, это не самый умный стиль игры, но хорошо иллюстрирует данное условие.

Условие [channeling] без дополнительных параметров отвечает любому заклинанию, но можно также использовать произвольный список имен заклинаний для проверки. Вот так:
Код: Выделить всё
/cast [channeling: Похищение жизни] Соблазн; Страх


6. Условие [pet].

Все классы с питомцами должны оценить полезность этого условия. Она позволяет выбирать нужное действие в зависимости от активного питомца. Можно указать имя питомца или его тип (Voidwalker, Boar, Imp, Wolf и т.д.). Само по себе [pet] означает любого из питомцев, однако можно написать [pet: Джажеми] или [pet: Voidwalker] для указания конкретного пета по его имени или типу. В общем случае список питомцев записывается так: [pet:P1/P2/.../Pn], где Pn - имя или тип питомца. Например, [pet: Джажеми/Хэлкрито].
Вот пример макроса, позволяющий магам выбирать между заклинанием Холод у элементаля и своим собственным заклинанием Кольцо льда:
Код: Выделить всё
/cast [pet] Холод ; Кольцо льда

Если у вас есть питомец, то будет предпринята попытка запустить Холод, если нет - Кольцо льда
Или макрос на использование абилок петов чернокнижника с использованием их имен:
Код: Выделить всё
/cast [pet: Хэлкрито] Жертвоприношение; [pet: Джажеми] Пожирание магии

Если со мной Хэлкрито, прикроюсь щитом от него, а если Джажеми, пусть съест положительный эффект с цели.

7. Условие [equipped] или [worn] позволяет определять надет ли заданный тип предмета. Условие [equipped] полностью идентично условию [worn], экономящему несколько символов. Типом предмета может быть номер ячейки инвентаря, и собственно, тип или подтип предмета. За подробностями к списку типов обращайтесь на wowwiki, иначе я никогда не закончу эту главу. Синтаксис: [equipped: <тип предмета>]. Это может быть полезно, скажем, воинам, которые не могут использовать ряд умений, если не экипирован щит. Таким образом, можно изменять поведение одной и той же кнопки в зависимости от того, в какой вы стойке и что на вас надето.

C) Еще несколько малозначимых условий, для справки: mounted, swimming, flying, indoors, outdoors и flyable

1. Условия [mounted], [swimming], [flying], [indoors] и [outdoors] проверяют, соответственно, верхом ли вы, находитесь в воде, в полете, внутри, или вне помещения. Вряд ли стоит описывать их детально. Эти условия не имеют модификаторов и применимы только к вашему персонажу. Наиболее реальные применения для этих условий я вижу в области управления средствами передвижения.

2. Условие [flyable] проверяет, находитесь ли вы в зоне, где возможны полеты. Даже с приходом Катаклизма остались зоны, где это условие вернет ложь. Ну, аналогично предыдущему, в макросах на маунтов имеет применение.

D) Условия управления вводом: modifier (mod), button (btn), actionbar (bar) и bonusbar

1. Условие [modifier] предназначено для проверки нажатий клавиш-модификаторов. Клавиши-модификаторы хороший способ сберечь место на панелях действий, уменьшить количество кнопок для запоминания, а также путь к принятию определенных решений. Разумное использование модификаторов - упаковка нескольких заклинаний в одну кнопку, либо "подбафывание" заклинаний дополнительными эффектами при зажатом модификаторе. Примеры использования я уже приводил.

Условие [modifier] аналогично условию [mod], экономящему несколько символов. Без дополнительных параметров условие возвращает истину, если нажата любая из клавиш-модификаторов. Список параметров устанавливается в том же формате, что и для других условий: [mod: alt/shift/ctrl].

Будьте внимательны с установкой кнопок в ваших макросах. Если вы свяжите кнопку А с макросом, имеющим в себе, к примеру, модификатор [mod:shift], и при этом существует клавиатурная комбинация shift-A, связанная с чем-либо еще, макрос не выполнится, так как клавиатурные комбинации имеют больший приоритет. Аналогично тому, что вы не сможете назначить в ВоВ в качестве клавиатурной комбинации alt-f4 или alt-tab.

Немного необязательной информации. В то время как клавиатурными модификаторами могут быть только shift, ctrl или alt, существует также набор системных переменных, которые также можно использовать в качестве модификаторов условий. Скажем, переменная SELFCAST означает «если включен модификатор на автоматическое использование заклинаний на себя» (значение этого модификатора устанавливается в настройках игры). Если в макросе вы пропишете эту переменную в формате [mod: SELFCAST], то при переопределении кнопки в интерфейсе переопределится и поведение макроса. Если придумаете, зачем это нужно, расскажите. Тем не менее, вот некоторые другие из переменных и их значения по умолчанию:
    AUTOLOOTTOGGLE (shift) – авто-сбор предметов
    STICKYCAMERA (ctrl) – статичная камера
    SPLITSTACK (shift) – разделение стопок
    PICKUPACTION (shift) – действие для подбора предметов
    COMPAREITEMS (shift) – сравнение предметов
    OPENALLBAGS (shift) – открытие всех сумок
    QUESTWATCHTOGGLE (shift) – слежение за квестами

2. Условие [button] или [btn] делает примерно тот же трюк, что и [mod], но в зависимости от того, какая кнопка мыши использована для активирования макроса. Синтаксис: [btn:1/2…/5]. Номера кнопок с 1 по 5 соответствуют левой, правой и средней кнопкам, а также кнопкам 4 и 5 (если такие есть на вашей мышке). Если ваш макрос активируется по нажатию с клавиатуры, это также удовлетворяет условию [btn:1].
Таким образом, вы можете задать "стандартное" поведение кнопки при нажатии с клавиатуры, либо "нестандартное" при нажатии нелевой кнопкой мышки на кнопку на панели. Для боевых условий это может сгодиться для "съесть камень" или "бинтоваться" кликом правой клавишей по кнопке, которая с клавиатуры делает что-то важное. В рамках минимизации кнопок на панели и компактизации интерфейса. Зато для призыва аж 5 разных маунтов можно использовать всего одну кнопку и мышиное пианино.

3. Условие [actionbar] или [bar], синтаксис: [bar:1/2…/6]. Интерфейс по умолчанию предоставляет некоторое число страниц для панели действий. Эти страницы применимы только к нежней левой панели действия, видимой в интерфейсе по умолчанию. Данное условие позволяет наделать макросов, которые соответствуют разным страницам панели действий, и разместить их на других панелях. Один из примеров, позволяющий охотникам создавать "псевдостойки" с помощью аспектов (уж не знаю, насколько это имеет смысл, использую в качестве иллюстрации):
Код: Выделить всё
/swapactionbar 1 2
/cast [actionbar:1] Дух ястреба; Дух лисицы

Этот макрос переключается между панелями действий 1 и 2. Когда он переключает панель на номер 1, он использует Дух ястреба, когда на номер 2 – использует Дух лисицы.

4. Условие [bonusbar], синтаксис: [bonusbar:1/2…/5]. Любой из классов, чьи панели действий основаны на определенных условиях (стойки, режим скрытности, владение и так далее), используют дополнительную, «бонусную панель», которая заменяет страницу 1 основной панели действий. Данное условие проверяет, активирована ли эта панель.
Например, когда жрец контролирует ум какой либо цели, его панель действий использует «бонусную» панель №5. Значит, можно сделать следующий макрос для переключений:
Код: Выделить всё
/cast [nobonusbar:5] Контроль над разумом
/cancelaura Контроль над разумом

Для детального описания по классам и их бонусным панелям, читайте wowwiki.


Префикс no

К любому из перечисленных условий можно добавить префикс "no". Например, [nodead] будет правдой, если ваша цель не мертва, а [noharm] - если ваша цель не враждебна. Это, кстати, имеет смысл, поскольку "невраждебна" не означает "дружественна" (например, труп сопартийца не является легальной целью дружественных заклинаний, как и враждебных). Аналогично, [nomod:alt] будет правдой, если альт не нажат. Ну и так далее.

Объединение различных условий

Все эти условия можно комбинировать как по принципу " условие И условие", так и по принципу "условие ИЛИ условие", а также комбинировать И и ИЛИ. Вы, наверное, догадывались, но сказать и описать синтаксис, нужно.

Делается это так:
  • Условие И условие
    Условия, которые должны быть выполнены одновременно, перечисляются в квадратных скобках через запятую.
    Код: Выделить всё
    /cast [nostance, swimming] Водный облик; [nostance, outdoors] Походный облик

    Если вы не в форме И в воде, то Водный облик, иначе если вы не в форме И на пленере, то Походный облик.
  • Условие ИЛИ условие
    Условия, истинность любого из которых вас устраивает, перечисляются в отдельных квадратных скобках.
    Код: Выделить всё
    /cast [mod:alt] [btn:2] Жизнеотвод; Похищение жизни

    Если зажат Alt, ИЛИ макрос активирован правой кнопкой мыши, то Жизнеотвод, иначе - Похищение жизни.
    Тут есть важный момент для понимания: условия будут проверяться также слева направо, если первая скобка не выполняется, происходит переход к проверке второй. Таким образом, можно создавать последовательности проверок, задавая им приоритет. Актуальный пример такого подхода приведен ниже, в разделе target=unit. Можно создать цепочку, заканчивающуюся условием, "а если ничего из этого не случилось, то просто скастить, без условий". Для этого добавляют в конец цепочки квадратные скобки и оставляют пустыми. Что-то вроде такого (хотя именно в такой реализации это и лишено смысла, но для нормального жизнеспособного примера опять не хватает изложенного материала)
    Код: Выделить всё
    /cast [mod:alt] [btn:2] [] Жизнеотвод

  • Комбинирование И и ИЛИ
    Эти условия можно объединять, и в этом основная сила. Синтаксис от этого не меняется. Ну, скажем, можно построить такой макрос:
    Код: Выделить всё
    /cast [help, dead] [target=targettarget, help, dead] [target=mouseover, help, dead] [target=focus, help, dead] Возрождение

    Макрос делает кучу проверок на тему БР: мертва ли ваша цель И можно ли поднять; ИЛИ мертва ли цель вашей цели И можно ли ее поднять; ИЛИ есть ли у вас под мышью поднимаемый мертвец; ИЛИ является ли ваш фокус поднимаемым мертвецом.

    Про новое условие target=unit, использованное в этом макросе, читаем прямо сейчас.

target=unit (@unit)

В дополнения к проверке условий, система макро опций предоставляет способ назначать цели для разных действий. Назначение целей записывается так же, как условия, хотя условием не является и всегда возвращает истину. Это вносит некоторую путаницу, конечно, но зато унифицирует запись. То есть запись такого вида
Код: Выделить всё
/cast [target=player] Омоложение

отправляет заклинание в самого игрока, не меняя его текущую цель. Псевдоусловие [target=player] всегда истинно, поэтому писать что-то вроде
Код: Выделить всё
/cast [target=player] Омоложение; [mod:alt] Буйный рост

абсолютно бессмысленно, до второго условия макрос никогда не доберется. Следующая запись полностью идентична первой и позволяет сэкономить знаки:
Код: Выделить всё
/cast [@player] Омоложение

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

Кроме установки цели для выполняемого действия, опция [target=] также задает цель для проверки условий. То есть, если мы скомбинируем ее с другими условиями, то эти условия будут проверяться не на вашей текущей цели, а на цели, прописанной в параметре [target=]. Это, разумеется, очень логично. Вот макрос, помогающий понять, как это работает:
Код: Выделить всё
/cast [help] [target=targettarget, help] [target=player] Омоложение

Сначала макрос проверяет на срабатывание условие [help]. Если оно истинно, управление передается команде /cast c параметром Омоложение (Омоложение уходит в текущую цель). Если нет – переходит к следующему условию, [target=targettarget, help]. Здесь происходит та же проверка на дружественность цели, но в этот раз определяется, является ли цель вашей цели дружественной. Если так, выполняется /cast Омоложение, но целью для команды /cast устанавливается цель вашей цели. Если же нужная цель так и не найдена (цель вашей цели не существует или не является дружественной), макрос перейдет к следующему условию, [target=player]. Так как действительных условий здесь нет, оно всегда будет истинно, что приведет к накладыванию Омоложения на самого игрока.


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

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

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

Сообщение pro100fox 28 мар 2011, 19:08

Душ, большое спасибо за гайд. Сам в общем-то программер и макрос написать не проблема. Но тут так все хорошо изложено и структурированно. Спасибо. Кстати, я бы опубликовал этот гайд у вас или у меня на блоге, наверняка будет интересно не только здешнему народу ;)
Аватара пользователя
pro100fox
Все-все-все
 
Сообщений: 10
Зарегистрирован: 16 фев 2011, 16:20
Откуда: Киев
Персонаж в игре: Изувр

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

Сообщение Душесос 29 мар 2011, 00:46

Без вопросов, копирайтофилией не страдаю, не буду требовать даже отсылок сюда. :)

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

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

Сообщение pro100fox 29 мар 2011, 10:40

Ну, ссылку-то поставить - это просто хороший тон :)

Но републикую обязательно. Не люблю, когда хорошие материалы пропадают - думаю мало кто сюда зайдет (а может и вообще не зайдут - эта тема незарегестрированным видна?)
Аватара пользователя
pro100fox
Все-все-все
 
Сообщений: 10
Зарегистрирован: 16 фев 2011, 16:20
Откуда: Киев
Персонаж в игре: Изувр

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

Сообщение Шана 30 мар 2011, 06:51

pro100fox писал(а):эта тема незарегестрированным видна?


Видна
Изображение
Аватара пользователя
Шана
Пятачок
 
Сообщений: 478
Зарегистрирован: 19 янв 2010, 00:09
Персонаж в игре: Шана

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

Сообщение pro100fox 08 апр 2011, 10:52

Вот закончил бы гайд-то :) А то грозился шестую часть написать, а сам жадничаешь :)
Аватара пользователя
pro100fox
Все-все-все
 
Сообщений: 10
Зарегистрирован: 16 фев 2011, 16:20
Откуда: Киев
Персонаж в игре: Изувр

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

Сообщение Kernov 08 апр 2011, 15:06

Признаюсь честно - можно было поработать поплотнее с интернетом. Однако, затраченные 4 часа особых успехов не принесли, а потому решил сначала попробовать спросить здесь, прежде чем ворошить инет дальше.
Собсвтенно суть вопроса:
Мне необходимо выполнить один и тот же макрос 30 раз подряд, а давить 30 раз кнопку мне лень... я пишу скрипт с циклом
/run for i = 1,30 do ВЫЗОВ МАКРОСА end end
собсвтенно вопрос: как вызвать макрос из скрипта? собственно возможно ли это в принципе? На каком-то гадком ресурсе прочитал, что КАСТЫ из скрипта не возможно выполнять в принципе.. Так ли это? и является ли Макрос в этом смысле КАСТОМ?
Изображение
Аватара пользователя
Kernov
Все-все-все
 
Сообщений: 270
Зарегистрирован: 03 фев 2010, 20:45
Откуда: Самара
Персонаж в игре: Дарквинд

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

Сообщение Душесос 08 апр 2011, 18:52

pro100fox писал(а):Вот закончил бы гайд-то

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

Kernov писал(а):Мне необходимо выполнить один и тот же макрос 30 раз подряд, а давить 30 раз кнопку мне лень...

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

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

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

Сообщение pro100fox 11 апр 2011, 15:33

Кстати, да. Кроме как пофлудить я применения не могу найти...
Аватара пользователя
pro100fox
Все-все-все
 
Сообщений: 10
Зарегистрирован: 16 фев 2011, 16:20
Откуда: Киев
Персонаж в игре: Изувр

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

Сообщение Kernov 11 апр 2011, 16:08

применение очень простое - автопросеивание руды. 78 стаков помещается у меня в сумках при условии "невыкидывания" 2-х комплектов экипировки, химии и прочей нужной в повседневной жизни мутоты.
Не заню из каких соображений близы зажали кнопку "Просеять все", но руды мне один товарищ всю прошлую неделю слал 2 раза по 118 стаков (видимо стока помещается у него в сумках) за день.. А вообще у меня 5 поставщиков )))
Топать на кнопку больше тысячи раз за день ЧРЕЗВЫЧАЙНО утомительно )

а можно чуток поподробнее хотя бы по поводоу разер наги? такая есть в наличии ))
Изображение
Аватара пользователя
Kernov
Все-все-все
 
Сообщений: 270
Зарегистрирован: 03 фев 2010, 20:45
Откуда: Самара
Персонаж в игре: Дарквинд

Пред.След.

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

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

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



cron