Druid Bear Macros
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;
Bash
From any stance to bear, cast Bash
/run local _, _, active = GetShapeshiftFormInfo(1) if not active or IsControlKeyDown() then for i = 2, 4 do _, _, active = GetShapeshiftFormInfo(i) if active then CastShapeshiftForm(i) return end end CastShapeshiftForm(1) else CastSpellByName("Bash")end
Bear Form
Bear Form from any form, 2 clicks.
/run local s,_ for i=1,5 do _,_,s=GetShapeshiftFormInfo(i)if s then CastShapeshiftForm(i)break end end if not s then CastShapeshiftForm(1) end
Spammable Bear Form
/run for i=1,5 do if not ({GetShapeshiftFormInfo(1)})[3] then if ({GetShapeshiftFormInfo(i)})[3] then CastShapeshiftForm(i) end CastShapeshiftForm(1) end end
Demoralizing Roar
shows you target attack power after reduction. change 126 depending on roar rank.
/cast Demoralizing Roar /run a=UnitAttackPower("target") - 126 if a ~= lastAttackPower then DEFAULT_CHAT_FRAME:AddMessage(a) lastAttackPower = a end
Enrage
Enrage + cancel buff
/run local i=0 g=GetPlayerBuff while not (g(i) == -1) do if(strfind(GetPlayerBuffTexture(g(i)),"Ability_Druid_Enrage"))then CancelPlayerBuff(g(i)) end i=i+1 end CastSpellByName("Enrage")
Feral Faerie Fire
Feral Faerie Fire when shapeshifted, Faerie Fire if not.
/script i=1;m=0;while(UnitBuff("player",i)~=nil) do if(strfind(UnitBuff("player",i),"Form")~=nil) then m=1; end;i=i+1;end; c=CastSpellByName; if(m==1) then c("Faerie Fire (Feral)()");else c("Faerie Fire");end
Feral charge
Spammable bear form with feral charge
/run local _, _, active = GetShapeshiftFormInfo(1) if not active or IsControlKeyDown() then CastShapeshiftForm(1) else CastSpellByName("Feral Charge")end
Safe Growl
Safe growl, which protects taunt and growl from being overridden if two or more players spam it at the same time.
/run t=0 for i=1,40 do local d=UnitDebuff("target",i) if d then if string.find(d,"UnyieldingFaith") or string.find(d,"Reincarnation") or string.find(d,"Taunt") then t=1 break end end end if t==0 then CastSpellByName("Growl") end
Maul
Startattack, Maul
/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z);end;end;end CastSpellByName("Maul") UIErrorsFrame:Clear()
Savage Bite
Start attack, Savage Bite if over 35 rage
/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z);end;end;end;if UnitMana("player") >=35 then CastSpellByName("Savage Bite")end;UIErrorsFrame:Clear()
Swipe
Startattack, Swipe
/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z);end;end;end; /cast Swipe