Hunter Macros

From Turtle WoW Wiki

Arcane Shot

Arcane Shot and pet attack. If not set to passive or currently attacking.

/run local _,_,_,_,isActive=GetPetActionInfo(10) if not isActive and not GetUnitName("pettarget") then PetAttack() end
/cast Arcane Shot

Aspect

Aspect of the Cheetah if solo, Pack if party

/run if GetNumPartyMembers()==0 or GetNumRaidMembers()==0 then CastSpellByName("Aspect of the Cheetah") else CastSpellByName("Aspect of the Pack") end


Aspect of the Hawk if missing then cast Aimed Shot

/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Spell_Nature_RavenForm" then x=1 end i=i+1 end if x==0 then CastSpellByName("Aspect of the Hawk") else CastSpellByName("Aimed Shot")end


Aspect of the Hawk / Monkey

/run s={"Aspect of the Hawk","Aspect of the Monkey"} if q==nil then q=0 end q=q+1 if q>getn(s)then q=1 end CastSpellByName(s[q])


Aspect of the Monkey/Raptor Strike

/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Ability_Hunter_AspectOfTheMonkey" then x=1 end i=i+1 end if x==0 then CastSpellByName("Aspect of the Monkey") else CastSpellByName("Raptor Strike")end

Auto Shot

uses a loop to check if auto shot is set to auto-repeat

/run for i=1,120 do if IsAutoRepeatAction(i) then return end end CastSpellByName("Auto Shot")


Checks for auto shot texture on your action bar and activates it if it is not activated

/run for i=1,120 do local t=GetActionTexture(i) if t and string.find(t,"Weapon") then if not IsAutoRepeatAction(i) then UseAction(i) end end end

Auto attack

uses a loop to check if attack is set to auto-repeat.

/run for i=1,120 do if IsCurrentAction(i) then return end end CastSpellByName("Attack")


This one is decent enough but it is known to be unreliable if spammed.

/run if (not PlayerFrame.inCombat) then AttackTarget() end


This one is more reliable. but it requires auto attack to be found on the action bar.

/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z);end;end;end

Castsequence

Cycle Hunter's Mark, Serpent Sting, and Concussive Shot

/run s={"Hunter's Mark","Serpent Sting","Concussive Shot"} if q==nil then q=0 end q=q+1 if q>getn(s) then q=1 end CastSpellByName(s[q])

Deterrence

Deterrence / Monkey

/cast Deterrence
/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Ability_Hunter_AspectOfTheMonkey" then x=1 end i=i+1 end if x==0 then CastSpellByName("Aspect of the Monkey") else end

Flare

Track Hidden, else spammable Flare

/run local g,h=GetTrackingTexture(),"Ability_Stealth";if not strfind(g,h) then CastSpellByName("Track Hidden")else if not SpellIsTargeting() then CastSpellByName("Flare")end end


Hunter's Mark if target can be attacked, else Flare

/run if UnitCanAttack("player","target") then CastSpellByName("Hunter's Mark") else CastSpellByName("Flare") end

Freezing Trap

Trap/Feign Death

/run if UnitAffectingCombat("player") then CastSpellByName("Feign Death") end
/cast Freezing Trap

Shadowmeld

/run PetFollow() PetPassiveMode() ClearTarget() if UnitAffectingCombat("player") then CastSpellByName("Feign Death") else CastSpellByName("Shadowmeld") CastSpellByName("Prowl")end

Hunter's Mark

Uses the hunter's mark on the target if it is not active

/run local i,x=1,0 while UnitDebuff("target",i) do if UnitDebuff("target",i)=="Interface\\Icons\\Ability_Hunter_SniperShot" then x=1 end i=i+1 end if x==0 then CastSpellByName("Hunter's Mark")end

Uses the hunter's mark and aimed shot on the target

/run local i,x=1,0 while UnitDebuff("target",i) do if UnitDebuff("target",i)=="Interface\\Icons\\Ability_Hunter_SniperShot" then x=1 end i=i+1 end if x==0 then CastSpellByName("Hunter's Mark") else CastSpellByName("Aimed Shot")end

Immolation Trap

/script if UnitAffectingCombat("player") then CastSpellByName("Feign Death") end
/cast Immolation Trap

Raptor Strike

Raptor Strike/Mongoose Bite

/run if (not PlayerFrame.inCombat) then AttackTarget() end
/cast Raptor Strike
/cast Mongoose Bite

Scare Beast

Scare Beast if combat, else Beast Lore

/run if UnitAffectingCombat("player") then CastSpellByName("Scare Beast") else CastSpellByName("Beast Lore") end

Scatter Shot

Targets the nearest enemy in 15 yards range and fires a scatter shot

/console targetNearestDistance 15
/run TargetNearestEnemy() CastSpellByName("Scatter Shot")
/console targetNearestDistance 41

Serpent Sting

This does Serpent sting and pet attack. It doesn't do pet attack if pet is set to passive or is currently attacking.

/run local _,_,_,_,isActive=GetPetActionInfo(10) if not isActive and not GetUnitName("pettarget") then PetAttack() end
/cast Serpent Sting

Tracking

Humanoids/Hidden/Undead/Giants

/run c=CastSpellByName t=GetTrackingTexture() if t and strfind(t,"Prayer") then c("Track Hidden") elseif t and strfind(t,"Stealth") then c("Track Undead") elseif t and strfind(t,"Dark") then c("Track Giants") else c("Track Humanoids") end


Beasts/Dragonkin/Demons/Elementals

/run c=CastSpellByName t=GetTrackingTexture() if t and strfind(t,"_Tracking") then c("Track Dragonkin") elseif t and strfind(t,"Dragon") then c("Track Demons") elseif t and strfind(t,"Fel") then c("Track Elementals") else c("Track Beasts") end

Viper sting

If target has mana cast Viper Sting, else cast Scorpid Sting

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

Scorpid sting

Scorpid sting on Rogues and warriors Viper Sting on all others

/run class=UnitClass("target"); if ((class=="Rogue") or (class=="Warrior")) then CastSpellByName("Scorpid Sting"); else CastSpellByName("Viper Sting")end

Volley

Spammable Volley

/run if not SpellIsTargeting() and not CastingBarFrame.channeling then CastSpellByName("Volley")end

Wing Clip

Wing Clip if melee range, else Concussive Shot

/run if CheckInteractDistance("target",3) then CastSpellByName("Wing Clip") else CastSpellByName("Concussive Shot"); end


Wing Clip if missing on target

/run local i,x=1,0 while UnitDebuff("target",i) do if UnitDebuff("target",i)=="Interface\\Icons\\Ability_Rogue_Trip" then x=1 break end i=i+1 end if x==0 then CastSpellByName("Wing Clip") CastSpellByName("Wing Clip(Rank 1)") end

Wyvern Sting

Pet passive, Feign Death if combat, else Wyvern Sting

/run PetPassiveMode() if UnitAffectingCombat("player") then CastSpellByName("Feign Death")end
/cast Wyvern Sting