QuietMacros

QuietMacros

5.4k Downloads

Note: Legion Bug for Bears: Bear form seems to ignore the AutoUnshift settings when casting Healing Touch.
Swiftmend, Rejuvenation, and Regrowth are properly restricted if AutoUnshift is disallowed.
All four spells are restricted properly for Catform.  Healing Touch still works properly with Predatory Swiftness.

One of the common issues of macros is that error sounds and messages are played, even though the player does not wish to hear or see them.  This usually happens when abilities, or items are chained together.  For example:

#showtooltip
/cast Mangle(Bear Form)
/cast [nomod] Maul(Bear Form)
/startattack

or

#showtooltip Arcane Blast
/use 13
/use 14
/cast Arcane Blast

In the first case, if Maul is not ready, then the error messages will be played/displayed whenever the macro is activated.  Likewise, if either trinket is not ready, the messages will be played/displayed when the second macro is used.

The standard way to fix these macros is to temporarily turn off sound and text warnings, like so:

#showtooltip
/cast Mangle(Bear Form)
/console Sound_EnableErrorSpeech 0
/cast [nomod] Maul(Bear Form)
/console Sound_EnableErrorSpeech 1
/script UIErrorsFrame:Clear()
/startattack

#showtooltip Arcane Blast
/console Sound_EnableErrorSpeech 0
/use 13
/use 14
/console Sound_EnableErrorSpeech 1
/script UIErrorsFrame:Clear()
/cast Arcane Blast

The extra lines temporarily turn off the error sound, then turn it back on, and clear out the messages frame.  Now, the error messages are hidden with regards to the secondary effects, but are still displayed when something is wrong with the primary effect (e.g. missing target, our of range, etc).

The problem with this solution is that the extra commands take an extra 84 bytes of macro text.  This is almost 1/3 of the allowable characters in a macro!

This mod fixes the situation by converting the long commands to very short ones.  Now the macros can be written thusly:

#showtooltip
/cast Mangle(Bear Form)
/q 0
/cast [nomod] Maul(Bear Form)
/q 1
/startattack

#showtooltip Arcane Blast
/q 0
/use 13
/use 14
/q 1
/cast Arcane Blast

Now the extra character count is a mere 10 characters.  Also, the commands are a lot easier to remember.

Full listing of QuietMacros Commands:
/q 0
    Turns off error sounds.
/q 1
    Turns on error sounds, and clears the errors frame.
/q c
/q C
    Clears the errors frame.  Has no effect on sound.
/q seo
    Turns off sound effects
    Mnemonic: Sound Effects Off
/q nsic
    Turns of auto-shift in combat
    (useful for ferals casting Healing Touch thanks to Predatory Swiftness)
    Mnemonic: No Shift In Combat
/q ns
    Turns off auto-shift completely
    Mnemonic: No Shift
/q as
    Turns auto-shift back on
    Mnemonic: Allow Shift
/q debugon
    Will make QuietMacros print the current value of Sound_EnableErrorSpeech in the chatframe whenever QuietMacros is called.
/q debugoff
    Turns off debugging.

Note: /q 1 will only turn on Sound Effects or Error Sounds if QuietMacros was used to turn them off.  If they were turned off another way, QuietMacros will not reactive the sound type.

Turning Off Sound Effects vs Turing Off Error Speech
Most of the advice found on the web says to turn Sound_EnableSFX off and on again to eliminate the error voice.  However, this setting affects more than just the error voice.  For example, try flying around on a flying mount, and then type '/console Sound_EnableSFX 0' and you will find that your mount is no longer making the flapping wings sound.  Another sound that will be lost will be when druids shapechange.  (Type '/console Sound_EnableSFX 1' to turn the sound back on again.)  By using Sound_EnableErrorSpeech, only the error speech is turned off, and so you will not have other sounds suddenly disappearing.

Controlling AutoShift
This is particularly useful for ferals who want to cast Healing Touch when Predatory Swiftness procs, but doesn't want to accidentally go out of cat form otherwise.

Here is the macro:
#showtooltip
/q nsic
/cast [mod,@player][help][@targettarget,help][@player]Healing Touch
/q as