Jump to content
Alexander

Макросы

Recommended Posts

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

/cast Feed Pet/script PickupContainerItem (b,s)

где b - номер сумки, s - номер слота

Share this post


Link to post
Share on other sites

Подскажите макрос на отключение автоатаки. Заранее спасибо

Share this post


Link to post
Share on other sites

/run if GetSpellCooldown([i][b]80[/b][/i],"spell") == 0 then CastSpellByName("Scatter Shot"); if GetUnitName("PetTarget") == GetUnitName("Target") then CastPetAction([i][b]10[/b][/i]); CastPetAction([i][b]2[/b][/i]);  end; end;
Кастует скатер. Если скатер не на кд,а пет бьет туже цель что и хант - пет ставится на пассив и оттаскивается с супостата. 80 - номер скатера в книге, 10 - номер абилки на петбаре (у меня это Passive), 2 - Follow.

Тоже самое можно сделать на трапу.

Share this post


Link to post
Share on other sites

Кастует скатер. Если скатер не на кд,а пет бьет туже цель что и хант - пет ставится на пассив и оттаскивается с супостата.

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

для сравнения юнитов лучше использовать вместо GetUnitName("PetTarget") == GetUnitName("Target")

UnitIsUnit("pettarget", "target") - так идет сравнение по GUID юнитов

Edited by yay

Share this post


Link to post
Share on other sites

FD + Trap:

/script PetFollow();

/script CastSpellbyName (Feign Death);

/script CastSpellbyName (Freezing Trap);

Scatter shot with call pet:

/cast Scatter Shot

/script PetPassiveMode();

/script PetFollow();

Spammable wing clip/counterattack:

/script CastSpellByName("Counterattack");

/script CastSpellByName("Wing Clip");

Spammable Raptor Strike / Mongoose Bite:

/script CastSpellByName("Mongoose Bite");

/script CastSpellByName("Raptor Strike");

Edited by Blackwing

Share this post


Link to post
Share on other sites

Возникла проблема./script if IsShiftKeyDown then CastSpellByName("Aimed Shot" , 1) else CastSpellByName("Aimed Shot" , 6) end; - работает./script if IsShiftKeyDown then CastSpellByName("Multi-Shot") else CastSpellByName("Aimed Shot") end; - работает./script if IsShiftKeyDown then CastSpellByName("Multi-Shot" , 1) else CastSpellByName("Multi-Shot" ,4) end; - НЕ РАБОТАЕТ.Вообще не работает каст мультишота с указанием ранга. Без ранга все ок , отстреливает максимальный. Возможно с ходу неправильно указал синтаксис , в игре с точками с запятой итп всё ок. Кто-нибудь знает или хотя бы догадывается , в чём проблема ?

Edited by volkodav

Share this post


Link to post
Share on other sites

Возможно с ходу неправильно указал синтаксис

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

Share this post


Link to post
Share on other sites

Поставь ты уже бонгос и сделай скрытую панель с 1 рангами и биндами через шифт - будет тебе счастье :)

Share this post


Link to post
Share on other sites

просто для себя - есть какой-то сакральный смысл в юзе разных рангов мультика?

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

Share this post


Link to post
Share on other sites

Возникла проблема.

/script if IsShiftKeyDown then CastSpellByName("Aimed Shot" , 1) else CastSpellByName("Aimed Shot" , 6) end;
- работает.
/script if IsShiftKeyDown then CastSpellByName("Multi-Shot") else CastSpellByName("Aimed Shot") end;
- работает.
/script if IsShiftKeyDown then CastSpellByName("Multi-Shot" , 1) else CastSpellByName("Multi-Shot" ,4) end;
- НЕ РАБОТАЕТ.Вообще не работает каст мультишота с указанием ранга. Без ранга все ок , отстреливает максимальный. Возможно с ходу неправильно указал синтаксис , в игре с точками с запятой итп всё ок. Кто-нибудь знает или хотя бы догадывается , в чём проблема ?
Я скорее удивлен: почему у тебя они "работают" ?! Синтаксис
CastSpellByName(spellName{, onSelf});
подразумевает, что после запятой может стоять ТОЛЬКО 1 (единица) - и означает она каст на себя.Если требуется указать ранг, то выглядеть все будет так:
/script if IsShiftKeyDown then CastSpellByName("Aimed Shot(Rank 1)") else CastSpellByName("Aimed Shot(Rank 6)") end;/script if IsShiftKeyDown then CastSpellByName("Multi-Shot") else CastSpellByName("Aimed Shot") end;/script if IsShiftKeyDown then CastSpellByName("Multi-Shot(Rank 1)") else CastSpellByName("Multi-Shot(Rank 4)") end;

Share this post


Link to post
Share on other sites

Я скорее удивлен: почему у тебя они "работают" ?! Синтаксис

CastSpellByName(spellName{, onSelf});
подразумевает, что после запятой может стоять ТОЛЬКО 1 (единица) - и означает она каст на себя.Если требуется указать ранг, то выглядеть все будет так:
/script if IsShiftKeyDown then CastSpellByName("Aimed Shot(Rank 1)") else CastSpellByName("Aimed Shot(Rank 6)") end;/script if IsShiftKeyDown then CastSpellByName("Multi-Shot") else CastSpellByName("Aimed Shot") end;/script if IsShiftKeyDown then CastSpellByName("Multi-Shot(Rank 1)") else CastSpellByName("Multi-Shot(Rank 4)") end;
Во , спасибо ! Работает - это значит происходит какое-то действие. Проверял свой вариант написания на трушот ауре - цифра после названия спелла ни на что не влияет.ЗЫ написанный мной макрос - самый настоящий суицид =). Edited by volkodav

Share this post


Link to post
Share on other sites

Макро на ФД+Шадоумелд, который можно спамить, не сбивая шадоумелд:

/script a = 0 for i=1,30 do t = UnitBuff("player", i) if t then if string.find(t, "Ability_Ambush") then a = 1 end end c = UnitAffectingCombat("player") if c then CastSpellByName("Feign Death") end if a == 0 then CastSpellByName("Shadowmeld") end end
Edited by Av_vA

Share this post


Link to post
Share on other sites

Тут выше был на скатер, то же самое, но работающее:

/run if GetSpellCooldown(81,"spell") == 0 then CastSpellByName("Scatter Shot"); if UnitIsUnit("pettarget", "target") then PetPassiveMode();PetFollow();end;end;

Share this post


Link to post
Share on other sites

Зачем в фд проверка на кд? Туда больше ничего впифхивать не планируется, а проверка комбата там и так есть. Со скатером - мб, но на всех моих хантах он 81. Уменьшение макроса играло бы роль, но он и так менее 255 символов.

Share this post


Link to post
Share on other sites
Пардон, кд ШМ. Слить кд ФД и вкурить, что на кд ШМ - та ещё печаль.

 

 

Нереально в бою практически, если только ты не стоял в стелсе, а потом решил кого-то заатачить и тут внезапно сразу решил снова уйти в стелс(чтобы поймать что-нибудь, например). Всё же КД там очень маленький.

Share this post


Link to post
Share on other sites

1. Buffs

 

2. Ranged

 

3. Melee/Survival

 

4. Pets

 

5. Miscellaneous

 

Items marked with a (Z) require Zorlen's Hunter Functions

 

Для работоспособности макросов с пометкой (Z) требуется скинуть в папку interface/addons содержимое архива zorlen_hunter.zip (прикреплен)

 

1. Buffs

Switching between Hawk and Monkey aspects
Option 1

/script if(UnitBuff("player",1)==nil)then CastSpellByName("Aspect of the Hawk")elseif(string.find(UnitBuff("player",1), "Raven"))then CastSpellByName("Aspect of the Monkey")elseif(UnitBuff("player",1))then CastSpellByName("Aspect of the Hawk");end

Option 2

/run h=0 for i=1,16 do b=UnitBuff("player",i) if not b then break elseif string.find(b,"Raven") then h=1 break end end if h==1 then CastSpellByName("Aspect of the Monkey") else CastSpellByName("Aspect of the Hawk") end

Switching between Monkey and Cheetah aspects
Option 1
Tip: No buffs can be active before you use this, or you must cancel any you have, as it looks at Slot 1 in your buff list for the string "Mon". If it's not there, it won't swap to Cheetah.

/script if (string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Cheetah"); else CastSpellByName("Aspect of the Monkey");end/cast Aspect of the Monkey

(Z) Option 2

/script if (not castMonkey()) then castCheetah();end

(Z) Option 3

/script if (isMonkActive("Player")) then CastSpellByName("Aspect of the Cheetah"); else CastSpellByName("Aspect of the Monkey");end

Switching between Hawk and Cheetah aspects
Option 1
Tip: No buffs can be active before you use this, or you must cancel any you have, as it looks at Slot 1 in your buff list for the string "Raven" (instead of Hawk for whatever reason). If it's not there, it won't swap to Cheetah.

/script if (string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Cheetah"); else CastSpellByName("Aspect of the Hawk");end/cast Aspect of the Hawk

(Z) Option 2

/script if (not castHawk()) then castCheetah();end

(Z) Option 3

/script if (isHawkActive("Player")) then CastSpellByName("Aspect of the Cheetah"); else CastSpellByName("Aspect of the Hawk"); end

(Z) Option 4
Tip: Add your critical Ranged Attack Skills into Action Bar 1

/script if (Zorlen_canAttack()) then CastSpellByName("Auto Shot");if (not castHawk()) then castCheetah(); CURRENT_ACTIONBAR_PAGE=1; ChangeActionBarPage();end end

Aspects & Mounting
Option 1
Tip: Casts Aspect of the Monkey before or after you mount/dismount. B = Bag from right-to-left, 0-thru-4, backpack being 0. S = Slot. You must have some sort of buff active in the first slot (it does not need to be an aspect) or this macro will return an error.

/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey");end/script CURRENT_ACTIONBAR_PAGE = 2;/script ChangeActionBarPage();/script UseContainerItem(B,S)

Option 2

/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk");end/script CURRENT_ACTIONBAR_PAGE = 2;/script ChangeActionBarPage();/script UseContainerItem(B,S)

2. Ranged

Sniper Shot - Only Applies to Night Elves
Option 1
Tip: Shadowmeld only works if you're not in combat. So the (not PlayerFrame.inCombat) checks to see it and then only casts Shadowmeld. If you are already in combat, you can still press the macro again to launch Multi-Shot or Concussive Shot. It makes it much more efficient to use in or out of combat.

/script if (not PlayerFrame.inCombat) then CastSpellByName("Shadowmeld(Racial)");end/cast Multi-Shot

Option 2

/script if (not PlayerFrame.inCombat) then CastSpellByName("Shadowmeld(Racial)");end/cast Concussive Shot

Option 3

/script if (not PlayerFrame.inCombat) then CastSpellByName("Shadowmeld(Racial)");end/script PetPassiveMode(); PetAttack()/cast Multi-Shot/script CastSpellByName("Hunter's Mark");

(Z) Option 4

/script if (canTrap()) then CastSpellByName("Shadowmeld(Racial)");if (isMeld()) then CastSpellByName("Hunter's Mark");PetPassiveMode();PetAttack();end;end/cast Aimed Shot

Concussive & Serpent
Option 1

/cast Concussive Shot/cast Serpent Sting

Option 2
Tip: This will not attempt to fire a Concussive Shot if the target was already Wing Clipped by you. Other snares, however, will still screw this macro up and you won't be able to fire. If you don't like that, swap the order of the lines.

/script if (not isClipped("target")) then CastSpellByName("Concussive Shot"); end/cast Serpent Sting

Concussive Shot & Arcane Shot
Option 1

/cast Concussive Shot/cast Arcane Shot

(Z) Option 2
Tip: Replace 12 (the cooldown of Concussive Shot) with whatever your actual Concussive Shot cooldown is (if it is modified by gear).

/script if (GetActionCooldown(i)<12) and ((not isClipped()) or (not isConned())) then CastSpellByName("Concussive Shot") else castArcane();end

Multi Shot & Arcane Shot
Tip: With this macro, you can't jump shot Arcane unless you are on Multi Shot cooldown. If jump shots are more important to you, swap the order. The reason Multi Shot is first because the macro button will show the cooldown of the first spell in the list.

/cast Multi-Shot/cast Arcane Shot

Arcane Shot w/Ammo Switch
Tip: An arrow saver macro, with the first line picking up the inexpensive arrows and the last line picking up the DPS ones. Replace the numbers with where said arrows are, bags going right to left, with the first bag counting as 0, and slots within the bag going from left to right. Make sure it's targetting the last stack of arrows it will grab, else it will use them until that stack is gone and leave the rest alone.

/script UseContainerItem (1,1)/cast Arcane Shot/script UseContainerItem (1,13)

Pulling
Option 1

/script CastSpellByName("Arcane Shot(Rank 1)"); SpellStopCasting();

(Z) Option 2

/script castMark();PetAttack();/script if (not castSerpent()) then castArcane();end

Option 3
Tip: This macro casts the highest rank Arcane Shot. However, if pulling, simply hold down CTRL while using the macro. It will then cast the lowest rank Arcane Shot and announce the pull to the raid/party.

/script if IsControlKeyDown() then if (GetNumRaidMembers()>0) then chan="RAID" else chan="PARTY" end CastSpellByName("Arcane Shot(Rank 1)") SendChatMessage("--- Incoming: "..UnitName("target").." ---",chan) else CastSpellByName("Arcane Shot(Rank 8)") end

Viper & Serpent
Tip: If the target has mana, it hits it with Viper and if not, it hits it with Serpent.
Option 1

/script if UnitPowerType("target")==0 then CastSpellByName("Viper Sting") else CastSpellByName("Serpent Sting"); end

(Z) Option 2

/script if (UnitPowerType('target') == 0) then castViper() else castSerpent() ;end

Viper & Scorpid
Tip: If the target has mana, it hits it with Viper and if not, it hits it with Scorpid.
Option 1

/script if UnitPowerType('target')>0 then CastSpellByName("Scorpid Sting"); else CastSpellByName("Viper Sting"); end

Option 2

/script if UnitPowerType("target")==0 then CastSpellByName("Viper Sting") else CastSpellByName("Scorpid Sting"); end

(Z) Scorpid & Arcane

/script if (not castScorpid()) then castArcane();end

Auto Shot & Aspect of the Hawk
Tip: Starts Auto Shot and checks to see if Aspect of the Hawk is up. If it is, it will NOT cast Aspect of the Hawk.

/cast Auto Shot/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk()");end

Aimed Shot
Tip: Use this to replace Aimed Shot (or any insta-shot). This way it will check before combat if you have Hawk up already. You can use this for any insta arrow or even switch it around for Raptor Strike & Monkey. If the correct aspect wasn't up on the first press of this macro, it will be up when you press it a second time. You can't use this for every special shot because then you won't be able to see when you are out of range (the # goes red when you are out of range). So pick the most frequently used "primary" attacks. Usually Aimed Shot or Concussive are the choice first strikes. This macro works best when you use it only for one or the other (either Aimed shot or Arcane Shot) because the timer is the same for both of those shots so you can tell when one or the other is ready even if one of them is replaced with a macro key. It doesn't work so well for Raptor Strike/Monkey because then you can't easily tell if Raptor Strike is ready again after the first use.

/script if (not string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName("Aspect of the Hawk()"); else CastSpellByName("Aimed Shot()");end

Scatter Shot
Option 1
Tip: PetWait is used instead of PetFollow, so the pet is near the opponent when they regains their senses, not running heave-ho slobbering like nuts back at you.

/cast Scatter Shot/script PetWait()/script PetPassiveMode()

Option 2

/script if UnitIsUnit("target","pettarget") then PetFollow(); end; CastSpellByName("Scatter Shot");

Action Bar Switch (Ranged)
Tip: Replace 3 with the # of your ranged action bar.

/cast Auto Shot/script if (string.find(UnitBuff("player", 1), "Raven")) then CastSpellByName ("Auto Shot"); else CastSpellByName ("Aspect of the Hawk") end;/script CURRENT_ACTIONBAR_PAGE=3;/script ChangeActionBarPage();

Action Bar Switch (range dependant)
Option 1
Tip: Switches you current action bar page if the target is anywhere from 8-35 yards. XX = slot in which you have Auto Shot, YY = slot you have Scare Beast. While X(1)= Range Page and X(2)= Melee Page.

/script if (IsActionInRange(XX)) == 1 then CastSpellByName("Auto Shot"); CastSpellByName("Aspect of the Hawk"); PetAttack(); CURRENT_ACTIONBAR_PAGE = X; ChangeActionBarPage(); elseif (IsActionInRange(YY)) == 1 then AttackTarget(); PetAttack(); end

Option 2
Tip: Switches you current action bar page if the target is within 0-8 yards. XX = slot in which you have Auto Shot, YY = slot you have Scare Beast. While X(1)= Range Page and X(2)= Melee Page.

/script if (IsActionInRange(XX)) == 1 then CastSpellByName("Auto Shot"); CastSpellByName("Aspect of the Hawk"); PetAttack(); elseif (IsActionInRange(YY)) == 1 then AttackTarget(); PetAttack(); CURRENT_ACTIONBAR_PAGE = X; ChangeActionBarPage(); end

Assist Player
Option 1
Tip: Change Player Name to the name of the player you want to assist (MT or whoever you choose).

/assist Player Name/script PetAttack()/cast Auto Shot/cast Hunter's Mark()

Option 2
Tip: Finds the party member with the lowest health, assists them (selects the enemy they currently have selected), casts Hunter's Mark on that enemy, and sends pet to attack.
/script P=1;T='player';function F(a)h=UnitHealth(a);p=h/UnitHealthMax(a);if h>0 and P>p then P=p;T=a;end end F(T);for i=1,4 do p='party'..i;if p then F(p);end end TargetUnit(T) 

/assist/cast Hunter's Mark()/script PetAttack()

Option 3

/assist Player Name/cast Scorpid Sting

Option 4

/assist Player Name/script PetAttack();/script if (CheckInteractDistance("target",1)) then CastSpellByName ("Attack") else CastSpellByName ("Auto Shot") end;

Attack Last Target
Tip: Mainly for when you lose your target due to Fear, Polly, Feign Death, or other such effects.

/script TargetLastEnemy()/script PetAttack()/cast Auto Shot/cast Hunter's Mark()

Aggro Spam
Tip: Used when you're trying to keep NPCs off the non-tanks (priests, mages, etc).

/cast Concussive Shot/cast Distracting Shot

3. Melee/Survival

Feign Death/Freeze Trap Variants
Tip: These macros are meant to be spam-hit to work. When Freezing Trap is placed first, when you're not in combat, you can still use this macro. Just spam/mash this macro a few times to Feign Death if you're in combat.
Option 1

/cast Freezing Trap/script PetWait(); PetPassiveMode();/cast Feign Death

Option 2
/

cast Freezing Trap/script PetFollow(); PetPassiveMode();/cast Feign Death

Option 3

/script PetFollow()/script PetPassiveMode()/cast Feign Death/cast Freezing Trap

Option 4

/cast Feign Death/script PetFollow(); PetPassiveMode();/cast Freezing Trap

Option 5

/script if UnitAffectingCombat("player") then CastSpellByName("Feign Death"); PetFollow(); PetPassiveMode();else CastSpellByName("Freezing Trap");end

Option 6

/script PetFollow(); PetPassiveMode();/cast Scatter Shot/cast Feign Death/cast Freezing Trap/cast Aspect of the Cheetah

(Z) Option 7

/script if canTrap() then castFreezingTrap() else castFreezingTrapWithPetPassive() end; --CastSpellByName("Freezing Trap")

(Z) Frost Trap

/script if (canTrap()) then CastSpellByName("Frost Trap") else CastSpellByName("Feign Death")end if (not canTrap()) then PetPassiveMode()end

(Z) Explosive Trap

/script if (canTrap()) then CastSpellByName("Explosive Trap") else CastSpellByName("Feign Death")end if (not canTrap()) then PetPassiveMode()end

(Z) Immolation Trap

/script if (canTrap()) then CastSpellByName("Immolation Trap") else CastSpellByName("Feign Death")end if (not canTrap()) then PetPassiveMode()end

Melee Spam
Tip: Casts "Aspect of the Monkey" if you're not buffed, and each hit of the macro launches you through Raptor Strike, Mongoose Bite and Wing Clip where applies. If you want to have your pet attacking with you, add /script PetAttack(); as the last line.
Option 1

/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey");end/script if (not PlayerFrame.inCombat) then CastSpellByName("Attack"); end/cast Raptor Strike/cast Mongoose Bite/cast Wing Clip

Option 2

/cast Raptor Strike/cast Mongoose Bite/cast Wing Clip

Option 3

/cast Raptor Strike()/cast Wing Clip()

Option 4
Tip: Replace the numbers 9/10 with the appropriate action bar ID numbers.

/script if (IsUsableAction(9)) then CastSpellByName("Counterattack"); end/script if (IsUsableAction(10)) then CastSpellByName("Mongoose Bite"); end/script CastSpellByName("Raptor Strike"); CastSpellByName("Wing Clip");

(Z) Option 5
Tip: Replace "Mongoose Bite" with "CounterAttack" if you have it. Replace i with the slot number of where this macro is placed in your action bar.

/script castMonkey();if (GetActionCooldown(i)<6) then CastSpellByName("Raptor Strike");else if (not isClipped()) then CastSpellByName("Wing Clip");CastSpellByName("Mongoose Bite");end end

(Z) Option 6

/script if (GetActionCooldown(i)<6) then CastSpellByName("Raptor Strike"); else CastSpellByName("Wing Clip"); end/cast Counterattack/script if (not isClipped("target")) then CastSpellByName("Wing Clip"); end

(Z) Option 7

/script if ((not isConned()) or (not isClipped())) then CastSpellByName("Wing Clip")if (GetActionCooldown(i)<6) then CastSpellByName("Raptor Strike") else CastSpellByName("Wing Clip");CastSpellByName("Mongoose Bite");end end

(Z) Option 8

/script castMonkey();if (GetActionCooldown(9)<6) then CastSpellByName("Raptor Strike");else if (not isClipped()) then CastSpellByName("Wing Clip");end end/script castMong();/script PetAttack();

(Z) Option 9

/script if (GetActionCooldown(i)<6) then CastSpellByName("Raptor Strike");else if (not isClipped()) then CastSpellByName("Wing Clip");end ;end /cast Deterrence/cast Mongoose Bite

Option 10(Orcs only)

/cast Raptor Strike()/cast Wing Clip()/cast Blood Fury(Racial)

Combat
Tip: This replaces melee attack button, use this instead of the default button to begin autoswinging with melee weapon. Checks to see if Aspect of the Monkey is already up, and if it is it won't cast it. So if Hawk or Pack/Cheetah is up, you'll cast Aspect of the Monkey and begin attacking with your melee weapon. Also if you are already in combat with melee weapons, this macro will NOT drop you out of combat.

/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey");end/script if (not PlayerFrame.inCombat) then CastSpellByName("Attack");end

Aspect of the Monkey & Deterrence
Option 1

/script if (not string.find(UnitBuff("player", 1), "Mon")) then CastSpellByName("Aspect of the Monkey");CastSpellByName("Deterrence");end

(Z) Option 2

/script castMonkey();CastSpellByName("Deterrence");end

Action Bar Switch (Melee)
Option 1
Tip: The # is where you put in the page number where the skills you want to use are.

/cast Aspect of the Monkey();/script CURRENT_ACTIONBAR_PAGE = #;/script ChangeActionBarPage();

Option 2

/cast Raptor Strike/script if (string.find(UnitBuff("player", 1), "Monkey")) then CastSpellByName ("Attack"); else CastSpellByName ("Aspect of the Monkey") end;/script CURRENT_ACTIONBAR_PAGE=#;/script ChangeActionBarPage();

Disengage
Option 1
Tip: Disengages from combat, sets pet to passive so you can run away, and switches to your melee Action Bar (so substitute X for whichever bar that would be).

/cast Disengage/script backOff()/script CURRENT_ACTIONBAR_PAGE=X;/script ChangeActionBarPage()

Option 2

/script if (not PlayerFrame.inCombat) then CastSpellByName("Attack") else CastSpellByName("Disengage"); end

(Z) Wing Clip

/script if (not isClipped() and not isConned()) then castClip() end

Couterattack
Tip: Will cast Couterattack if available, and if not Wing Clip.

/cast Counterattack/cast Wing Clip

Mongoose Bite/Raptor Strike
Tip: Will cast Mongoose Bite if available, and if not Raptor Strike.

/cast Mongoose Bite/cast Raptor Strike

4. Pets

Uber Pet Attack
Option 1
Tip: Hit the macro on a Friendly Target, it will send your Pet to assist Friendly Target. Hit the macro on a Hostile Target, it will sic your Pet on that Hostile Target. Hit the macro again, it'll recall your Pet. This works irregardless of your Pet's Mode (Aggressive/Defensive/Passive).

/script if UnitExists("target") then if UnitIsFriend("player","target") then AssistUnit("target");PetAttack();else if UnitExists("pettarget") and UnitIsUnit("target", "pettarget") then PetFollow();else PetAttack();end;end;else PetFollow();end;

Option 2

/script if UnitExists("target") then if UnitExists("pettarget") and UnitIsUnit("target", "pettarget") then PetFollow();else PetAttack();end;else PetFollow();end;

Hunter's Mark -> Pet Attack -> Shoot
Option 1

/script CastSpellByName("Hunter's Mark");PetAttack();CastSpellByName("Auto Shot");

Option 2
The actions correspond to your pet bar, going from left to right (so for example, prowl, then dash).

/cast Hunter's Mark/script CastPetAction (6)/script CastPetAction (7)/script PetAttack()/cast Auto Shot

Option 3

/cast Hunter's Mark/script PetAttack()/cast Auto Shot

Option 4
Tip: Tells pet to attack target and if in ranged attack distance, it will cast viper or serpent, depending on whether or not the target has mana. If in melee range, it will cast Wing Clip.

/script PetAttack();/script if (UnitPowerType('target') == 0) then CastSpellByName("Viper Sting") else CastSpellByName("Serpent Sting") ;end/cast Wing Clip

Option 5

/script local u=0,b,z;z=''; repeat b=GetPlayerBuffTexture(u);if(b==nil)then break end; z=z..b; u=u+1;until u==15;if(string.find(z,'Raven'))then CastSpellByName ("Hunter's Mark");PetAttack();else CastSpellByName ("Aspect of the Hawk");end

(Z) Option 6

/script castMark();PetAttack();CastSpellByName("Auto Shot");

(Z) Option 7
Tip: Replace "?" and "%" with the respective shot's slot number on the bar, and change 12 to whatever your actual cooldown of Concussive Shot is (if it is modified by gear).

/script PetAttack()/script if(not isMarked()) then castMark();end/script if(GetActionCooldown(?)<12) or (not isClipped("target") or isConned("target")) then CastSpellByName("Concussive Shot");end/script if (GetActionCooldown(%)<6) then castArcane(); end

Cast Pet Action and Attack
Option 1
Tip: Replace "Aimed Shot" with "Arcane Shot" if you don't have "Aimed Shot". Replace "InsertDesirePetSpellHere" with Prowl, Screech, Furious Howl, Lightning Breath or Scorpid Poison (depending on your pet/situation).

/script CastSpellByName("InsertDesiredPetSpellHere");CastSpellByName("Aimed Shot");

Option 2 (With Shadowmeld)

/script CastSpellByName("InsertDesiredPetSpellHere");if (not PlayerFrame.inCombat) then CastSpellByName("Shadowmeld(Racial)");end

Dungeon Marking
Tip: Use this to either Mark your target and keep your pet with you (when in a dungeon or mob-heavy area) or to bring your pet back to you.

/cast Hunter's Mark()/script PetFollow()

Assist Pet
Option 1
Tip: Replace X with the name of your pet.

/target X/assist/cast Auto Shot

Option 2

/script TargetUnit ("pet");/assist/cast Auto Shot

Option 3
Tip: This cause you to attack whatever your pet is attacking with a ranged weapon, unless you're in melee range where it will simply attack.

/script TargetUnit ("pet");/assist/script if (CheckInteractDistance("target",1)) then CastSpellByName("Attack") else CastSpellByName ("Auto Shot") end;

Revive/Mend Pet
Tip: If your pet is dead, Revive Pet. Otherwise, if it's alive, Mend Pet.

/script if not UnitExists("pet") then CastSpellByName("Revive Pet"); else if UnitIsDead("pet") then CastSpellByName("Revive Pet");else CastSpellByName("Mend Pet");end;end

Call/Dismiss Pet
Option 1

Tip: If your pet is out, Dismiss pet otherwise Call Pet./script if PetCanBeAbandoned() then CastSpellByName("Dismiss Pet") else CastSpellByName("Call Pet");end

Option 2

/script if(HasPetUI()) then CastSpellByName("Dismiss Pet") else CastSpellByName("Call Pet");end

Option 3

/script if UnitExists("pet") then CastSpellByName("Dismiss Pet") else CastSpellByName("Call Pet");end

Option 4

/cast Dismiss Pet/cast Call Pet

Feed Pet
Tip: It checks if you're in combat or not. Then it looks for the item in Slot Y in Bag No. X and feeds your pet the food. If there's nothing there, the bag will open prompting for attention. Replace X = Your Bag slot, starting with "0", reads from Right to Left. Replace Y = Your Item Slot in your bag, starting with "1", reads from Left to Right, top to bottom row.
Option 1

/script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(X,Y)) then OpenBag(X); else CastSpellByName("Feed Pet"); PickupContainerItem(X,Y); end end

Option 2

/cast Feed Pet/script PickupContainerItem (X,Y);

Option 3
Tip: This only requires you replace "Roasted Quail" with the exact name of the food that you are feeding your pet.

/script for b=0,4 do for s=1,GetContainerNumSlots( do if (string.find(GetContainerItemLink(b,s) or " ", "Roasted Quail")) then PickupContainerItem(b,s) DropItemOnUnit("pet") b=4 break end end end

Recall Pet

/script PetPassiveMode()/script PetFollow()

Toggle Pet Abilities
Tip: Toggles the abilities in the pet bar to Auto Cast or not. The "X" and "Y" correspond to positions on the pet bar. Set your "X" and "Y" to have one Auto Cast and the other not, then this will swap them.

/script TogglePetAutocast(X)/script TogglePetAutocast(Y)

Beastial Wrath (Cats only)
Tip: Leave Dash on autocast and make sure to leave leave Prowl off, so that your pet doesn't remain stealthed and slow all the time.

/cast Bestial Wrath();/cast Prowl();/script PetAttack();

Furious Howl (Wolves/Worgs only)
Option 1
Tip: A macro for Furious Howl with Multi-Shot, since they are both on a 10 second cooldown.

/cast Furious Howl/cast Multi-Shot

Option 2

/script if ( UnitCreatureFamily("pet") == "Wolf" ) then CastSpellByName("Furious Howl");end/cast Multi-Shot

Option 3
Tip: Replace 7 with the position of Furious Howl on the pet bar (going from left to right).

/cast Multi-Shot/script if UnitCreatureFamily("pet") ~= "Wolf" or UnitIsDead("pet") then return; end; local _,dur,_ = GetPetActionCooldown(7); if dur == 0 and UnitMana("pet") >= 60 then CastSpellByName("Furious Howl"); end;

Hide (Night Elves/Cats only)
Option 1

/cast Shadowmeld(Racial)/cast Prowl();

Option 2

/script SpellStopTargeting();/script PetFollow();/cast Prowl();/script CastSpellByName("Shadowmeld");

5. Miscellaneous

Ultimate, Everything Super

/pity/golfclap

Eye of Naraxxis
Tip: Hit as soon as you see "The living are here!" in Stratholme.

/target Eye/cast Arcane Shot

Pulling Announcement

/script smsg="<< Incoming >> << %t >>"; if (GetNumRaidMembers() > 0) then SendChatMessage(smsg,"RAID") elseif (GetNumPartyMembers() > 0) then SendChatMessage(smsg,"PARTY") end

Anti-Rogue
Option 1
Tip: Hear the stealth noise? Run away and click this macro. It will target the rogue, mark him, and send your pet at him. You're running, he's slow in stealth mode, just jump shot at your leisure.

/script TargetNearestEnemy();/cast Hunter's Mark/script PetAttack();

(Z) Option 2

/script TargetNearestEnemy(); if UnitIsPlayer("target") then if (UnitClass("target") == "Rogue") then if (isMarked()) then CastSpellByName("Wing Clip") else castMark(); end; end; end

Battleground Preperation
Tip: Ensures you're ready to do PVP battle. This will call your pet, turn on the aspect of your choice (Hawk or Monkey) and turn on humanoid tracking.
Option 1 (Hawk)

/run CN=CastSpellByName;if not(HasPetUI()) then CN("Call Pet") end/run h=0 for i=1,16 do b=UnitBuff("player",i) if not b then break elseif string.find(b,"Raven") then h=1 break end end if h==1 then CN("Track Humanoids") else CN("Aspect of the Hawk") end

Option 2 (Monkey)

/run CN=CastSpellByName;if not(HasPetUI()) then CN("Call Pet") end/run h=0 for i=1,16 do b=UnitBuff("player",i) if not b then break elseif string.find(b,"Mon") then h=1 break end end if h==1 then CN("Track Humanoids") else CN("Aspect of the Monkey") end

First Aid
Option 1
Tip: This is one click, self First Aid that will not cause you to lose your target that you are currently engaged with.

/script UseContainerItem(X,Y); SpellTargetUnit("player");

Option 2
Tip: Bandages a friendly target or yourself, then retargets last/nearest. Change the slot you keep bandaids in for this.

/script p="player";t="target";if not(UnitIsFriend(p,t)) then TargetUnit(p); end if UnitPlayerControlled(t) then UseContainerItem(3,14);end TargetLastEnemy(); if UnitIsDead(t) then TargetNearestEnemy();end

Option 3
Tip: Replace 3 and 1 with your bag and slot numbers respectively.

/script TargetUnit("player"); UseContainerItem(3,1);TargetLastEnemy();

Tracking
Option 1 (Cycles Track Demons -> Elementals -> Dragonkin)

/script x=GetTrackingTexture();y="InterfaceIcons";a="Demons";if x==y.."Spell_Shadow_SummonFelHunter" then a="Elementals";else if x==y.."Spell_Frost_SummonWaterElemental" then a="Dragonkin";end;end CastSpellByName("Track "..a)

Option 2 (Cycles Track Humanoids -> Beasts -> Undead)

/script x= GetTrackingTexture();y= "InterfaceIcons";a="Humanoids";if x==y.."Spell_Holy_PrayerOfHealing" then a="Beasts";else if x==y.."Ability_Tracking" then a="Undead";end;end CastSpellByName("Track "..a)

Option 3 (Cycles Track Humanoids -> Beasts -> Hidden)

/script x= GetTrackingTexture();y= "InterfaceIcons";a="Humanoids";if x==y.."Spell_Holy_PrayerOfHealing" then a="Beasts";else if x==y.."Ability_Tracking" then a="Hidden";end;end CastSpellByName("Track "..a)

Option 4 (Cycles Track Hidden -> Undead -> Giants)

/script x=GetTrackingTexture();y="InterfaceIcons";a="Hidden";if x==y.."Ability_Stealth" then a="Undead";else if x==y.."Spell_Shadow_DarkSummoning" then a="Giants";end;end CastSpellByName("Track "..a)

Seek and Destroy
Tip: This macro takes a little bit of explaination. Ever been in a situation where you're looking for a specific spawn (or player) but don't have the will to make a new /target macro every single time? With the first press of this macro, it will 'activate' the script. Then, in your General chat window, type /find (playername/NPC). If you're out of range, you'll receive the message 'Unknown unit'. Since Blizzard's targetting system allows you to target pretty much any creature that is in the MOB Clip plane it works as an effective form of radar/searching - so continue to press the macro until whatever you're looking for pops up on target. It will then Hunter's Mark your target.

/script if(not SlashCmdList["FIND"]) then SlashCmdList["FIND"] = function(msg) ftarget=msg; end; SLASH_FIND1 = "/find"; DEFAULT_CHAT_FRAME:AddMessage("Find Macro Enabled!",0,0,.5); end; if(ftarget) then TargetByName(ftarget);end/cast Hunter's Mark

Untraceable (Night Elves only)
Tip: Activates both Aspect of the Beast & Shadowmeld.

/script local u=0,b,z;z=''; repeat b=GetPlayerBuffTexture(u);if(b==nil)then break end; z=z..b; u=u+1;until u==15;if(string.find(z,'PinkTiger'))then CastSpellByName ("Shadowmeld");else CastSpellByName ("Aspect of the Beast");end

Devilsaur Eye
Option 1
Tip: The Devilsaur Eye trinket needs to be in the first trinket slot (this macro can be used with other trinkets as well, so long as the trinket is in the first slot.)

/script UseInventoryItem(13)/cast Rapid Fire

Option 2 (Wolves/Worgs only)

/script UseInventoryItem(13); if (GetActionCooldown(13)<300) then CastSpellByName("Rapid Fire");end CastSpellByName("Aimed Shot"); CastSpellByName("Furious Howl")

Kiting in Blackwing Lair
Option 1

/script AssistUnit("target"); if (UnitClass("target") == "Hunter") then TargetLastEnemy(); else TargetLastEnemy(); CastSpellByName("Arcane Shot");end

Remove bow then equip again (for Nefarian)
Tip: Requires first main bag slot to be clear.

/script PickupInventoryItem(18) if ( CursorHasItem() ) then PickupContainerItem(0, 1); else PickupContainerItem(0, 1); PickupInventoryItem(18);end

Nefarian, Stage 1
Tip: This should keep you on the right target and firing as quickly as possible. Obviously it's not 100% foolproof, as if Arcane/Multi cooldowns aren't up you'll have to invoke Auto Shot manually. In the end, all you have to do to keep the damage flowing is click/hotkey this button repeatedly and toggle on Auto Shot if it's ever off.

/assist PlayerName/cast Arcane Shot()/cast Multi-Shot()/script PetAttack()

_ _ _ _ _ _ _ _ _ _ 

 

Скинул к нам, чтобы на бурговском ресурсе не затерялись, надеюсь найдете что-либо полезное.На работоспособность не проверялись. Возможно в некоторых макросах не хватает ";" или "end". Будьте внимательны. С английским надеюсь разберетесь.

zorlen_hunter.zip

Edited by Blackwing

Share this post


Link to post
Share on other sites

Универсальный макрос для мили. Требуется Supermacro

 

1)  Находим ID наших абилок через макрос

/script local i = 1 while true do local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL) if not spellName then do break end end DEFAULT_CHAT_FRAME:AddMessage( spellName .. '(' .. spellRank .. ')'  .. 'spell_ID = ' .. i) i = i + 1 end

Нас интересуют Counterattack 1-3 ранга(я бы советовал исопльзовать 1 ранга для экономии маны, т.к. отличаются только уроном) и Mongoose Bite 4 ранга

 

2) Сам макрос
 

/run if (IsUsableAction(9)) then CastSpell(ID_Counterattack, "spell") end
/run if (IsUsableAction(10)) then CastSpell(ID_Mongoose_bite, "spell") end
/run if not buffed("wing clip", 'target') then CastSpellByName("Wing Clip") else CastSpellByName("Raptor Strike") end

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

Share this post


Link to post
Share on other sites
А зачем ты пишешь в CastSpell("Feign Death","spell") если можно писать CastSpell("Feign Death",0)?

 

 

Про 0 не знал, спс.

 

Проверка на дебафф от вингклипа или любого другого дебаффа занимает ровно 1 general purpose макрос.

 

 

У меня получается вот так и в итоге все вместе в 1 макро не помещается, поэтому с супермакро проще.

/script local i, t for i=1,30 do t = UnitDebuff("target", i) if t then if string.find(t, "Ability_Rogue_Trip") then CastSpellByName("Raptor Strike") else CastSpellByName("Wingclip") end
Edited by Av_vA

Share this post


Link to post
Share on other sites
Кроме того, ты напрасно тратишь ману, гкд и дебафф слот, если на цели уже висит другой снар- или дейз-эффект.

 

 

Только в том случае, если у него иконка, как у вингклипа. ue_Tr работает прекрасно, если нет аналогичных сочетаний от других дебаффов, но спс, что подсказал, как сократить.

Share this post


Link to post
Share on other sites

Куда интереснее было бы узнать, есть ли возможность узнать, какой ранг вингклипа висит на цели, т.к. при вкачанном таланте я не исопльзую данный макро, потому что спам вингклипа еще даёт прок, но после 1 клипа 3 ранга есть смысл дальше спамить клипы 1 ранга только для прока и экономии маны.

Share this post


Link to post
Share on other sites

Для пвп это не пойдёт, к сожалению, т.к. друиды/палы/триня.

Share this post


Link to post
Share on other sites

Добрый день. Подскажите макрос на атаку пета. Что-то типо  /petattack, без дополнительных условий. Заранее спасибо. 

Share this post


Link to post
Share on other sites

Добрый день. Подскажите макрос на атаку пета. Что-то типо  /petattack, без дополнительных условий. Заранее спасибо. 

/script PetAttack()

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×