Макросы для уничтожения тотемов:
Простейший вариант:
Code
/target Totem
/cast Moonfire(Rank 1)
Более сложный вариант:
Code
/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 u=UnitName;
s=strfind;
t="target"; . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . переменная т означает "target" (цель)
for i = 1,10,1 do TargetNearestEnemy() . . . . . . . . . . . . . . . Цикл по переменной i от 1 до 10 с шагом 1 в котором выполняется "Нацелиться на ближ. врага"
if (not UnitCanAttack("player",t))then . . . . . . . . . . . . . . . . . . если юнит player НЕ может атаковать (цель) то прервать цикл
break;
end;
if ((s(u(t),"Totem") or s(u(t),"Ward")) and not s(UnitCreatureType(t),"Human")) then . . . . . . . . . . . . . . .если цель типа "тотем" или в имени цели есть слово Ward, а также тип существа цель не "Человек" то
CastSpellByName("Shoot"); . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . .стрелять по цели
break;
end;
end;
Макрос для перехода в берсерк
Code
/script texture,name,isBattle=GetShapeshiftFormInfo(1)
/script if isBattle then
CastSpellByName("Overpower")
else
CastShapeshiftForm(1)
end
Макрос для перехода в батл
Code
/script InCombat=UnitAffectingCombat("Player")
/script Icon,Name,IsBattle=GetShapeshiftFormInfo(1)
/script Icon,Name,IsBerserk=GetShapeshiftFormInfo(3)
/script if InCombat then
if IsBerserk then
if UnitMana("Player") < 10 then
CastSpellByName"Bloodrage"
else
CastSpellByName"Intercept"
end
else
CastShapeshiftForm(3)
end
else
if IsBattle then
CastSpellByName"Charge"
else
CastShapeshiftForm(1)
end
end
Макрос для перехода в берсерк
Так... во-первых этот макрос переводит тебя в Боевую стойку или, если ты уже был в ней, использует Оверпауэр. Ну, очевидно, создан, чтобы успевать применить Овер, когда сработает додж у противника, а ты в другой стойке находишься. Своими руками сложно успеть.
/script texture,name,isBattle=GetShapeshiftFormInfo(1)
Не пойму к чему тут texture и name... мне кажется можно их выкинуть =)
Далее... Функция GetShapeshiftFormInfo(1) возвращает значение TRUE ("истина" или в двоичном эквиваленте "1") в том случае, если номер текущей стойки равен (1), то есть Боевая стойка.
В противном случае, то есть если стойка любая другая кроме боевой, функция GetShapeshiftFormInfo(1) возвращает значение FALSE ("ложь" или в двоичном эквиваленте "0").
В переменную isBattle присваивается значение, которое возвращает функция GetShapeshiftFormInfo(1).
ТО ЕСТЬ если у нас была выбрана БОЕВАЯ СТОЙКА, то isBattle=TRUE, если ЛЮБАЯ ДРУГАЯ СТОЙКА, то isBattle=FALSE.
/script ifisBattle then
Оператор
if <условие> then
<действия 1>
else
<действия 2>
выполняет проверку какого-то условия. Если условие выполняется, то есть несёт в себе значение TRUE, то будут выполнены действия 1, если условие не выполнено, то есть FALSE, то будут выполнены действия 2, которые идут после оператора else. Если else вообще нет, то при FALSE вообще ничего не будет выполняться.
В твоём случае, если в isBattle находится значение TRUE, то есть СТОЙКА БОЕВАЯ, то будем применен Оверпауэр.
CastSpellByName("Overpower")
else
В противном случае, то есть если в isBattle находится значение FALSE, то есть СТОЙКА НЕ БОЕВАЯ, то ты перейдёшь в боевую стойку
CastShapeshiftForm(1)
end
Макрос для перехода в батл
/script InCombat=UnitAffectingCombat("Player") ..................................... переменная InCombat будет содержать информацию, находится ли персонаж в режиме битвы или нет
/script Icon,Name,IsBattle=GetShapeshiftFormInfo(1) ...............................IsBattle будет содержать информацию, находится ли персонаж в БОЕВОЙ стойке или нет
/script Icon,Name,IsBerserk=GetShapeshiftFormInfo(3) ............................IsBerserk -----||---- в стойке БЕРСЕРК
/script if InCombat then .........................................................................Проверка "Находится ли персонаж в режиме боя?"
if IsBerserk then ......................................................................Если находится, то проверка "Он в стойке берсерка?"
if UnitMana("Player") < 10 then ..................................................Если да, то проверка "Ярости у него меньше 10?"
CastSpellByName"Bloodrage" ....................................................Если меньше, то кастануть БладРейдж
else .........................................................................................Если больше 10 то
CastSpellByName"Intercept" ......................................................кастануть интерсепт
end
else ..........................................................................................Если же персонаж не был в стойке берсерка, то
CastShapeshiftForm(3) ...............................................................перейти в стойку берсерка
end
else .........................................................................................Если персонаж не в режиме боя, то
if IsBattle then .........................................................................Проверка "Он в боевой стойке?"
CastSpellByName"Charge" ............................................................Если да, то кастануть Чардж
else ............................................................................................Если нет, то
CastShapeshiftForm(1) ................................................................Перейти в боевую стойку
end
end
Суть макроса в том, что он автоматизирует разбег до цели в любом случае - не зависимо от текущей стойки, текущего кол-ва ярости или того, находится ли перс в режиме битвы или нет.
В зависимости от того, в режиме боя он или нет, будет выбран или интерсепт или чардж. Стойка, нужная для применения того или другого вида разбега, будет выбрана соответствующая.
То есть несколько раз покликав по макросу ты догонишь противника.