Перейти к содержанию
ohgodboyyes

Макросы на охотника

Рекомендуемые сообщения

 

Для работы большинства макросов требуется аддон SuperMacro последней версии .

Организуйте скрытую панель так (которая при стандартных назначениях клавиш появляется на Shift+поворот колесика вверх):

131225782_.png.5f0b328cd1d41c01ceb27f69d045046b.png

1.         Melee атака (здесь - 13 слот)

2.         AutoShot (здесь - 14 слот)

3.         Mongoose Bite (здесь - 15 слот)

Если вы поставите их не на вторую, скрытую, панель, как на скриншоте, в каждом макросе 13, 14 и 15 необходимо заменить на номера слотов, установленных вами.

Макрос вставляется в поле для макроса, код - в расширенный lua код

1.  Макрос на автоатаку в зависимости от дистанции. 

/run if IsActionInRange(15)==1 then if not IsCurrentAction(13)then AttackTarget()end elseif not IsAutoRepeatAction(14)then CastSpellByName("Auto Shot")end

2. Wing Clip + Concussive Shot + Scatter Shot

Нажатие: в зависимости от расстояния до цели кастует Wing Clip или Concussive Shot

Нажатие+ Alt: Scatter Shot

Нажатие +Shift: Wing Clip первого уровня

/run if IsAltKeyDown()then CastSpellByName("Scatter Shot")elseif IsShiftKeyDown()then CastSpellByName("Wing Clip(Rank 1)")elseif IsActionInRange(15)==1 then CastSpellByName("Wing Clip") else CastSpellByName("Concussive Shot")end end

3. Serpent Sting + Raptor Strike + Mongoose Bite

Нажатие: кастует Serpent Sting/ Raptor Strike/ Mongoose Bite в зависимости от расстояния и возможности.

Нажатие с зажатой левой или правой клавишей мыши: кастует Serpent Sting на цель под курсором мыши

Макрос: 

/run iziraptor()

Код:

function iziraptor() if UnitHealth("mouseover")>0 and not UnitIsUnit("target","mouseover")then if UnitCanAttack("player","mouseover")then local a = UnitHealth("target")>0 and UnitCanAttack("player","target") TargetUnit("mouseover")CastSpellByName("Serpent Sting")if a then TargetLastTarget()end end else if IsActionInRange(15)==1 then

if IsUsableAction(15) and GetActionCooldown(15)==0 then UseAction(15)else CastSpellByName("Raptor Strike")end else CastSpellByName("Serpent Sting")end end end

4. Макрос на марку + viper sting/scorpid sting

Нажатие: кастует марку, а если марки нет:  viper sting/scorpid sting в зависимости от наличия маны.

Нажатие с зажатой правой клавишей мыши: кастует Serpent Sting на цель под курсором мыши.

Нажатие + альт: пропускает каст марки и сразу кастует яд.

Нажатие + шифт: каст марки

Макрос позволяет быстро раскидывать яды в пвп.

Макрос:

/run izimark()

Код:

function izimark()
if not IsMouselooking()then
if UnitCanAttack("player","mouseover") and UnitHealth("mouseover")>0 then
local a = UnitHealth("target")>0 and UnitCanAttack("player","target")
TargetUnit("mouseover")
if UnitPowerType("target")==0 then CastSpellByName("Viper Sting")else
CastSpellByName("Scorpid Sting")end
if a then TargetLastTarget()end
end
else
if not FindBuff("Hunter's Mark", "target") and not IsAltKeyDown() or IsShiftKeyDown() then CastSpellByName("Hunter's Mark")
elseif UnitPowerType("target")==0 then CastSpellByName("Viper Sting")
else
CastSpellByName("Scorpid Sting")
end
end
end

5. Макрос на идеальную ротацию (Marksmanship спек):

Этот и следующий макрос работают только с моей версией rais_autoshot (качайте её, даже если не будете пользоваться этими макросами):

rais_AutoShot.lua

Autoshot → Aimed shot → Autoshot → Multi-shot → Autoshot

Макрос блокирует каст aimed shot'a и multi-shot'а во время подготовки к выстрелу. Ставится на колесико мыши. Когда почти пора стрелять — крутите колесо мыши. 

Макрос:

/run IziRotaciya()

Код:

function IziRotaciya() local _G = getfenv(0) if GetSwingStart() or _G["rais_AutoShot_Frame_Timer"]:GetAlpha()==0 then if GetSpellCooldown(GetSpellID("Aimed Shot"), 1)==0 then CastSpellByName("Aimed Shot")else CastSpellByName("Multi-Shot")end end end

function GetSpellID(name) local i,spellName = 1,nil while true do spellName = GetSpellName(i, "spell") if not spellName then break end if spellName==name then return i end i=i+1 end return end

6.  Макрос на arcane shot (или multi-shot/aimed shot, просто поменяйте название скила) - работает, если вы вставили код предыдущего макроса

Макрос:

/run local _G = getfenv(0) if GetSwingStart()  or _G["rais_AutoShot_Frame_Timer"]:GetAlpha()==0 or IsAltKeyDown()then CastSpellByName("Arcane Shot")end

7.  Макрос на аспекты и маунта:

Нажатие: Aspect of the Hawk

Нажатие + альт: Aspect of the Monkey

Нажатие + Control: Aspect of the Pack

Нажатие + Shift: Aspect of the Cheetah  и маунт (если стоите – садится на маунт, иначе – аспект)\

Для корректной работы замените Emerald Raptor в FindBuff("") на название вашего маунта как бафа, а Whistle of the Emerald Raptor в use("") на название маунта как предмета (всего 3 замены)

Макрос:

/run izishift()

Код:

function izishift()
if not FindBuff("Emerald Raptor")then
if IsShiftKeyDown()then
if not UnitAffectingCombat("player")then use("Whistle of the Emerald Raptor")end
if not FindBuff("Aspect of the Cheetah")then CastSpellByName("Aspect of the Cheetah")end
elseif IsAltKeyDown()then
if not FindBuff("Aspect of the Monkey")then CastSpellByName("Aspect of the Monkey")end
elseif IsControlKeyDown()then
if not FindBuff("Aspect of the Pack")then CastSpellByName("Aspect of the Pack")end
else
if not FindBuff("Aspect of the Hawk")then CastSpellByName("Aspect of the Hawk")end
end
else
use("Whistle of the Emerald Raptor")
end
end

8. Кормление пета.

Между фигурных скобок надо в кавычках и через запятую указать еду, которую вы хотите скармливать с убыванием приоритета.

Макрос:

/run izipet()

Код:

function izipet()
wvFoodArray= {"Spinefin Halibut","Moon Harvest Pumpkin"}
  CastSpellByName("Feed Pet")
  for i=1,getn(wvFoodArray)do
    for bagid=0,4 do
      for itemid=1,GetContainerNumSlots(bagid)do
        local link=GetContainerItemLink(bagid,itemid)
        if link then
        if string.find(link,wvFoodArray)then
          PickupContainerItem(bagid,itemid)
          return 
         end
        end
      end
    end
  end
end

9. Классический макрос на призыв, отзыв и рес пета

/run local c=CastSpellByName if UnitExists("pet") then if UnitHealth("pet")==0 then c("Revive Pet") else c("Dismiss Pet") end else c("Call Pet") end

 

 Небольшое пояснение для макроса на ротацию

Допустим, что у нас нет никаких бустов скорости атаки, а откат на aimed shot multi-shot составляет десять часов.

Длительность подготовки к выстрелу: 0,7 секунд (красная полоса)

Длительность перезарядки: 2,3 секунды (белая полоса)

(все значения выше не совпадают с реальными и взяты из головы)

Как нанести максимальный дпс multishot'ом и aimed shot'ом за 1 каст?

Временная дыра охотников №1: Multi-shot.

Как многие могли заметить у мультишота имеется время каста, который составляет примерно 0,7 секунд.

Границы идеального прожатия: момент выстрела (начало белой полосы) и за 0,7 секунд до начала подготовки к выстрелу (конец белой полосы)

Для значений выше временной порог будет чуть менее 1,6 секунд. (2,3 - 0,7). При касте multi-shot'а совершенно не важно в какой именно момент времени он был прожат, только если он ПОПАДАЕТ в этот временной промежуток.

В противном случае вплоть до 0,7 секунд улетит в первую временную дыру. Вы были бесполезны в это время.

Временная дыра охотников №2: Aimed shot

В отличие  от первой дыры, идеального прожатия aimed shot'а не существует. При каждом вашем прожатии aimed shot'а есть время, которое вы потратили впустую.

Идеальное прожатие aimed shot'а подразумевает, что он кастуется моментально после выстрела, но это нереально.

Время между последним выстрелом (начало белой полосы) и началом каста aimed shot'а - это то время, которое улетает во вторую временную дыру.

Для значений выше вы можете потерять впустую вплоть до 3 секунд за 1 каст. Максимальная потеря времени равна вашей текущей скорости атаки (которая на самом деле - время между атаками).

(для максимальной потери времени нужно кастовать aimed shot сразу перед выстрелом)

Время, которое улетело в эти две временные дыры, хорошо показывает откуда у Вас растут руки.

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

Если у вас пинг 300мс потеря времени составит чуть более 0,6 с за один каст, 50мс - 0,1 с за один каст.

Вам решать сможете ли вы прожать aimed лучше или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

Официальный сайт сообщества
Официальный сайт игры
×
×
  • Создать...