** Updated on 08-19-09 to v1.1 - delete the old macros and use the new ones
History:
v1.1: Complete rewrite. Removed some redundancies and made the macro's logic much cleaner and more elegant. Also added a change in behaviour: with all diseases applied the macro will now favour PS over IT but only with UH (not Death) runes. This provides better Desecration uptime and saves valuable Frost/Death runes for when you are seperated from melee range. Also added jt12852's command that prevents macro sync to the recommendations.
v1.0: Initial release
Let's start with a little Q/A.
Q: Why don't you GTFO of the explout section with your macro shit, there's an extra sections for this stuff?!
A: Well i thought about putting it there, but i believe abusing the /dump possibilities as hard as this macro does is basically just like cheating, so imho the exploits can be the only correct section for this.
Q: Ok, so what the hell is this?
A: It's a pretty complex and evolved macro abusing the /dump exploit. It is not meant for the old SS-based UH PvP spec, but for the relatively new DC-based Unholy PvP spec that doesn't use/spec Scourge Strike at all, which, according to the AJ DK Forums, is the up-and-coming PvP spec post 3.2. For more information about it simply look it up at AJ forums. A small note: this spec can ofc only work i you have Sigil of the Vengeful Heart! It's obtainable through Emblems of Conquest though, so that's not a real problem.
Q: GREAT STORY BRO, but wtf does it actually do?
A: It basically manages all your rune-based damaging abilities with one button, and it does so really effectively. Unlike a simply castsequence macro the use of all abilities is bound to certain conditions, which let's you put up a perfect rune-based damage "rotation" at all times while simply pushing a singly key.
For the people interested in the technical details, i have made a chart showing the underlying logic of the macro:
For the lazy ones that don't want to try and understand the chart, what it comes down to is basically:
With no BP (or no diseases at all) on the Target: PS if available UH or Death rune else IT if available Frost rune else BS
With no FF but active BP on the target: IT if available Frost or Death rune else PS if available UH rune else BS
With applied diseases: PS if available UH rune else IT if available Frost or Death rune else BS
Q: Well, since DC is the primary nuke of this spec, why didn't you include it in the macro?
A: Because DC is using RP instead of runes and RP management is something VERY situational that can only be done effectively by a human being making decisions. Including DC in the macro wouldn't be hard actually, but the only real use of that would be having a great macro for botting. Meh.
Q/A ENDS HERE :O
First of all, you really should use this macro once everytime you relog:
It was posted by Aeron in the original /dump thread. It prevents /dump to spam your chat frame like crazy, so it's basically a must have./dump loadstring("DevTools_DumpCommand = (function(msg) loadstring(msg)() end)") ()
Also:
So, let's get to it, here are the macros (15 overall!). Make sure you name the macros exactly like i did, or this will not work. I cannot stress this point enough!
Macro Name: Spam
/dump loadstring("local p = IsSpellInRange(\"Plague Strike\", \"target\") if (p == 0) then CastSpellByName(\"Icy Touch\") else RunMacro(\"BP\") end") ()
Macro Name: BP
/dump loadstring("if (not UnitDebuff(\"target\", \"Blood Plague\")) then RunMacro(\"DUR1\") else RunMacro(\"FF\") end") ()
Macro Name: FF
/dump loadstring("if (not UnitDebuff(\"target\", \"Frost Fever\")) then RunMacro(\"DFR1\") else RunMacro(\"UR1\") end") ()
Macro Name: BPleft
/dump loadstring("if (not UnitDebuff(\"target\", \"Blood Plague\")) then CastSpellByName(\"Blood Strike\") else RunMacro(\"FFleft\") end") ()
Macro Name: FFleft
/dump loadstring("if (not UnitDebuff(\"target\", \"Frost Fever\")) then RunMacro(\"UR1\") else CastSpellByName(\"Blood Strike\") end") ()
Macro Name: BPright
/dump loadstring("if (not UnitDebuff(\"target\", \"Blood Plague\")) then RunMacro(\"FR1\") else RunMacro(\"FFright\") end") ()
Macro Name: FFright
/dump loadstring("if (not UnitDebuff(\"target\", \"Frost Fever\")) then CastSpellByName(\"Blood Strike\") else RunMacro(\"DFR1\") end") ()
Macro Name: DFR1
/dump loadstring("local _,_,c = GetRuneCooldown(\"1\") if (GetRuneType(\"1\") == 4) and (c == true) then CastSpellByName(\"Icy Touch\") else RunMacro(\"DFR2\") end") ()
Macro Name: DFR2
/dump loadstring("local _,_,d = GetRuneCooldown(\"2\") if (GetRuneType(\"2\") == 4) and (d == true) then CastSpellByName(\"Icy Touch\") else RunMacro(\"FR1\") end") ()
Macro Name: FR1
/dump loadstring("local _,_,a = GetRuneCooldown(\"5\") if (a == true) then CastSpellByName(\"Icy Touch\") else RunMacro(\"FR2\") end") ()
Macro Name: FR2
/dump loadstring("local _,_,b = GetRuneCooldown(\"6\") if (b == true) then CastSpellByName(\"Icy Touch\") else RunMacro(\"BPleft\") end") ()
Macro Name: DUR1
/dump loadstring("local _,_,i = GetRuneCooldown(\"1\") if (GetRuneType(\"1\") == 4) and (i == true) then CastSpellByName(\"Plague Strike\") else RunMacro(\"DUR2\") end") ()
Macro Name: DUR2
/dump loadstring("local _,_,j = GetRuneCooldown(\"2\") if (GetRuneType(\"2\") == 4) and (j == true) then CastSpellByName(\"Plague Strike\") else RunMacro(\"UR1\") end") ()
Macro Name: UR1
/dump loadstring("local _,_,g = GetRuneCooldown(\"3\") if (g == true) then CastSpellByName(\"Plague Strike\") else RunMacro(\"UR2\") end") ()
Macro Name: UR2
/dump loadstring("local _,_,h = GetRuneCooldown(\"4\") if (h == true) then CastSpellByName(\"Plague Strike\") else RunMacro(\"BPright\") end") ()
Have fun using this while it lasts. This whole /dump shit is ****in insane.
Greets, gifted