Same thing goes for interrupts, not happening for warrior fury profile enclosed.
Same thing goes for interrupts, not happening for warrior fury profile enclosed.
@Meatglue -For that since it is a new probgram and the ini isn't set yet, make sure that "Interupt All" is checked again.Same thing goes for interrupts, not happening for warrior fury profile enclosed.
It was checked but I think it has to do with the new dungeons. It would work on some bosses but not on most.
After seeing that the Fury profile included with the program couldn't match the numbers that I normally see when I do my rotation manually, I tried Xeron's profile, which actually got pretty darn close. However, I noticed that even though it was doing decent DPS, a few abilities were not quite optimized. I took the liberty of altering a few key abilities for Fury, and now in 4.3 I have also altered abilities for Arms PvE. I can't very well simply upload Xeron's profile with just my few alterations, so I will just paste the individual abilities here, with some explanation of what they do.
Fury:
Heroic Strike: This will HS any time you are above 85 rage, or when Battle Trance is active, or when you have an Incite proc, or while Colossus Smash is active on your target and you have more than 50 rage.
Inner Rage: This will activate inner rage when you are above 90 rage and Colossus Smash is either active on the target or there is fewer than 6 seconds remaining on it's cooldown.Code:local rage = UnitPower("player") if rage >= 85 or UnitBuffID("player", 12964) or UnitBuffID("player", 86627) or (UnitDebuffID("target",86346) and rage >= 50) then return true end
Slam: Jesus... I did this just the other day, and I honestly can't remember everything that went into it. But basically, it allows for moving Slam above Bloodthirst and Raging Blow in the rotation without PQR clipping their cooldowns with a GCD from Slam, and will still Slam if they are off cooldown but there isn't sufficient rage to use them.Code:if UnitPower("player") >= 90 and (UnitDebuffID("target",86346) or GetSpellCooldown(86346) <= 6) then return true end
Berserker Rage: This maximizes the uptime of Enrage effects for the benefit of keeping Raging Blow active. It will only use Berserker Rage when you do not have Deathwish, the Enrage talent proc, or even the Enrage effect that can be given to you by Death Knights active. It also will not activate Berserker Rage if Raging Blow still has more than 1 second on it's cooldown, to avoid wasting it should the Enrage talent proc during the cooldown after Raging Blow was used at the very end of another Enrage.(This could work even better if it waits until Raging Blow is completely off cooldown, but I didn't test it that way.)Code:local currentSpec = 0 local spec = "" for i = 1, GetNumTalentTabs() do local _,_,_,_,pointsSpent = GetTalentTabInfo(i) if pointsSpent >= currentSpec then currentSpec = pointsSpent; spec = i; end end if spec == 1 and SpellIsTargeting() == nil then return true else local bloodsurge = UnitBuffID("player", 46916) if (bloodsurge ~= nil and SpellIsTargeting() == nil and GetSpellCooldown(23881) >= 1 and UnitPower("player") >= 20) and ((UnitBuffID("player", 12292) == nil and UnitBuffID("player", 14202) == nil and UnitBuffID("player", 49016) == nil and UnitBuffID("player", 18499)) or (UnitBuffID("player", 12292) or UnitBuffID("player", 14202) or UnitBuffID("player", 18499) or UnitBuffID("player", 49016) and GetSpellCooldown(85288) >= 1)) or (bloodsurge ~= nil and SpellIsTargeting() == nil and UnitPower("player") < 20) then return true end end
Raging Blow: This one's more or less the same as how Xeron had it, I simply added checks for two additional Enrage effects.Code:if UnitBuffID("player", 12292) == nil and UnitBuffID("player", 14202) == nil and UnitBuffID("player", 49016) == nil and GetSpellCooldown(85288) <= 1 then return true end
Colossus Smash: This avoids using Colossus Smash when doing so will leave you with insufficient rage to do anything else while not in execute range. In execute range it will Colossus Smash regardless, since the increased attack speed you get from the execute talent, you will most likely have enough rage to continue your rotation before the GCD from Colossus Smash is finished.Code:if UnitBuffID("player", 12292) or UnitBuffID("player", 14202) or UnitBuffID("player", 18499) or UnitBuffID("player", 49016) then return true end
Code:local unithealth = 100 * UnitHealth("target") / UnitHealthMax("target") local rage = UnitPower("player") if (rage >= 40 and unithealth >= 20) or unithealth < 20 then return true end
Arms:
Heroic Strike: This will HS any time you have more than 90 rage, or when Battle Trance is active outside of execute range, or any time you have an Incite proc with more than 50 rage, or any time during Deadly Calm.
Slam: This will Slam while above 20 rage without clipping Mortal Strike with a GCDCode:local unithealth = 100 * UnitHealth("target") / UnitHealthMax("target") local rage = UnitPower("player") if rage >= 90 or UnitBuffID("player", 85730) or (UnitBuffID("player", 12964) and unithealth >= 20) or (UnitBuffID("player", 86627) and rage >= 50) then return true end
Deadly Calm: This will activate Deadly Calm when you fall below 20 rage and there is greater than 10 seconds left on Battle Shout's cooldown. (Might be more efficient if it allows less time remaining on Battle Shout's cooldown.)Code:local unithealth = 100 * UnitHealth("target") / UnitHealthMax("target") local rage = UnitPower("player") if rage >= 20 and unithealth >= 20 and GetSpellCooldown(85288) > 1 then return true end
Colossus Smash: This is another one that's basically how Xeron had it, except it will use Colossus Smash regardless of current rage, since doing so as Arms is far less wasteful than doing so as FuryCode:local rage = UnitPower("player") if rage < 20 and GetSpellCooldown(6673) > 10 then return true end
Berserker Rage: This one is very simple, given how little Berserker Rage does for Arms. It's simply for making use of the Berserker Rage glyph for an extra 5 rage while your below 70 rage.Code:local csDebuff = UnitDebuffID("target", 86346) if csDebuff == nil then return true end
Code:local rage = UnitPower("player") if rage < 70 then return true end
After making the above changes, and a few adjustments to the rotations of each spec, I can proudly(or not x.x) say that PQR can now outperform what I am capable of doing manually.
Before 4.3, this had my self buffed (Battle Shout only) DPS as Fury on the target dummy at around 22k. This is without the use of Recklessness, Death Wish, or any such cooldown longer than that of Inner Rage.
After 4.3, I am now Arms. Unfortunately, I didn't bother using PQR to test my DPS as Fury after the patch, given that the numbers I could achieve manually were considerably less(19k, I could manually do 20-21k before)
With the ability changes for Arms(thankfully much less work than the ones for Fury were) that I listed above, and several adjustments to the rotation/priority list, the Arms profile has me doing 22-23k on the dummy with only Battle Shout, without the use of Recklessness or trinkets. (Only Deadly Calm.)
Last edited by biorpg; 11-30-2011 at 02:25 AM.
Bio that is alot of changes. I cant wait to give them a go. I would ask for permission first from him but I hope you will just post your profile the way you have it setup. Most of the profiles out there are based on others work as well. I agree you need to give credit where credit is due though.
Doesn't work on 4.3 patch.
The Wiki for the amazing PQRotation Bot <= Information and Profiles
All profiles available brought to you by Ralphiuss So please give him some rep when you see him around if you find this helpful!
I've just tried the new version online. Getting strange results on the EU realms. Apparently, it doesn't like this;
Return output;Code:if IsSpellKnown(15473) and UnitBuffID("player",15473) == nil then return true end
Made the finishing touches on my profiles just last night and they worked like a charm then. I dunno what changed 'til today.Code:Message: [string " function pqrFunc0() if IsSpellKnown(15473) and UnitBuffID("pla..."]:84: ')' expected near 'player' Time: 11/30/11 16:22:02 Count: 6 Stack: Locals:
Any takers on this? :P
Hello everibody
I havent seen a fire mage profile around so I made one really simple with only the principal aspects of the proper rotation
If you press right control you alternate between using fireball and frostfirebolt and there it casts dragon breath if target get in your melee range (in case you want to try it on pvp too)
if you move its casts scorch if you are not moving it casts fireball/frostfire bolt
MAGE_Abilities.xml
MAGE_Rotations.xmlCode:<?xml version="1.0" encoding="utf-8" ?><MAGE><Ability><Name>Pause</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>if IsShiftKeyDown() then return true end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>Scorch</Name><Default>false</Default><SpellID>2948</SpellID><Actions></Actions><Lua>local CM = UnitDebuffID(&quot;target&quot;,22959) if not(CM) or PQR_IsMoving(0.1) == true then return true else return false end</Lua><RecastDelay>100</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>Fireball</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>if PQR_IsMoving(0.1) == false then if UnitBuffID(&quot;player&quot;,44445) ~= nil then return false else if modkeystate then CastSpellByID(133) return true else CastSpellByID(44614) return true end end end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>Pyroblast!</Name><Default>false</Default><SpellID>11366</SpellID><Actions></Actions><Lua>local HS = UnitBuffID(&quot;player&quot;,44445) if HS ~= nil then return true end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>Living Bomb</Name><Default>false</Default><SpellID>44457</SpellID><Actions></Actions><Lua>local LB = UnitDebuffID(&quot;target&quot;,44457) if not(LB) then return true else return false end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>Combustion</Name><Default>false</Default><SpellID>11129</SpellID><Actions></Actions><Lua>local LB = UnitDebuffID(&quot;target&quot;,44457) local IG = UnitDebuffID(&quot;target&quot;,12846) local PB = UnitDebuffID(&quot;target&quot;,92315) if LB ~= nil and IG ~= nil and PB ~= nil then return true else return false end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>modkeystate</Name><Default>false</Default><SpellID>0</SpellID><Actions></Actions><Lua>if modkeytime == nil then modkeytime = 0 end if IsRightControlKeyDown() and GetTime() - modkeytime &gt; 1 then modkeytime = GetTime() if modkeystate then modkeystate = nil print(&quot;Rotation mode: \124cFFDBFA2AFrostfire Bolt&quot;) else modkeystate = 1 print(&quot;Rotation mode: \124cFFFA652AFireball&quot;) end end if IsAltKeyDown() or IsMounted() or SpellIsTargeting() or UnitBuffID(&quot;player&quot;,32612) or UnitBuffID(&quot;player&quot;,87959) or UnitChannelInfo(&quot;player&quot;) then return true end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability><Ability><Name>Dragons Breath</Name><Default>false</Default><SpellID>31661</SpellID><Actions></Actions><Lua>local SC = CheckInteractDistance(&quot;target&quot;, 3) local EF = UnitIsEnemy(&quot;player&quot;,&quot;target&quot;) local EH = UnitHealth(&quot;target&quot;) local FNCD = GetSpellCooldown(122) local cd = (FNCD + (FNCD - GetTime())) if cd &gt; 10 then return false else if SC and EF and EH &gt; 0 then return true end end</Lua><RecastDelay>0</RecastDelay><Target>Target</Target><CancelChannel>False</CancelChannel><LuaBefore></LuaBefore><LuaAfter></LuaAfter></Ability></MAGE>
Code:<?xml version="1.0" encoding="utf-8" ?><MAGE><Rotation><RotationName>Fire test</RotationName><RotationDefault>false</RotationDefault><RotationList>modkeystate|Pause|Dragons Breath|Pyroblast!|Living Bomb|Combustion|Scorch|Fireball</RotationList><RequireCombat>true</RequireCombat><RotationNotes></RotationNotes></Rotation></MAGE>
I would like to know if its good enough, sugestions, observations \o/
PS. I was tryng to edit some code to mage ward and mana shield to work on my profile, but my wow its on another language and i cant find the right Buff IDs for them, wouldn´t like to use Unitbuff with the name of the buffs as it was stated here that its better to use IDs. Anyone could help? Thank you
@cassrgs - Basic rotation works great and the button for fireball vs frostfire is a nice addition. If you could add fire orb to the rotation it would be a nice touch, the combustion timing wasn't always accurate but that could be to due to procs.
@ diesel... a week or so ago you were talking about how you might be releasing your frost dk rotation/file.... any news on thatI been looking forward to it as bubba's nets me top 100 parses all the time with an ilvl of only 383... imagine if I had been full 391's
![]()