Multiple condition with spell name (clarification required)

Yes, correct. this is also my assumption and the one from the macro explain tool:

If you activated this macro with mouse button 2 then:
Cast Flash Heal on you

Else, if the unit saved as your focus target is a friend and is not dead then:
Cast Flash Heal on the unit saved as your focus target

Otherwise:
Cast Flash Heal on you

http://www.macroexplain.com/

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…

That’s because there a no such thing as reset=nocombat what you are saying is reset=nil which doesn’t even have a placebo effect.

You need reset=combat which means reset when I leave or enter combat.

1 Like

lol let my placebo be haha :stuck_out_tongue:

I have to check where I use those again and test why it behaves how I want.

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.

1 Like

yep so the condition HAVE to HAVE translated :slight_smile: good to know.

for the variable, can you adress me to a post that explain (maybe with example) how it works?

I was thinking to add variable instead of translate 10 times the same condition.

Heres how Variables work:

Here’s a real world example

The function you would want to use instead is API GetSpellInfo | WoWWiki | Fandom
and pass it the spellid inside the brackets. This will always return the local language.

HU great, now it’s more clear.

The ‘variable’ are evaluated one at load?

I mean:

  1. when I change a spec or a talent the evaluation is retriggered? Or i need to align it with /rl?
  2. 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…

I know we are going in the close to cheat area…

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.

/cast [nochannelling: Void Torrent],[channelling:Mind Flay, Smite] Void Bolt
/cast [nochannelling: Void Torrent],[channelling:Mind Flay, Smite] Another spell
/cast [nochannelling: Void Torrent],[channelling:Mind Flay, Smite] a 3th spell

  1. Not sure what do [channelling: spell, same spell

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.

  1. 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.

  1. To not clip Mind Flay

no the macro is written to clip mind flay as the spells are higher priority then mind flay

  1. 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

Why cant you? What is or isnt happening after you test the variable?

You did put ~~VT~~ where you wanted Void Torrent to be eg [nochanneling:~~VT~~]

This will never return true and never come into effect. For it to work the ,Smite has to be removed.

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?

from what i understand they are universal.

There is also lalt ralt and lctrl and rctrl and these seem to be more reliable on some Euro keyboards/clients than US ones.

ill start using those instead just to make sure. No point in writing in the variable to make it international if mods break lol

And ontop of that look like that also the comma between the ],[ is not correct it not hangs but is not the right syntax.

In italian i’m not traslating the mod: and the command is working, only the spell name have to be changed.

yeah the comma needs to go there

lol trouble with translation: need to go = need to go away or need to stay? :slight_smile: