This site makes extensive use of JavaScript.
Please enable JavaScript in your browser.
Live
PTR
10.2.7
PTR
10.2.6
Beta
Macro help for beginner
Post Reply
Return to board index
Post by
mikar
Greetings,
I am looking for a macro that will
1) Cast Natures Swiftness if thats ready but dont hang if its not
2)
Otherwise
cast Berserking if thats ready (Troll druid) but dont hang if its not
3) Wait until Healing Touch is ready and then cast that or if the wait part is not possible simply try to cast HT
I have zero experience with using macros in wow so my question might be really simply or outright impossible.
Any help is most appreciated
Post by
132589
This post was from a user who has deleted their account.
Post by
mikar
Thanks, I will try that. What does the ! in front of Healing Touch do?
The main reason I want this type of macro (and similarly for Rebirth) is that I tend to forget to use NS and Berserking so I might as well make them auto-use rather than have them sit idle. Sure, its not the optimal solution but I am going to try it out anyway. If this could be done in a better way I am all ears.
Post by
pelf
Nothing. ! only applies to certain spells and Healing Touch isn't one of them.
Post by
mikar
Unfortunately, your code does not do what I had outlined - as I should have realised, I see that now.
Does that mean that its not possible to do as I wish? (Cast NS if thats ready and otherwise cast Berserking if thats ready). I looked into using /castsequence but I cannot figure out how to reset the castsequence so that NS is next if its ready.
Post by
curlymon
Can you even do an if-then within macros?
Post by
mikar
As far as I can figure out the only kind of "if ... then..." might be through conditions (combat etc) and no condition seem to be possible for "ability ready". Too bad but I suppose there might be a reason for that.
Post by
pelf
Can you even do an if-then within macros?
No. The only conditions you can check to change what is cast are the ones provided by the macro system (the stuff inside of
#showtooltip Healing Touch
/stopcasting
/console Sound_EnableSFX 0
/cast Nature's Swiftness
/cast Berserking
/console Sound_EnableSFX 1
/run UIErrorsFrame:Clear()
/cast Healing Touch
Every time you cast Healing Touch from that macro it will stop whatever cast you're currently doing and cast Healing Touch. If Berserking or Nature's Swiftness are available, it will cast them as well; if they aren't, it will suppress the errors -- sound and text -- and still go on to cast Healing Touch.
The only reason this works is that NS and Berserking do not (AFAIK) trigger the GCD. Anything that triggers the GCD cannot be used in macros like this.
Post by
mikar
Thanks Pelf.
I had that basic idea myself as well - but the problem is that it will still cast Berserking if NS was cast pretty much wasting Berserking. As they have the same cooldown that means they will both be used together each time which is not preferable. The console code is great though - thanks.
Post by
pelf
No problem. If you don't want them both going off, actually....
#showtooltip Healing Touch
/stopcasting
/console Sound_EnableSFX 0
/castsequence Nature's Swiftness, Berserking
/console Sound_EnableSFX 1
/run UIErrorsFrame:Clear()
/cast Healing Touch
That should never reset until each succeeds. Should be exactly what you want.
Post by
mikar
Pelf,
Its what I have resigned myself to using but its not quite what I wanted.
The problem is that if I use the macro once (NS casts) and dont use the macro until NS is ready again then the macro will still cast Berserking even though I actually wanted it to cast NS.
So, its probably as close as possible to what I want but not quite it.
Thanks though for your help - its much appreciated.
Post by
317595
This post was from a user who has deleted their account.
Post by
pelf
Okay, yea. Do what pockets said. Put a reset condition on it. His syntax was wrong, though.
#showtooltip Healing Touch
/stopcasting
/console Sound_EnableSFX 0
/castsequence reset=180 Nature's Swiftness, Berserking
/console Sound_EnableSFX 1
/run UIErrorsFrame:Clear()
/cast Healing Touch
Of course, if you're using
Charred Glyph
, this macro will not take that into account and there is
definitely
no way to fix that.
Post by
curlymon
Can you even do an if-then within macros?
No. The only conditions you can check to change what is cast are the ones provided by the macro system (the stuff inside of
Figured as much, never thought you actually could. Just wanted to cover my bases since I had never actually bothered to confirm it :P
Post by
pelf
No problem. I wish I really had a spidy sense of when people asked macro questions anywhere on the Wowhead forums. I try to hit other forums every now and then checking for threads with the word "macro" in them.
Post by
curlymon
Yeah, the thought mostly comes from that fact that I recently had to write several custom functions within Excel and had to go remember Basic all over again.
Post by
mikar
Thanks for the help.
That does infact work! The same idea would not work perfectly though if the cooldown on the first ability was higher than the cooldown on the second - but thats not the case here.
I added to the castsequence line as the haste is only really important if we are in combat - but then I would probably rarely use HT out of combat.
Pelf - whats a better place to post macro questions if not here?
Post by
mikar
Next question.
I would like a RJ macro that casts RJ normally if the target isnt me - but casts Barkskin before RJ is the target is me. I just cannot seem to figure out how to make a condition that checks if my current target is me or not.
Post by
136091
This post was from a user who has deleted their account.
Post by
pelf
You can't do any kind of conditional that compares a target with another unit, unfortunately.
Kopking is right about the UI&M forums. I'm active over there, too. But, if it's Druid related, I'm active here too, so I'll see it. Plus, over here, I won't have those other pesky UI&M lurkers contradicting me
:)
.
Post Reply
You are not logged in. Please
log in
to post a reply or
register
if you don't already have an account.