 |
04/05/09, 6:52 AM
|
#1
|
|
In Awe of Shocks
Draenei Shaman
Khadgar (EU)
|
PriorityQueue
Priority Queue : The aim - To accurately model each class/spec's priority/rotation
In order to achieve that aim a few things need to be implemented
1) A list of skills needs to be established for each class/spec and/or sub-spec to be implemented
2) For each skill a precise condition needs to be established for that skill to be optimally used
3) The ideal priority order (ie: list of skills in order) needs to be established for that particular priority queue
4) TEST the addon once the priority has been established to ensure it works smoothly
Now getting a list of skills is easy, and ordering the priority is typically fairly straightforward. Establishing the precise conditional can be the tricky part. Not all conditionals are use skill X if available. For instance to make Blood DKs work I needed to implement a Heart Strike with 2 diseases active, a Heart Strike with 1 disease active, and a Heart Strike without diseases. ie: THREE different Heart Strike priorities.
So what I need assistance from the community to do is to implement steps 1, 2 & 3 and then provide testing in step 4 this is particularly important as I don't have a level 80 of each class. So if you want your spec to be working properly I need your help.
So if you can help please, identify your spec and list the skills. If possible list the conditionals for each ability. The conditionals can be things like :
use skill X when available
use skill X if debuff Y on target
use skill X only when buff Y procs
use skill X if < n seconds left of buff Y on target.
use skill X if n stacks of Y (Y can be things like buff stacks, combo points etc)
all of them can have if UnitPower > Z (mana, rage, energy, runic power)
So over to you.
PS. If you are able to assist coding the rotations even better - PM me and I can see about adding you as a project author.
Last edited by Levva : 04/07/09 at 12:08 PM.
|
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.
|
|
|
04/05/09, 1:11 PM
|
#2
|
|
Soda Popinski
|
I removed the first post. Edit accordingly.
|
|
|
|
|
04/06/09, 9:50 AM
|
#3
|
|
Don Flamenco
Draenei Death Knight
Chants Eternels (EU)
|
I don't have lua coding experience and not too much time right now with the simulator I am working on, but you can check the source code to see how I manage the priority of Death Knight abilities.
Sim.vb - dksimulator - Google Code
Look for the function DoNext()
Here is most of the abilities that a DK should be able to add into a priority.
Frost Fever
Blood Plague
Icy Touch
Scourge Strike
Plague Strike
Obliterate
Frost Strike
Death Strike
Blood Strike
Heart Strike
Death Coil
Blood Boil
Unholy Blight
Howling Blast
Death and Decay
Rime
Frost Fever and Blood Plague are the 2 disease of the death knight.
Here is some of the default priority I have in the simulator, I think this should be a good working base.
Blood
if Frost Fever debuff not on the target, cast Icy Touch
if Blood Plague debuff not on the target, cast Plague Strike
if Heart Strike available (blood or death rune), cast it
if Death Strike available (Frost/Unholy runes), cast it
if Death Coil available (RP >= 40 ), cast it
Frost 2 diseases
if Frost Fever debuff not on the target, cast Icy Touch
if Blood Plague debuff not on the target, cast Plague Strike
if Rime buff is available, cast Howling Blast
if Frost Strike available (RP >= 40 or 32 if Glyph ), cast it
if Obliterate available (Frost/Unholy runes or Double Death runes), cast it
if Blood Strike available (Blood rune), cast it
Frost 1 disease
if Frost Fever debuff not on the target, cast Howling Blast (Glyphed)
if Rime buff is available, cast Howling Blast
if Frost Strike available (RP >= 40 or 32 if Glyph ), cast it
if Obliterate available (Frost/Unholy runes or Double Death runes), cast it
if Blood Strike available (Blood rune), cast it
Unholy
if Frost Fever debuff not on the target, cast Icy Touch
if Blood Plague debuff not on the target, cast Plague Strike
if Scourge Strike available (Frost/Unholy runes or Double Death runes), cast it
if Blood Strike available (Blood rune), cast it
if Unholy Blight buff not present and available (RP >= 40) , cast it
if Death Coil is available cast it.
If there is another way I can help, don't hesitate to PM or leave questions here. I will follow this threat with great interest.
|
|
|
|
|
04/07/09, 12:15 PM
|
#4
|
|
In Awe of Shocks
Draenei Shaman
Khadgar (EU)
|
Can you clarify what the Frost 1 disease and Frost 2 disease priorities are? ie: why you would use one over the other. My knowledge of DKs is not that strong at present although I've got a lvl 67 blood specced one that I'm playing around with tanking on. So the current DK model does accurately give me a PS, IT, HS, HS, OB, DC, PS, IT, HS, HS, HS, HS, DC priority at present.
The rune strike is bugging me though as it only procs on dodge/parry and unfortunately the API query ALWAYS returns that its available even when you haven't dodged/parried. This is a pain so I'm having to work out some other means. I can get from the combat log filter when you dodge/parry, however I don't know for how long that then makes Rune Strike available for. Is it cancelled on your next swing ie: you get a white swing in without using it and it's no longer available? Is it cancelled after x seconds? Is it cancelled on using another ability? If anyone knows that would be useful.
|
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.
|
|
|
04/07/09, 2:47 PM
|
#5
|
|
Chronic Apopheniac
Night Elf Druid
Dragonblight
|
Moonkin: - Moonfire if [Moonfire has < SF cast time (or is down) or Moonfire has been extended 3 times] and SFEclipse is up and SFEclipse > 12s (12s is variable by how comfortable a person is. This should only happen if Eclipse takes a long time to proc)
- Starfire if SFEclipse is up and SFEclipse > SF cast time
- IS if IS is down and WEclipse is up and WEclipse > 6s (again, variable)
- Wrath if WEclipse is up and WEclipse > W Cast time
- IS if IS is down
- MF if Eclipse Cooldown is under SF Cast or Eclipse has cooled
- MF if MF is down - Optional, makes the previous priority clip MF duration, but gives 100% MF uptime.
- Innervate if under 20% mana and Eclipse is on cooldown(or so, probably needs to be variable)
- Starfall if available and Eclipse is on cooldown
- Starfire if Eclipse is on cooldown
- Wrath
Force of Nature doesn't fit the priority queue as it needs to be cast just before Lust for best results.
Eclipse duration is 15s, cooldown is 30s.
|
|
|
|
04/07/09, 5:05 PM
|
#6
|
|
Don Flamenco
Draenei Death Knight
Chants Eternels (EU)
|
Why Frost with one or two disease ? It's just game play style. Both are giving decent result.
It is strange that API return that the Rune Strike is always available. But maybe I have a walkaround that I use for powa addon. If I put Rune strike on the main bar, powa is able to monitor it, but if it's not present powa always tell me it's available.
|
|
|
|
|
04/16/09, 3:17 PM
|
#7
|
|
Solution complicated; Dispense enlightening graph.
|
The warlock priority queues are constantly updated in text form in the 3.1 warlock compendium here: PVE Raiding Compendium V3.1
They are updated in simcraft form, which may be more useful to you, in the 3.1 simcraft thread here:
http://elitistjerks.com/f80/t48311-s...ost_3_1_specs/
First post in both cases. If I get time this afternoon for more than a brief read I'll try to sort them into your format from the simcraft format.
|
First star to the right, and straight on till morning.
 in BSG 15
|
|
|
04/22/09, 11:21 AM
|
#8
|
|
In Awe of Shocks
Draenei Shaman
Khadgar (EU)
|
Many thanks. To other users (potential users) I need more authors from other classes prepared to do a little testing and coding for their class/spec. If you would like to get involved please let me know.
|
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.
|
|
|
04/22/09, 11:55 AM
|
#9
|
|
Bald Bull
Blood Elf Paladin
Echo Isles
|
As I understand it, this addon is just going to display a big ol' sign telling the player which button to press next, but it's up to the player to press it, yes?
Anyway, the Retribution Paladin priority queue:
If Crusader Strike is available, Crusader Strike
If Hammer of Wrath is available, Hammer of Wrath (target HP has to be below 20%, besides the cooldown)
If Judgement of Light/Wisdom is available, Judgement of Wisdom/Light
If Divine Storm is available, Divine Storm
If Consecration is available, Consecration
If Exorcism is available, Exorcism
If Holy Wrath is available, Holy Wrath
Finally, those DK rotations seem a little simplistic, as they don't consider remaining disease durations when choosing to spend the FU/D runes on another Obliterate/Death Strike/Scourge Strike or refresh early with an IT+PS instead.
|
|
|
|
04/22/09, 12:11 PM
|
#10
|
|
Bald Bull
Human Paladin
Scarlet Crusade
|
Minor clarification, otherwise Prinsesa's on the spot. We don't use HW unless it will work on our targets (waste of GCD and mana).
If Holy Wrath is available, Holy Wrath (only usable on Demons/Undead)
|
Rock: "We're sub-standard DPS. Nerf Paper, Scissors are fine."
Paper: "OMG, WTF, Scissors!"
Scissors: "Rock is OP and Paper are QQers. We need PvP buffs."
|
|
|
04/28/09, 6:18 PM
|
#11
|
|
Glass Joe
Blood Elf Death Knight
Cenarius
|
Originally Posted by Levva
The rune strike is bugging me though as it only procs on dodge/parry and unfortunately the API query ALWAYS returns that its available even when you haven't dodged/parried. This is a pain so I'm having to work out some other means. I can get from the combat log filter when you dodge/parry, however I don't know for how long that then makes Rune Strike available for. Is it cancelled on your next swing ie: you get a white swing in without using it and it's no longer available? Is it cancelled after x seconds? Is it cancelled on using another ability? If anyone knows that would be useful.
|
Rune strike is available after you parry/dodge an attack immediately if you have 20 runic power(RP) available. If you don't have the RP there is a timeout period (on the order of 10 seconds, but I'll have to confirm this) in which it will become available if you gain 20 RP. If you parry/dodge another attack before using it, it resets the timeout. It is not canceled on white swings if not used. The 'Next Melee' part is somewhat misleading; it really means 'after you use rune strike, your next melee white hit will be replaced with the rune strike yellow hit'. The logic for it would be something like: "If the last attack you dodged/parried occurred in the last X seconds, you haven't used Rune Strike since then, and have 20 RP".
Unholy blight needs to be thrown in the mix as well, if you have the talent. It costs 40RP and has a higher priority than Rune Strike. If you don't account for it, you'd use your 20RP on Rune Strikes and possibly never get UB in. Something like: "If the last attack you dodged/parried occurred in the last X seconds, you haven't used Rune Strike since then, you have 20 RP, and unholy blight is up (buff on yourself)"
|
|
|
|
|
04/29/09, 1:05 PM
|
#12
|
|
Don Flamenco
|
Runestrike isn't used in any rotation or priority list. When tanking, you always want to runestrike when you have the RP, as it's our best single-target threat ability by a healthy margin. When DPSing, it's not used at all.
We're working on a more accurate and complete unholy DPS priority list in the DK forums. After two revisions, the latest (but probably not final) version is below.

if all runes are on cooldown, runic power <=75, and Empower Rune Weapon is available, cast it
if Runic Power >=50, Heroism/Bloodlust buff is up, and Summon Gargoyle is available, cast it
if Blood Plague debuff not on the target or duration <=1.5s, cast Plague Strike
if Frost Fever debuff not on the target or duration <=1.5s, cast Icy Touch
if RP >=(RPMax-30) and Unholy Blight buff not present, Unholy Blight (RPMax = 100 without runic power mastery talent)
if RP >=(RPMax-30), Death Coil
if Scourge Strike available (F/U runes or double Death runes), cast it
if Blood Strike available (B rune only), cast it
if Bone Shield buff is gone, B runes won't refresh as Death runes (second half of standard 20s rotation) and Bone Shield is available, cast it. With Blood Tap, if it's available. (1 GCD, as blood tap doesn't generate a GCD)
if Unholy Blight buff not present and RP >= 40, cast it.
if RP >=40, Death Coil.
if all runes are on >=1.5s cooldown and B runes won't refresh as Death runes (second half of standard 20s rotation) and Blood Tap is available, Blood Tap and Ghoul Frenzy (1 GCD, as blood tap doesn't generate a GCD)
if all runes are on >1.5s cooldown and Horn of Winter is available, cast it.
|
|
|
|
|
|
04/29/09, 1:10 PM
|
#13
|
|
Chronic Apopheniac
Night Elf Druid
Dragonblight
|
Originally Posted by slant
Runestrike isn't used in any rotation or priority list. When tanking, you always want to runestrike when you have the RP, as it's our best single-target threat ability by a healthy margin.
|
Uh, this doesn't mean it's not on the list, just that it's at the top.
|
|
|
|
04/29/09, 1:36 PM
|
#14
|
|
Don Flamenco
|
True enough, but most tanks macro runestrike to a frequently used ability (HS/oblit/SS) so it's always triggered. Casting runestrike isn't a conscious decision. The only spot where you wouldn't do this is tanking sarth3d, where maintaining runic power reserves for cooldowns on flame breath is more important than threat or damage.
|
|
|
|
|
04/29/09, 9:57 PM
|
#15
|
|
Von Kaiser
Draenei Paladin
Khaz'goroth
|
Frostfire/Fireball mage:
- If [Living Bomb] is not applied, cast [Living Bomb]
- If [Improved Scorch] is not applied, and [Improved Scorch] is talented, cast [Scorch]
- If [Hot Streak] is up, cast [Pyroblast]
- Cast [Frostfire Bolt]
Applied means a debuff on the boss.
Up means a buff on the player, or a cooldown.
Replace [Frostfire Bolt] with [Fireball] for a fireball mage.
|
|
|
|
|
05/01/09, 3:36 PM
|
#16
|
|
Glass Joe
|
I'm still working on the Warlock module for you .. sorry I'm taking so long.
One individual did have a very good idea of temporarily removing spells from the list if a target is immune. I'm at work, so I can't see the PriorityQueue code but I don't think it would be possible without a code overhaul to track guid's for targets and parsing the combat log. Yes/No/Maybe ?
Last edited by bastetswarrior : 05/04/09 at 2:19 PM.
Reason: Removing improper language.
|
|
|
|
|
05/02/09, 3:05 AM
|
#17
|
|
Space Goats Coast to Coast
|
Very basic Elemental Shaman priority:
if Flame Shock DoT is not on the target, cast Flame Shock
if Lava Burst is off cooldown, cast Lava Burst
if Chain Lightning is off cooldown, cast Chain Lightning
else cast Lightning Bolt
|
|
|
|
05/02/09, 4:33 AM
|
#18
|
|
Operation Asian
|
Originally Posted by Tifordin
Frostfire/Fireball mage:
- If [Living Bomb] is not applied, cast [Living Bomb]
- If [Improved Scorch] is not applied, and [Improved Scorch] is talented, cast [Scorch]
- If [Hot Streak] is up, cast [Pyroblast]
- Cast [Frostfire Bolt]
Applied means a debuff on the boss.
Up means a buff on the player, or a cooldown.
Replace [Frostfire Bolt] with [Fireball] for a fireball mage.
|
Actually to make it optimal you need to not let scorch drop off, esp if you aren't glyphed. For Fireball/FFB it should be something like:
- If engaging cast [Living Bomb]
- If shadow mastery is not on mob and you are maintaining +5% crit debuff cast [Scorch] until stacked to 5.
- If there is > [Scorch] cast time + [global cooldown] + [latency] left on scorch debuff then refresh [Living bomb]
- If there is > [Scorch] cast time + [global cooldown] + [latency] left on scorch debuff and you have Hot Streak then cast [Pyroblast]
- If there is > [Scorch] cast time + [fireball/ffb cast time] + [latency] left on scorch debuff then cast [Fire/Frostfire bolt]
- If Shadow Mastery is not up [Scorch]
- Else cast [Fire/Frostfire bolt]
Cast times and GCD will vary with haste, and latency is something that can't be ignored for a realistic model. I actually factor this into my rotation to ensure maximum scorch uptime even when I'm glyphed.
If you glyph scorch, you might realize a personal dps gain from -NOT- clipping the scorch since the only spell that would not have the +5% crit debuff applied would be the scorch you cast as the debuff falls off (and maybe a tick of Living Bomb.) But since you are going to be decreasing the uptime of the debuff you're probably looking at a net raid dps loss.
[Scorch] cast time + [global cooldown] + [latency] usually adds up to about 5.1 seconds for me and [Scorch] cast time + [fireball/ffb cast time] + [latency] is about 5.9 seconds but YMMV.
Last edited by ash2ash : 05/23/09 at 9:44 AM.
Reason: Clarification and fixing queue
|
|
|
|
|
05/04/09, 11:00 AM
|
#19
|
|
Glass Joe
|
for cat druids, something like this:
1. if savage roar down, and combo points > 0 then savage roar
2. if combo points = 5 then rip
3. if rake is down, then rake
4. if mangle is down, then mangle
5. shred
It might be possible to squeeze a furious bite in step 2 depending on how long your rip is up (i.e. 2piece T7 plus glyphs)
|
|
|
|
|
05/05/09, 7:11 PM
|
#20
|
|
Von Kaiser
Draenei Hunter
Doomhammer
|
SV hunter: (assuming Hunter's mark has been applied before combat, and that something appropriate is being tracked for [Improved Tracking]
If target health is < 20%, then cast [Kill Shot]
If [Explosive Shot] is off cooldown, cast [Explosive Shot]
If [Black Arrow] is off cooldown, cast [Black Arrow]
If [Serpent Sting] is off cooldown, cast [Serpent Sting]
If [Aimed Shot] is off cooldown, cast [Aimed Shot]
If [Multi Shot] is off cooldown, cast [Multi Shot]
Else, cast [Steady Shot]
|
|
|
|
|
05/05/09, 8:51 PM
|
#21
|
|
Glass Joe
|
This is my stab at what an Arms Warrior priority rotation looks like. I'm not all that good at doing the rotation, but this is what I understand the rotation to look like. This is a rotation for an Arms Warrior who is also sundering; however, if you are not sundering, remove the two lines with *'s. There is some debate as to prioritize SD execute over MS, but theoretically SD execute should come first.
If Rage > 80, que Heroic Strike.
If Bloodlust buff on player, que Heroic Strike if rage > 60.
If Rend debuff not on the target, cast Rend.
*If Sunder Armor debuff has 5 stacks and <3 sec left, cast Sunder Armor.
If Sudden Death buff is on player, cast Execute.
If Mortal Strike is not on cool-down, cast Mortal Strike.
If Taste for Blood buff is on player, use Overpower.
If there are <4.5 sec left on Taste for Blood buff, move it to #1 priority.
If Overpower was used last GCD and MS is on CD and Bladestorm is not on CD, use Bladestorm.
*If Sunder Armor has <5 stacks, cast Sunder Armor
If Commanding Shout buff <9sec, cast Commanding Shout
Else cast Slam.
|
|
|
|
|
05/05/09, 8:52 PM
|
#22
|
|
Don Lactose
Tauren Hunter
Talnivarr (EU)
|
The above would have Serpent Sting fire every time, not continuing on.
Some more logic for Survival Hunter would be:
1 if target health < 20% AND [Kill Shot] off cooldown, cast [Kill Shot]
2 if [Explosive Shot] off cooldown, cast [Explosive Shot]
3 if [Black Arrow] off cooldown, cast [Black Arrow]
4 if your [Serpent Sting] not applied to target, cast [Serpent Sting]
5 if [Aimed Shot] off cooldown, cast [Aimed Shot]
6 if [Multi-Shot] off cooldown, cast [Multi-Shot]
7 else, cast [Steady Shot]
You'd probably want some more logic in there for Explosive Shot. If Lock And Load is procced (3x Explosive Shots in a row possible), instead of firing 1 Explosive Shot at every cooldown, a better option is to wait 2.0 seconds between each (so global cooldown + 0.5 seconds). Check for current target only if you want to handle cases where you can swap targets. Something like the following added between 1 and 2.
if [Explosive Shot] off cooldown AND [Explosive Shot] fired at current target within 2.0 seconds, WAIT.
You could possibly change 4 to include logic for checking if you're using other stings (Scorpid Sting for Hit% debuff, Viper Sting for mana drain).
if your [Serpent Sting] OR [Scorpid Sting] OR [Viper Sting] not applied to target, cast [Serpent Sting]
|
Look, Lactose, we'd rather you didn't eradicate the whole human race.
- Sam & Max
|
|
|
05/05/09, 11:40 PM
|
#23
|
|
Protector
Ashstorm
Human Paladin
No WoW Account
|
Just in case you haven't heard of similar addons (both by the same author)
Serious Help In Timing for Ret Pally
Face Mauler for Druid
Regarding the Ret Pally rotations, try this instead (I removed Holy Wrath, since adding Undead/demon checks may be tough):
If Crusader Strike is available, Crusader Strike
If Hammer of Wrath is available, Hammer of Wrath (If target HP < 0.20)
If Judgement of Light/Wisdom is available, Judgement of Wisdom/Light
If Divine Storm is available, Divine Storm
If Consecration is available, Consecration
If Exorcism is available, Exorcism
|
Millions of words are written annually purporting to tell how to beat the races, whereas the best possible advice on the subject is found in the three monosyllables: 'Do not try.'
|
|
|
05/09/09, 10:23 AM
|
#24
|
|
Don Flamenco
|
Do you have any plans to have the priority queue work on multiple targets, or is this intended to be single target only? It's been a while since I played shadow seriously, but I'm sure it's still a lot higher damage (and more mana efficient) to cast VT/SW:P on a 2nd target over mind blast/flay/death on 1 target. I'm sure there's also a threshold where you switch between multi-dot and mind sear spam. Things also got more complicated since I played shadow, now that mind flay can refresh SW:P. I think you also have to interrupt flays after the 2nd tick to maintain multiple dot rounds properly, further complicating things.
Single target damage rotations are very simplistic, so the only use I'd really have for a priority queue is for multi-dotting, and a high quality one would be AMAZING. There are obviously a lot of hurdles and tons of additional considerations when you move past 1 target though.
|
|
|
|
|
05/13/09, 8:35 AM
|
#25
|
|
Great Tiger
Night Elf Warrior
Silvermoon (EU)
|

Originally Posted by Tamonten
This is my stab at what an Arms Warrior priority rotation looks like. I'm not all that good at doing the rotation, but this is what I understand the rotation to look like. This is a rotation for an Arms Warrior who is also sundering; however, if you are not sundering, remove the two lines with *'s. There is some debate as to prioritize SD execute over MS, but theoretically SD execute should come first.
If Rage > 80, que Heroic Strike.
If Bloodlust buff on player, que Heroic Strike if rage > 60.
If Rend debuff not on the target, cast Rend.
*If Sunder Armor debuff has 5 stacks and <3 sec left, cast Sunder Armor.
If Sudden Death buff is on player, cast Execute.
If Mortal Strike is not on cool-down, cast Mortal Strike.
If Taste for Blood buff is on player, use Overpower.
If there are <4.5 sec left on Taste for Blood buff, move it to #1 priority.
If Overpower was used last GCD and MS is on CD and Bladestorm is not on CD, use Bladestorm.
*If Sunder Armor has <5 stacks, cast Sunder Armor
If Commanding Shout buff <9sec, cast Commanding Shout
Else cast Slam.
|
This seems correct overall, but I would say it would make sense to have a check for Sudden Death duration as well.
At various gear levels, I think there is some argument that the DPS lost from delaying a MS cooldown isn't worth the small percent chance to refresh a Sudden Death with the Mortal Strike.
You definitely would want to use Execute if you had Sudden Death < 1.5s duration (which shouldn't happen often, but it could happen during a Bladestorm) but you may want to potentially swap the position with Mortal Strike "normally" depending on strike damage. (The opportunity cost loss from 1.5s more cooldown on a MS cycle could easily outweigh the chance of an additional proc following the Sudden Death usage depending on your weapon/AP/etc.)
|
|
|
|
|
|