you really should mention that your not using the latest mirc when you ask for something smile $v1 was added v6.16

try this...
Code:
on *:text:!rules:#channel:{    dcc.file.send $nick rules.txt }
on *:text:!commands:#channel:{ dcc.file.send $nick commands.txt }
on *:text:!balls:#channel:{    dcc.file.send $nick rubberball.txt }
;
;etc etc etc
;
alias -l dcc.file.send {
  set -u60 % [ $+ [ $+($1,.DCCFILE) ] ] $2-
  dcc chat $1
  .timer. $+ $1 $+ .dcc.close 1 60 while ( $!window( = $+ $1 ) ) $chr(123) window -c = $+ $1 $chr(125)
}
on *:open:=:{
  echo -st CP0 nick : $1-
  if (% [ $+ [ $+($nick,.DCCFILE) ] ] ) {
    play = $+ $nick $ifmatch 0
    unset % [ $+ [ $+($nick,.DCCFILE) ] ]
  }
}

Now each TEXT event calls an alias to do all the work, becuase the alias also starts a 60 sec timer to close the dcc chat windows to that nick.
Now the OPEN event uses the older $ifmatch instead of $v1.