Только сеть игр


  • Страница 1 из 1
  • 1
Макросы WOW
TymchukДата: Воскресенье, 06.12.2009, 00:40 | Сообщение # 1
Tymchuk

WEB-дизайнер
Группа: Проверенные
Сообщений: 792
« 3 »
Макросы в ВоВ используются для оптимизации и упрощения интерфейса игрока. Начиная от самых простых макросов таких как высказывание в чат «полечите меня срочно», когда ваше здоровье опускается ниже 20%, и заканчивая более сложными макросами такими как смена стоек у воина или каст лечащего заклинания во 2ую или 3ю строчку Эмерженси монитора, стандартного для большинства игроков аддона – CT_raid. Итак начнем с общих макросов, и затем перейдем к конкретным примерам.

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

/macro

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

Заклинания

Замечание: Начиная с патча 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[i]) then CastSpellByName(Pre..i..")") return end end end

Колдовство заклинаний на ближайшую цели с проверкой кол-ва % здоровья цели:
Приведу пример на основе каста хилиерских заклинаний на ближайшие цели с проверкой на кол-во здоровья цели, макрос лечит ближайшую дружественную цель со здоровьем ниже 70%, проверяются только ближайшие 40 целей.

/script for i=1,40 do TargetNearestFriend(); if UnitHealth("target")/UnitHealthMax("target") 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

Итак, как же пользоваться этим макросом:

Для установки нужного танка, удерживая Ctrl кликните на иконку использования макроса.

Обычный клик на иконку использования макроса выберет необходимую цель.

Если удерживая 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.
Заключение

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

P.S не забывайте, что разнообразие макросов ограничено только вашей фантазией и длинной в 255 символов.


Ыыы
  • Страница 1 из 1
  • 1
Поиск:

Реклама