API SpellStopCasting

Stops the current spellcasting. Doesn't work for channeled spells.

SpellStopCasting

Arguments

 * none

Returns

 * nil : It didn't do anything (no spell was being cast at the moment).
 * 1 : If it did stop a casting.

Examples
A recent post from the WoW main boards suggests that you can link two or more spells/abilities to fire from the same macro press (and that this move is legal) as long as none of the abilities (except the last one) triggers the global cooldown.

This is done with the following simple setup (two spells in one macro).

/cast Spell Without Global Cooldown /script SpellStopCasting /cast Spell With Global Cooldown

Or, for more than two spells.

/cast Spell Without Global Cooldown /script SpellStopCasting /cast Spell Without Global Cooldown /script SpellStopCasting ... /cast Spell With Global Cooldown

It's been tested to work with Nature's Swiftness (Shaman/Druid), Divine Favor (Paladin), Inner Focus + Focused Casting (Priest), but should work for any ability that does not have a global cooldown attached.

Note for spells without a global cooldown and SpellStopCasting: When you cast instant cast spells without a global cooldown, the client still waits for the server to confirm the cast. For example, if you cast "Inner Focus" (next spell costs zero mana), the client has to wait for the associated "Inner Focus"-buff from the server, until it realizes that the next spell will be for free. In the meantime you can only cast spells that you have enough mana for.

This has been tested with a "Inner Focus"/"Prayer of Healing" (Priest) macro, which will activate the inner focus but say "not enough mana" if you don't have enough mana for the healing spell.

Details
Can disable autorepeated "spells", like hunter's Auto shot.