Actually, it's totally possible to create sequential spell casts with standard macros (Obviously, no more than 1 spell per 1 keypress.) In vanilla you can call CastSpellByName if the parent caller is an input event.
This basically means you can create a macro like /script DoRotation(); then create an addon containing the function DoRotation, that increments a variable and calls whatever spell should be at that point using CastSpellByName.
I've actually made a little addon for this myself but I haven't posted it. (I can if anyone wants though.) This is basically how it works:
- Code: Select all
-- Basic caster druid rotation. Casts moonfire if moonfire debuff is expired, otherwise it spams wrath, but switches to healing if health is less than 50%
[_Rotation_BasicDruid] = {
['Healing Touch'] = {
['priority'] = 0.96,
['shouldRun'] = function()
return _PlayerHealthFloat < 0.5
end
},
['Rejuvenation'] = {
['priority'] = 1,
['shouldRun'] = function() return _PlayerHealthFloat < 0.5 and _TimeSinceLast > 12 and not _Casting; end
},
['Wrath'] = {
['priority'] = 0.1,
['shouldRun'] = function() return true; end
},
['Moonfire'] = {
['priority'] = 0.9,
['shouldRun'] = function() return _TimeSinceLast > 9 and not _Casting and not _FirstCast; end -- debuf duration
}
}
-- shifts out of bear form, heals, until health is more than 60% then shifts back
[_Rotation_DruidBearHealShift] = {
['Bear Form'] = {
['priority'] = 0.1,
['hasGCD'] = false,
['shouldRun'] = function()
return _PlayerShapeshiftForm == 1 or _vars['finishedHealing'];
end,
['didRun'] = function()
_vars['finishedHealing'] = false;
end
},
['Healing Touch'] = {
['priority'] = 0.2,
['shouldRun'] = function()
return _PlayerShapeshiftForm == 0 and not _vars['finishedHealing'];
end,
['finished'] = function()
_vars['finishedHealing'] = _PlayerHealthFloat > 0.6;
end
}
}
Cast sequences are definitely allowed, that's a big part of why macros exist in the first place. It's multiple actions with 1 input that's not, as far as I can tell from the TOS. (And that's blizzard's policy aswell)
Not intending to hijack the thread lol, just sayin'