At the moment, mafia isn't overriding autoattack macros (I'm not sure why), so you can set one as your autoattack and then use any form of mafia automation.
Also, adv1() and the 3-parameter form of adventure() have an undocumented feature - the last parameter can be the text of a macro, which completely replaces normal combat automation. This is distinguished from the normal use of that parameter as a function name by the presence of a semicolon in the string. This doesn't work quite right at the moment, due to a server-side problem: the first command in your macro gets logged, but doesn't actually get performed. You can work around that by including a dummy "attack" command at the start, but note that it may cease to be a dummy at any moment due to the problem being fixed! It is also not well-defined at the moment just what happens if your macro aborts, or fails to finish the combat.