1. #1
    Deleted

    Question Macro hep for a Discipline priest

    Hi guys.
    I've been trying to make a few macros work for me and it's not going too well, so I hoped someone here can help

    Basically, I want my mouse over macro for my Pain Suppression to whisper the one it is cast on, saying that they now have Pain Suppression.
    The macro I am currently using is as follow (note, I've tried a ton of different combinations with stuff I found for other similar macros, none have worked yet)
    #showtooltip
    /cast [target=mouseover,help,nodead][help][target=player] Pain Suppression

    The other macro that I cannot seem to get working, is a simple 3 in 1 macro for my Atonement rotation. However, the way it is setup it doesn't seem to be willing to keep smiting in the cooldown periods of Penance and Holy Fire. I have tried to just add extra smites in there, to make up for the actual cooldown but that only works the first time around, second time it is all out of balance again. It is as following.

    #showtooltip Smite
    /targetenemy [combat, noexists]
    /console Sound_EnableSFX 0
    /castsequence reset=11 Smite, Smite, Penance, Smite, Smite, Holy Fire
    /console Sound_EnableSFX 1
    /run UIErrorsFrame:Clear()
    /stopmacro [target=pettarget,exists]

    Any help that can be given is much appreciated, regards a Priest in need

  2. #2
    Keyboard Turner
    7+ Year Old Account
    Join Date
    Jun 2014
    Location
    Virginia, USA
    Posts
    2
    Quote Originally Posted by Turnipsarenice View Post
    The other macro that I cannot seem to get working, is a simple 3 in 1 macro for my Atonement rotation. However, the way it is setup it doesn't seem to be willing to keep smiting in the cooldown periods of Penance and Holy Fire. I have tried to just add extra smites in there, to make up for the actual cooldown but that only works the first time around, second time it is all out of balance again. It is as following.

    #showtooltip Smite
    /targetenemy [combat, noexists]
    /console Sound_EnableSFX 0
    /castsequence reset=11 Smite, Smite, Penance, Smite, Smite, Holy Fire
    /console Sound_EnableSFX 1
    /run UIErrorsFrame:Clear()
    /stopmacro [target=pettarget,exists]

    Seriously? You can't hit three buttons? -.-

  3. #3
    Deleted
    Smite reduces the cooldown of penance, using that macro would be nothing but a hps/dps loss.

  4. #4
    1. First of all, I would really suggest the mod "Raeli's Spell Announcer (RSA)". It can not only whisper the target, but it can also /say, /i, /raid, type in a specific channel, etc, whenever the spell is cast as well as when it falls off. Furthermore, it only announces the spells when they're actually cast, so no more spamming raid 30 times when you're trying to get off a clutch PS. It's perfect for raiding, I've been using it for years and wouldn't dream of not having it.

    That being said, if you want it specifically in that macro, try this:

    Code:
    #showtooltip
    /run local u,pi="mouseover","Pain Suppression";if IsSpellInRange(pi,u)==1 and GetSpellCooldown(pi)==0 then SendChatMessage("Don't Die! "..GetSpellLink(pi).."!","WHISPER",nil,GetUnitName(u,true)) end
    /cast [target=mouseover,help,nodead][help][target=player] Pain Suppression
    That makes it so that it will whisper your mouseover target that PS is cast on them (only if PS is off-cooldown and cast - so no spamming). If you want it to be your target (instead of mousover) you can change that, as well as the text it sends. Also, you will need a longer macro box for that (Macro Toolkit works, if you don't have one already).

    2. I would not use a castsequence macro for this. I've tried them on whims and it just does not work well. Primarily because you are a healer first and foremost, and you should not be using a macro for what are effectively your healing spells, but also because of the way Smite works with Penance and the relatively low position of Smite on the casting totem pole, so to speak.

    If you really must have one, this one will "work" (I just fixed yours best I could):

    Code:
    #showtooltip Smite
    /targetenemy [combat, noexists]
    /console Sound_EnableSFX 0
    /castsequence reset=11 Penance, Power Word: Solace, Smite, Smite, Smite, Smite
    /console Sound_EnableSFX 1
    /run UIErrorsFrame:Clear()
    /stopmacro [target=pettarget,exists]
    But again - this doesn't really "work". For one thing, it will clip your last tick of Penance (a HUGE HPS loss). For another thing, it will not take into account movement, etc. So if you're running around, and you want to cast Penance - you can't, until you cast two Smites first. That's why I moved Penance and PW:Sol to the front of the macro, followed by ~4 Smites. But even that, in the end, is going to suck - you don't want to be waiting through 4 Smites (or 11s) until you can cast Penance again, because chances are it will be up before that, with haste and Smiting. But you can't macro for that. It's just a bad idea.

    Just press your three buttons :P
    Last edited by Tulani; 2014-07-02 at 05:00 PM.

  5. #5
    I'd highly recommend the RSA addon also. So nice.

    Also, your pain supression macro probably would benefit from a "/stopcasting". I have that in my PS, cleanse, and voidshift. If you need those, you need it NOW.

    Just use the three different spells for atonement. If you are that bored because it is farm content and you don't need to be there, ask a healer to go dps or just hit smite only if you need to let your three year old do it (note that I haven't done this, yet).

  6. #6
    Cast sequence doesn't work in a serious PVE environment; don't try to make it work ever.

  7. #7
    So what happens when you need to heal on the move and can't smite? What happens when you need to use a defensive penance?

    This macro might work for LFR I guess, but it's lazy and not effective. Don't use cast sequence macros ever is a good rule of thumb. I mean, it's three buttons. That's not exactly complicated.

    To whisper a target, you need to use a variable. %t = name of your target.

    /w &t Hello

    That's the format you want. I don't think this works for mouseovers.

    /cast [@mouseovers,exists,help,nodead][@target,exists,help,nodead][] Pain Suppression

    This is a cleaned up /cast line for your Pain Suppression.

    Priority: Mouseover (if it exists, is friendly and not dead) > Target (if it exists, is friendly, and not dead) > Default action (usually self cast)
    Last edited by Larynx; 2014-07-02 at 07:36 PM.

  8. #8
    Deleted
    #showtooltip
    /run local u,pi="mouseover","Pain Suppression";if IsSpellInRange(pi,u)==1 and GetSpellCooldown(pi)==0 then SendChatMessage("Don't Die! "..GetSpellLink(pi).."!","WHISPER",nil,GetUnitName(u,true)) end
    /cast [target=mouseover,help,nodead][help][target=player] Pain Suppression

    Thank you for your reply here and taking the time to look into this. I have come to the same conclusion with my Atonement rotation as well. It just doesn't seem to work well The you made for Pain Suppression however doesn't work. The whisper of it works fine, but not the actual spell cast? I'll do some further research into this as I really don't want yet another addon and just for this one whisper it seems a bit much. I do appreciate your insight though. Cheers.

  9. #9
    Quote Originally Posted by Turnipsarenice View Post
    #showtooltip
    /run local u,pi="mouseover","Pain Suppression";if IsSpellInRange(pi,u)==1 and GetSpellCooldown(pi)==0 then SendChatMessage("Don't Die! "..GetSpellLink(pi).."!","WHISPER",nil,GetUnitName(u,true)) end
    /cast [target=mouseover,help,nodead][help][target=player] Pain Suppression
    Well... Correct me if I'm wrong, but the "[target=player]" bit would mean it's casting it on yourself... which would cancel out the cast on the mouseover target, which would cause it not to cast at all... and then to top it off, pain sup cant be cast on enemies or dead players anyway, so those are irrelevant... and I cant think of a situation you could accidentally cast it on an NPC... maybe Galakras? Or on Gamon?

    I cant help with the whisper bit, but for the cast simply try:
    /cast [target=mouseover] Pain Suppression
    if you categorically need to have to nodead and help modifiers, then try
    /cast [target=mouseover] [help, nodead] Pain Suppression
    Last edited by Jimjam38; 2014-07-04 at 09:47 AM.

  10. #10
    Quote Originally Posted by Atonement View Post
    Well... Correct me if I'm wrong, but the "[target=player]" bit would mean it's casting it on yourself... which would cancel out the cast on the mouseover target, which would cause it not to cast at all... and then to top it off, pain sup cant be cast on enemies or dead players anyway, so those are irrelevant... and I cant think of a situation you could accidentally cast it on an NPC... maybe Galakras? Or on Gamon?

    I cant help with the whisper bit, but for the cast simply try:

    if you categorically need to have to nodead and help modifiers, then try
    I think you misunderstood how those options work together.
    Those are tested one after another and the first one that fits will be used, all later ones ignored.
    Thus the macro first tries the mousover target, and only if that one is dead or not friendly tests the target, lastly the player.

  11. #11
    Quote Originally Posted by Noradin View Post
    I think you misunderstood how those options work together.
    Those are tested one after another and the first one that fits will be used, all later ones ignored.
    Thus the macro first tries the mousover target, and only if that one is dead or not friendly tests the target, lastly the player.
    Yes, I understand that, but (forgiving my lack of proper macro syntax terminology) I do use a lot of macros myself which combine various target conditions and modifiers, most of which ive devised myself with trial and error, and from my experience you cant have multiple target conditions in the same function, they'll interfere with eachother. In that one command you're checking that the target is both the player and the mouseover, rather than as you said, one, then failing that, the other, so its possible that the macro would work if you moused over yourself, but more likely its just default to be rendered invalid if there are conflicting "target=" conditions at all.

    What you described is actually fairly similar to many of the macros I use, but the correct syntax would be:
    /cast [target=mouseover, exists] [help] Spell; [help] Spell; [notarget] [@player] Spell
    Either way, theres no point checking the target is alive, since most spells, pain sup included, do not work on dead targets. Additionally, for pain sup, the help modifier condition is also somewhat redundant since pain sup cant be cast on an enemy anyway, but would be necessary for say, a holy shock macro intended only to heal.
    Last edited by Jimjam38; 2014-07-09 at 06:55 PM.

  12. #12
    Pandaren Monk shanthi's Avatar
    10+ Year Old Account
    Join Date
    Oct 2011
    Location
    California
    Posts
    1,775
    Quote Originally Posted by Atonement View Post
    What you described is actually fairly similar to many of the macros I use, but the correct syntax would be:
    That syntax is only needed if the spell you want to cast changes with each set of conditionals.

    For a single spell, like Pain Suppression, you can indeed include "cascading" (if one fails, move to the next) conditional sets in their own square brackets.

    Either way, theres no point checking the target is alive, since most spells, pain sup included, do not work on dead targets. Additionally, for pain sup, the help modifier condition is also somewhat redundant since pain sup cant be cast on an enemy anyway, but would be necessary for say, a holy shock macro intended only to heal.
    Those conditionals are necessary for a few reasons. If you don't include a "nodead" and try to use Pain Suppression on a dead target, you'll get the dreaded "glowing hand cursor." Including the "nodead" allows the conditional set to fail if the player is dead and move to the next one. Similarly, ensuring that your target is "help" allows the conditional set to fail if you're moused over an enemy and move to the next conditional set, rather than again giving you the invalid-target cursor.

    This is the most compact form for the macro:
    Code:
    /cast [@mouseover,help,nodead][] Pain Suppression

    It tests for whether you have a mouseover, that it's an ally and that it's alive and, if so, casts on your mouseover target. If any of those things aren't true then it moves to the default behavior of the spell (generally, casting on your target if you have one or else casting it on yourself if you don't).
    That is not dead which can eternal lie.
    And with strange aeons even death may die.

  13. #13
    Deleted
    Quote Originally Posted by Atonement View Post
    Yes, I understand that, but (forgiving my lack of proper macro syntax terminology) I do use a lot of macros myself which combine various target conditions and modifiers, most of which ive devised myself with trial and error, and from my experience you cant have multiple target conditions in the same function, they'll interfere with eachother. In that one command you're checking that the target is both the player and the mouseover, rather than as you said, one, then failing that, the other, so its possible that the macro would work if you moused over yourself, but more likely its just default to be rendered invalid if there are conflicting "target=" conditions at all.

    What you described is actually fairly similar to many of the macros I use, but the correct syntax would be:

    Either way, theres no point checking the target is alive, since most spells, pain sup included, do not work on dead targets. Additionally, for pain sup, the help modifier condition is also somewhat redundant since pain sup cant be cast on an enemy anyway, but would be necessary for say, a holy shock macro intended only to heal.
    No the bracketed modifiers work in sequence. I.e. They first one is tested. If it is satisfied then the spell is cast with the target specified in that bracket. If it fails the next condition is tested and so on. So this

    /cast [target=mouseover,help,nodead][help][target=player] Pain Suppression

    behaves as was described above by noradin.

    It will first check to see if you have a mouseover and whether it is friendly and alive. If you do it will cast PS on the mouseover. If it doesn't it will check whether your target is friendly. If you do it will cast on that target. If you dont it will then cast it on the player. Although this macro will work in general, I dont recommend it for a simple reason. If you just tried to cast PS on someone and they die just as you press the button, the macro will just cast it on yourself instead, which is a disaster. You just lost a CD on top of the target dying. I personally use

    /cast [@mouseover,help,nodead][help, nodead][mod:alt, @player] Pain Suppression

    To make sure it won't be cast on myself unless I specifically press alt along with the shortcut.

  14. #14
    Ah okay, that is good to know. I assume there's no real functional difference between my syntax and yours, it's just length of the code?

  15. #15
    There is a functional difference.

    - - - Updated - - -

    This:
    Quote Originally Posted by Atonement View Post
    /cast [target=mouseover, exists] [help] Spell; [help] Spell; [notarget] [@player] Spell
    Will do the following:
    It will check if your mouseovertarget exists and if so cast 'Spell' on them (the first one), if not it will check if your target is friendly (this includes a check for existance) and if so cast 'Spell' on them (again the first one), if not it will check if your target is friendly (it just did that) and if so would cast 'Spell' on them (the second one) - this case can never happen - if not it will throw an error, since [notarget] is no valid option (it will already tell you so when you first stop editing that specific macro). Next, if it ever got to that point, it would attempt to cast 'Spell' (the third one) on you.

    As you see it will actually behave almost like the one Havoc12 posted (aside from leaving the spell on the cursor when you use it on a dead friendly, which is BAD), but mostly due to most of your macro never executing. (Everything after the first semicolon will in fact not do anything aside from throwing errors, ever).

    The second macro Havoc12 posts is in fact what I would advise you to use for the reasons he stated.
    Last edited by Noradin; 2014-07-15 at 07:44 PM.

  16. #16
    Quote Originally Posted by Selesnya View Post
    Smite reduces the cooldown of penance, using that macro would be nothing but a hps/dps loss.
    Don't forget the issues with reset time on castsequence being from LAST cast.

    - - - Updated - - -

    Quote Originally Posted by Haywire5714 View Post
    Cast sequence doesn't work in a serious PVE environment; don't try to make it work ever.
    My cast sequence lichborne + deathcoil spam at myself works just fine.

    - - - Updated - - -

    Quote Originally Posted by Havoc12 View Post
    No the bracketed modifiers work in sequence. I.e. They first one is tested. If it is satisfied then the spell is cast with the target specified in that bracket. If it fails the next condition is tested and so on. So this

    /cast [target=mouseover,help,nodead][help][target=player] Pain Suppression

    behaves as was described above by noradin.

    It will first check to see if you have a mouseover and whether it is friendly and alive. If you do it will cast PS on the mouseover. If it doesn't it will check whether your target is friendly. If you do it will cast on that target. If you dont it will then cast it on the player. Although this macro will work in general, I dont recommend it for a simple reason. If you just tried to cast PS on someone and they die just as you press the button, the macro will just cast it on yourself instead, which is a disaster. You just lost a CD on top of the target dying. I personally use

    /cast [@mouseover,help,nodead][help, nodead][mod:alt, @player] Pain Suppression

    To make sure it won't be cast on myself unless I specifically press alt along with the shortcut.
    Another alternative is to just remove nodead from the mouseover, it should cause it to simply fail if your mouseover dies.
    Quote Originally Posted by Aquamonkey View Post
    Just because Mannoroth and Archimonde are involved doesn't mean it's Legion. They could just be on vacation, demolishing Draenor to build their new summer home.
    Quote Originally Posted by Dundebuns View Post
    Did you know that salt has sodium and chlorine in it!!!! Sodium explodes when exposed to atmosphere and you clean your toilets with chlorine!!

  17. #17
    Quote Originally Posted by zoomgpally View Post
    Another alternative is to just remove nodead from the mouseover, it should cause it to simply fail if your mouseover dies.
    It would leave you with the cast half-activated on your mouse pointer blocking all other spellcasts until you either press Escape, do some instant physical attack which cancles spells (as most deathknight abilities do I suppose), or god for bid cast it on the next target you happen to click on, wasting the CD.
    This is exactly what oyu never want to happen, thus you should always include 'nodead' until the hypothetical day when the game designers wakes up and get rid of this abhorrent behaviour.

  18. #18
    Quote Originally Posted by Noradin View Post
    There is a functional difference.

    - - - Updated - - -

    This:

    Will do the following:
    It will check if your mouseovertarget exists and if so cast 'Spell' on them (the first one), if not it will check if your target is friendly (this includes a check for existance) and if so cast 'Spell' on them (again the first one), if not it will check if your target is friendly (it just did that) and if so would cast 'Spell' on them (the second one) - this case can never happen - if not it will throw an error, since [notarget] is no valid option (it will already tell you so when you first stop editing that specific macro). Next, if it ever got to that point, it would attempt to cast 'Spell' (the third one) on you.

    As you see it will actually behave almost like the one Havoc12 posted (aside from leaving the spell on the cursor when you use it on a dead friendly, which is BAD), but mostly due to most of your macro never executing. (Everything after the first semicolon will in fact not do anything aside from throwing errors, ever).

    The second macro Havoc12 posts is in fact what I would advise you to use for the reasons he stated.
    I don't doubt you, but I'm my pally hand mouseover macros are set up like this(eg hand of freedom):
    /cast [target=mouseover,exists] [help] Hand of Freedom;[help] Hand of Freedom; [notarget] [@player] Hand of Freedom
    and they work as I intended.

    - - - Updated - - -

    Ah never mind, looked into it a bit more, the notarget really doesn't exist, guess the macro just skips it since its not the final condition. It also looks like I'd already figured this out and forgotten about it because my other hand macros don't have it, just the [@player] bit. Also i found a "[notraget]" on my Flash of Light macro, which would confirm all this

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •