Code:
alias -l chmsg { .msg $1- | echo -at $+( ,$me,) says: | echo -aiN6 $2- }


So it's an alias you call every time you want to do this, rather than triggering on an event such as ON INPUT. It makes sense to use $2- since $1 is the target you're messaging.

As for -i, it indents on following lines if word wrap needs to be applied. IE, if you do -i6, and the message is spread over three lines, the second and third line receive 6 spaces in front, which makes it easier to tell where new lines start. It does not apply to the first line, and since you're echoing the lines individually, mIRC considers every line to be the first line of a new message.

If you insist on echoing each line individually, you'd have to create the "spaces" yourself. mIRC doesn't work well with spaces. A cheapskate version could be to insert $chr(160) in front, which looks like a space in most situations (but could look like something else). If you want actual spaces, you need to use an external .dll such as spaces.dll.

Do you want to manually trigger when your script applies and when not? If not, you could use the following code instead:

Code:
on ^&*:input:#: {
  if !$ctrlenter && $left($1, 1) != / && $left($1, 1) != $readini($mircini, text, commandchar) {
    .say $1-
    echo -ai6t $+($chr(2), $me, $chr(2)) says: $1-
    haltdef
  }
}


Learning something new every day.