07-28-19, 07:49 AM | #1 |
Rune of Power doesn't cast
I use this (probably too simple) macro for bursting as fire mage:
/cast Memory of Lucid Dreams /cast Combustion /cast Berserking /cast Rune of Power /use Ancient Knot of Wisdom /use Rune of Power But wherever I put Rune of Power, it refuses to cast. Am I doing something wrong?
__________________
twitch.tv/the_yonaz |
|
07-28-19, 09:21 AM | #2 |
Does it refuse to cast every time?
You are trying to cast a mix of on-GCD and off-GCD spells. You do know you cannot cast all those spells in one single click/keypress, right? In case you didn't know, aside from the explicit cooldown some spells have (visible on their tooltip), most spells, both instant-cast and those with a cast-time, are also bound to the GCD (Global CoolDown). This is usually 1.5 seconds (usually modified by haste) and, in some cases 1 second (Druid forms for instance). Once you successfully begin casting a spell (instant or not), the GCD is triggered and you must click a button (same or other) again to cast another spell (same of diferent) AFTER the GCD has elapsed. The Azerite Essence major power Memory of Lucid Dreams has a GCD of 1 second. That means that unless it is unavailable (under its explicit 2 minutes cooldown), it will be the only GCD spell on that macro that is cast. Combustion is a rare exception to the rule of all base spells being on the GCD (each class has maybe one or two base spells that aren't on the GCD, all others are). So it will be cast everytime it's off its 2 mins cooldown, regardless of whether or not Memory of Lucid Dreams was successfully cast. Berserking (as all other Racial spells), if off the GCD. So it will, like Combustion, always be cast if it's not on its explicit 3 minns cooldown. Rune of Power is a Talent spell and most of those spells are actually off the GCD. Rune of Power is an exception to that rule and aactually has a 1.5 second GCD. This means that Rune of Power will only be cast by that macro when Memory of Lucid Dreams fails to cast. Does the above answer your question, or was none of this new to you? |
|
07-28-19, 09:23 AM | #3 | |
__________________
twitch.tv/the_yonaz |
||
07-28-19, 06:31 PM | #4 |
Well, in theory, in that macro, RoP should be cast everytime it's OFF its cooldown and Memory of Lucid Dreams is ON its own cooldown.
But yes, my experience, that hardly ever works - your 9/10 fails sounds familiar to me. Possibly some issue related to latency, even if it's very low (mine's usually at around 50ms), or low FPS or whatever. You could try something like: Code:
/castsequence reset=40 Rune of Power, Memory of Lucid Dreams, Rune of Power, Rune of Power /cast Combustion /cast Berserking /use Ancient Knot of Wisdom (You can leave "Ancient Knot of Wisdom" as is because, being a trinket, it doesn't trigger the GCD.) You could alternative do the castsequence as: Code:
/castsequence reset=120 Memory of Lucid Dreams, Rune of Power, Rune of Power, Rune of Power /cast Combustion /cast Berserking /use Ancient Knot of Wisdom The first version I wrote would increase the chance of cast RoP everytime it's available, and MoLD as well (no need to wait for the three casts of RoP, as it got reset about the time RoP was off CD). It still will NOT work everytime, I guarantee you that! You can increase its reliability of the macro by adding an additional condition for reset, for example you pressing a modifier (one of ctrl, alt or shift) or a combination of those. Something like: Code:
/castsequence reset=40/ctrl Memory of Lucid Dreams, Rune of Power, Rune of Power, Rune of Power /cast Combustion /cast Berserking /use Ancient Knot of Wisdom AFAIK, the only guaranteed way to have both MoLD and RoP work everytime is, as you said, "to have RoP on manual, and the rest on a macro". Or you can also make two identical macros for both RoP and MoLD, where you macro in all the other spells, the ones that are not bound to the GCD. Hope that helped. |
|
07-30-19, 05:29 AM | #5 | |||||
Code:
/castsequence [mod] Memory of Lucid Dreams; reset=40 Rune of Power, Memory of Lucid Dreams
__________________
WoWInterface AddOns
|
||||||
08-01-19, 09:59 PM | #6 | ||||
But I notice you challenged other things I said, which I have for certain. So I might be wrong on this one, but I think not. Anyway, on to those other points, of which I am more certain of than this one.
Code:
/castsequence reset=2/ctrl Healing Surge, Concentrated Flame
Code:
/castsequence [mod] Memory of Lucid Dreams; reset=40 Rune of Power, Memory of Lucid Dreams, Rune of Power, Rune of Power |
|||||
08-01-19, 11:13 PM | #7 | ||
The client only fires UNIT_SPELLCAST_SENT events when it thinks it can use an ability. /castsequence listens for that event, which gives it a unique CastID and primes it for the server to respond whether it succeeded or failed. /castsequence only advances the sequence when it receives a UNIT_SPELLCAST_SUCCEEDED event with a matching CastID to what it was primed with. When you mash the macro, under certain circumstances, the CastID gets overwritten before /castsequence can get the server response it's waiting for. If this happens to block the success response, then your macro's stuck until it meets the reset condition or can cast the ability again. Reference: ChatFrame.lua:872
__________________
WoWInterface AddOns
Last edited by SDPhantom : 08-02-19 at 12:08 AM. |
|||
08-02-19, 02:17 AM | #8 |
I wasn't aware of any of that (thanks for the info).
But still, when I tested that macro, Î intentionally mashed the macro for longer than 2 seconds and still the macro only reset when I left it untouched for more than 2 seconds (after my last press on it, not after the last successful cast) or when I pressed the Control key. FIY, my intention with that test was to get a more accurate feeling for how long I'll have to wait for the macro to reset itself. For my playing style, this macro mostly works without a need for the Control modifier because I usually cast Healing Surge (cast time > 1sec and < 1.5sec) once and then I do something else before touching that macro again. If I "mash" it (within half a second of HS being cast), then I'll cast Consecrated Flame for an extra amount of emergency heal. And if CF is on cooldown, I can hold the Control modifier down and cast two or more consecutive HS. I'll see the link you provided and try to learn more about this. Thanks again! |
|
08-02-19, 05:57 AM | #9 | |
Looks like the behavior changed since the last time I looked at it too. This is concerning when the reset timer resets. This is found in the function that's run when the command is executed. I started digging when I didn't see anything referring to the reset timer in the event handler or any of the functions it calls.
Lua Code:
__________________
WoWInterface AddOns
Last edited by SDPhantom : 08-02-19 at 06:10 AM. |
||
08-02-19, 09:42 PM | #10 | |
That snippet you quoted is in function ExecuteCastSequence ( ChatFrame.lua:949 ). In that function, before the snippet you posted, there is this other snippet: Lua Code:
And in function CastSequenceManager_OnEvent ( ChatFrame.lua:872 ), you have this snippet: Lua Code:
So, UNIT_SPELLCAST_SENT sets entry.pending to a non-nil value, and any one of the other watched events sets it to nil. And only UNIT_SPELLCAST_SUCCEEDED actually advances the sequence to the next entry. So what you said earlier about UNIT_SPELLCAST_SENT is at least partially true: Calling the macro when the currently active entry is uncastable should act, as far as the timer reset is concerned, as if the macro had never been recalled, because the function exits before the timer reset snippet you posted. However, there are other events watched, besides UNIT_SPELLCAST_SENT and UNIT_SPELLCAST_SUCCEEDED, that do clear the value of entry.pending, without advancing the sequence's entry. These are the events that would do that: Lua Code:
The first two events fire when, after a successful casting-start, the cast doesn't complete. In this case, the timer would be reset, but the entry in the castsequence would remain the same. The last event, UNIT_SPELLCAST_FAILED_QUIET, I'm unfamiliar with. But I'm thinking this may be the server's response to a UNIT_SPELLCAST_SENT of a spell that is not available to be started. And this would explain why the castsequence timer resets on that Consecrated Flame on-CD. |
||
08-03-19, 05:22 PM | #11 | |
UNIT_SPELLCAST_FAILED_QUIET is functionally equivalent to UNIT_SPELLCAST_FAILED. The only difference is UNIT_SPELLCAST_FAILED_QUIET tells the client to suppress error messages. Otherwise, you get the spell fail sound and occasionally your character saying they can't do something.
__________________
WoWInterface AddOns
|
||
08-03-19, 06:05 PM | #12 |
Oh, I forgot about those failed casts, the ones that fail before they start (heh, that's what happens when you turned off those error messages years ago ).
So, in this case, either UNIT_SPELLCAST_FAILED_QUIET or UNIT_SPELLCAST_FAILED could be fired on those "failed" Consecrated Flame, hence making the timer reset without advancing the castsequence entry. |
|
WoWInterface » AddOns, Compilations, Macros » Macro Help » Rune of Power doesn't cast |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Linear Mode |
Switch to Hybrid Mode |
Switch to Threaded Mode |
|
|