you complainer! LOL

Code:
;
alias -l Fix.Str2File { return $replace($1,&,&26,\,&5C,/,&2F,:,&3A,*,&2A,?,&3F,",&22,<,&3C,>,&3E,|,&7C,.,&2E) }
alias -l Fix.File2Str { return $replace($1,&5C,\,&2F,/,&3A,:,&2A,*,&3F,?,&22,",&3C,<,&3E,>,&7C,|,&2E,.,&26,&) }
;
on ^*:JOIN:#:    win2 $chan $color(join text) JOIN by $fulladdress
on ^*:OP:#:      win2 $chan $color(info text) $nick Opped $opnick
on ^*:DEOP:#:    win2 $chan $color(info text) $nick DeOpped $opnick
on ^*:VOICE:#:   win2 $chan $color(info text) $nick Voiced $vnick
on ^*:DEVOICE:#: win2 $chan $color(info text) $nick DeVoiced $vnick
alias win2 {
  ;echo -st CP WIN2 $1-
  var %win2 = @win2. [ $+ [ $$1 ] ]
  var %win2.font = $window($1).font
  var %win2.fontsize = $window($1).fontsize
  var %win2.fontbold = $window($1).fontbold
  if ($window(%win2) != %win2) {
    window -hp %win2 1 1 480 240 %win2.font %win2.fontsize
    window %win2 1 1 $calc(480 + (480 - $window(%win2).bw)) $calc(240 + (240 - $window(%win2).bh))
  }
  var %height = $height($3-,%win2.font,%win2.fontsize) + 2
  drawscroll %win2 0 $calc(- %height)) 1 1 480 240
  drawrect -f %win2 $color(background) x 1 $calc(240 - %height) 480 %height
  drawtext -p $+ $iif(%win2.fontbold,o) %win2 $2 %win2.font %win2.fontsize 1 $calc(240 - %height) $3-
  ;
  var %f = $+($Fix.Str2File(%win2),.jpg)
  drawsave %win2 %f
  background -p $1 %f
  haltdef
}


Try that.

If you want to change the colors do so. What ever you want to send to the little window its formated as so...
/WIN2 <originalwindowname> <color> <text text text>

* IT DOESNT ERROR CHECK STUFF SO IF YOU SEND IT RUBBISH EXPECT RUBBISH BACK

? Is $color(info text) the right one to use for ops and voices ? I dont know I just took a punt.