GSE: Sequences, Variables, Macros

GSE: Sequences, Variables, Macros

7M Downloads

Problem executing macro following talent change...

Sethadon opened this issue Ā· 13 comments

commented

šŸ”µ 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)

  1. Load a talent build.
  2. Create a GSE Macro using spell 1 of 2 for an applicable slot on the talent board (ie. Dark Ascension)
  3. Execute macro

NOTE: Everything works as expected

  1. Open talent board
  2. Change to spell 2 of 2 (ie. Void Eruption)
  3. 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:

commented

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.

commented

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. šŸ‘

commented

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?

commented

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

commented

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

commented

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.

commented

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. :(

commented

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

commented

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.

commented

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

commented

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:

  1. Mind Blast casts while channeling Mind Flay
  2. 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. šŸ¤·ā€ā™‚ļø

commented

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

commented

Closing this out as there is no further information.