I googled internet and seems that only conditions can be put in square bracket, so this syntax should give an error.
Iām missing something?
Letās try to expand it (up to my knowledge)
Cast will be applied at the first condition met,
Condition in the same [A, B] works as logic AND
So if Iām not channelling Void Torrent i will immediately cast Void Bolt.
then if Iām not casting Mind Flay and smite Iāll cast Void bolt.
But you canāt put a spell in the condition (as far as I know) so the second one will be never triggered. (so can be removed)
In this way seems that you can cast Void Bolt only if you are not channeling Void Torrent and you are channelling Mind Flay.
so at the end you need to cast al least Mind Flay to be able to cast another spell. (That is in another part of the macro)
I can understand:
/cast [nochannelling:Mind Flay] Mind Flay
that make sense if I donāt want to clip the Mind Fly with another Mind Flay. Is my understanding correct?
In any case consider that when you are in shadow Smite = Mind Flay why you want to put in the āandā condition the same spell that you are checking it is channeled?
Great questions, if this works sounds great. It looks like if you can input any ability as a condition or in a sequence. But I doubt it, might need to test it but I think there might be some syntax issues.
However, I think that comma (,) after the Mind Flay might invalidate the next condition as it is just a spell. I would think the closest to make something like that is to use a ā/ā in between instead of the comma (kind of like talent:3/2) but not sure if that would work. There shouldnāt be a comma in between the bracket groups I think also, might be ignored by the interpreter.
Brackets are the āIFā, comes in priority from left to right to execute depending on what comes first. In this case they are being specific only while channeling that spell not to execute, but you can clip any other. The cast line is correct as you explain, just have to verify if that comma between the 2 brackets is valid or can remove it to be safe by adding a space instead.
Correct, you can add that condition to all the other lines you do not want to clip the Mind Flay only.
Also if Smite = Mind Flay, then they were probably trying to make sure the base spell would be forced to read in both ways just in case as in the beginning of Shadowlands it was kind of buggy depending if you had the macro editor open or wrong spec, etc.
lol, yeah I have been burnt and scratched my head a few times when a macro I am working on hangs up and I find out I put a comma where it should not or leave one in when I am taking a spell out of rotation.
Iāll try to remove all the ,Smite (that look like useless).
an Advice: why I would like to have Mind Flay running to cast any other spell? Look like a wast of a GCD. (that most probably is ignored because of the ,Smite)
Side question:
Should the spell in the condition translated? Because if I left in English (ITA client here) seem that spell are clipped.
for the point 1) i found this example:
/cast [@player, btn:2][@focus, help, nodead][@player] Flash Heal
so as far as i understand is an āANDā in the bracket but only with āregular conditionsā and a spell is not AFAIK.
but also i did not find any reason for the comma between the two bracket. Close and open should trigger the next condition.
This macro is like the bumblebee, should not be able to fly but it does DPS
Might not be useless, I just havenāt been able to test if is some sort of workaround.
Kind of like when Timothy recommends to not do reset=nocombat he says that it does not work but it either works for me or it just somehow it defaults to combat or is a placebo cause I have reset macro in combat but makes it easier for me to read lol.
If I understand the advice, I think they are trying to clip Mind Flay (filler spell) with something more powerful and that makes sense.
I have never played in other client languages, but it seems to be the case that is not backwards compatible. If I could redo the macro system I think it should be standardized in English and optional to work with other languages for the spells.
This is how I read it, but I could be wrong:
/cast [On my self if I push button 2 in the mouse] [On my focus target if is friendly and not dead and I did not push button 2 in the mouse] [On myself by default if the other 2 brackets did not meet the conditions] Flash Heal
and If I put the macro at the beginning of our discussion with, smite and the comma between the two bracket is not working.
So I think that Timothy is doing some kinda magic accepting also this syntax (or maybe the site is only old and now itās accepted.
For the translation: I checked in the condition in eng seems ignored, have to be translated but are not automatically translated but GSE.
I think that at the and would be nice having the option to lock the GSE addon to eng and let (if itās working) the client do the complete translation cause time by time some spells are lost in translationā¦
GSE doesnāt do anything. It simply takes what you enter and passes that to WoW and says to WoWās macro engine āplease do this thing my player thought up.ā
With translating macros are only evaluated in the clients local language. Macros with English spell names running on a German client are completely ignored by WoW. There is also no universal way to translate a macro so it works on every client. I have done what is possible with spell abilities but with conditions it is next to impossible to determine that a spell is in there.
To translate spell names in conditions the macro author would need to create a GSE variable and then from that variables function call GetSpellInfo for the WoW spellid of the spell the were using and return the local name for that spell. This is the only way however that takes effort on the authors part which few if any are either willing to do or have the mental fore thought to think that this is something they might need to do for international users. This is a capability that has only just been added to GSE but requires people to really think about what they are doing.
when I change a spec or a talent the evaluation is retriggered? Or i need to align it with /rl?
the variable is executed every time you call it like a function? For example i can check if the GDC is long i will use that spell if is close to be ended or with
UnitHealth(āunitā) - Returns the current health, in points, of the specified unit.
UnitHealthMax(āunitā) - Returns the maximum health, in points, of the specified unit.
check if the targeted unitās health is below 20% and cast Shadow Word: Death instead of skip itā¦
Variables are calculated outside of combat. Once combat starts its locked. UnitHealth is useless in a variable as either it wont be known (0) or it will be full health. This is the bit that moves it out of cheat area. The game wont let it see the result of that function in combat.
Once you change talents, edit a macro, level, leave combat, change equipment or change specs it recalculates to what is current.
You never /reload if you have made changes to GSE as the /reload function will load what you had when you logged and wipe any changes you made along the way.
if you are channeling spell then cast spell. so in the sample you have if you are channelling mind flay it will cast the spell if availible. In other words cancel mind flay to cast spell.
What is the intent of this macro
the intent of the sample you have is to not cast spells while channeling Void Torrent so it will complete the channel.
To not clip Mind Flay
no the macro is written to clip mind flay as the spells are higher priority then mind flay
Why smite if smite is mind flay in shadow spec.
I asked the creater of the macro the same question. He said he added the smite there just in case cause sometimes mind flay showed up as smite instead.
/cast [nochannelling: Void Torrent] Void Bolt
/cast [nochannelling: Void Torrent] Another spell
/cast [nochannelling: Void Torrent] a 3th spell
That will have the same effect as the original one.
There is no need to have smite in it cause when in shadow form even if the macro says smite it still reads mindflay.
Also channeling: non channeling spell has no effect. it wont interupt cast spells only channel spells
@TimothyLuke So i made a variable named VT and value of function() return GetSpellInfo (263165) End
Clicking the test variable button shows it returns Void Torrent. However after i do this i can nolonger edit my macros. to test it
yes i did that . /use [nochanneling:~~VT~~,exists] Void Bolt /cast [nochanneling:~~VT~~,exists] Ascended Blast /cast [nochanneling:~~VT~~,exists,combat] Devouring Plague /cast [nochanneling:~~VT~~,exists,combat] Mind Blast
When i add the variable i click save. Then i got the the macro tab and edit the macro to have the ~~VT~~ in it click save and close the editor. Normally the sequence viewer is still open after i save in editor. But now it is closed. I reopen the viewer and go into my macro to edit it. The variable is saved but the sequence did not save
There is a thing called the Out of Combat Queue. When you hit save it puts the save action and the reopen GSE action into the queue. It wont pop back up until the save action has completed. When you manually reopen it you are aborting the save action. The Minimap icon has a list of the events in the queue and also to show its state. Buttons cant be updated in combat. Part of your save action is updating the button so it has to wait.
it was happening we me never going into combat. However after a few restarts are edited the sequence first then added the variable now all works as intended. One last question. Do you know if using mod:alt mod:shift and mod:ctrl work for all languages or do they need to be alter based on language or are they universal?