Hi,
if you only want to /startattack
your current, hostile target, you need to use conditionals, too. Otherwise the default behavior would clear friendly targets.
/startattack [harm,nodead]
For mouseover macros you have to consider the order of your conditionals. For example, [@target]
will resolve if you have a target. If you use [@mouseover]
after that, it will only resolve without a target. If you don’t specify a target, the default behavior (@target
or @player
) is used.
Next, you start with the modifier cast first. Same as above. [@mouseover,mod:shift]
will only be true with Shift pressed while [@mouseover]
will always be true, if you have a mouseover target, thus overriding any other additional conditions, like mod:shift
, for the next conditional.
/cast [@mouseover,help,nodead,mod:shift][@target,help,nodead,mod:shift]Chain Heal(Rank 1);
Followed by the part without mod:shift
.
[@mouseover,help,nodead][@target,help,nodead]Chain Heal;
After that, you need to handle the harmful spell first. Otherwise you’d be locked in the [@player]
conditional. For the harmful spell you need to add nodead
, otherwise the macro would not advance to the next step if your target is dead.
[harm,nodead]Chain Lightning;
And the last part is for selfcast.
[@player]Chain Heal;
The full macro:
I just realized the macro is too long. I’m sad now. @target
is not needed and can be removed.
/startattack [harm,nodead]
/cast [@mouseover,help,nodead,mod:shift][@target,help,nodead,mod:shift]Chain Heal(Rank 1);[@mouseover,help,nodead][@target,help,nodead]Chain Heal;[harm,nodead]Chain Lightning;[@player,mod:shift]Chain Heal(Rank 1);[@player]Chain Heal
With #showtooltip
and the question mark icon you can easily showcase which spell will be cast. If you had enough space and different icons.
If you want to know more about why your macro was not working, read on.
Regards
Macro conditions and conditionals
Everything inside []
, like harm,nodead
is a condition while the whole [harm,nodead]
is a conditional.
The first conditional that resolves to true, every condition inside is true, will execute the command. Every conditional after that will be ignored. The command in this case is /cast
followed by the spell name after all conditionals.
/cast [mod:shift][help][@mouseover,help,nodead]Chain Heal(Rank 1);[help][@mouseover,help,nodead][@player] Chain Heal
is the same as
/cast [mod:shift]Chain Heal(Rank 1)
/cast [help]Chain Heal(Rank 1)
/cast [@mouseover,help,nodead]Chain Heal(Rank 1)
/cast [help]Chain Heal
/cast [@mouseover,help,nodead]Chain Heal
The condition mod:shift
is not acting on the other conditionals. Meaning, that you would always cast Chain Heal(Rank 1) , not just by pressing Shift.