Here is a makeshift Druid Macro. Feel free to add things and improve it and PLEASE post a better version if you make one.
Code:
/run if UnitBuff("player", "Clearcasting") then CastSpellByName("Shred") end
/run local _,d,_ = GetSpellCooldown("Tiger's Fury") if (d == 0) and UnitPower("Player") < 30 then CastSpellByName("Tiger's Fury") end
/run p=GetComboPoints("player","target");if not UnitBuff("player", "Savage Roar") and p==5 then RunMacroText("/cast Savage Roar") end
/run c=CastSpellByName; local _,_,_,_,_,_,n,_,_=UnitBuff("player","Savage Roar"); if( (n-GetTime()<5) and p<4) then c("Savage Roar"); end;
/run p=GetComboPoints("player","target");
/run i=1 while(i<=40)do a={UnitDebuff("target",i)} if(a[1]=="Rip" and a[8]=="player") then break elseif(i==40) and p==5 then RunMacroText("/cast Rip") i=i+1 else i=i+1 end end
/run c=CastSpellByName; local _,_,_,_,_,_,n,_,_=UnitDebuff("target","Rip"); if( (n-GetTime()<5) and p>4) then c("Rip")end;
/run c=CastSpellByName; local _,_,_,_,_,_,n,_,_=UnitDebuff("target","Rip"); if( (n-GetTime()<7)) then else if (p==5) then c("Ferocious Bite") end end;
/run if p < 3 then RunMacroText("/cast Mangle(Cat Form)") end
/run i=1 while(i<=40)do a={UnitDebuff("target",i)} if(a[1]=="Rake" and a[8]=="player") then break elseif(i==40) then RunMacroText("/cast Rake") i=i+1 else i=i+1 end end
/run local _,d,_ = GetSpellCooldown("Shred") if (d == 0) then CastSpellByName("Shred") end
/run StaticPopup_Hide("MACRO_ACTION_FORBIDDEN");
Edit: Found this in an old LuaNinja Thread. I fixed a few lines to slightly improve it and fixed a few things that didnt work anymore. Someone really has to make a good druid macro but for now it can hold 13k DPS on my druid on a target dummy no problem which is fair in PVP gear.