Originally Posted by
D1sc1pl1n3
Hey, if someone could make a macro for a frost dk, with this priority, i would be glad. Or just make a skeleton and instruct us macro noobies at how to make our own.
Diseases
Obliterate if both Frost/Unholy pairs and/or both Death runes are up, or if Killing Machine is procced
Frost Strike if RP capped
Rime
Obliterate
Frost Strike
Horn of Winter
[source: elitistjerks.com]
Hmm a DK, a much more involved class to code for it seems.
FROST DK Single Target:
Code:
/run if not UnitDebuff("target", "Blood Plague") then CastSpellByName("Plague Strike") end
/run if not UnitDebuff("target", "Frost Fever") then CastSpellByName("Icy Touch") end
/run if UnitBuff("player", "Killing Machine") then CastSpellByName("Obliterate") end
/run if ((GetRuneCooldown("3")==true and GetRuneCooldown("4")==true) or (GetRuneCooldown("5")==true and GetRuneCooldown("6")==true)) then CastSpellByName("Obliterate") end
/run if UnitPower("player")>=95 then CastSpellByName("Frost Strike") end
/run if UnitBuff("player", "Freezing Fog") then CastSpellByName("Howling Blast") end
/run if ((GetRuneCooldown("3")==true or GetRuneCooldown("4")==true) and (GetRuneCooldown("5")==true or GetRuneCooldown("6")==true)) then CastSpellByName("Obliterate") end
/run if ((GetRuneCooldown("1")==false and GetRuneCooldown("2")==false) or (GetRuneCooldown("3")==false and GetRuneCooldown("4")==false) or (GetRuneCooldown("5")==false and GetRuneCooldown("6")==false)) and UnitPower("Player")>=40 then CastSpellByName("Frost Strike") end
/run if not UnitDebuff("player", "Horn of Winter") and GetSpellCooldown("Horn of Winter")==0 then CastSpellByName("Horn of Winter") end
Very simple macro, untested, and doesn't account for death runes. (I’ve never played a DK) You’ll want to play with GetRuneType() to find out, information for those functions are in the WoW LUA API. This will make your obliterates far more optimised.
This macro could be WAY better. e.g. declare a global and read all the rune status to the array and test from that rather than calling the cooldown/type functions 8 million times. Additionally we should be using a variable to track progress through the priority queue; that way we wait for runes that are about to come up).
At any rate, it should accomplish a pretty damn good rotation. Good luck!
Ive had numerous PMs asking for a tutorial of sorts, ill try and comment on what each line of the macro is doing below. Keep in mind that the order of the macro matters, the order of execution is from top to bottom. If a condition is met early in the script it will fire the ability effectively locking out more spells until the GCD is over therefore the macro is somewhat spam-able, though, pressing it once every GCD is advised.
Code:
/run if not UnitDebuff("target", "Blood Plague") then CastSpellByName("Plague Strike") end
If the “target” doesnt have BP then cast PS to get it up.
Code:
/run if UnitBuff("player", "Killing Machine") then CastSpellByName("Obliterate") end
If the “player” (you) has the Buff “Killing Machine” then lets spam obliterate till it goes away.
Code:
/run if ((GetRuneCooldown("3")==true and GetRuneCooldown("4")==true) or (GetRuneCooldown("5")==true and GetRuneCooldown("6")==true)) then CastSpellByName("Obliterate") end
A little more fun; If we have 2 frost or 2 unholy runes then cast Obliterate.
(Runes 1 & 2 are blood, 3 & 4 are frost, 5 & 6 are unholy)
Code:
/run if UnitPower("player")>=95 then CastSpellByName("Frost Strike") end
If we have more than or equal to 95 Runic Power then cast Frost Strike.
Code:
/run if ((GetRuneCooldown("3")==true or GetRuneCooldown("4")==true) and (GetRuneCooldown("5")==true or GetRuneCooldown("6")==true)) then CastSpellByName("Obliterate") end
If we have at least 1 frost and 1 unholy rune then cast Obliterate.
Code:
/run if ((GetRuneCooldown("1")==false and GetRuneCooldown("2")==false) or (GetRuneCooldown("3")==false and GetRuneCooldown("4")==false) or (GetRuneCooldown("5")==false and GetRuneCooldown("6")==false)) and UnitPower("Player")>=40 then CastSpellByName("Icy Touch") end
If at least one pair of runes is on CD and we have greater than or equal to 40 runic power then cast Frost Strike.
Code:
/run if not UnitDebuff("player", "Horn of Winter") and GetSpellCooldown("Horn of Winter")==0 then CastSpellByName("Horn of Winter") end
If we dont have the Horn of Winter buff on ourselves (and thus the raid) and its not on cooldown then cast it.
---------- Post added at 11:59 AM ---------- Previous post was at 11:45 AM ----------
Originally Posted by
scarith1
Any chance for a Balance Druid?

Balance Druid looks like fun to code for, so many conditionals.
Ill get something together when i get a chance and will edit this post.