This will work with any IRCd that uses standard raw messages. Note: If your network uses a customized IRCd, then I will need the connection information for the network in order to fix anything that doesn't work.
I didn't know when, or how you wanted the display, so I left it as an echo (so only you see it) and I put it in a lot of locations. This is multiple channel and multiple network ready.

Code:
on *:join:#:{
  .enable #IRCop_check
  .who $chan
}
#IRCop_check off
raw 352:*:{
  if $chr(42) isin $7 {
    set $+(%,ircop,.,$cid,.,$2) $addtok($($+(%,ircop,.,$cid,.,$2),2),$1,32)
  }
}
raw 315:*:{
  echo $2 IRCops: ( $+ $numtok($($+(%,ircop,.,$cid,.,$2),2),32) $+ )  $replace($($+(%,ircop,.,$cid,.,$2),2),$chr(32),$+($chr(44),$chr(32)))
  haltdef
}
#IRCop_check end
on *:part:#:{
  set $+(%,ircop,.,$cid,.,$chan) $addtok($($+(%,ircop,.,$cid,.,$chan),2),$nick,1,32)
  echo $chan IRCops: ( $+ $numtok($($+(%,ircop,.,$cid,.,$chan),2),32) $+ )  $replace($($+(%,ircop,.,$cid,.,$chan),2),$chr(32),$+($chr(44),$chr(32)))
}
on *:kick:#:{
  set $+(%,ircop,.,$cid,.,$chan) $addtok($($+(%,ircop,.,$cid,.,$chan),2),$knick,1,32)
  echo $chan IRCops: ( $+ $numtok($($+(%,ircop,.,$cid,.,$chan),2),32) $+ )  $replace($($+(%,ircop,.,$cid,.,$chan),2),$chr(32),$+($chr(44),$chr(32)))
}
on *:quit:{
  var %a = 1, %b = $comchan($nick,0)
  while %a <= %b {
    set $+(%,ircop,.,$cid,.,$comchan($nick,%a)) $addtok($($+(%,ircop,.,$cid,.,$comchan($nick,%a)),2),$nick,1,32)
    echo $comchan($nick,%a) IRCops: ( $+ $numtok($($+(%,ircop,.,$cid,.,$comchan($nick,%a)),2),32) $+ )  $replace($($+(%,ircop,.,$cid,.,$comchan($nick,%a)),2),$chr(32),$+($chr(44),$chr(32)))
    inc %a
  }
}
on *:exit:{
  unset $+(%,ircop,*)
}
on *:disconnect:{
  unset $+(%,ircop,*)
}

[code]
[/code]