В теме https://elysium-project.org/forum/index.php?showtopic=5272&st=0 я не нашел ни одного макроса, работающего под классикой. Здесь я выложу свои макросы с описанием. Может быть кому-нибудь пригодятся.
Макрос 1: смена оружия для тыловой атаки
/script WeaponSwap("Пылающая игла","Мегатесак Зорбина")
Назначение: кладет в основную руку кинжал для проведения ambush или backstab.
Описание: данный макрос содержит всего одну функцию WeaponSwap, меняющюю оружие.
Примечание: для работы требуется аддон WeaponQuickSwap. В названии нужно писать название, которое у вас появляется при наведение на оружие, без перевода.
Макрос 2: смена оружия для фронтовой атаки
/script WeaponSwap ( "Разбившаяся звезда of the Tiger" ,"Мегатесак Зорбина")
Назначение: кладет в основную руку булаву для более мощного Sinnister strike.
Описание: данный макрос содержит всего одну функцию WeaponSwap, меняющюю оружие.
Примечание: для работы требуется аддон WeaponQuickSwap. названии нужно писать название, которое у вас появляется при наведение на оружие, без перевода.
Макрос 3: тыловая атака в стелсе
/script if (IsShiftKeyDown()) then //если зажат shift, то
CastSpellByName("Cheap shot") //кастует Cheap Shot
else //в противном случае
if(IsUsableAction(83)) then //если возможно действие в 83 слоте, то кастуется
CastSpellByName("Ambush") //ambush(http://www.wowwiki.com/ActionSlot, в моем случае на 83 слоте backstab, т. е. фактически совершается проверка, находиться ли персонаж позади цели, и есть ли у него в руке кинжал.
else UseAction(80) ; //если проверка не пройдена то выполняется действие в слоте 80(макрос 1: смена оружия для тыловой атаки)
end
end
Макрос 4: бекстаб
/script if(IsUsableAction(82)) then //если возможно действие в 82 слоте (бекстаб), то
UseAction(82) //выполнить действие в 82 слоте (бекстаб)
else //в противном случае
UseAction(80) //выполнить действие в 80 слоте (макрос 1: смена оружия для тыловой атаки)
end
Макрос 5: фронтовая атака
/script start,duration,enable= GetActionCooldown(10); //считывается кулдаун действия в 10 слоте(Ghostly strike)
/script UseAction(81) //выполняется действие в 81 слоте (Макрос 2: смена оружия для фронтовой атаки)
/script if (IsShiftKeyDown())then //если зажат шифт-выполняется Evasion
CastSpellByName("Evasion")
else //в противном случае
if (start==0) then // если действие в 10 слоте(Ghostly strike) готово, то
UseAction(10) //выполняется действие в 10 слоте(Ghostly strike)
else //в противном случае
CastSpellByName("Sinister Strike") //выполняется Sinnister strike
end
end
Макрос 6: атаки, требующие комбо поинты.
/script if(UnitMana("player")==25) then //если энергия равна 25
CastSpellByName("Slice and Dice") //выполняется Slice and Dice
else //если не равна 25
CastSpellByName("Eviscerate") //выполняется Eviscerate
end;
/script if(IsUsableAction(82)) //если возможно действие в 82 слоте (бекстаб)
UseAction(81) //выполняется действие в 81 слоте (Макрос 2: смена оружия для фронтовой атаки)
Макрос 7: станы
/script start, duration, enable = GetActionCooldown(8);//считывается кулдаун действия в 8 слоте(Kidney shot)
/script if (GetComboPoints()>1 and start==0) then //если больше 1 комбо поинта и Kidney Shot доступен
UseAction(8) //выполняется Kindey Shot
else //в противном случае
CastSpellByName("Gouge") //выполняется Gouge
end
/script UsеAction(80) //выполняется действие в 80 слоте (макрос 1: смена оружия для тыловой атаки). Функция нужна для дополнительной подготовки к бекстабу после стана, т. к. оружие меняется не мгновенно.
Макрос 8: спринт
/script start, duration, enable = GetActionCooldown(9);//считывается кулдаун действия в 9 слоте(Sprint)
/script if (start==0) then //если действие в 9 слоте(Sprint) готово, то
CastSpellByName("sprint") //выполняется Sprint(можно было также использовать функцию UseAction(9), для экономии символов)
else //в противном случае
UseAction(12) //выполняется действие в 12 слоте (Swiftness Potion)
end
Макрос 9: стелс
/script start, duration, enable = GetActionCooldown(11);//считывается кулдаун действия в 11 слоте(Stealth)
/script if (start==0) then //если Stealth готов, то
UseAction(11) //выполняется Stealth
else //в противном случае
CastSpellByName("Shadowmeld") //выполняется Shadowmeld
end
PS готовые макросы
Макрос 1: смена оружия для тыловой атаки
/script WeaponSwap("Пылающая игла","Мегатесак Зорбина")
Макрос 2: смена оружия для фронтовой атаки
/script WeaponSwap ( "Разбившаяся звезда of the Tiger" ,"Мегатесак Зорбина")
Макрос 3: тыловая атака в стелсе
/script if (IsShiftKeyDown())then CastSpellByName("Cheap shot") else if(IsUsableAction(83)) then CastSpellByName("Ambush") else UseAction(80) ; end end
Макрос 4: бекстаб
/script if(IsUsableAction(82)) then UseAction(82) else UseAction(80) end
Макрос 5: фронтовая атака
/script start,duration,enable= GetActionCooldown(10);
/script UseAction(81)
/script if (IsShiftKeyDown())then CastSpellByName("Evasion") else if (start==0) then UseAction(10) else CastSpellByName("Sinister Strike")end end
Макрос 6: атаки, требующие комбо поинты.
/script if(UnitMana("player")==25) then CastSpellByName("Slice and Dice") else CastSpellByName("Eviscerate") end;
/script if(IsUsableAction(82)) then UseAction(81) end
Макрос 7: станы
/script if (GetComboPoints()>1 and start==0) then UseAction(8) else CastSpellByName("Gouge") end
/script if(IsUsableAction(82)) then UseAction(82) else UseAction(80) end
Макрос 8: спринт
/script start, duration, enable = GetActionCooldown(9);
/script if (start==0) then CastSpellByName("sprint") else UseAction(12) ;end
Макрос 9: стелс
/script start, duration, enable = GetActionCooldown(11);
/script if (start==0) then UseAction(11) else CastSpellByName("Shadowmeld"); end