\documentclass{article}
\usepackage{a4wide}
\usepackage{msc}
\usepackage{ifthen}

%\setlength{\instwidth}{3.0cm}
%\setlength{\instdist}{4cm}
%\setlength{\actionwidth}{3.6cm}
%\setlength{\conditionoverlap}{1.9cm}

% Action macro from MSC documentation

\newsavebox{\labelbox}
\newlength{\oldwd}
\newlength{\oldht}
\newcommand{\Action}[2]{%
  \setlength{\oldwd}{\actionwidth}%
  \setlength{\oldht}{\actionheight}%
  \savebox{\labelbox}{#1}%
  \setlength{\actionwidth}{\wd\labelbox + 2\labeldist}%
  \setlength{\actionheight}{\ht\labelbox + \dp\labelbox + 2\labeldist}%
  \action{\usebox{\labelbox}}{#2}%
  \setlength{\actionwidth}{\oldwd}%
  \setlength{\actionheight}{\oldht}%
}

\newlength{\mscspacer}
\setlength{\mscspacer}{1ex}

\newcommand{\ActionBox}[2]{%
  \Action{\parbox{\maxmscaction - 2\mscspacer}{\centering #1}}{#2}
}

\newlength{\maxtemp}

\newcommand{\maxlength}[2]{
  \settowidth{\maxtemp}{#2}
  \ifthenelse{\lengthtest{#1 < \maxtemp}}{\setlength{#1}{\maxtemp}}{}
  \ifthenelse{\lengthtest{\maxmscall < \maxtemp}}{\setlength{\maxmscall}{\maxtemp}}{}
}



\newlength{\maxmscall}
\newlength{\maxmscinst}
\newlength{\maxmscaction}
\newlength{\maxmsccondition}

\setlength{\maxmscall}{\mscspacer}
\setlength{\maxmscinst}{\mscspacer}
\setlength{\maxmscaction}{\mscspacer}
\setlength{\maxmsccondition}{\mscspacer}

\begin{document}

\input{attack}

\end{document}
