Druid macros just don't work

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Druid macros just don't work

Post by Ulukay » Fri Nov 01, 2024 8:06 pm

-=Regrowth=-
Rank depending on the player's level, his mana and the target's missing health. While holding Alt, use "Nature's Swiftness". During the battle, the maximum available rank is used.
/script local UL,UM,UT,AH=UnitLevel,UnitMana;local function GotSpell(spell,rank) local ix,spellName,spellRank;if not spell then spell="Nature's Swiftness";rank="";end;for ix=1,200 do spellName,spellRank=GetSpellName(ix,"spell") if spellName==nil then return;else if spellName==spell and spellRank==rank then if GetSpellCooldown(ix,"spell")==0 then return true; else return; end;end;end;end;end;local function GotBuff(name,target) if not target then target = 'target' end;local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitBuff(target,ix) if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function action(name) local ix for ix=1,200 do if GetSpellName(ix,'spell')==name then if GetSpellCooldown(ix,'spell')==0 then CastSpellByName(name) return 1 end end end end local function BIF() return buffed("Clearcasting")=="buff" end;if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;local function inCombat() return UnitAffectingCombat(UT);end;AH=UnitHealthMax(UT)-UnitHealth(UT);if GotBuff("ResistNature",UT) and action("Swiftmend") then else if not IsAltKeyDown() or not GotSpell() then if UL("player")>59 and UL(UT)>53 and ((UM("player")>879 and (AH>2067 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 9") then CastSpellByName("Regrowth(Rank 9)"); else if UL("player")>53 and UL(UT)>47 and ((UM("player")>739 and (AH>1670 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 8") then CastSpellByName("Regrowth(Rank 8)"); else if UL("player")>47 and UL(UT)>41 and ((UM("player")>614 and (AH>1332 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 7") then CastSpellByName("Regrowth(Rank 7)"); else if UL("player")>41 and UL(UT)>35 and ((UM("player")>509 and (AH>1057 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 6") then CastSpellByName("Regrowth(Rank 6)"); else if UL("player")>35 and UL(UT)>29 and ((UM("player")>419 and (AH>832 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 5") then CastSpellByName("Regrowth(Rank 5)"); else if UL("player")>29 and UL(UT)>23 and ((UM("player")>349 and (AH>661 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 4") then CastSpellByName("Regrowth(Rank 4)"); else if UL("player")>23 and UL(UT)>17 and ((UM("player")>279 and (AH>449 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 3") then CastSpellByName("Regrowth(Rank 3)"); else if UL("player")>17 and UL(UT)>11 and ((UM("player")>204 and (AH>339 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 2") then CastSpellByName("Regrowth(Rank 2)"); else if UL("player")>11 and UL(UT)>0 and ((UM("player")>119 and (AH>182 or inCombat())) or BIF()) and GotSpell("Regrowth","Rank 1") then CastSpellByName("Regrowth(Rank 1)"); else CastSpellByName("Regrowth(Rank 1)");end;end;end;end;end;end;end;end;end;else CastSpellByName("Nature's Swiftness");end;end;
Last edited by Ulukay on Fri Nov 01, 2024 8:08 pm, edited 1 time in total.

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Druid macros just don't work

Post by Ulukay » Fri Nov 01, 2024 8:07 pm

-=Rejuvenation=-
Rank depending on the player's level, his mana and the target's missing health. While holding Alt, use "Nature's Swiftness". During the battle, the maximum available rank is used.
/script local UL,UM,UT,AH=UnitLevel,UnitMana;local function GotSpell(spell,rank) local ix,spellName,spellRank;if not spell then spell="Inner Focus";rank="";end;for ix=1,200 do spellName,spellRank=GetSpellName(ix,"spell") if spellName==nil then return;else if spellName==spell and spellRank==rank then if GetSpellCooldown(ix,"spell")==0 then return true; else return; end;end;end;end;end;local function GotBuff(name,target) if not target then target = 'target' end;local tex,cnt,ix;for ix = 1,32 do tex,cnt = UnitBuff(target,ix) if not tex then return end;if strfind(tex,name) then return cnt end;end;end;local function action(name) local ix for ix=1,200 do if GetSpellName(ix,'spell')==name then if GetSpellCooldown(ix,'spell')==0 then CastSpellByName(name) return 1 end end end end local function BIF() return buffed("Clearcasting")=="buff" end;if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;local function inCombat() return UnitAffectingCombat(UT);end;AH=UnitHealthMax(UT)-UnitHealth(UT);if GotBuff("Rejuvenation",UT) and action("Swiftmend") then else if UL("player")>59 and UL(UT)>57 and ((UM("player")>359 and (AH>888 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 11") then CastSpellByName("Rejuvenation(Rank 11)"); else if UL("player")>57 and UL(UT)>51 and ((UM("player")>334 and (AH>756 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 10") then CastSpellByName("Rejuvenation(Rank 10)"); else if UL("player")>51 and UL(UT)>45 and ((UM("player")>279 and (AH>608 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 9") then CastSpellByName("Rejuvenation(Rank 9)"); else if UL("player")>45 and UL(UT)>39 and ((UM("player")>234 and (AH>488 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 8") then CastSpellByName("Rejuvenation(Rank 8)"); else if UL("player")>39 and UL(UT)>33 and ((UM("player")>194 and (AH>388 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 7") then CastSpellByName("Rejuvenation(Rank 7)"); else if UL("player")>33 and UL(UT)>27 and ((UM("player")>159 and (AH>304 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 6") then CastSpellByName("Rejuvenation(Rank 6)"); else if UL("player")>27 and UL(UT)>21 and ((UM("player")>134 and (AH>244 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 5") then CastSpellByName("Rejuvenation(Rank 5)"); else if UL("player")>21 and UL(UT)>15 and ((UM("player")>104 and (AH>180 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 4") then CastSpellByName("Rejuvenation(Rank 4)"); else if UL("player")>15 and UL(UT)>9 and ((UM("player")>74 and (AH>116 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 3") then CastSpellByName("Rejuvenation(Rank 3)"); else if UL("player")>9 and UL(UT)>3 and ((UM("player")>39 and (AH>56 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 2") then CastSpellByName("Rejuvenation(Rank 2)"); else if UL("player")>3 and UL(UT)>0 and ((UM("player")>24 and (AH>32 or inCombat())) or BIF()) and GotSpell("Rejuvenation","Rank 1") then CastSpellByName("Rejuvenation(Rank 1)"); else CastSpellByName("Rejuvenation(Rank 1)");end;end;end;end;end;end;end;end;end;end;end;end;

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Druid macros just don't work

Post by Ulukay » Fri Nov 01, 2024 8:13 pm

-=Faerie+Shred+Ravage+Tiger's Fury=- Convenient for attacking from stealth or from behind the target.
You need an auto-attack icon on the quick access panel.
/script local ix;if UnitExists("target")==nil then TargetNearestEnemy();end;if buffed("Prowl")==nil then for ix=1,99 do if IsAttackAction(ix)and not IsCurrentAction(ix)then UseAction(ix)end;end;local tex,cnt;if UnitExists("target") then for ix = 1,32 do tex,cnt = UnitDebuff("target",ix);if tex then if strfind(tex,"Spell_Nature_FaerieFire") then ix=33;end;else ix=32;end;if ix==32 then local yx,spellName,spellRank=192 while(yx>0) do spellName,spellRank=GetSpellName(yx,"spell");if spellName=="Faerie Fire (Feral)" then if GetSpellCooldown(yx,"spell")==0 then CastSpell(yx,'spell');end;end;yx=yx-1 end;end;end;end;if buffed("Tiger's Fury")==nil and (UnitMana("player")>29 or buffed("Clearcasting")=="buff") then CastSpellByName("Tiger's Fury")end;for ix=1,200 do N,R=GetSpellName(ix,"spell");if N=="Shred" and GetSpellCooldown(ix,"spell")==0 and (UnitMana("player")>59 or buffed("Clearcasting")=="buff") then CastSpellByName("Shred");ix=200;end;end;else for ix=1,200 do N,R=GetSpellName(ix,"spell");if N=="Ravage" and GetSpellCooldown(ix,"spell")==0 and (UnitMana("player")>59 or buffed("Clearcasting")=="buff") then CastSpellByName("Ravage");ix=200;end;end;end;

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Druid macros just don't work

Post by Ulukay » Fri Nov 01, 2024 8:18 pm

Starfire+Wrath+Hurricane+Nature's Swiftness
Different spells, depending on the modifier key pressed (Control, Shift, Alt)
I don’t use it myself, it was created at someone’s request.
/script if IsControlKeyDown()then CastSpellByName("Hurricane")else if IsShiftKeyDown()then CastSpellByName("Wrath")else if IsAltKeyDown()then CastSpellByName("Nature's Swiftness")else CastSpellByName("Starfire")end;end;end;

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Druid macros just don't work

Post by Ulukay » Fri Nov 01, 2024 8:20 pm

-=Mark of the Wild=- Outdated
It seems that now the game itself does this, but previously it was necessary for automatic selection of spells for the target level.
/script local UL=UnitLevel;local UT; if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;if UL("player")>59 and UL(UT)>49 then CastSpellByName("Mark of the Wild(Rank 7)");else if UL("player")>49 and UL(UT)>39 then CastSpellByName("Mark of the Wild(Rank 6)");else if UL("player")>39 and UL(UT)>29 then CastSpellByName("Mark of the Wild(Rank 5)");else if UL("player")>29 and UL(UT)>19 then CastSpellByName("Mark of the Wild(Rank 4)");else if UL("player")>19 and UL(UT)>9 then CastSpellByName("Mark of the Wild(Rank 3)");else if UL("player")>9 and UL(UT)>0 then CastSpellByName("Mark of the Wild(Rank 2)");else CastSpellByName("Mark of the Wild(Rank 1)");end;end;end;end;end;end;
Last edited by Ulukay on Fri Nov 01, 2024 8:22 pm, edited 1 time in total.

Ulukay
Posts: 143
Has liked: 4 times
Likes: 12 times

Re: Druid macros just don't work

Post by Ulukay » Fri Nov 01, 2024 8:21 pm

-=Thorns=- Outdated
It seems that now the game itself does this, but previously it was necessary for automatic selection of spells for the target level.
/script local UL=UnitLevel; local UT; if UL("target")==0 or UnitCanAttack("player","target") then UT="player";else UT="target";end;if UL("player")>53 and UL(UT)>43 then CastSpellByName("Thorns(Rank 6)");else if UL("player")>43 and UL(UT)>33 then CastSpellByName("Thorns(Rank 5)");else if UL("player")>33 and UL(UT)>23 then CastSpellByName("Thorns(Rank 4)");else if UL("player")>23 and UL(UT)>13 then CastSpellByName("Thorns(Rank 3)");else if UL("player")>13 and UL(UT)>5 then CastSpellByName("Thorns(Rank 2)");else if UL("player")>5 and UL(UT)>0 then CastSpellByName("Thorns(Rank 1)");end;end;end;end;end;end;

vick_dagina
Posts: 4
Has liked: 5 times

Re: Druid macros just don't work

Post by vick_dagina » Sat Nov 02, 2024 10:49 am

Ulukay wrote: Fri Nov 01, 2024 8:03 pm
vick_dagina wrote: Fri Nov 01, 2024 4:21 pm This is just amazing, Ulukay, thank you.

I wonder what other 'best of/always used macros' you have up your sleeve. Class does not matter. I like leveling so I have every class exept Mage on HC mode (from lvl 20 to 45). Would be amazing if you could show more macros like this one - it helps so much.

I cannot send PMs yet so I hope you will see this somehow : )

Best regards,
VD
Ulukay wrote: Fri Nov 01, 2024 8:03 pm I have macros for most of the classes I play (except warrior and mage). But I think that they should not be posted here in the Druid topic, and few people need them. And now a patch is coming and some things may change.
But, okay, below I’ll post some more druid scripts.
Thank you, and I bow deeply for these wonderful macros.

I forgot that yesterday was patch day, and I hope the scripts haven’t been affected. If there’s a way to share the remaining macros for other classes without cluttering this thread, please let me know (if, of course, you’d like to share them - if not, I understand and respect your decision).
Last edited by vick_dagina on Sat Nov 02, 2024 10:53 am, edited 1 time in total.

Post Reply