Closed vspangler closed 3 years ago
It’s because Wows macros are just text in the language of the client. GSE instead stores the spell ID’s so that macros go cross server. The id for both spells is the same but the spell changes based on the circumstance. GSE shows what the value is at the time and then changes back afterwards.
It also doesn’t take into account a spell in the modifier. Hence the disconnect
TimothyLuke
On 6 Aug 2020, at 2:26 pm, Vernon Spangler notifications@github.com wrote: 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 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
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’m not talking cross server I am talking cross language. The wow macro api ONLY works in your native language. Player cannot call castSpellID() in combat only Blizzard are able to do that. If you take a French macro it won’t work on an English client and vice verse. So GSE converts to spell id and stores that. The part that makes this super interesting is that talents and procs like Warlocks have change the spell for a limited time so GSE stores the BASE spell as if you are in those transforms /cast BASE spell casts the temporary version.
WA uses APIs that don’t have this limitation. It also does not ACT on anything It just looks so it can do what it likes. GSE runs with a thing called the “Combat sandbox” so the rules it has to adhere to are completely different. It can only call 8 of WoW’s in game APIs.
TimothyLuke
On 7 Aug 2020, at 11:47 pm, Vernon Spangler notifications@github.com wrote:
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.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
In short GSE is supposed to be saving the Base Spell - this behaviour has been the same since #406
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.
Hi Vernon,
Is Blizzard changing the Smart Spell mechanic they introduced with Legion in Shadowlands? If so I haven’t seen anything on this. Note I don’t have access to Shadowlands and can only go on what Blizzard releases in the form of API changes and what players report.
The “Smart Spell” mechanic is where a base spell is replace with a different version based on a talent or a proc. In a macro when you “/cast Basespell” it casts the updated spell. The problem was it didn’t retroactively work from updated spell to base spell. They did this where they merged multiple spells into one spell under the covers but show in the UI as different spells. This mainly affected Shadow Priests, Warlocks and Hunters where they were from procs and situational circumstances. The other classes had this behaviour more predictably via talents.
TimothyLuke
On 10 Aug 2020, at 1:30 am, Vernon Spangler notifications@github.com wrote:
Closed #669.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
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.
Prob is can either override always or not at all - cant situationally do it.
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.
Only downside is you macro will only work on English clients
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.
Is there any further feedback on this?
@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.
All good. Puppet and Chef and Docker can make things very interesting.
TimothyLuke
On 10 Sep 2020, at 11:33 am, Vernon Spangler notifications@github.com wrote:
@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.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
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
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.
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.