Macroworld (part 3)

[Offline] в блоге [Offline]'s notes

Опубликовано: 22 июля 2013 в 02:08



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

Как поставить всю ротацию на одну кнопку? Как одним кликом запустить цепочку из нескольких макросов? Как проще всего  сбрасывать настройки на минимум и возвращать обратно? Как заставить игру отображать больше крови? Собственно, всё самое интересное будет здесь.


A perfect raid

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

Бывают моменты, когда нужно быстро перестать атаковать цель, например босс собрался отражать входящий в него урон. Для ближнего боя в этом случае используется команда /stopattack, которая говорит сама за себя, а если мы что-то кастуем, то можно применить /stopcasting. Те же команды можно вкрутить и в других случаях, например варлок перед смертью моба может юзануть макрос

/stopcasting
/cast Shadowburn


который мгновенно прервёт текущий каст и использует добивалку.

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

/cancelaura [modifier:shift] Levitate
/cast [nomodifier] Levitate


Существуют способности, которые применяются непрерывно в течение некоторого времени, например Похищение жизни у варлока или Пытка разума у девушки приста. Если во время их использования юзануть какой-либо макрос с другой абилкой, то оно прервётся. Чтобы этого избежать, можно сделать в макросе проверку условия channeling:Название способности, например вот так:

/cast [nochanneling:Arcane Missiles] Polymorph

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

/focus [@focus, noharm] [@focus, dead] [modifier]
/stopmacro [@focus, noexists]
/cast [@focus] Polymorph


Здесь второй строкой мы проверяем, есть ли цель в фокусе, и при её отсутствии останавливаемся.



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

/castsequence Immolate, Corruption, Bane of Agony, Siphon Life

Здесь при первом клике скастуется Immolate, при втором клике Corruption и так далее. Когда последовательность дойдёт до конца, она вернётся к первоначальному заклинанию. Если по какой-то причине при использовании макроса одна из способностей не сработала (слишком далеко, нет маны, ГКД от предыдущей и т.п.), то действие макроса не будет перескакивать на следующую, пока текущая не скастуется, т.е. макрос можно спамить не опасаясь того, что порядок собьётся.

Кроме того, можно задать условия, при которых макрос автоматически вернётся в начало последовательности. Такими условиями могут быть:

reset=n - прошло n секунд с момента последнего использования
reset=target - смена цели
reset=combat - выход из боя
reset=shift/alt/ctrl - использование макроса с зажатым Shift/Alt/Ctrl (или одним из них)

Например, вот такой макрос

/castsequence reset=10/shift Заклинание, Другое заклинание, 14

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



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

Наличие активного пета и его тип проверяются условием pet:Тип пета, где в качестве типов могут выступать Voidwalker, Boar, Imp, Wolf и так далее. Пример макроса для мага:

/cast [pet] Freeze; Frost Nova

Команды для управления петом:

Spoiler
/petattack - фас!
/petstay - сидеть!
/petfollow - к ноге!
/petmoveto - переместить пета в точку, указанную мышкой
/petassist - переключить пета в режим помощи (assist)
/petdefensive - переключить пета в режим защиты
/petpassive - переключить пета в пассивный режим
/petautocaston Название Способности - включить автоматическое использование способности петом
/petautocastoff Название Способности - выключить автоматическое использование способности петом
/petautocasttoggle Название Способности - включить автоматическое использование способности петом (если выключено) или выключить автоматическое использование способности петом (если включено)


Ну а если управлять приходится уже не только своим петом, а целым рейдом, то полезными будут команды:

Spoiler
Контроль популяции хомяков:

/inv (/invite) - заинвайтить указанного игрока в рейд
/kick (/uninvite, /u, /un) - кикнуть указанного игрока из рейда

Настроить лут:

/ffa - каждый за себя
/group - групповой (ролл)
/master - ответственный за добычу
/needbeforegreed - ещё одна вариация группового
/roundrobin - всем по очереди
/threshold - установить минимальное качество вещей. которые будут разроливаться

Проверить сейвы и готовность:

/raidinfo - посмотреть информацию о сохранённых рейдах
/readycheck - проверка готовности

Расставить или убрать метки:

/targetmarker, (/tm) - метка цели (0 - очистить,  1 - жёлтая звезда, 2 - оранжевая резинка, 3 - фиолетовый ромб, 4 - зелёный треугольник, 5 - голубой полумесяц, 6 - синий квадрат, 7 - красный крест, 8 - черепушка)
/worldmarker (/wm) - метка области (1 - синий квадрат, 2 - зелёный треугольник, 3 - фиолетовый ромб, 4 - красный крест, 5 - жёлтая звезда)
/clearworldmarker (/cwm) - снять метку области

Назначить роли:

/mainassist (/ma) - ассистент
/maintank (/mt) - основной танк
/clearmainassist (/clearma, /mainassistoff, /maoff) - снять статус ассистента
/clearmaintank (/clearmt, /maintankoff, /mtoff) - снять статус основного танка
/promote (/pr) - назначить другого РЛа и пойти застрелиться



Сontrol everything

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

Основная панель с абилками (в стандартном интерфейсе левая нижняя) имеет 6 страниц, между которыми можно переключаться. У классов с несколькими формами или стойками она при смене формы переключается автоматически.
 
Чтобы проверить, какая страница на данный момент активна, используется условие bar:N или actionbar:N, где N может быть от 1 до 6. Например, bar:1/3/4 означает "активна страница 1 или страница 3 или страница 4". Если мы берём моба или другого игрока под контроль, его абилки у нас всегда появляются на пятой странице, а наличие такой активной панельки можно проверить условием bonusbar:5.

Для переключения страниц юзается команда /changeactionbar с параметром в виде номера страницы, на которую переключаемся. С помощью двух вот таких макросов можно симулировать для ханта стойки, как у вара, при переключении аспекта:

/cast Aspect of the Hawk
/changeactionbar 1


и

/cast Aspect of the Monkey
/changeactionbar 2


Для переключения между двумя заданными страницами при каждом использовании можно применять макрос

/swapactionbar 1 2

который при открытой первой странице переключится на вторую, а при открытой второй или какой-либо ещё переключится на первую.



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

/click ButtonName MouseButton

Здесь ButtonName указывает, какую кнопку и на какой панели мы хотим кликнуть. Для этого указывается название панели с номером кнопки:

ActionButtonN - основаня панель (левая нижняя)
BonusActionButtonN - дополнительная страница основной панели (для форм, стоек и т.п.)
MultiBarBottomLeftButtonN - левая верхняя панель (над основной)
MultiBarBottomRightButtonN  - правая верхняя панель
MultiBarRightButtonN - боковая панель (в правой части экрана)
MultiBarLeftButtonN - вторая боковая панель (левее предыдущей)
PetActionButtonN - панель способностей пета
ShapeshiftButtonN  - кнопки для смены форм или стоек

Здесь повсюду вместо N на конце нужно подставлять номер кнопки.

Кнопки мыши (MouseButton):

1 или LeftButton - левая кнопка (по умолчанию)
2 или RightButton - правая кнопка
3 или MiddleButton - средняя кнопка
4 и 5 - кнопка 4 и кнопка 5

Пара примеров:

/click MultiBarRightButton1 3 - симулируем клик на первую кнопку боковой панели средней кнопкой мыши

/click PetActionButton5 RightButton - симулируем клик на пятую кнопку панели абилок пета правой кнопкой мыши (включится/выключится автоматическое использование абилки петом)

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



Другие условия для проверки наличия активных панелей интерфейса:

extrabar —активна дополнительная кнопка (бонусные абилки в сценариях и т.п.)
overridebar — основная панель заменена дополнительной страницей
possessbar — основная панель заменена абилками для контроля моба или другого персонажа
unithasvehicleui — у цели (UnitID) активен интерфейс средства передвижения
vehicleui — у персонажа активен интерфейс средства передвижения

Другие команды интерфейса, которые можно юзать вместо соответствующих менюшек и кнопок:

Spoiler
Окна и вкладки:

/ach (/achieve, /achievement, /achievements) - открыть окно ачивок
/calendar - открыть календарь
/guildfinder (/gf) - открыть окно поиска гильдии
/lfg (/lfd, /df, /dungeonfinder) - открыть окно поиска группы
/lfr (/raidbrowser, /rb, /or, /otherraids) - открыть окно поиска рейда
/macro (/m) - открыть интерфейс создания макроса
/stopwatch (/timer, /sw) - открыть секундомер (таймер)
/who - открыть окно поиска персонажей по заданному тексту

Взаимодействие с другими игроками:

/trade - открыть окно торговли
/ins (/inspect) - открыть окно просмотра экипировки другого игрока
/friend (/friends) - добавить игрока в друзья
/removefriend (/remfriend) - выкинуть игрока из друзей
/ignore - добавить игрока в список игнорируемых
/unignore - вытащить игрока из списка игнорируемых
/settitle - поставить себе выбранный титул (из имеющихся)
/leavevehicle - слезть со средства передвижения (с многоместного, например)
/duel - вызвать указанного персонажа на дуэль
/forfeit (/yield, /concede) - закончить дуэль (сбежать, сдаться)
/pvp - активирует возможность быть атакованным игроками другой фракции (для PvE-серверов)
/f (/follow, /fol) - следовать за указанным персонажем

Управление гильдией:

/groster (/guildroster) - открыть окно гильдии (список)
/ginfo (/guildinfo) - открыть окно новостей гильдии
/gmotd (/guildmotd) - установить сообщение дня для гильдии
/ginvite (/guildinvite) - пригласить указанного персонажа в гильдию
/guildremove (/gremove, /gkick) - выкинуть указанного персонажа из гильдии
/gpromote (/guildpromote) - повысить ранг указанного персонажа
/gdemote (/guilddemote) - понизить ранг указанного персонажа
/gleader (/guildleader) - назначить указанного персонажа лидером гильдии
/gquit (/guildquit) - покинуть гильдию (а ещё можно вставить это в длинный макрос и подсунуть его нубу)
/gdisband (/guilddisband) - распустить гильдию

Управление командой арены:

/teaminvite (/tinvite) - пригласить в команду
/teamremove (/tremove) - выкинуть указанного игрока из команды
/teamcaptain (/tcaptain) - назначить капитана
/teamquit (/tquit) - покинуть команду
/teamdisband (/tdisband) - распустить команду



Above the system

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

/console Переменная Значение

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

Вот такой макрос

/console violenceLevel 5
/reload


заставит игру отображать больше крови во время боя (по умолчанию 2), а использованная здесь команда /reload перезагружает интерфейс для вступления изменений в силу.

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



Другие системные команды:

/dump Переменная - показывает текущее значение системной переменной
/eventtrace (/etrace) - открывает окно трассировки системных событий
/disableaddons - отключить все аддоны
/enableaddons - включить аддоны
/timetest - проверяет производительность компьютера и показывает текущий FPS (Frames Per Second)
/time - служба точного серверного времени
/played - показывает суммарное время игры за данного персонажа
/random (/rand, /rnd, /roll) - генерация случайных чисел
/logout (/camp) - выйти в меню выбора персонажа
/quit (/exit) - выйти из игры


Scripting and WoW API

И наконец, мы добрались до того, что уже вполне можно назвать программированием. Макросы позволяют запускать блоки кода, написанного с соблюдением правил языка Lua. Это делается при помощи команды /run или /script, параметром для который служит соответствующий блок кода. Весь код должен быть написан в одну строку, поскольку при смене строки макрос пытается найти новую команду. Если в самом коде несколько строк, то для их разделения используется символ ";".

Тут сразу добавлю небольшое общее пояснение. Для того, чтобы различные языки программирования можно было использовать в разных средах, для них существуют наборы библиотек с функциями, структурами, классами, переменными и прочим барахлом, которое позволяет работать с данными этой среды. Такие наборы называются API (Application Programming Interface). Например, для С++ существует WinAPI, который позволяет писать на этом языке программы под интерфейс Windows.

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



И в качестве примера, давайте разберём обещанный макрос, который одним кликом продаёт торговцу все серые предметы из сумок:

/run local c,i,n,v=0;for b=0,4 do for s=1,GetContainerNumSlots(b)do i={GetContainerItemInfo(b,s)}n=i[7]if n and string.find(n,"9d9d9d")then v={GetItemInfo(n)}q=i[2]c=c+v[11]*q;UseContainerItem(b,s)print(n,q)end;end;end;print(GetCoinText(c))

В нём делается следующее:

/run - запустили код
local c, i, n, v=0; - объявляем переменные
for b=0,4 do - запустили цикл для b от 0 до 4 (пробегаем по сумкам)
for s=1,GetContainerNumSlots(b) do - запустили цикл для s от 1 до количества слотов в сумке (пробегаем по слотам внутри сумки)
i={GetContainerItemInfo(b,s)} - получили данные о конкретном слоте
n=i[7] - вытащили из этих данных информацию о предмете
if n - если предмет существует...
and string.find(n, "9d9d9d") then - и в информации о нём содержится серый цвет (9d9d9d), то...
v={GetItemInfo(n)} q=i[2] - получаем и записываем его название и стоимость
c=c+v[11]*q; - прибавляем его стоимость к общей сумме
UseContainerItem(b,s) - продаём предмет (должно быть открыто окно торговца!)
print(n,q) end; - печатаем название предмета в чат и закрываем блок условия
end; end; - закрываем циклы по s и b
print(GetCoinText(c)) - печатаем в чат общую сумму в виде монеток

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


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


to be continued...
  • 8968
  • 21

Комментарии:

Default avatar
22 июля 2013 в 03:10
Теперь будем читать и изучать :) Благодарю.
Default avatar
22 июля 2013 в 03:36
Спасибо, автор. Ты шикарен! :)
Default avatar
22 июля 2013 в 03:58
ожидания из первой части - не оправдали себя.
мог бы в заключительной сделать побольше разных скриптов, а не про cancelaura рассказывать))

например очистку друзей, кроме тех, у кого есть какая-то заметка, или кроме тех, у кого определенная заметка.
написал бы макросы для разных видов автоподтверждения самых разных видов действий, чтоб на одну кнопку можно было соглашаться со всеми предупреждениями (уничтожение предмета, выставление на аукцион, одевание бое, сброс талантов, смена глифов)
или написал скрипт на случайный выбор маунта из всех имеющихся
Отредактировано 22 июля 2013 в 04:02
75233 e899ada10bdc735f074c3fae5afd7bd0
22 июля 2013 в 15:03
Здесь не ставилась цель собрать как можно больше примеров полезных макросов и скриптов. Здесь ставилась цель рассказать и понятно объяснить, как это всё работает и какие даёт возможности. Под каждую фичу показано по 1-2 примера. А под конкретные задачи каждый может либо написать макрос сам на основе этих знаний, либо найти/написать подходящий скрипт. Можно было, конечно, ещё примеры скриптов добавить, но перечисление не есть правильный путь =)
Default avatar
22 июля 2013 в 04:01
если уж затронул вовапи, мог бы написать про /dump - крайне необходимо для отладки своих чудо макросов
70504 244b24959d55e7f88993926d69bfbe4b
22 июля 2013 в 08:02
Весьма познавательно. Спасибо.
78203 3599cbce20d5b8d994d5563553519194
22 июля 2013 в 08:24
Спасибо за статью. Макросы наравне с аддонами стали для меня чуть ли не самой важной вещью в интерфейсе компьютерных игр. Теперь не могу вообще играть в игры, если в них не предусмотрена столь гибкая настройка=)
Отредактировано 22 июля 2013 в 08:25
15859 f6cd95b14d5fef33b7708368e0676ef2
22 июля 2013 в 22:52
не туда...
Отредактировано 22 июля 2013 в 22:54
15859 f6cd95b14d5fef33b7708368e0676ef2
22 июля 2013 в 22:53
Всегда интересовало, реально ли сделать такой макрос:
If (абилка1 на КД)
then абилка2
else абилка1
end;

На примере элема: спам одной кнопкой молнии, при откатывании кд на лаву - кастится лава вместо молнии, затем опять молния.
P.S. Да, я ленивый  ;D
Отредактировано 23 июля 2013 в 00:45
Avatar 1916
23 июля 2013 в 10:21
Нет, так не получится, но можно написать макрос который по нажатию shift,  ctrl или alt поменяет  лаву на молнию на панели.
75233 e899ada10bdc735f074c3fae5afd7bd0
23 июля 2013 в 12:11
Условия вида "абилка сейчас на кд" проверить макросом нельзя. Это сделано специально, чтобы было невозможно замкнутой цепочкой из макросов сделать бота.
15859 f6cd95b14d5fef33b7708368e0676ef2
24 июля 2013 в 01:46
Ok. А  сделать макрос вида:
for i=0,,i++
{
Каст1;
Каст2;
}
Но так чтобы если каст1 на кд, то не выдавало сообщение "Каст1 еще не готов", а переходило к следующей строке Каст2?
75233 e899ada10bdc735f074c3fae5afd7bd0
24 июля 2013 в 15:28
Запускать цикл и проверять кулдауны можно только скриптом, кастовать абилки можно только командой. Внутри команды нельзя проверить наличие кулдауна. Внутри скрипта нельзя скастовать заклинание. Обмениваться инфой они не могут. Пичаль.
Avatar 1916
23 июля 2013 в 10:13
Для великих слакеров поколения советую купить "наговскую" мышь и не париться. На офф сайте Razer есть утилита которая позволяет делать макросы по одному нажатию. Да прибудет с вами ротация по одному клику.
Отредактировано 23 июля 2013 в 10:14
15859 f6cd95b14d5fef33b7708368e0676ef2
24 июля 2013 в 07:19
Ротация по одному клику? Что-то не верится  :)
Скорее уж ротация = долбление 1 кнопки без перерыва. Но такие макросы и без Razer пишутся.
75233 e899ada10bdc735f074c3fae5afd7bd0
24 июля 2013 в 15:34
Ротацию по одной кнопке можно повесть на castsequence, но всё равно неудобно, ибо у многих классов надо действовать по разному в зависимости от условия "прокнуло - не прокнуло". Что там за чудо-мышь хз, но 5 кнопок и так хватает вполне.
Default avatar
23 июля 2013 в 10:42
в качестве примера, давайте разберём обещанный макрос, который одним кликом продаёт торговцу все серые предметы из сумок:

/run local c,i,n,v=0;for b=0,4 do for s=1,GetContainerNumSlots(b)do i={GetContainerItemInfo(b,s)}n=i[7]if n and string.find(n,"9d9d9d")then v={GetItemInfo(n)}q=i[2]c=c+v[11]*q;UseContainerItem(b,s)print(n,q)end;end;end;print(GetCoinText(c))

аддон же есть на продажу серых предметов вендору, не требующий написание столь сложного макроса
75233 e899ada10bdc735f074c3fae5afd7bd0
23 июля 2013 в 12:14
Аддоны работают на тех же самых скриптах, разве что там нет таких ограничений по длине кода. А если что-то можно уместить в макрос, зачем городить аддон?
77524 bc87ff904af7e1c1c9483b0cc6ff51fb
23 июля 2013 в 18:49
А почему бы тебе не написать про такую интересную функцию как CreateFrame с параметрами SecureAction в макросе?
Насколько я знаю там идет очень строгое разделение между LUA и Macro....т.е. еси вы хотите сделать каст заклинания при помощи /run то у вас скорее всего ничего не выйдет =)

Макрос с фреймами мной использовался достаточно давно(сейчас не использую т.к. UI слегка тормозит) для проверки наличия доты на таргете...а также для сравнения "мощности" той доты, которая на цели и той, которую я планирую наложить =)

P.S. также для "больших" макросов мона использовать "/runmacro название"
Отредактировано 23 июля 2013 в 18:55
75233 e899ada10bdc735f074c3fae5afd7bd0
24 июля 2013 в 15:40
Не совсем понимаю зачем для просмотра дота на таргете рисовать новый фрейм. Скастовать одним макросом спелл в зависимости от силы дота на таргете игра по идее не позволит, ибо это равносильно принятию решения за игрока. Отдельной кнопкой смотрим доты, отдельной кастуем. Но тогда проще будет аддон поставить, если доты плохо видно, чем самому ещё одну кнопку прожимать.
Отредактировано 24 июля 2013 в 15:45
Default avatar
01 августа 2013 в 04:54
1. Многие ещё не забыли те страшные времена, когда часто у игроков ломались макросы -- пропадали хвосты длинных или вообще исчезали. И невнятные бормотания синих "отключите синхронизацию макросов и храните их локально". Аддон если и сломается, можно откатиться к предыдущей версии или ресетнут его или стереть в профиле его настройки.

2. Близзы могут что-то поменять, что макрос перестанет пахать. Снова искать гуру, чтобы он подправил такой сложный макрос. А аддон обновится курсклиентом сам ;)

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

4. Но и аддоны тоже дохнут :(