Post your druid macros!

Post your druid macros!

by Fromage » Thu Mar 03, 2016 12:49 am

I'm awful with macros.

Would you guys mind sharing your druid macros? :)
Fromage
Private
Private
 

Re: Post your druid macros!

by Stalk » Thu Mar 03, 2016 4:17 am

Code: Select all
/lunamo i=1;a=UnitDebuff;t="target";s,d,e=GetSpellCooldown(15,"spell")if(d~=0)then SpellStopCasting();else while(a(t,i,1)~=nil)do x,y,z=a(t,i,1)if(strfind(z,"Curse")~=nil)then cast('Remove Curse');end;i=i+1;end;end;


Code: Select all
/lunamo i=1;a=UnitDebuff;t="target";s,d,e=GetSpellCooldown(15,"spell")if(d~=0)then SpellStopCasting();else while(a(t,i,1)~=nil)do x,y,z=a(t,i,1)if(strfind(z,"Poison")~=nil)then cast('Abolish Poison');end;i=i+1;end;end;


Code: Select all
/lunamo local s,d,e=GetSpellCooldown(122,"spell") if(d==0) then cast("Nature's Swiftness"); else cast("Healing Touch"); end;


Code: Select all
/lunamo a=GetSpellCooldown; s,d,e=a(146,"spell"); if(d==0) then if(not buffed('Rejuvenation', 'target')) then cast('Rejuvenation'); else s,d,e=a(148,"spell"); if(d==0) then cast('Swiftmend'); end; end; end;


Code: Select all
/script i=1;m=0;c=CastSpellByName;x=UnitBuff;p="player";y=UnitPowerType;while(x(p,i)~=nil) do if(strfind(x(p,i),"Ability_Ambush")~=nil) then m=1;end;i=i+1;end;if y(p)==3 and (m==0) then c("Prowl");elseif y(p)==0 then c("Cat Form"); end;


Everything except the last requires SuperMacro. Also, if not using recent Luna UF, then replace /lunamo with /script. I hope it helps. Also, you might need to count spell indices in your spellbook for the appropriate spell ID in the cases that use GetSpellCooldown (except in the case where the ID is 15 which is usually just to check for GCD)
Stalk
Senior Sergeant
Senior Sergeant
 

Re: Post your druid macros!

by Starflare » Mon Mar 07, 2016 11:27 am

My shitty attempt at a powershift macro. Please keep in mind that I don't know LUA and that I'm fully aware that this is shitty code. Also keep in mind that this macro is made for spamming. It might not work as intended if you just click it once. I have it bound to shift+mousewheel myself.

Basically what it does is, if in bear/cat/travel, unshift (made spammable) and then cast the last used form (also made spammable). It's rather buggy and sometimes the macro just randomly stops working or I get weird errors. Would love it if someone could improve this. This needs SuperMacro.
Code: Select all
/script while (sh~=1) do sh=1; lastShift=GetForm(); end
/script SM_IN(3, "/script sh=0"); --after 3 seconds, change sh variable back to 0
/script if shiftVar~=1 then UseAction(120); shiftVar=1; SM_IN(3, "/script shiftVar=0"); end
/script if UnitPowerType("Player")==0 then CastShapeshiftForm(lastShift); end


GetForm() is a function that I copied from someone. Made it into a custom addon so it loads as soon as I log on.
It returns 0 (caster), 1 (bear), 2 (aquatic), 3 (cat) or 4 (travel). You can test this by typing /script print(GetForm()) in chat.
Code: Select all
function GetForm()
   a,b,c,d = GetShapeshiftFormInfo(1); -- bear
   if ( c ) then
      return 1;
   elseif ( d ) then
      return 0; -- caster
   end
   a,b,c = GetShapeshiftFormInfo(3); -- cat
   if ( c ) then
      return 3;
   end
   a,b,c = GetShapeshiftFormInfo(4); -- travel
   if ( c ) then
      return 4;
   end
   a,b,c = GetShapeshiftFormInfo(2); -- aquatic
   if ( c ) then
      return 2;   
     
   end
   return 0;
end


UseAction(120) - I have a universal cancelform macro placed in slot with id 120:
Code: Select all
/run for i=1, GetNumShapeshiftForms() do _, name, active = GetShapeshiftFormInfo(i) if( active ~= nil ) then CastShapeshiftForm(i) break end end
/script if buffed("Cat Form") or buffed("Dire Bear Form") or buffed("Aquatic Form") or buffed("Travel Form") then UIErrorsFrame:Clear() end


Other than that, I have some self-cast macros, mostly to cast spells like Regrowth, Rejuv, Innervate etc on myself without having to worry about who I have targeted.
Code: Select all
/run UseAction(120)
/script CastSpellByName('Regrowth', 1)
/script UIErrorsFrame:Clear()


Again, the UseAction(120) refers to my cancelform macro in slotid 120 which cancels all my shapeshift forms before casting Regrowth on myself.

I have a MOTW and Thorns macro which cast their buff on target if I have someone targeted, otherwise it casts it on myself.
Code: Select all
/run UseAction(120)
/script if UnitIsFriend("player", "target") then CastSpellByName("Mark of the Wild"); else CastSpellByName("Mark of the Wild", 1); end


For shapeshifting, I have a spammable Bear Form and Cat Form macro. If I'm in any other form, it cancels that form and casts Bear Form. If I'm already in Bear Form, it will not shift me out of it.
Code: Select all
/script local _,_,active=GetShapeshiftFormInfo(1);if active~=1 then CastSpellByName("Dire Bear Form"); end;
/script if buffed("Cat Form") then CancelBuff("Cat Form"); UIErrorsFrame:Clear(); end
/script if buffed("Aquatic Form") then CancelBuff("Aquatic Form"); UIErrorsFrame:Clear(); end
/script if buffed("Travel Form") then CancelBuff("Travel Form"); UIErrorsFrame:Clear(); end
Starflare
Private
Private
 


Return to Druid