Op/Hop/Voice notice
; so. mIRC is weird. ; say we're on a network that enables PREFIX_AQ (where ~ (founder) and & (sop) are displayed ; in nicklists, instead of hiding them behind @) ; also suppose that we have someone named bob, who is the founder of #place, and ; is all alone in it. ; (bob isop #place) returns TRUE.. yet, $nick(#place,0,o), which is supposed to return the ; number of ops in #place (1), returns 0. ; the following o/h/vnotice code attempts to get around this (while also letting you use ; a better way to do it when possible) ; written by Alucard, 11/12/2004 ;follow the example of these aliases to make your own custom ones.. ; use o for ops, h for halfops, v for vops, and r for regulars in to_who. anything else is ;ignored; the letters are case-sensitive. ; alias its_name { _notice $chan to_who $1 } alias ohvn { _notice $chan ohv $1- } alias on { _notice $chan o $1- } alias ohn { _notice $chan oh $1- } alias vn { _notice $chan v $1- } alias hn { _notice $chan h $1- } alias -l _notice { ;$1 = channel name; $2 = to who on the channel (o,h,v, or a combination of the three), ; $3- is the message to send var %to = $+ $replace($2,o,Ops/,h,Hops/,v,Vops/,r,Regs/) $+ $1 $+ ;ok, this is pretty complicated. Unreal has a nifty command to notice certain people on a ;channel in one command (read: less lag). ; type /helpop notice to see. ;what this does, is uses that command IF ; - you are noticing to vops+, hops+, or ops+ (the way the command works does not allow ; e.g. only vops and ops), AND ; -- you are an op on the channel, OR ; -- you are a voice or halfop, AND ; --- +T is not set (due to a bug(?) in unreal, v/hops cant use /notice as described ; above with +T set). ; hope that made sense. ; if these conditions are fulfilled, then we use the better command if (($me isop $1) $& || ((($me ishop $1) || ($me isvo $1)) && (T !isincs $chan($1).mode))) $& && ((ohv == $2) || (oh == $2) || (o == $2)) { .notice $min($2) $+ $1 %to $3- } ; if those conditions are not fulfilled, then we have to /notice everyone individually. else { var %i = 1 ; loop thru each person on the channel.. while (%i < $nick(#,0)) { ; this is so that people can do e.g. /opvoice notice. ; only notice the person if he's op AND 'o' is specified as a destination, etc if (((o isincs $2) && ($nick($1,%i) isop $1)) $& || ((h isincs $2) && ($nick($1,%i) ishop $1)) $& || ((v isincs $2) && ($nick($1,%i) isvo $1)) $& || ((r isincs $2) && ($nick($1,%i) isreg $1)) $& && ($nick($1,%i) != $me)) { ; keep the dot at the beginning, to hide each individual notice from you .notice $nick(#,%i) %to $3- } inc %i } } ; finally, echo locally what we sent. echo 14 -at Notice sent %to $3- } alias -l min { if (v isin $1) { return + } elseif (h isin $1) { return $chr(37) } else { return @ } }