Макросы
#1
Отправлено 18 January 2006 - 17:01
Макросы позволяют Вам создавать собственные команды, которые Вы можете исполнять нажатием всего лишь одной клавиши. Существует множество вариантов использования Макросов. Здесь будет показано несколько примеров, а остальные способы применения Макросов Вы можете придумать сами или спросить у друзей.
Создание Макроса
Наберите /macro или нажмите на кнопку разговора и выберите пункт Макрос. Появится окно, содержащее список макросов. В начале, макросов у Вас не будет.
Нажмите кнопку " new " внизу этого окна. Появится другое окно, в котором Вы можете ввести название для нового Макроса и выбрать его иконку.
Введите название Макроса. Выберите его таким образом, чтобы было понятно, что он делает. Например, введите название "assist" (помочь).
Выберите иконку. Например, меч.
Нажмите " Okay " – теперь перед Вами появится окно Макросов с выбранной иконкой (меч) и введенным названием ("assist").
Нажмите левой кнопкой мыши (ЛКМ) на иконке макроса, чтобы выделить его. Появится кнопка, с помощью которой можно сменить название макроса или его иконку.
В то время как иконка вашего макроса подсвечена, переместите курсор в область ввода "enter macro commands" (введите команды макроса). Именно там Вы можете вводить то, что Макрос должен делать, когда Вы нажимаете на его иконку. Вам необходимо добавлять "/" перед командой, если она этого требует. В общем, команды необходимо вводить так же, как и при обычном их использовании.
Введите " /assist Nebu "
Теперь, поместите курсор над иконкой меча (assist), потом нажмите на ней ЛКМ и зажмите ее (ЛКМ).
Переместите иконку на свободное место в панели быстрого доступа (action bar).
Чтобы использовать Ваш новый макрос, нажмите соответствующую цифровую кнопку или нажмите правой кнопкой мыши (ПКМ) на иконке макроса в панели быстрого доступа.
Теперь, у Вас есть Макрос, с помощью которого Вы можете помогать другому игроку (Nebu) в нападении на монстров. Когда Nebu вступает с кем-нибудь в бой, нажмите кнопку данного Макроса и вашей новой целью станет субъект, с которым дерется Nebu.
Завершение Редактирования Макросов
После завершения редактирования или создания Макросов, нажмите крестик, расположенный в правом верхнем углу окна Макросов, чтобы закрыть его.
Редактирование Существующих Макросов
Введите /macro а затем нажмите на иконке макроса, который Вы хотите редактировать. Теперь Вы можете редактировать выбранный Макрос в области ввода "Enter Macro Commands". Когда Вы закончите, нажмите крестик, расположенный в правом верхнем углу окна Макросов, чтобы закрыть его.
Ограничения Макросов
Для каждого Макроса существует ограничение по количеству символов. Если Ваш Макрос слишком длинный, сделайте его покороче.
Советы по Использованию Макросов
Используйте любые существующие команды.
Вот некоторые другие советы по использованию макросов:
-повторение текста, который вы не хотите вводить снова
-повторение сообщений для аукционов
-создание забавных сообщений
-выполнение последовательности команд, например:
/leave 1 /leave 2 (покинуть каналы 1 и 2)
/join wowtraders (присоединится к каналу wowtraders)
/g Hello everyone! (поприветствовать всех на канале Вашей гильдии)
Дополнительная информация
Вы можете использовать "%t" в Ваших Макросах, что бы автоматически вставить выбранного монстра, существа, игрока в Ваш Макрос. Например, Макрос "/say hi %t" выведет "Hi Nebu", если Вы в данный момент выбрали игрока Nebu.
/cast позволяет исполнять заклинания по имени. Наберите "/cast (название заклинания)" - Пример "/cast Fireball (Rank 1)". Чтобы использовать эту команду в макросах, Вы можете набрать ее "ручками", или нажать на заклинании с зажатым шифтом (Shift) в книге заклинаний, чтобы автоматически добавить соответствующую команду в макрос.
#3
Отправлено 30 January 2007 - 19:35
faxtrot, 30.1.2007, 19:43, написал:
у меня на макросе есть командbl эмосий, пвп, и старт, больше не4его незнаю :mellow:
#4
Отправлено 13 October 2007 - 23:02
Код
/p Atacking %t
(%t подставляет имя выделенного вами персонажа.)
Хорошо, теперь допустим мы маг, кто играл магом - знает какая это беда кастить полиморф в группе, когда члены группы, по несогласованности, начинают атаковать и частенько под руку попадается овечка.
Код
/p Polymorphing! DONT atack %t!
/cast Polymorph (Rank X)
(X - это уровень вашего заклинания)
Идём дальше. Нужен скрипт, который лечил и предупреждал остальных хилеров, что вы уже лечите эту цель:
Код
/script if ((UnitName("target") ~= nil) AND (UnitIsFriend("player", "target"))
then SendChatMessage("Healing (+n)!", "PARTY", "COMMON", UnitName("target") ); end
/cast SpellName (Rank X)
Думаю понятно, описание функции смотрите ниже.
Ещё один полезный макрос:
Код
script ToggleBag(0);
/script ToggleBag(1);
/script ToggleBag(2);
/script ToggleBag(3);
/script ToggleBag(4);
Открывает/закрывает все сумки полезно перебиндить на "b".
Приведу основные функции:
Хотя это всё функции, некоторые из них являться только информационными, а некоторые, влияют непосредственно на игру, поэтому я разделил всё на методы и свойства, для удобства.
----------------------------------------------[Методы]
--[действия]--
AttackTarget();
Пример: AttackTarget();
Описание: Атакует выделенного персонажа.
CastSpellByName(spellname)
Пример: CastSpellByName("Demon Skin");
Описание: Кастует указанное заклинание
TargetUnit(targetcode);
Пример: TargetUnit("player");
Описание: Выделяет персонажа указанного в параметре "player", "party1".."party5", "npc", "target".
TargetUnitsPet(targetcode);
Пример: TargetUnitsPet("player");
Описание: Выделяет пэта указанного персонажа.
TargetLastEnemy();
Пример: TargetLastEnemy();
Описание: Выделяет последнего атакованного персонажа.
AssistUnit(target)
Пример: AssistUnit("target");
Описание: Помогает атаковать персонажу, указанному в параметре.
AssistByName(target)
Пример: AssistByName("Marco");
Описание: Помогает атаковать персонажу с именем указанным в параметре.
FollowUnit(target)
Пример: FollowUnit("target");
Описание: Следует за персонажем указанным в параметре.
FollowUnitByName(target)
Пример: FollowByName("Beeblebrox");
Описание: Следует за персонажем с именем указанным в параметре.
ToggleBag(bagnumber)
Пример: ToggleBag(0);
Описание: Открывает/закрывает сумку сумки расположены: 4-3-2-1-0. 0 это бэкпак.
--[группа и взаимодействия]--
InviteByName(target)
Пример: InviteByName(GetSlashCmdTarget(msg));
Описание: Приглашает в группу персонажа с именем указанным в параметре.
UninviteByName(target)
Пример: UninviteByName(GetSlashCmdTarget(msg));
Описание: Удаляет из группы персонажа с именем указанным в параметре.
InitiateTrade(target)
Пример: InitiateTrade("target");
Описание: Приглашает к торговле персонажа указанного в параметре.
InspectUnit(target)
Пример: InspectUnit("target");
Описание: Показывает информацию о персонаже.
BeginTrade();
Описание: Согласиться на торговлю.
CancelTrade();
Описание: Отказаться от торговли.
AcceptGroup()
Описание: Согласиться на приглашение в группу.
DeclineGroup()
Описание: Отказаться от группы
PromoteToPartyLeader(unit);
Описание: Делает лидером указанного игрока.
LeaveParty()
Описание: Покинуть группу.
AddFriend(name)
Описание: Добавить друга.
RemoveFriend(name)
Описание: Удалить друга
AddOrDelIgnore(name);
Описание: Добавляет/удаляет игрока из игнор-листа.
Duel(name)
Описание: Вызывает на дуэль игрока.
CancelDuel();
Описание: Отменяет дуэль.
SetLootMethod(methodstring, player)
Описание: Устанавливает способ лута: "freeforall","roundrobin","master".
LootSlot(slotidnumber, 0)
Пример: LootSlot(((LOOTFRAME_NUMBUTTONS - 1) * (LootFrame.page - 1)) + this:GetID(), 0);
Описание: Лутит указанный предмет
--[Движения]--
MoveForwardStart(starttime);
Описание: Игрок начинает бежать вперёд.
MoveForwardStop(time);
Описание: Игрок прекращает бежать вперёд.
MoveBackwardStart(starttime);
Описание: Игрок начинает бежать назад.
MoveBackwardStop(stoptime);
MoveBackwardStop(arg1);
Описание: Игрок прекращает бежать назад.
TurnLeftStart(starttime);
Описание: Игрок начинает бежать влево.
TurnLeftStop(arg1);
Описание: Игрок прекращает бежать влево.
TurnRightStart(starttime);
Описание: Игрок начинает бежать вправо.
TurnRightStop(stoptime);
Описание: Игрок прекращает бежать вправо.
StrafeLeftStart(StartTime);
Описание: Игрок начинает стрэйфить влево.
StrafeLeftStop(stoptime);
Описание: Игрок прекращает стрэйфить влево.
StrafeRightStart(starttime);
Описание: Игрок начинает стрэйфить вправо.
StrafeRightStop(stoptime);
Описание: Игрок прекращает стрэйфить вправо.
Jump();
Описание: Заставляет игрока прыгать.
SitOrStand()
Описание: Заставляет присесть/встать
--[гильдия]--
AcceptGuild()
Описание: Принимает приглашение в гильдию.
DeclineGuild()
Описание: Отказывается от приглашение в гильдию.
GuildInviteByName(player);
Описание: Приглашение в гильдию для игрока, имя которого указанно в параметре.
GuildUninviteByName(player)
Описание: Выгоняет из гильдии игрока, имя которого указанно в параметре.
GuildPromoteByName(player)
Описание: Увеличивает статус игрока, имя которого указанно в параметре.
GuildDemoteByName(player)
Описание: Уменьшает статус игрока, имя которого указанно в параметре.
GuildSetLeaderByName(player)
Описание: Делает лидером игрока, имя которого указанно в параметре.
GuildSetMOTD(message)
Описание: Устанавливает приветственное сообщение.
GuildLeave()
Описание: Покинуть гильдию.
--[пэт]--
PetAttack();
Описание: Заставляет вашего пэта атаковать.
PetAbandon();
Описание: Бросить вашего пэта.
PetRename(name)
Описание: Переименовать вашего пэта.
PetPassiveMode();
Описание: Переключает вашего пэта в пассивный режим.
PetDefensiveMode()
Описание: Переключает вашего пэта в защитный режим.
PetAggressiveMode()
Описание: Переключает вашего пэта в агрессивный режим.
PetWait()
Описание: Останавливает вашего пэта в пассивный режим.
PetFollow()
Описание: Заставляет вашего пэта следовать за вами.
--[разное]--
SendChatMessage(msg, mode, language, channel);
Пример: SendChatMessage(msg, "WHISPER", this.language, lastTell);
Описание: Отправляет сообщение mode:"SAY", "YELL", "PARTY", "AFK", "DND", language: "COMMON", "DRACONIC", "ORCISH" ...
RandomRoll(low,high);
Пример: RandomRoll("1","100");
Описание: Выдаёт случайное число, удобно при розыгрыше сундуков.
PlaySound(filename);
Пример: PlaySound("BAGMENUBUTTONPRES");
Описание: Проигрывает звуковой файл.
Screenshot();
Описание: Делает скриншот.
ForceLogout()
Описание: Усиленный дисконнект.
Logout()
Описание: Дисконнект.
Quit()
Описание: Выход из игры
----------------------------------------------[Свойства]
UnitName(string)
Пример: target = UnitName("target");
Описание: Возвращает имя игрока
GetFriendInfo(friendid)
Пример: name, level, class, area, connected = GetFriendInfo(friendIndex);
Описание: Возвращает информацию о друге.
UnitXP(target)
Пример: local currXP = UnitXP("player");
Описание: Возвращает опыт игрока
UnitXPMax(target)
Пример: local nextXP = UnitXPMax("player");
Описание: Показывает максимальный опыт игрока.
GetUnitMoney(target)
Пример: if ( UnitMoney("player") >= moneyCost ) then
Описание: Показывает количество денег игрока.
UnitExists(unitname)
Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then
Описание: Возвращает true если персонаж существует.
UnitIsPlayer(unitname)
Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then
Описание: Возвращает true если персонаж является игроком.
PetCanBeAbandoned()
Описание: Возвращает true если пэт может быть брошен.
UnitIsUnit(unitnamea, unitnameB)
Пример: UnitIsUnit("target", "pet")
Описание: Возвращает true если unitnamea является unitnameB
UnitReaction("target", "player")
Пример: UnitReaction("target", "player")
Описание: Возвращает тип поведения: neutral hostile, friendly.
GuildInfo()
Описание: Показывает инфо о гильдии
GetPartyMember(index[or id])
Пример: GetPartyMember(3)
Описание: Возвращает имя члена партии.
UnitIsPartyLeader(unitname)
Пример: UnitIsPartyLeader("target")
Описание: Возвращает true если персонаж лидер группы.
GetLootMethod()
Пример: lootMethod, lootMaster = GetLootMethod();
Описание: Возвращает тип и мастера(если есть) лута
UnitInParty(unitname)
Пример: UnitInParty("target")
Описание: Возвращает true если персонаж входит в группу.
GetPlayerMapPosition(playerid);
Пример: playerX, playerY = GetPlayerMapPosition("player");
Описание: Возвращает ваши координаты.
GetCorpseMapPosition();
Пример: corpseX, corpseY = GetCorpseMapPosition();
Описание: Возвращает координаты вашего тела.
//-------------------------------------[chanel]
LeaveChannelByName(channelname)
LeaveChannelByName("Trade");
Leaves the channel with the specified name.
ListChannelByName(channelname)
ListChannelByName("trad")
Lists all of the channels that match the specified regular expression.
ListChannels()
ListChannels();
Lists all of the channel.
SetChannelPassword(username, password)
SetChannelPassword("Xiphoris","cantkeepassecret")l
Changes the password of the current channel if that is a legal action.
ChannelModerator(channel,player)
ChannelModerator("uimods","Kelthan");
Sets the specified player as the channel moderator.
ChannelUnmoderator(channel, player)
ChannelUnmoderator("uimods", "xiphoric");
Takes the specified user away from the moderator status.
ChannelMute(channel, player)
ChannelMute("uimods","zileas");
Turns off the specified player's ability to speak in a channel.
ChannelUnmute(channel,player)
ChannelUnmute("uimods", "marco");
Unmutes the specified user from the channel.
ChannelInvite(channel,player)
ChannelInvite("cutestelves","glorfindel");
Invites the specified user to the chatroom.
ChannelKick(channel,player)
ChannelKick("bigllamas", "Strong_Bad_Is_Geh");
Kicks the specified user from the channel.
ChannelBan(channel,player)
ChannelBan("uimods", "alexyoshi")
Bans a player from the specified channel.
ChannelUnban(channel, player)
ChannelUnban("uimods", "kat");
Unbans a player from a channel.
ChannelToggleAnnouncements(channel);
ChannelToggleAnnouncements(channel);
Sets the channel to display announcements.
getglobal(prevFrame:GetName().."EditBox"):GetText()
© естесно тЫрено
www.zol.md
от Apathy: Очень полезная тема, не зафлудите, отписывайте известные вам макросы.
Сообщение было изменено Apathy: 13 October 2007 - 23:16
#8
Отправлено 16 November 2007 - 13:26
#9
Отправлено 21 November 2007 - 18:09
#showtooltip Counterspell
/stopcasting
/cast Counterspell
Останавливает текущий каст и кидает КС.
#showtooltip IceBlock
/stopcasting
/cast IceBlock
Аналогично, но с айсблоком.
#showtooltip Ice Lance
/cast [target=mouseover,nodead] Ice Lance
Макрос на каст айс ленса по цели под курсором. Очень удобно не меняя цели сбивать тотемы. (thx 2 Neilyo)
#showtooltip Ice Block
/cancelaura Ice Block
/stopcasting
/cast Ice Block
Макрос на айсблок, который сразу прерывает каст и кастует блок, а не отменяет каст по 1му нажатию и кастует блок по 2му. (thx 2 Recorner)
/cast Presence of Mind
/stopcasting
/cast Arcane Power
/stopcasting
/use 13
/stopcasting
/cast Pyroblast
Для АП-ботов. Заряжаем всё одной кнопкой.
/use Conjured Crystal Water
/use Conjured Cinnamon Roll
Пьём и жрём одним нажатием.
Имба макрос как для ПВП так и для ПВЕ, так же можно его подправить и зделать КонтрСпел на зафокусеную цель, очень помогает с хилерами.
Макрос для решипа, не переключая таргета:
Код: #showtooltip Polymorph
/clearfocus [target=focus,dead]
/clearfocus [target=focus,noexists]
/focus [target=target,exists,harm,nomodifier:shift]
/focus [target=mouseover,exists,harm,nomodifier:shift]
/cast [target=focus] Polymorph В ВоВе помимо зацеливания можно ставить еще и фокус ( /focus ). Таким образом, вы можете направлять свои действия на 2 цели одновременно: зацеленную и зафокусенную. Что делает этот макрос:
- Если под курсором мыши есть враждебная цель, то на нее ставится фокус и она шипуется.
- Если под курсором мыши нету враждебной цели, то фокус ставится на выделенную враждебную цель и она шипуется.
- Если при активации макроса была зажата клавиша Shift, то шипуется цель, на которой в данный момент находится фокус, при этом не важно какая цель сейчас выбрана в цель или курсором мыши. Зашипована будет именно та, на которой ранее был поставлен фокус. Если ни одна цель не имеет фокуса, зашипована будет выбранная цель.
Т.е. если просто активировать макрос, он будет ставить фокус и шиповать выбранную цель или цель под курсором мыши (в данном макросе цель под курсором мыши имеет приоритет перед зацеленной в таргет). Если активировать макрос зажав клавишу Shift, то каст полиморфа будет направлен на цель имеющую ваш фокус.
Например, начинается распул и вам выделили цель для шипования. Зацельте ее или наведите на нее курсор мыши, в нужный момент активируйте макрос и переходите к своим ДД-функциям. Когда понадобится решип (индикатор показывает завершение полиморфа или моб вышел из полиморфа раньше времени), просто зажмите Shift и активируйте макрос. При этом ваша ДД-цель не теряется.
Макрос для сбития тотемов
#showtooltip Ice Lance
/cast [target=mouseover,nodead] Ice Lance
наводим мышу на тотемчег и жмахаем кнопу, убираем тотем не теряя таргета.
/castsequence reset=3 Frostbolt, Ice Lance
После каста ФрБ, тут же тыркаем на макрос еще раз, и получаем айслансу.
Модифирырованый макрос для Айс блока:
/stopcasting
/cancelaura Ice Block
/cast Ice Block
1 кнопкой кидаем на себя айсблок и выходим из него, можно так же по вкусу добавить при выходе КС по таргету.
Макрос для элема
#Showtooltip [nopet]Summon Water Elemental; [pet]Freeze
1 кнопкой запускаем элема, если его нет, а если есть то кидаем нову.
Сообщение было изменено SnipeR: 21 November 2007 - 19:10
#10
Отправлено 25 December 2007 - 02:22
МАКРОСЫ
Руководство по созданию макросов
Основы Макросов
Что это все означает? Что это за макросы?
Простыми словами, макрос это серия команд, которая присвоена какой-либо кнопки на твоей панеле инструментов. Хватит шевелить извилинами, потому что то, что я сказал очень даже не плохо.
Так, теперь давай немного расширим твои познания. Макросы используются обычно в двух случаях:
• Необходимо выполнить множество команд как можно быстрее, даже быстрее чем твое нажатие на клавишу.
• Необходимо выполнить множество команд, которые часто повторяются.
Можешь ли ты себе представить пару ситуаций, когда макрос будет полезным? Возможно у тебя уже появилось пару идей. Если же нет, тогда вот парочка примеров:
• Мгновенно нацелится на ту цель, на которую твой танк нацелился.
• Мгновенно отправить в атаку своего питомца, как только ты начал атаковать.
• Сказать что-либо, в тот же момент, в который ты сделал каст.
• Сменить одним нажатием клавиши оружие.
Ограничения Макросов
Ну что заинтригован? Отлично! Однако существуют некоторые ограничения. Во-первых, каждый аккаунт может иметь 18 макросов. Поэтому 18 макросов деляться на всех твоих персонажей на всех рилмах. Так что раскинь хорошенько мозгами, если у тебя много чаров. Во-вторых, каждый макрос может состоять из 255 символов. Это означает, что твой макрос не может стрельнуть из лука, дать приказ питомцу атаковать, использовать все твои способности в атаке, подежать к трупу, забрать лут, снять шкуру, затем накормить твоего питомца и самого себя, и после этого атаковать ближайшего моба, ну и т.д. И последние ограничение - макросы не ждут задержку. Макрос выполняет все команды мгновенно. Так что если ты хочешь сначала пополнить здоровье, а после этого пополнить ману, у тебя ждет неудача, т.к. у них одинаковая задержка. В остальном же ты свободен в действии.
Является ли это читерством?
Позволь мне уверить тебя, что не зависимо от того, играешь ли ты за Орду или за Альянс, не зависимо от расы, класса и профессии, макросы могут значительно увеличить твой скилл в игре. В сообщесте идет небольшая дискуссия пока на тему являются ли макросы честным превосходством. Одно я знаю наверника, использование макросов не является читерством. Каждый игрок может сделать макрос, т.к. у них есть доступ к одинаковым командам, не имеет значения даже твой уровень (level). Превосходство дается тем, кто потравив время и усилия на их создание, может теперь использовать макросы.
Твой первый маркрос
Закончив с вводной частью, перейдем к твоему первому макросу. Этот макрос не позволит тебе одним кликом завалить Ониксию, но облегчит тебе жизнь в Аукционном Доме, или, не даст скучать во время долгого путешествия на другой континент. Вообще-то, этот макрос является социальным, т.к. выполняет серию эмоций и заставляет твоего чара высказать пару фраз.
Итак начнем с того, что найди сначал кнопку Главного Меню(Main Menu) и нажми на Macros. Появится окно создания макросов, которое, в принципе, должно быть пустым, если ты не делал до этого пару экспериментов. Выглядит оно следующим образом:
Т.к. мы добавляем новый макрос, то нажми на кнопку New (выделена на рисунке). После нажатия появится следующее окно:
Тут ты можешь назвать свой макрос и выбрать ему иконку, которая будет размещена на панеле инструментов. Как видишь, я назвал свой макрос "Dance" и выбрал иконку с лысой головой(вторая строка и второй столбец). Также эта иконка поможет не спутать еще с чем-либо еще. После того как ты назвал свой макрос и выбрал иконку, жми Okay, которая станет доступной. Пошли дальше.
Теперь нужно набрать команды, которые твой макрос должен выполнять. Вот что я напечатал:
/dance
/train
/say Come on everybody...and ride it. Come on everybody...do the Choo Choo!
/train
Я нажал [Enter] в конце каждой строки. Так все выглядит наглядно. Внизу окна ты можешь заметить счетчик, который считает количество символов. Запомни не больше 255 символов! После того как ты все это сделал, тебе не нужно сохранять макрос или делать с ним что-то еще - он уже готов к использованию.
Все что тебе нужно сделать это перетянуть иконку из окна макросов на твою панель инструментов. Теперь уж точно все! Нажимай Exit и добро пожаловать в игру.
Проверка
После твоего возвращения в игру, нажмни на иконку макроса и ты должен начать танцевать, говорить, ну и получить удовольствие от нового творения.
Как это работает спросишь ты? К счастью, все прошло хорошо. Если нет, тогда возвращайся назад и проверь синтаксис, т.е. убедись что нет ошибок. Орфография - это основа макросов. Проверь пару раз текст, и я уверен, что у тебя все заработает. Теперь можешь побегать перед игроками и показать, какой ты у нас скоростной. Если никто не отреагировал на тебя словами "lol" или "rofl"....то поищи чаров с чувством юмора!
Дальше?
Следующим шагом для тебя будет практика с макросами. Ты ничего не сломаешь, если неправильно что-то напишешь, просто удали и начни сначала. Ну а я перейду к следующему шагу....ладно, пошел я писать вторую часть.
Еще один пошаговый пример создания макроса
• Наберите /macro или нажмите на кнопку разговора и выберите пункт Макрос. Появится окно, содержащее список макросов. В начале, макросов у Вас не будет.
• Нажмите кнопку "new" внизу этого окна. Появится другое окно, в котором Вы можете ввести название для нового Макроса и выбрать иконку.
• Введите название Макроса. Выберите его таким образом, чтобы было понятно, что он делает. Например, введите название "assist" (помочь).
• Выберите иконку. Например, меч.
• Нажмите "Okay" – теперь перед Вами появится окно Макросов с выбранной иконкой (меч) и введенным названием ("assist").
• Нажмите левой кнопкой мыши (ЛКМ) на иконке макроса, чтобы выделить ее. Появится кнопка, с помощью которой можно сменить название макроса или его иконку.
• В то время как иконка вашего макроса подсвечена, переместите курсор в область ввода "enter macro commands" (введите команды макроса). Именно там Вы можете вводить то, что Макрос должен делать, когда Вы нажимаете на его иконку. Вам необходимо добавлять "/" перед командой, если она этого требует. В общем, команды необходимо вводить так же, как и при обычном их использовании.
• Введите "/assist Nebu"
• Теперь, поместите курсор над иконкой меча (assist), потом нажмите на ней ЛКМ и зажмите ее (ЛКМ).
• Переместите иконку на свободное место в панели быстрого доступа (action bar).
• Чтобы использовать Ваш новый макрос, нажмите соответствующую цифровую кнопку или нажмите правой кнопкой мыши (ПКМ) на иконке макроса в панели быстрого доступа.
• Теперь, у Вас есть Макрос, с помощью которого Вы можете помогать другому игроку (Nebu) в нападении на монстров. Когда Nebu вступает с кем-нибудь в бой, нажмите кнопку данного Макроса и вашей новой целью станет субъект, с которым дерется Nebu.
Завершение Редактирования Макросов
После того, как вы закончите редактировать или создавать Макросы, нажмите крестик, расположенный в правом верхнем углу окна Макросов, чтобы закрыть его.
Редактирование Существующих Макросов
Введите /macro а затем нажмите на иконке макроса, который Вы хотите редактировать. Теперь Вы можете редактировать выбранный Макрос в области ввода "Enter Macro Commands". Когда Вы закончите, нажмите крестик, расположенный в правом верхнем углу окна Макросов, чтобы закрыть его.
Советы по Использованию Макросов
Используйте любые существующие команды
Вот некоторые другие советы по использованию макросов:
-повторение текста, который вы не хотите вводить снова
-повторение сообщений для аукционов
-создание забавных сообщений
-выполнение последовательности команд, например:
/leave 1 /leave 2 (покинуть каналы 1 и 2)
/join wowtraders (присоединится к каналу wowtraders)
/g Hello everyone! (поприветствовать всех на канале Вашей гильдии)
Дополнительная информация
• Вы можете использовать "%t" в Ваших Макросах, что бы автоматически вставить выбранного монстра, существа, игрока в Ваш Макрос. Например, Макрос "/say hi %t" выведет "Hi Nebu", если Вы в данный момент выбрали игрока Nebu.
• /cast позволяет исполнять заклинания по имени. Наберите "/cast (название заклинания)" - Пример "/cast Fireball (Rank 1)". Чтобы использовать эту команду в макросах, Вы можете набрать ее "ручками", или нажать на заклинании с зажатым шифтом (Shift) в книге заклинаний, чтобы автоматически добавить соответствующую команду в макрос.
Вы можете напечатать "/а" , будет прокручиваться список команд, начинающихся на "а".
Примеры макросов
Макрос на лечение пета
/script M=0;T='player';function F(a)h=UnitHealth(a);d=UnitHealthMax(a)-h;if d>M and h>0 then M=d;T=a;end end F(T);for i=1,4 do p='party'..i;if p then F(p);TargetUnitsPet(p);p='target';if p then F(p);end end end TargetUnit(T);CastSpell(66,'spell')
Смена 2 рукого оружия на 1рукое и щит
/script PickupInventoryItem(17);if(CursorHasItem()) then PickupContainerItem(4,2);PickupContainerItem(4,1);PickupInventoryItem(16);else PickupContainerItem(4,1);PickupInventoryItem(16);PickupContainerItem(4,2);Pickup
InventoryItem(17);end
Автоматическое применение на себе какого либо предмета из рюкзака (например повязки)
/target YourNameHere
/script UseContainerItem(Bag#, Item#);
/script TargetLastEnemy();
--------------------------------------------------------------------------------
Название: Re: Макросы. Учимся и делаем свои (есть примеры)
Отправлено: Relrin от Августа 21, 2007, 10:06:06 am
--------------------------------------------------------------------------------
Основные функции
Хотя это всё функции, некоторые из них являться только информационными, а некоторые, влияют непосредственно на игру, поэтому я разделил всё на методы и свойства, для удобства.
--[Методы]
--[действия]--
AttackTarget();
Пример: AttackTarget();
Описание: Атакует выделенного персонажа.
CastSpellByName(spellname)
Пример: CastSpellByName("Demon Skin");
Описание: Кастует указанное заклинание
TargetUnit(targetcode);
Пример: TargetUnit("player");
Описание: Выделяет персонажа указанного в параметре "player", "party1".."party5", "npc", "target".
TargetUnitsPet(targetcode);
Пример: TargetUnitsPet("player");
Описание: Выделяет пэта указанного персонажа.
TargetLastEnemy();
Пример: TargetLastEnemy();
Описание: Выделяет последнего атакованного персонажа.
AssistUnit(target)
Пример: AssistUnit("target");
Описание: Помогает атаковать персонажу, указанному в параметре.
AssistByName(target)
Пример: AssistByName("Marco");
Описание: Помогает атаковать персонажу с именем указанным в параметре.
FollowUnit(target)
Пример: FollowUnit("target");
Описание: Следует за персонажем указанным в параметре.
FollowUnitByName(target)
Пример: FollowByName("Beeblebrox");
Описание: Следует за персонажем с именем указанным в параметре.
ToggleBag(bagnumber)
Пример: ToggleBag(0);
Описание: Открывает/закрывает сумку сумки расположены: 4-3-2-1-0. 0 это бэкпак.
--[группа и взаимодействия]--
InviteByName(target)
Пример: InviteByName(GetSlashCmdTarget(msg));
Описание: Приглашает в группу персонажа с именем указанным в параметре.
UninviteByName(target)
Пример: UninviteByName(GetSlashCmdTarget(msg));
Описание: Удаляет из группы персонажа с именем указанным в параметре.
InitiateTrade(target)
Пример: InitiateTrade("target");
Описание: Приглашает к торговле персонажа указанного в параметре.
InspectUnit(target)
Пример: InspectUnit("target");
Описание: Показывает информацию о персонаже.
BeginTrade();
Описание: Согласиться на торговлю.
CancelTrade();
Описание: Отказаться от торговли.
AcceptGroup()
Описание: Согласиться на приглашение в группу.
DeclineGroup()
Описание: Отказаться от группы
PromoteToPartyLeader(unit);
Описание: Делает лидером указанного игрока.
LeaveParty()
Описание: Покинуть группу.
AddFriend(name)
Описание: Добавить друга.
RemoveFriend(name)
Описание: Удалить друга
AddOrDelIgnore(name);
Описание: Добавляет/удаляет игрока из игнор-листа.
Duel(name)
Описание: Вызывает на дуэль игрока.
CancelDuel();
Описание: Отменяет дуэль.
SetLootMethod(methodstring, player)
Описание: Устанавливает способ лута: "freeforall","roundrobin","master".
LootSlot(slotidnumber, 0)
Пример: LootSlot(((LOOTFRAME_NUMBUTTONS - 1) * (LootFrame.page - 1)) + this:GetID(), 0);
Описание: Лутит указанный предмет
--[Движения]--
MoveForwardStart(starttime);
Описание: Игрок начинает бежать вперёд.
MoveForwardStop(time);
Описание: Игрок прекращает бежать вперёд.
MoveBackwardStart(starttime);
Описание: Игрок начинает бежать назад.
MoveBackwardStop(stoptime);
MoveBackwardStop(arg1);
Описание: Игрок прекращает бежать назад.
TurnLeftStart(starttime);
Описание: Игрок начинает бежать влево.
TurnLeftStop(arg1);
Описание: Игрок прекращает бежать влево.
TurnRightStart(starttime);
Описание: Игрок начинает бежать вправо.
TurnRightStop(stoptime);
Описание: Игрок прекращает бежать вправо.
StrafeLeftStart(StartTime);
Описание: Игрок начинает стрэйфить влево.
StrafeLeftStop(stoptime);
Описание: Игрок прекращает стрэйфить влево.
StrafeRightStart(starttime);
Описание: Игрок начинает стрэйфить вправо.
StrafeRightStop(stoptime);
Описание: Игрок прекращает стрэйфить вправо.
Jump();
Описание: Заставляет игрока прыгать.
SitOrStand()
Описание: Заставляет присесть/встать
--[гильдия]--
AcceptGuild()
Описание: Принимает приглашение в гильдию.
DeclineGuild()
Описание: Отказывается от приглашение в гильдию.
GuildInviteByName(player);
Описание: Приглашение в гильдию для игрока, имя которого указанно в параметре.
GuildUninviteByName(player)
Описание: Выгоняет из гильдии игрока, имя которого указанно в параметре.
GuildPromoteByName(player)
Описание: Увеличивает статус игрока, имя которого указанно в параметре.
GuildDemoteByName(player)
Описание: Уменьшает статус игрока, имя которого указанно в параметре.
GuildSetLeaderByName(player)
Описание: Делает лидером игрока, имя которого указанно в параметре.
GuildSetMOTD(message)
Описание: Устанавливает приветственное сообщение.
GuildLeave()
Описание: Покинуть гильдию.
--[пэт]--
PetAttack();
Описание: Заставляет вашего пэта атаковать.
PetAbandon();
Описание: Бросить вашего пэта.
PetRename(name)
Описание: Переименовать вашего пэта.
PetPassiveMode();
Описание: Переключает вашего пэта в пассивный режим.
PetDefensiveMode()
Описание: Переключает вашего пэта в защитный режим.
PetAggressiveMode()
Описание: Переключает вашего пэта в агрессивный режим.
PetWait()
Описание: Останавливает вашего пэта в пассивный режим.
PetFollow()
Описание: Заставляет вашего пэта следовать за вами.
--[разное]--
SendChatMessage(msg, mode, language, channel);
Пример: SendChatMessage(msg, "WHISPER", this.language, lastTell);
Описание: Отправляет сообщение mode:"SAY", "YELL", "PARTY", "AFK", "DND", language: "COMMON", "DRACONIC", "ORCISH" ...
RandomRoll(low,high);
Пример: RandomRoll("1","100");
Описание: Выдаёт случайное число, удобно при розыгрыше сундуков.
PlaySound(filename);
Пример: PlaySound("BAGMENUBUTTONPRES");
Описание: Проигрывает звуковой файл.
Screenshot();
Описание: Делает скриншот.
ForceLogout()
Описание: Усиленный дисконнект.
Logout()
Описание: Дисконнект.
Quit()
Описание: Выход из игры
--[свойства]
UnitName(string)
Пример: target = UnitName("target");
Описание: Возвращает имя игрока
GetFriendInfo(friendid)
Пример: name, level, class, area, connected = GetFriendInfo(friendIndex);
Описание: Возвращает информацию о друге.
UnitXP(target)
Пример: local currXP = UnitXP("player");
Описание: Возвращает опыт игрока
UnitXPMax(target)
Пример: local nextXP = UnitXPMax("player");
Описание: Показывает максимальный опыт игрока.
GetUnitMoney(target)
Пример: if ( UnitMoney("player") >= moneyCost ) then
Описание: Показывает количество денег игрока.
UnitExists(unitname)
Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then
Описание: Возвращает true если персонаж существует.
UnitIsPlayer(unitname)
Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then
Описание: Возвращает true если персонаж является игроком.
PetCanBeAbandoned()
Описание: Возвращает true если пэт может быть брошен.
UnitIsUnit(unitnamea, unitnameB)
Пример: UnitIsUnit("target", "pet")
Описание: Возвращает true если unitnamea является unitnameB
UnitReaction("target", "player")
Пример: UnitReaction("target", "player")
Описание: Возвращает тип поведения: neutral hostile, friendly.
GuildInfo()
Описание: Показывает инфо о гильдии
GetPartyMember(index[or id])
Пример: GetPartyMember(3)
Описание: Возвращает имя члена партии.
UnitIsPartyLeader(unitname)
Пример: UnitIsPartyLeader("target")
Описание: Возвращает true если персонаж лидер группы.
GetLootMethod()
Пример: lootMethod, lootMaster = GetLootMethod();
Описание: Возвращает тип и мастера(если есть) лута
UnitInParty(unitname)
Пример: UnitInParty("target")
Описание: Возвращает true если персонаж входит в группу.
GetPlayerMapPosition(playerid);
Пример: playerX, playerY = GetPlayerMapPosition("player");
Описание: Возвращает ваши координаты.
GetCorpseMapPosition();
Пример: corpseX, corpseY = GetCorpseMapPosition();
Описание: Возвращает координаты вашего тела.
--[chanel]
LeaveChannelByName(channelname)
LeaveChannelByName("Trade");
Leaves the channel with the specified name.
ListChannelByName(channelname)
ListChannelByName("trad")
Lists all of the channels that match the specified regular expression.
ListChannels()
ListChannels();
Lists all of the channel.
SetChannelPassword(username, password)
SetChannelPassword("Xiphoris","cantkeepassecret")l
Changes the password of the current channel if that is a legal action.
ChannelModerator(channel,player)
ChannelModerator("uimods","Kelthan");
Sets the specified player as the channel moderator.
ChannelUnmoderator(channel, player)
ChannelUnmoderator("uimods", "xiphoric");
Takes the specified user away from the moderator status.
ChannelMute(channel, player)
ChannelMute("uimods","zileas");
Turns off the specified player's ability to speak in a channel.
ChannelUnmute(channel,player)
ChannelUnmute("uimods", "marco");
Unmutes the specified user from the channel.
ChannelInvite(channel,player)
ChannelInvite("cutestelves","glorfindel");
Invites the specified user to the chatroom.
ChannelKick(channel,player)
ChannelKick("bigllamas", "Strong_Bad_Is_Geh");
Kicks the specified user from the channel.
ChannelBan(channel,player)
ChannelBan("uimods", "alexyoshi")
Bans a player from the specified channel.
ChannelUnban(channel, player)
ChannelUnban("uimods", "kat");
Unbans a player from a channel.
ChannelToggleAnnouncements(channel);
ChannelToggleAnnouncements(channel);
Sets the channel to display announcements.
--------------------------------------------------------------------------------
Название: Re: Макросы. Учимся и делаем свои (есть примеры)
Отправлено: Relrin от Августа 21, 2007, 10:11:21 am
--------------------------------------------------------------------------------
Заклинания
Замечание: Начиная с патча 1.хх колдовство заклинаний больше не требует окончания в записи ”(rank X)”. Достаточно записать: /cast Holy Light для колдовства спела максимального ранга. Макросы такого типа не позволяют кастить спелы более низкого ранга на выбранную цель, для использования низких рангов нужно дописывать окончание (rank X), где Х – нужный ранг спела. Пример: /cast Holy Light (rank 1);
Колдовство заклинаний на самого себя без потери фокуса на цели:
/script CastSpellByName('Holy Light', 1)
Колдовство заклинаний на самого себя если нельзя колдовать заклинание на выбранную цель:
Данный макрос кастует заклинание ”spell” на самого себя только в том случае если цель враждебна
/script if ( not UnitIsFriend("player", "target") ) then CastSpellByName("Spell", 1); end
Колдовство заклинаний на цель конкретного класса:
Используется в основном для баффов рейда, по конкретным классам, возможны модификации применительно к ПвП
/script class = UnitClass("target"); if ( ( class == "Rogue" ) or ( class == "Warrior" ) ) then
CastSpellByName("Blessing of Might"); else CastSpellByName("Blessing of Wisdom"); end
Колдовство заклинаний на цели разных уровней(баффы):
Используется очень редко, но я все же приведу пример пристовского макроса для баффа на стамину, с проверкой уровня цели:
/script Pre="Power Word: Fortitude(Rank " Sp={1,2,14,26,38,50} if (UnitLevel("target") ~= nil and UnitIsFriend("player","target")) then
for i=6,1,-1 do if (UnitLevel("target") >= Sp) then CastSpellByName(Pre..i..")") return end end end
Колдовство заклинаний на ближайшую цели с проверкой кол-ва % здоровья цели:
Приведу пример на основе каста хилиерских заклинаний на ближайшие цели с проверкой на кол-во здоровья цели, макрос лечит ближайшую дружественную цель со здоровьем ниже 70%, проверяются только ближайшие 40 целей.
/script for i=1,40 do TargetNearestFriend(); if UnitHealth("target")/UnitHealthMax("target") < 0.7 then if UnitIsPlayer("target") then CastSpellByName("Lesser Healing Wave") end end end; TargetLastEnemy();
Анонсирование кастуемых заклинаний в пати-чат:
/cast Healing Touch
/party Healing %t in 3.5 seconds
Колдовство заклинаний на конкретных игроков партии:
Всегда лечит первого игрока партии Флешкой, при этом не сбивает фокуса на выделенной цели.
/script TargetUnit("party1")
/cast Flash Heal
/script TargetLastTarget()
Колдовство нескольких заклинаний (баффов) с проверкой на наличие оных на цели:
Кастует различные баффы на цель, только в том случае если на цели еще нет такого заклинания(баффа), пример версии для друида:
/script i=1;m=0;while(UnitBuff("target",i)~=nil) do if(strfind(UnitBuff("target",i),"Regeneration")~=nil) then m=1; end;i=i+1;end; c=CastSpellByName; if(m==1) then c("Mark of the Wild(Rank 10)");else c("Thorns(Rank 10)");end;
Макрос для поиска номера заклинания в книге умений:
Иногда использования скриптов CastSpellByName приводит к тому что длинна макроса превышает допустимые 255 символов, например макрос: /script CastSpellByName('Holy Light', 1) занимает достаточно много символов, когда как проще использовать макрос: /script CastSpellByNumber(); Но как же узнать какой номер у того или иного заклинания из вашей книги? На помощь приходит очень полезный и распространенный макрос проверки номера заклинания, он выдает на экран имя спела с соответствующим номером:
/script SpellNumber=26; SpellName,SpellRank=GetSpellName(SpellNumber,"spell");
M=format("Spell %d: %s %s",SpellNumber,SpellName,SpellRank); DEFAULT_CHAT_FRAME:AddMessage(M);
Инвентарь и Предметы
Использовать предмет:
/script UseContainerItem(bag, slot);
• Bag – это номер сумки, от 0 до 4, где 0 – начальная сумка.
• Slot – это номер слота в сумке от 1 до 20.
Макрос автоматически использует предмет в заданной сумке на заданном месте, полезен при использовании алхимии или просто при переодевании тринкетов.
Быстрое использование Бинтов на самого себя:
/target [Player Name]
/script UseContainerItem(#, #);
/script TargetLastEnemy();
Очень полезный макрос для дуэлей 1v1. Вот еще один пример макроса для бинтов, более сложный, с проверкой на наличие бинтов в инвентаре, фокусировки на предыдущей цели или сбросе фокуса, если цель – вы сами:
/script if (not GetContainerItemLink(x,x)) then OpenBag([same bag number as before]); else
TargetUnit("player");UseContainerItem(3,15);TargetUnit("playertarget" );if (UnitIsPlayer("target"))
then ClearTarget() end end
Использование предмета из Хот-бара:
Приведу пример использования Бинтов лежащих в одном из слоте одного из шести хот-баров, макрос использует бинты на выбранную дружественную цели, или на самого себя если цель враждебна:
/script UseAction(ActionID, 0, 1);
/script if( SpellIsTargeting() ) then SpellTargetUnit("player"); end
• ActionID – это номер слота одного из шести хот-баров, он выбирается соответственно из таблицы:
Хот-бар: Номер слота
1: 1 2 3 4 5 6 7 8 9 10 11 12
2: 13 14 15 16 17 18 19 20 21 22 23 24
3: 25 26 27 28 29 30 31 32 33 34 35 36
4: 37 38 39 40 41 42 43 44 45 46 47 48
5: 49 50 51 52 53 54 55 56 57 58 59 60
6: 61 62 63 64 65 66 67 68 69 70 71 72
Более продвинутый вариант того же макроса, использует бинты на самого себя в любом случае, даже если цель дружественна и находится в радиусе действия, очень полезен в ПвЕ:
/scriptp="player";t="target";if(not UnitCanAttack(t, p))then ot=UnitName(t);TargetUnit(p);
else ot=nil;end;UseAction(ActionID);if(SpellIsTargeting())then SpellTargetUnit(p);
end if(ot) then TargetByName(ot);end
Использование точильных камней на оружие:
Простой макрос сократит вам время
/script UseContainerItem (#,#);
/script PickupInventoryItem (16);
Меняя в последней строке 16 на 17 получим макросы для заточки правой и левой рук.
Интерфейс
Переключение Хот-баров:
/script CURRENT_ACTIONBAR_PAGE = X;
/script ChangeActionBarPage();
• Где X – номер нужного нам хот-бара, от 1 до 6.
Пример готового и усложненного макроса, выводом на экран сообщения о смене макроса:
/script CURRENT_ACTIONBAR_PAGE = 1;
/script ChangeActionBarPage(); == Macro Frame Toggling ==
/script if ( not MacroFrame:IsVisible() ) then ShowUIPanel(MacroFrame);
else HideUIPanel(MacroFrame); end;
Изменение видео опций
Иногда хочется изменить видео опции игры, что бы комфортнее себя чувствовать в густо населенных игроками зонах, таких как Банк или Аукцион, так же при большой нагрузке в ПвЕ зонах, примером может служить первая фаза Разоргора ( 1 босс БВЛ ):
Для хорошего качества видео:
/z SetFarclip(777)
/z SetWorldDetail(2)
/z SetBaseMip(1)
Для среднего качества видео:
/z SetFarclip(477)
/z SetWorldDetail(1)
/z SetBaseMip(1)
Для плохого качества видео:
/z SetFarclip(177)
/z SetWorldDetail(0)
/z SetBaseMip(0)
Переключение игры из Full-screen в Window режим:
Полезен для съемки видео или просто для удобной настройки посторонних программ:
/script currentRes = GetCurrentResolution(); if (currentRes == 3)
then SetScreenResolution(15); SetCVar("gxWindow", 0); SetMultisampleFormat(16);
else SetCVar("gxWindow", 1); SetScreenResolution(3); SetMultisampleFormat(1); end;
Числовые значения подобраны для переключения из разрешения 1600x1200 full anti-aliasing в разрешение 1024x768 1x anti-aliasing
Отключение имен игроков / npc:
Полезный макрос, для снятия нагрузки с экрана и любителям скриншотов
Для имен игроков:
/script if ( GetCVar("UnitNamePlayer") == "1" ) then SetCVar("UnitNamePlayer",0) else SetCVar("UnitNamePlayer",1) end
Для имен npc:
/script if ( GetCVar("UnitNameNPC") == "1" ) then SetCVar("UnitNameNPC",0) else SetCVar("UnitNameNPC",1) end
Автоматическая смена чата:
Макрос для автоматической смены между чатам /s если вы вне партии, /p если вы в партии на 5 человек, /raid если вы находитесь в рейде, макрос только устанавливает чат, но не пишет сообщения:
/script if (GetNumRaidMembers() > 0) then PR = "Raid"; elseif (GetNumPartyMembers() > 0)
then PR = "Party"; else PR = "Say"; end;
Для того что бы автоматически написать какую либо фразу в выбранный чат, добавьте строку:
/script SendChatMessage("Ты Gijdalah нуб и ничего не понимаешь!!!",PR);
Бой
Макросы для помощи танку:
Самый простой макрос для атаки цели которую атакует выбранный заранее танк:
/assist %t
/script AttackTarget();
Этот макрос слишком простой и не может покрыть всего того функционала который необходим зачастую в быстро протекающем бое, попробуем сделать более сложный вариант макроса, разделив при этом часть автоматической выборки подходящего танка, и часть фокуса на цели выбранного танка:
---- Для выбора танка ----
/script LeaderPlayerName = UnitName("target") or UnitName("party1") or "";
/script DEFAULT_CHAT_FRAME:AddMessage("######## Set main assist to: " .. LeaderPlayerName);
---- Для атаки цели танка ----
/script AssistByName(LeaderPlayerName or UnitName("party1") or UnitName("player"));
/script DEFAULT_CHAT_FRAME:AddMessage("######## Assisting ".. LeaderPlayerName .. " with target " .. (UnitName("target") or "NO TARGET"));
При использовании первого макроса, в памяти интерфейса запоминается ник выбранного игрока, что бы при нажатии второго макроса, выбиралась цель ранее запомненного танка, не зависимо от того где он находится, не нужно использовать первый макрос каждый раз, только один раз для начальной установки танка.
Но это два макроса, они будут занимать два слота на вашем интерфейсе, хотя они и очень удобные. Попробуем совместить оба макроса в один не потеряв при этом функциональности. Макрос будет выглядеть следующим образом:
/script p=PAsi or""u=UnitName;t="target"c=IsControlKeyDown()if©then p=u(t)or u("party1")or""else AssistByName(p)end;DEFAULT_CHAT_FRAME:AddMessage("######## "..(c and("Set assist: "..p)or("Assisting "..p.." with "..(u(t)or"NO TARGET"))))PAsi=p
Тот же макрос в более удобном для чтения виде, так как выше приведенный, не читаем из за оптимизации под длину в 255 символов:
/script
p=PAsi or"";
u=UnitName;
t="target";
c=IsControlKeyDown();
if© then
p=u(t) or u("party1") or ""
else
AssistByName(p)
end;
DEFAULT_CHAT_FRAME:AddMessage("######## "..
(c and
("Set assist: "..p)
or
("Assisting "..p.." with "..(u(t) or "NO TARGET"))));
PAsi=p;
Итак, как же пользоваться этим макросом:
Для установки нужного танка, удерживая Ctrl кликните на иконку использования макроса.
Обычный клик на иконку использования макроса выберет необходимую цель.
Модификация этого макроса с возможностью колдовства разных заклинаний на цель выбранного танка (выбрано заклинание Полиморф, что может быть заменено на любое другое):
/script t=Tg1 or""c=IsControlKeyDown()if©then t=UnitName("target")or""else TargetByName(t)if(IsShiftKeyDown())then CastSpellByName('Polymorph')end end ChatFrame1:AddMessage("######## "..(c and("Tg1 set to: "..t)or("Targeting: "..t)))Tg1=t
Тот же макрос в удобном виде:
/script
t=Tg1 or""
c=IsControlKeyDown()
if© then
t=UnitName("target")or""
else
TargetByName(t)
if(IsShiftKeyDown()) then
CastSpellByName('Polymorph')
end
end
DEFAULT_CHAT_FRAME:AddMessage("######## "..
(c and
("Tg1 set to: "..t)
or
("Targeting: "..t)))
Tg1=t
Если удерживая Shift кликнуть на иконку использования макроса, то персонаж начнет колдовать выбранное заклинание (полиморф) на текущую цель выбранного ранее танка.
Макросы для уничтожения тотемов:
Простейший вариант:
/target Totem
/cast Moonfire(Rank 1)
Более сложный вариант:
/script u=UnitName;
s=strfind;
t="target";
for i = 1,10,1 do TargetNearestEnemy()
if (not UnitCanAttack("player",t))then
break;
end;
if ((s(u(t),"Totem") or s(u(t),"Ward")) and not s(UnitCreatureType(t),"Human")) then
CastSpellByName("Shoot");
break;
end;
end;
Таймер:
/script if IsAltKeyDown() then L1="Instance Start"; T1=GetTime();
M=format("Timer Set [%s]",L1); else N=GetTime(); D=N-T1;
M=format("Time Elapsed - [%s]: %02dh:%02dm:%02ds",L1, D/3600,mod((D/60),60), mod(D,60)); end
SendChatMessage(M,"SAY");
Макрос отсчитывает время с момента установки начального времени отсчета, что бы установить оное, нужно зажав Alt кликнуть на иконку использования макроса. При использовании макроса, выдается искомое время с точностью до секунды.
Макросы для петов
Атака петом:
Простой макрос атаки пета по выбранной цели
/script PetAttack();
Более продвинутый вариант:
/target player
/assist
/script PetAttack();
Атака специальным заклинанием пета (например Dash):
/script PetAttack(); CastPetAction(4);
Команды для пета:
Список всех команд пету
/script PetAggressiveMode();
/script PetDefensiveMode();
/script PetPassiveMode();
/script PetFollow();
/script PetAttack();
/script PetStopAttack();
/script CastPetAction(X);
• Для последней строки, X – номер заклинания пета в панели управления петом.
Примеры классовых макросов
Просто перечислю некоторые примеры оригинальных макросов для каждого класса.
Друид:
Nature's Swiftness + Healing Touch – без глобального кулдауна:
/cast Nature's Swiftness
/script SpellStopCasting();
/cast Healing Touch(Rank 10)
/script if ( SpellIsTargeting() ) then SpellTargetUnit ("player"); end
Хантер:
Выбор ближайшей цели, если цель рога – выстрел Scatter Shot:
/script TargetNearestEnemy(); if (UnitClass("target")=="rogue") then CastSpellByName("Scatter Shot"); CastSpellByName("Hunter's
Mark (Rank 4)");end
Raptor strike + Wing clip:
/cast Raptor Strike
/cast Wing Clip
Макрос для Пула с одновременной привязкой марки к цели:
/cast Hunters Mark(Rank #);
/cast Concussive Shot();
/cast Autoshoot();
Автоматическое кормление пета:
/cast Feed Pet
/script PickupContainerItem (#,#)
Маг:
Макрос для вызова всех типов мана-кристалов, требует многочисленного нажатия:
/script local c=function(a) local f,d a="Mana "..a for i=0,4 do for k=1,GetContainerNumSlots(i) do
d=GetContainerItemLink(i,k) or "" if strfind(d,a) then f = 1 end end end if not f then CastSpellByName("Conjure "..a) end end
c "Ruby" c "Citrine" c "Jade"
Колдовство заклинаний с использованием тринкетов /
Пока, как мы знаем ТоеП не стекается с ЗХЧ после патча 1.10, но макрос все равно очень полезен, приведу пример ЗХЧ + ПоМ + фростболт 11 ранга:
/script UseAction(37); SpellStopCasting(); CastSpell(82,"spells"); SpellStopCasting(); CastSpell(158,"spells"
Макрос отправляющий висперы, о прекращении атаки игрокам партии, монстра которого вы хотите полиморфить:
/cast Polymorph
/script local n,p,t=UnitName,"party","target" for i=2,5 do if n(p..i) then if
UnitIsUnit(p..i..t,t) then SendChatMessage("I am about to sheep your target, please change
targets.","WHISPER",nil,n(p..i)) end end end
Паладин:
Авто-бафф дружественных целей использующих Ману – Wisdom Blessing и остальных, включая себя – Might Blessing:
/script power = UnitPowerType("target"); if ( power == 0 ) then CastSpellByName("Blessing of Wisdom") else CastSpellByName("Blessing of Might") end; if ( SpellIsTargeting() ) then CastSpellByName("Blessing of Might"); TargetUnit("player"); end;
Рога:
Макрос для рог которые используют Sinister Strike как основную атаку, макрос использует Riposte, если возможно:
/script if (UnitMana("Player")>=999) then CastSpellByName("Sinister Strike"); end;if (IsUsableAction(18) and UnitMana("Player")>=10) then CastSpellByName("Riposte"); end;
/script if UnitMana("Player")>=40 then CastSpellByName("Sinister Strike"); end;
Шаман:
Nature Swiftness + healing
/script local a=IsAltKeyDown();local c,d=GetSpellCooldown(157,0);if(c==0)then CastSpell(157,0) else if(a)then TargetUnit("player")
end;if(d==0.001)then CastSpell(146,0) else CastSpell(152,0) end;if(a)then TargetLastTarget() end;end
Макрос делает следующее:
• если Nature Swiftness не на кулдавне, кастует его.
• если на вас активен Nature Swiftness, кастует Healing Wave 9 rank на выбранную цель
• во всех остальных случаях кастует Lesser healing wave rank 6 на выбранную цель.
Макрос анонса тотемов в пати-чат:
/party +88 agility totem, 30 yards, stay close
/cast Grace of Air
Stormstrike + тринкет:
/script UseInventoryItem(14);
/script SpellStopCasting();
/cast Stormstrike(Rank 1)
Варлок:
Колдовство страха и одновременное отключение атаки пета:
/cast Fear(Rank #)
/script PetFollow();
Воин:
Battle stance -> Mocking blow:
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(1); if isActive then CastSpellByName("Mocking Blow()"); else CastSpellByName("Battle Stance()"); end;
Требуется минимум 2 нажатия.
Defensive stance -> Taunt:
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(2); if isActive then CastSpellByName("Taunt()"); else CastSpellByName("Defensive Stance()"); end;
Требуется минимум 2 нажатия.
Berserker stance -> Berserker rage
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(3); if isActive then CastSpellByName("Berserker Rage()"); else CastSpellByName("Berserker Stance()"); end;
Требуется минимум 2 нажатия.
Прочие макросы
Серверное время:
Макрос выдает на экран, серверное время
/script hour,min=GetGameTime()
/script DEFAULT_CHAT_FRAME:AddMessage(format("Server time is %s:%s",hour,min));
Координаты и локация:
/script px,py=GetPlayerMapPosition("player")
/script DEFAULT_CHAT_FRAME:AddMessage(format("[ %s ] %s , %s",GetZoneText(),px,py));
Макрос печатающий цели квеста в пати-чат:
/script i = GetNumQuestLeaderBoards(); for j = 1, i, 1 do a1, a2, a3 = GetQuestLogLeaderBoard(j); SendChatMesssage(a1, "PARTY"); end;
Макрос автоматической сдачи квеста неограниченное кол-во раз:
/script SelectGossipAvailableQuest(1); CompleteQuest(); GetQuestReward();
Макрос часто используют для неоднократного выполнения квеста – Dark Iron Residue
Макрос лечения 2 строки Эмерженси монитора, аддона CT_raid:
Очень полезный для любого лекаря макрос, спам которого позволяет сократить оверхил, и четко и быстро реагировать на повреждения рейда
/script CT_RA_Emergency_TargetMember(1)
/script CT_RA_Emergency_TargetMember(2)
/cast Lesser Healing Wave(Rank 6);
/script TargetLastTarget();
Макрос выбирает 2 строчку монитора, если такой нет, то первую, и кастует на цель Lesser healing wave rank 6.
Сообщение было изменено Twin: 25 December 2007 - 10:30
#11
Отправлено 26 February 2008 - 17:50
Их несколько вариантов, кому какой спелл удобнее=)
/castsequence reset=29 Seal of the Crusader, Judgement
/castsequence reset=29 Seal of Command(Rank Какой надо), Judgement
/castsequence reset=29 Seal of Righteousness(Rank какой надо), Judgement
Преимущество в том что нажав на кнопку макроса Юзается тот Seal который прописан.......повторное нажатие на нее же УЖЕ юзает Judgement, тоесть ненужно жать две кнопки и тратить свое время.
#12
Отправлено 08 July 2008 - 13:04
#18
Отправлено 11 September 2008 - 16:06
Murderer, 11.09.08, 16:57, написал:
Вынеси сам спелл Sinister Strike на панель и нажми 2 раза -Открывается комбат ветка- там найдёш егo,если вбить толку не будет,тк всё равно надо два раза нажимать).
MetalShadoW, 11.09.08, 17:07, написал:
Он думает ,что если вобьёт макрос на Ss,тО они сразу 2 штуки вылетать будут без ГкД с одного нажатия)))
Сообщение было изменено Snapi: 11 September 2008 - 16:13
#19
Отправлено 11 September 2008 - 16:07
Murderer, 11.09.08, 16:57, написал:
На примере: два Sinister Strike'а подряд?
В смысле что бы одним нажатием два спела шло, или на один макрос забить?
Если один клилк - 2 спела, то хз, если один макрос - 2 спела, то см. выше у клеска, только вместо паловских спелов вставь синистер страйк с указанием ранга.
#20
Отправлено 11 September 2008 - 16:11
Snapi, 11.09.08, 17:06, написал:
Он думает ,что если вобьёт макрос на Ss,тО они сразу 2 штуки вылетать будут без ГкД).
Я не тупой, если решили поумничать. Если пошутить, то Comedy Club плачет по тебе
MetalShadoW, 11.09.08, 17:07, написал:
Если один клилк - 2 спела, то хз, если один макрос - 2 спела, то см. выше у клеска, только вместо паловских спелов вставь синистер страйк с указанием ранга.
Да, я имел в виду два скила на один макрос. Чтобы один за другим ;)
Сообщение было изменено Murderer: 11 September 2008 - 16:12