Problem executing macro following talent change...
Sethadon opened this issue Ā· 13 comments
šµ Describe the bug:
The following code executes both spells fine with macros built from the built-in WoW Macro Editor; however, macros built from GSE only seem to execute the spell that was initially selected when the macro was built:
/cast [known:228260, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Void Eruption; [known:391109, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension
šµ To reproduce: (Steps to reproduce the behavior)
- Load a talent build.
- Create a GSE Macro using spell 1 of 2 for an applicable slot on the talent board (ie. Dark Ascension)
- Execute macro
NOTE: Everything works as expected
- Open talent board
- Change to spell 2 of 2 (ie. Void Eruption)
- Execute macro
NOTE: spell 2 of 2 will not cast as expected
šµ The error:
- no error
- spell 2 of 2 is NOT cast as expected
šµ Expected behavior:
- it is expected that changing talents will not prevent proper execution of macro
šµ GSE.lua file:
šµ Desktop (please complete the following information):
- OS: Windows 10 64bit
- Game Version: retail v10.0.2
šµ GSE Version:
- Version: 3.1.20
- Downloaded From: https://www.curseforge.com
The issue is that when you change talents it doesnāt fire off the event it used to. Iām trying to find what the new one is.
It will adjust when you zone or exit combat though.
Entering and exiting combat seems to have no effect, but after a /reload everything is good. I will use this as the workaround for the time being. š
The combat part only triggers is you used that specific macro in combat.
The other thing is GSE doesn't actually execute the macro - all it does it pass it to WoW to execute so this may be something that GSE doesn't have a lot of control over. Out of curiosity - what does the Compiled Template show for this action at your end?
That particular macro is usually called after entering combat, but i must have clicked it inadvertently because I never meant to enable that option.
Here's the Compiled Template, not sure anything looks wrong here:
Step 1
/cast [known:228260, nochanneling:Void Torrent, harm, nodead] Void Eruption; [known:391109, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension
Step 2
/cast [known:228260, nochanneling:Void Torrent, harm, nodead] Void Eruption; [known:391109, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension
Step 3
/cast [nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Devouring Plague
Step 4
/cast [known:228260, nochanneling:Void Torrent, harm, nodead] Void Eruption; [known:391109, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension
Step 5
/cast [nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Devouring Plague
Step 6
/cast [nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Mind Blast
Step 7
/cast [known:228260, nochanneling:Void Torrent, harm, nodead] Void Eruption; [known:391109, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension
Step 8
/cast [nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Devouring Plague
Step 9
/cast [nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Mind Blast
Step 10
/cast [nochanneling:Mind Flay, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Smite
shouldnt /cast [known:228260, nochanneling:Void Torrent, harm, nodead] Void Eruption; [known:391109, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension
be instead /cast [known:228260, nochanneling:Void Torrent, harm, nodead] Void Eruption; [known:391109, nochanneling:Mind Flay, nochanneling:Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension
?
also instead of
/cast [form:0] Shadowform
/targetenemy [noharm] [dead]
/click [nomod, nochanneling:Void Torrent] SPRIEST_DMG_CHILD1 LeftButton t
/click [mod:shift, nochanneling:Void Torrent] SPRIEST_DMG_CHILD2 LeftButton t
/cast [mod:ctrl, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, combat] Mind Spike
I would do
/cast [form:0] Shadowform
/targetenemy [noharm] [dead]
/click [mod:shift, nochanneling:Void Torrent] SPRIEST_DMG_CHILD2 LeftButton t
/cast [mod:ctrl, nochanneling:Mind Flay, nochanneling:Insanity, nochanneling:Void Torrent, combat] Mind Spike
/click [nochanneling:Void Torrent] SPRIEST_DMG_CHILD1 LeftButton t
BUT I would check that Shift is not bound to the "Unlock your action bar" key. If it is it won't get to this macro to execute
Yes nomod is flaky and unreliable. As best practice putting it as the last else has proven the most reliable. Essentially you are going if mod:shift then else if mod:ctrl then else we must be in nomod
Makes sense. I will shift things around and drop the nomod
conditional.
the issue is ānochanneling: Mind Flayā is accepted whereas ānochanneling: Mind Flay: Insanityā is rejected by Blizzards parser as it āhas an erroneous second :ā. This the same issue as putting āStorm, Earth, Fireā in a castsequence as even though itās the spell name it has extra ,ās which means castsequence sees it as three spells.
Yes, I've run into that problem before, specifically with the Storm, Earth, Fire spell you mentioned. Is it possible the extra :
only negatively affects the /castsequence
command? It seems to work as expected with the /cast
command - meaning, I haven't experienced any issues [yet].
Could also just potentially use nochanneling without specifying the spell? This would cover all cases and that line would then become and significantly reduce the complexity of what you are trying to achieve: /cast [mod:ctrl, nochanneling, combat] Mind Spike
Yes, for simplicity I would like to use the general nochanneling
conditional without any spell sub conditions; however, there are certain channeled spells that should be clipped, and others that should not (ie. Mind Flay should be clipped, while Void Torrent should not), which is why I need the extra complexity.
Depending on selected talents, Mind Flay is replaced with Mind Flay: Insanity when Devouring Plague hits its target. I would suspect nochanneling:Insanity
would cause the macro to fail, as it is NOT the proper spell name. I suppose I could substitute spell names with spellids, but I haven't tried that yet.
Is there a reason you would remove the nomod
conditional? My goal is that certain spells get cast when the nomod condition is true, while other spells get cast when certain key mods are pressed. I don't understand the benefit in coding it this way.
Lastly, the problem I had with CHILD2 not firing was because I forgot to create an icon for this macro. After doing so, it was being called as expected. Sorry for wasting your time on that. :(
Yes nomod is flaky and unreliable. As best practice putting it as the last else has proven the most reliable. Essentially you are going if mod:shift then else if mod:ctrl then else we must be in nomod
the issue is ānochanneling: Mind Flayā is accepted whereas ānochanneling: Mind Flay: Insanityā is rejected by Blizzards parser as it āhas an erroneous second :ā. This the same issue as putting āStorm, Earth, Fireā in a castsequence as even though itās the spell name it has extra ,ās which means castsequence sees it as three spells.
Could also just potentially use nochanneling without specifying the spell? This would cover all cases and that line would then become and significantly reduce the complexity of what you are trying to achieve:
/cast [mod:ctrl, nochanneling, combat] Mind Spike
This also isnāt a talent change issue as originally thought but I suspect a macro layout issue. The changing talents isnāt breaking what is sent to WoW. Itās how WoW is dealing with what it is receiving that is the problem.
Itās thus part that is getting hung up on and the extra : in it
[nochanneling:Mind Flay: Insanity].
/cast Mind Flay: Insanity works but thatās the same as /cast Storm, Earth, Fire the : in this cast or the extra , doesnāt matter when itās the dorm being cast but in a mod the second : is the issue just like the extra , break castsequence. The format for those is condition:qualifier It looks like itās freaking out as itās seeing condition:qualifier:wtfisthishere? I get that the spell is changing but the mod syntax has no allowance for that so we need another way
going back to this ā
/cast [nomod] a
/cast [mod:shift] b
/cast [mod:ctrl] c
This will do nothing if you hit alt by accident by putting the ā/cast aā last instead of a nomod it will still cast a if you hit alt by mistake. Also if you are using a variable for b and c you scan add a mod:alt to it without having to rework all your actions
I get what you're saying - the :
after the qualifier goes against proper mod syntax, but when you say "it's freaking out", does "it" refer to GSE? Because the following macro works as expected when generated using either the GSE or built-in WoW editors:
/cast [nochanneling:Mind Flay: Insanity] Mind Blast
Expectations:
- Mind Blast casts while channeling Mind Flay
- Mind Blast does not cast while channeling Mind Flay: Insanity
Also, I don't see any errors, but maybe they're being generated in the background and suppressed. š¤·āāļø
if the or (;) isnt working any more what about splitting it into two casts?
/cast [known:228260, nochanneling:Void Torrent, harm, nodead] Void Eruption
/cast [known:391109, nochanneling:Mind Flay: Insanity, nochanneling:Void Torrent, harm, nodead] Dark Ascension