Как сделать таргет в вов

Как сделать таргет в вов

zV7tA7hie3aGU9PruQbxALCE3WYZc2KXP5aip E3YwxMoOR qcs aHe9Rc45UfjVOZ2yhLzc

3. ГКД
У новичков на этом моменте загораются глаза – появляется желание написать комбо-макрос для убийства моба (или даже игрока) одной кнопкой, но сейчас, дорогие мои, я вас обломаю. Как вы могли заметить, почти все действия в игре, активируют так называемый глобальный кулдаун (ГКД), равный одной секунде. Это сделано как раз для того, чтобы, например, маг не мог забив на макрос все свои инстант-спеллы за доли секунды (а именно с такой скоростью исполняются команды) выдать много урона.
Кроме этого, близзард не дали возможности устанавливать между действиями какую-либо задержку, команды исполняются мгновенно, одна за другой, и как только первая активирует способность, запускается вторая, за ней третья и т.д. – но все они натыкаются на ГКД и выдают ошибки о том, что способность еще не готова.
Но не все так плохо: если первая способность не активирует ГКД (а такие есть), то можно сразу запустить вторую. Например, я хочу заюзать талант шамана Nature’s Swiftness, который делает следущий спелл инстантом, после чего сразу кастануть Healing Wave. Пока не будем усложнять этот макрос выбором цели:
—————
/cast Nature’s Swiftness
/script SpellStopCasting()
/cast Healing Wave
—————

4. Выполнение скриптов
На самом деле команда /script, она же /run позволяет писать самые интересные макросы. Дело в том, что она исполняет строчку скрипта на языке Lua, с помощью которого можно вызывать множество полезных функций игры. Так, если в БК и последующих версиях WoW большинство макросов можно было написать, используя стандартные команды, то в классике они весьма ограничены в возможностях, а весь функционал доступен, как правило, через скрипты.

Например, /cast Healing Wave равнозначно /script CastSpellByName(«Healing Wave») – при этом обязательно учитывать, что в одном скрипте может быть несколько действий, разделенных точкой с запятой (БЕЗ ПЕРЕНОСА!). Например, предыдущий макрос можно переписать следующим образом:
—————
/script CastSpellByName(«Nature’s Swiftness»); SpellStopCasting(); CastSpellByName(«Healing Wave»)
—————

Не стоит забывать, что SpellStopCasrting() прерывает каст во время вызова, чем могут пользоваться маги для контрспелла и шаманы для земляного шока – иногда нужно срочно сбить врагу каст, сбросив свой. Чтобы не делать этого вручную, напишите такой макрос:
—————
/script SpellStopCasting(); CastSpellByName(«Earth Shock»);
—————

Допустим, у моего персонажа кончилась мана, я иду в ближний бой, а противник начал кастовать что-то. В таком случае мне подойдет даже шок 1 ранга, лишь бы сбить его каст. Добавим третье действие в скрипт:
—————
/script SpellStopCasting(); CastSpellByName(«Earth Shock»); CastSpellByName(«Earth Shock(Rank 1)»)
—————
(если маны хватит на шок высокого ранга, то третья фукнция не выполнится из-за КД на шок, если же не хватит на вторую, то вместо нее выполнится третья)

Источник

Опции темы
Отображение


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


1. Что такое макросы и как их создавать

Все макросы в игре представляют собой исполняемые прямо через интерфейс чата команды, начинающиеся с символа «/». То есть, эмоции (например, /wave, /train и др), сообщения в определенный канал чата и т.д. – тоже являются такими командами. Суть макроса в том, что мы запоминаем определенную команду или их последовательность, выполнение которых можно выносить на экшн бар и, следовательно, забиндить на хоткеи.
Чтобы открыть интерфейс создания макросов, воспользуйтесь главным меню или просто напишите в строку чата /macro. Обратите внимание на две вкладки – макросы можно создавать как общие, так и отдельно для каждого персонажа, это очень удобно – меньше шансов запутаться.
Создавая макрос, сразу выберем ему имя и иконку из предложенных, после чего в нашем распоряжении будет окно для ввода наших команд. Каждая команда выполняется построчно, то есть, нажимая Enter и перенося строку, мы создаем другую команду, например:
—————
/s Hi!
/hello
—————
(две команды, выполняемые поочередно)

2. Базовые команды
Если мы хотим повысить эффективность управления персонажем, приоритетными командами являются использование способностей /cast и выбор цели /target. Применять их следует следующим образом:
—————
/target Nickname
/cast Healing Wave
—————
(первая строчка выбирает в качестве цели юнит с ником Nickname, вторая кастует спелл Healing Wave максимально доступного ранга)

/target часто используется для поиска рарных мобов, при охоте за определенным лутом – можно забить в макрос имя моба и проспамить его, пробегая мимо зоны его респауна. Единственная особенность в том, что если юнит с точно таким именем не будет найден, команда постарается найти какой-нибудь с похожим, в случае если и это не выйдет – сообщит об ошибке Unknown Unit.
А вот используя /cast необходимо указать название способности максимально точно, вплоть до каждого символа. Если необходимо скастовать спел определенного ранга, например, первого, команда пишется так:
—————
/cast Healing Wave(Rank 1)
—————

Для того, чтобы атаковать цель другого игрока (например, вашего танка), используется команда /assist, в которую также нужно добавить имя персонажа, которому мы будем помогать, обычно это выглядит так:
—————
/assist %t
—————
(команда сама подставляет вместо %t имя вашей текущей цели)

3. ГКД
У новичков на этом моменте загораются глаза – появляется желание написать комбо-макрос для убийства моба (или даже игрока) одной кнопкой, но сейчас, дорогие мои, я вас обломаю. Как вы могли заметить, почти все действия в игре, активируют так называемый глобальный кулдаун (ГКД), равный одной секунде. Это сделано как раз для того, чтобы, например, маг не мог забив на макрос все свои инстант-спеллы за доли секунды (а именно с такой скоростью исполняются команды) выдать много урона.
Кроме этого, близзард не дали возможности устанавливать между действиями какую-либо задержку, команды исполняются мгновенно, одна за другой, и как только первая активирует способность, запускается вторая, за ней третья и т.д. – но все они натыкаются на ГКД и выдают ошибки о том, что способность еще не готова.
Но не все так плохо: если первая способность не активирует ГКД (а такие есть), то можно сразу запустить вторую. Например, я хочу заюзать талант шамана Nature’s Swiftness, который делает следущий спелл инстантом, после чего сразу кастануть Healing Wave. Пока не будем усложнять этот макрос выбором цели:
—————
/cast Nature’s Swiftness
/script SpellStopCasting()
/cast Healing Wave
—————

4. Выполнение скриптов
На самом деле команда /script, она же /run позволяет писать самые интересные макросы. Дело в том, что она исполняет строчку скрипта на языке Lua, с помощью которого можно вызывать множество полезных функций игры. Так, если в БК и последующих версиях WoW большинство макросов можно было написать, используя стандартные команды, то в классике они весьма ограничены в возможностях, а весь функционал доступен, как правило, через скрипты.

Например, /cast Healing Wave равнозначно /script CastSpellByName(«Healing Wave») – при этом обязательно учитывать, что в одном скрипте может быть несколько действий, разделенных точкой с запятой (БЕЗ ПЕРЕНОСА!). Например, предыдущий макрос можно переписать следующим образом:
—————
/script CastSpellByName(«Nature’s Swiftness»); SpellStopCasting(); CastSpellByName(«Healing Wave»)
—————

Не стоит забывать, что SpellStopCasrting() прерывает каст во время вызова, чем могут пользоваться маги для контрспелла и шаманы для земляного шока – иногда нужно срочно сбить врагу каст, сбросив свой. Чтобы не делать этого вручную, напишите такой макрос:
—————
/script SpellStopCasting(); CastSpellByName(«Earth Shock»);
—————

Допустим, у моего персонажа кончилась мана, я иду в ближний бой, а противник начал кастовать что-то. В таком случае мне подойдет даже шок 1 ранга, лишь бы сбить его каст. Добавим третье действие в скрипт:
—————
/script SpellStopCasting(); CastSpellByName(«Earth Shock»); CastSpellByName(«Earth Shock(Rank 1)»)
—————
(если маны хватит на шок высокого ранга, то третья фукнция не выполнится из-за КД на шок, если же не хватит на вторую, то вместо нее выполнится третья)

5. Выбор целей

Допустим, этим скриптом мы хотим хилить себя в экстренной ситуации. Для этого можно добавить в начало строчку /target Nickname, чтобы гарантированно выбрать себя, однако было бы здорово не терять текущую цель при этом. Это достигается при помощи скрипта – выбираем цель мы с помощью TargetUnit(“player”) (тут не нужно писать свой ник, тк переменная player всегда хранит наш ID), после чего кастуем спел и возвращаем прошлый таргет, используя TargetLastTarget(), вот так:
—————
/script TargetUnit(«player»); CastSpellByName(«Nature’s Swiftness»); SpellStopCasting();CastSpellByName(«Healing Wave»); TargetLastTarget()
—————

Кроме этого, цели в скриптах можно выбирать функциями:
TargetLastEnemy() – выбор последней враждебной цели;
TargetNearestEnemy() – работает как клавиша Tab в настройках по умолчанию;
TargetNearestFriend() – аналогично, только по дружественным целям;
TargetByName(«Nickname») – по имени юнита;
AssistByName(«Nickname») – аналогично /assist Nickname.

Пример полезного макроса для шамана – объединить использование маунта и духа волка на одной кнопке, тк если мы не вышли из комбата, замаунтится нельзя, а вот в волка превратиться все еще можно:
—————
/script UseContainerItem(4,1); CastSpellByName(«Ghost Wolf»)
—————
(тут как и в случае с шоками разного ранга, если получается выполнить действие, вызываемое раньше, то следующее не выполнится, тк персонаж будет занят, если же первое невозможно, начнет выполнятся второе)

7. Логика и условия
А теперь самое интересное – благодаря тому, что в одной команде можно выполнить более 1 действия и использовать скрипты, мы можем заставлять макрос вызывать разные функции в зависимости от определенных условий. Синтаксис выглядит следующим образом:
if (условие)
then действия, которые совершаются если условие выполнено
else действия, которые совершаются, если условие не выполнено
end – завершение логического блока, после него все действия будут выполняться вне зависимости от условия.

Еще пример:
Еще один пример, просто для лучшего понимания логики и демонстрации еще нескольких условий. Допустим, мы хотим по нажатию макроса использовать бинты на дружественную цель, но если цель – враг или отсутствует, бинтовать себя. Так сейчас работает опция AutoSelfCast, поэтому достаточно просто перенести бинты на панель и включить соответствующий пункт в настройках, но я покажу какой скрипт сможет сделать это без настройки (снова с пошаговым объяснением):

Однако, в случае с бинтами, чаще есть необходимость лечить только себя, даже если выбранная цель дружественная, это реализуется намного проще:
—————
/script TargetUnit(«player»); UseContainerItem(4,2); TargetLastTarget();
—————

Помимо CursorHasItem(),UnitCanAttack(«unit1», «unit2») и SpellIsTargeting(), существует еще много других полезных условий, например:
IsShiftKeyDown() / IsControlKeyDown() / IsAltKeyDown() – проверяет, зажата ли клавиша шифт/контрол/альт (позволяет выполнять одним макросом разные действия в зависимости от использования этих клавиш);
UnitInParty(«unit») – состоит ли указанный игрок в нашей группе;
UnitIsPlayer(«unit») – является ли указанный юнит игроком;
UnitIsUnit(«unit1», «unit2») – сравнивает два юнита, выполняется если они совпадают (например UnitIsUnit(«player», «target») проверяет, выбрали ли мы целью самого себя).

То есть, если мы пишем if (a 0.8) then CastSpellByName(«Lesser Healing Wave»); else CastSpellByName(«Healing Wave»); end
—————
(если у цели меньше 30% или больше 80% здоровья – кастуем быстрый хил, чтобы не сильно оверхилить или не уронить, иначе – большой)
Видно, что довольно большой кусок кода, где мы вычисляем текущее хп повторяется. Чтобы сократить скрипт (не забываем, что у нас есть всего 255 знаков) можно создать лосальную (local) переменную hp, присвоив ей вычисленное значение с помощью оператора = вот так:
—————
/script local hp=UnitHealth(«target»)/UnitHealthMax(«target»); if (hp 0.8) then CastSpellByName(«Lesser Healing Wave»); else CastSpellByName(«Healing Wave»); end
—————

Чтобы не оверхилить, можно доработать макрос до следующего вида:
—————
/script local hp=UnitHealth(«target»)/UnitHealthMax(«target»); if (hp>0.8) then SpellStopCasting(); elseif (hp

Источник

Как сделать таргет в вов

Действия: все мили абилки на одной кнопке.
#showtooltip
/castsequence reset=target/3 Wing Clip, Raptor Strike, Wing Clip
/castrandom [target=target, exists] Mongoose Bite

Или так:
#showtooltip
/castrandom Wing Clip, Mongoose Bite
/cast Raptor Strike

Больше контроля по собственным абилкам, имхо, даст такой макрос:
#showtooltip
/castsequence reset=5 Mongoose Bite, Raptor Strike

Действия: останавливает автоатаку вашу и пета, чтобы по случайности не сломать ловушку. Если вы в пати/рейде, оповещает о том, что «синий квадрат в трапе».
#showtooltip
/stopcasting
/stopattack
/petfollow
/cast Freezing Trap
/stopmacro [nogroup]
/e Trap Set

avatar54026 156

Действия: Воскрешение, Вызов и Лечение пета на одной кнопке. Если зажать Ctrl то всегда будет Воскрешение (это в случае когда трупа пета уже нету)
/cast [target=pet, dead] Revive Pet; [modifier:ctrl] Revive Pet; [nopet] Call Pet; Mend Pet

Действия: контроль пета.
/petfollow [target=pettarget, exists]
/stopmacro [noexists]; [dead]; [help]
/petattack [target=pettarget, noexists]

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

Атака:
/cast [harm] Hunter’s Mark
/stopmacro [nopet]
/stopmacro [pet, dead]
/petautocaston [nomodifier] Growl
/petautocastoff [modifier:alt] Growl
/cast [harm] Dash
/petattack [harm]

Возвращение:
/petpassive
/cast [modifier:alt] Dash

Действия: кормим пета одной кнопкой. Главное, правильно напишите название еды, и ту, что есть ваш пет =)
#show Roasted Quail
/cast [pet, nocombat] Feed Pet
/use [pet:Cat/Ravager/Wolf, nocombat] Roasted Quail; [pet:Bear/Boar/Wind Serpent, nocombat] Conjured Cinnamon Roll

Действия: кастует Вмешательство и Рык на вас, но с зажатым шифтом каст пройдёт на цель под курсором, если она дружественная.
/castsequence [mod:shift target=mouseover,help] Intervene, Roar of Sacrifice
/castsequence [nomod,target=player] Intervene, Roar of Sacrifice

avatar54026 156

3. Просто полезные макросы.

avatar35138 10

Источник: Форумы Рус21
Автор с ником: Arknarok

Может это уже где-то было, но более подробного описания я не видел еще ни где.

Теперь вы уже можете написать макрос. Но некоторые опции требуют разъяснения.

Опции [button:X] и [target=Х]

Надеюсь, вы поняли, как работает /cast. Но, порой его возможностей недостаточно. Тогда нам поможет совершенно новая команда /castsequence

А если спелл был скастован неудачно? Например. мы прервали его, или он был на кулдауне! Что тогда?
Тогда при следущем нажатии будет пытатся скастован этот же самый спелл. И так пока он не скастуется удачно.

Ну а если скастовали удачно, а сам спелл получился неудачно? Резист например?
А это уже не важно. /castsequence обращает внимание только на факт каста.

Это все хорошо, а если я случайно применю макрос вне боя?
Можно использовать те же опции что и для /cast. Но здесь их можно задать ТОЛЬКО для всей последовательности. Например
/castsequence [combat] Frost Nova, Blink

Не понял, тоесть через 24 секунды все, ресет?
Ну не совсем уж всё. Ресет случится только если за эти 24 секунды мы ни разу больше не трогали этот макрос.

Это все хорошо, но я варлок!
Ну и славно. Варлокам часто приходится поддерживать на враге 3 дота. Почему бы не организовать этот процесс?
/castsequence Curse of Agony, Corruption, Immolate

Много кастов и глобальный кулдаун

Тоже хитрая тема. Как уже упоминалось, макрос выполняется мгновенно. Тоесть если вы напишете чудо вроде
/cast Overpower
/cast Execute
/cast Mortal Strike
/cast Sunder Armor
то ничего у вас не выйдет. Провалится попытка выполнить Overpower, а затем игра заблокирует дальнейшее выполнение макроса, мотивируя глобальным кулдауном (хотя его на самом деле нет). Здесь обмануть игру не выйдет.

Однако есть старый приём под названием /stopcasting, который прерывает каст. После него никакого кулдауна быть не может, так что игру можно попытатся здесь провести. Но только если вы прерываете каст мгновенного спелла, которое не начинает глобальный кулдаун!
/cast Arcane Power
/stopcasting
/cast Presence of Mind
/stopcasting
/cast Pyroblast
Как видите мы прерываем 2 мгновенных спелла. На самом деле прерватьих нельзя, такчто у них есть шансы пройти.

Если вы указываете 2 номера после /use то вы применяете предмет в сумке. Сумки имеют номера от 0 (ваша главная сумка) до 4 (самая левая сумка). Нумерация слотов идет слева направо, сверху вниз и всегда начинается на самом верхнем ряду.

Заметка: эти определения легко комбинируются между собой. Например partypet3targettargettarget означает цель цели цели пета 3-го члена вашей группы. Вот только такие ужасы строить не советую, потомучто у вас будут сильные тормоза по ходу выполнения макроса.

Прочие команды прицеливания

А как снять этот фокус?
/focus [taget=none]

Чтобы понять смысл фокуса, разберем такой макрос:
/focus [target=focus, noexists] [target=focus, dead] [target=focus, help]
/stopmacro [target=focus, noexists]
/cast [target=focus] Polymorph
В первой строке мы фокусируемся на цели, если одно из трёх условий верно: 1) У нас нет фокуса, 2) Наш фокус мертв, 3) Наш фокус дружелюбный.
Во второй строке мы прерываем макрос, если фокус поставить не удалось (noexists)
И в третьей строке мы кастуем полиморф на фокус. Суть в том, что после этого мы можем выделить любую цель, но нажатие на этот макрос всегда будет овцевать сфокусированную цель (пока она не умрёт, не пропадет или вы не очистите фокус)

Пет и как им управлять

Внешний вид макроса

Изменения в макросах после 2.2

Итак обзор изменений, которые мы увидим в макросах с патчем 2.2.0

Источник