/cast [nodead] ; [target=targettarget, nodead] ; [target=targettargettarget] Heal


Char4 is targeting Char3. if char 3 is alive, macro stops because there's no command.
if char3 is dead, it passes to the next argument. now its seeing if char 2 is nodead. if it is nodead, then cast nothing, if it is not nodead, then go to next argument.
next one says heal char1.


this should work. but its untested. came off the top of my head so you might wanna try it out first. lol. i dont know how, but get your char2 and 3 dead on purpose on a test mob.