GSE is changing spell when changing forms
vspangler opened this issue · 21 comments
I noticed that this is not a problem when you use the normal wow macro settings or LongMacro Addon.
I create a macro in GSE. with abilities.
/cast [stance:1,nochanneling:Void Torrent] Void Bolt
/cast [nomod,nochanneling:Mind Flay] Mind Flay
I ramp up and cast Void Eruption on a seperate key bind.....
The addon uses the sequence in GSE as intended..... but when I drop from Voidform.... the GSE changes the spells in the addon to this sequence.
/cast [stance:1,nochanneling:Void Torrent] Void Eruption
/cast [nomod,nochanneling:Mind Flay] Mind Flay
I don't see how a spell ID makes the determination on its ability to be cross server let alone the difference rather it be text instead. WA addon uses both and does not have that problem. The difference is if you create the WA jsut to only show the name it will only show that ability rather it be available or not.
I understand what you are saying but come Shadow Lands this will be a problem for the Shadow Priest class making the addon not work correctly.
In short GSE is supposed to be saving the Base Spell - this behaviour has been the same since #406
Hey Tim,
So no from what I can say they are not really changing much from the Smart Spell mechanic as originally released. They are just changing how it is used.
https://www.wowhead.com/shadowlands-priest-class-changes
and recent changes
https://www.wowhead.com/news=317236/shadowlands-shadow-priest-rework-voidform-changes-new-talents-core-spell-changes
The biggest concern I see here, is the way Void Bolt works. Once in Vordform you can channel Mind Flay and cast Void Bolt at the same time. So in turn if you was to incorporate the GSE to preform this action you have issues with the it changing from from /cast Void Eruption
verse doing this /cast [stance:1,nochanneling:Void Torrent] Void Bolt
While I understand that most people use this addon to be able to mash a single button without having to think about what spell is important to hit first. However there are a few that utilize this addon because of the prioritization when creating macro's. A function that is not available in Wow or any other addon macro feature.
Now I know we have discussed another feature and the plan was for me to fork this to add additional features. Unfortunately myself a local friend in the area have been to busy to learn LUA do to increased work because of COVID. However we are looking at Shadow Lands API and trying to bring ourselves up to speed to present some advanced features to this project.
Then that part is easy - we override the Smart Spell function for Void Bolt. The problem is though if you have cast Void Erruption in your macro and you are not in Void Form, it wont cast Void Bolt - if that is in a castsequence it will just hang the macro.
Oh and other thing is that if you are in Void Form when you write or edit a macro, that macro will no longer work.
What you can do though is instead of /cast [stance:1,nochanneling:Void Torrent] Void Bolt
do either /use [stance:1,nochanneling:Void Torrent] Void Bolt
or /cast [stance:1,channeling:Mind Blast] Void Bolt
This requires no code changes at all.
So this works without changing the spell back.
/use [stance:1,nochanneling:Void Torrent] Void Bolt
however this does not work work since it shares the same spell ID as you said previously.
/cast [stance:1,channeling:Mind Blast] Void Bolt
I will log into beta later tonight and see if it works there. I had to make some changes because of the LUA errors.... I will send you the updates on that later.
Yeah its the difference between /cast and /use.
/castsequence and /cast both convert to a spell id. so underneath /cast spell is stored and referenced as /cast 1235561 <-- auto updates based on talents and procs to the current version of the spell because WoW just 'does it"
/use doesn't - Its left as a string and it first attempts to find an item by that name and then tries a spell of that name. if you use that for you specific Void Bolt times it will stay as Void Bolt irrespective of Smart Spell stuff. It just means that if you share the macro and the other guy is playing in french, they will need to change that line to the french version of void bolt rather than the english
Note also that using "channeling:mind Flay" over "nochanneling:Void Torrent" may give you more control over when its trying to do the Void Bolt as opposed to the other
Here is what the actual Macro code looks like.
/use [nomod,stance:1,nochanneling:Void Torrent] Void Bolt
/cast [nomod,nochanneling:Void Torrent/Mind Flay] Mind Flay
I will make slight changes when it comes to Shadow Lands due to the prioritization of spells but I still need to get you the changes that I made but I seen the ones you made in another open issue. I want to test those out first and see. Thanks for the help.
@TimothyLuke sorry I have been busy working on puppet/foreman with +25k systems as we are under going the first phases of upgrading our work environment to RHEL8 as well as a F5 change that uses lua. So at the moment my work team and I are learning puppet and lua. Sorry I had no time to look at at the bugs in beta to closely.
However did get a chance to do testing in beta for the /use [nomod,stance:1,nochanneling:Void Torrent] Void Bolt
and it works fine from what I can see. But tomorrow I will do a debug and see if I am seeing any errors.
I had another thought on how this might be able to be achieved. what about putting /use [nomod,stance:1,channeling:Void Torrent] Void Bolt
into the KeyRelease? IE If you are channeling and in the right form then cast void bolt? if the other lines are nochanelling - they will be skipped and it will fall through to the KeyRelease
in the alpha on curse, there is the ability to prefix a spell line with $$. This will force GSE to use the specific version of a spell. eg /cast Crusade
will return /cast Avenging wrath
NORMALLY HOWEVER $$/cast Crusade
will return /cast Crusade
. This will work for Shadow Priests for example to cast Void Bolt like $$/cast [nomod,stance:1,channeling:Void Torrent] Void Bolt