; Hunt.mrc by JesseR (v2.3 8/18/99) ; Lets you look for people who are online from any list of nicks. ; To load: /load -rs hunt.mrc ; http://www.angelfire.com/ca/jesser/scripts.html ; suggestions, bugs to jesseruderman@hotmail.com or memo JesseR on DALnet ; Comes with lists for DALnet csops and #DALnethelp sops/aops/voices. ; Can automatically grab an AOP/SOP list , provided that it isn't too big. ; known bugs and issues ; can't /huntgrab really big aop/sop lists. (this will probably not be fixed anytime soon) ; fixed since last version: ; now grabs aop/sop lists correctly (with new services) ; fixed several random cosmetic bugs, especially in /huntgrab ; fixed a bug when someone was set away but YOUR SERVER didn't know it (now says "... is now set away") alias huntdefault { ; CSOP lists updated 8/18/99 .hunt add csop1 kevin coldboot logik the_saviour driz boii sapphiredragon mhz fast kyle VincentVega caespock web sunflowrr Spiros micheal encoder sm0ke n`otorius benny radix pyr0s ladyfizz fuggs supernaut- neko miss_star ninja_babe phiberoptics kilaranth kicks CJB nikb Black_Crow Celjha SpunOne thetaz kitfox Kalytyra dragonheart PatMan avery Raskah T0MKAT keeg Strahd Ahnberg Biffa AlleyCat MeTaz Studded Scot Entropi Frazz .hunt add csop2 Surel ogre Rakarra Dream_WEaver Wizzu MSofty Theri Animal Dlyrius Noonian Doogie acire Isando Don sinnie items darkrot Cit TazQ Postal_Phreak mougly minxy Luce javadoc lola Loiosh LadyMorgaine micke white_dragon Toolman Ramuh Angel vicvixvi IceQueen StudNo1 prof Chancer ilythia skill rocket micala xpsycho pt puddytat britta marvin777 gamma wyldwolf watcher luscious fear dakal ducky Raistlin_Mejere evenstar zud raistlin arabian ; #DALnethelp lists updated 3/13/99 .hunt add dnhsop ilythia nobody luscious Ramuh dragonheart Raistlin toolman cl00bie DH .hunt add dnhaop LadyMorgaine Lewis _wildcat nobie FireBreath WhatWhat Ahnberg g0ds0n Kevin White_Dragon Pixie^ DuffJ Wizzu Zadi PrincessDi Dok JesseR Comanchee SweetHeat DH Scot StarThorn HelpBot selkie Chosen1 Mysidia xPsycho cl00bie H2S nightmonk c`estmoi Dogfood Pinballwiz JunFev daarken Beastman Hal Gamma Zukee Kzoo OverPass Raditz katti `Dave Ginseng DarkSkye Surel SkyHawk LadyDana Mind_Eraser Eagle-Com .hunt add dnhvoice coolfrood cybie deathcom eristic itoman ^jondoe^ longfist macfat mikedbes netkid odinwolph papasmurf rachel_^ simpleguy tembel tngpicard hunt } alias -l e a 5 $+ $1- alias -l a { window -e @hunt /hunt if ( $1 == $null ) aline -ph @hunt $chr(160) else aline -ph @hunt $1- } alias -l ww whois $$1 $1 alias nep { a e You didn't use enough parameters for that command. (/hunt help if you're confused) halt } on 1:load: huntdefault on 1:start: .remote on on 1:connect: .disable #hunt* alias hunt { unset %ht.* if ( $server == $null ) { echo $colour(info) -a *** You aren't connected to an IRC server! | halt } if ( $1 == $null ) { a e You have the following lists stored: a $chr(2) $+ $chr(160) %huntlist e To search for people on a list, type /hunt listname e For more commands, type /hunt help return } set %ht.V $1 set %ht.moo Hunt $+ $1 if ( $isalias(%ht.moo) ) { %ht.moo $2- return } set %ht.A %hunt. [ $+ [ $1 ] ] if ( %ht.A == $null ) { a e Oops, couldn't find a list called " $+ $1 $+ ". halt } a a a --------------------- set %ht.AN $gettok(%ht.A,0,32) a 6 $+ %ht.V $+  - %ht.AN nick(s) a %ht.A ison %ht.A .enable #huntison } alias hunthelp { a e Any of the /hunt commands will open the @hunt window. a e /hunt (lists the lists you have) e /hunt listname (looks for people online from that list) a e /hunt help e /hunt default (stores a few default lists) e /hunt add listname nick1 nick2 ... e /hunt del listname e /hunt delall e /hunt rename listname newlistname e /hunt show listname e /hunt grab #channename (DALnet only - grabs AOP and SOP lists from ChanServ) } alias huntadd { if ( $1 == $null ) { a e /huntadd requires a parameter.. return } set %moo Hunt $+ $1 if ( $isalias(%moo) ) { a e Sorry, that name ( $+ $1 $+ ) is reserved for the script. return } if ( $2 == $null ) { huntdel $1 return } set %L $len($2-) if ( %L > 470 ) { a e Max safe size is 470 characters, you have %L $+ . Please split the list up. return } if ( $chr(33) isin $2- || $chr(42) isin $2- ) { a e You can't use masks in /hunt. return } set %hunt. $+ $$1 $2- set %huntlist $addtok(%huntlist,$1,32) if ( $show ) { a e Added list $1 $+ : $2- } } alias huntrename { if ( $2 == $null ) { a e /huntrename requires two parameters.. return } set %g %hunt. [ $+ [ $$1 ] ] huntdel $1 hunt add $$2 %g } alias huntdel { if ( $1 == $null ) { a e /huntdel requires a parameter.. return } if ( %huntlist == $null ) { a if ( $show ) { e You don't have any lists stored! } halt } if ( $findtok(%huntlist,$1,1,32) == $null ) { a ; If $show thingie added 8/18/99 here and directly above if ( $show ) { e You don't have a list called $1 $+ . } halt } unset %hunt. $+ $1 set %huntlist $remtok(%huntlist,$1,1,32) if ( $show ) { a e Removed list $1 } } alias huntdelall { unset %hunt.* unset %huntlist a e Okay, deleted all the /hunt lists. } alias huntshow { if ( $1 == $null ) { a e /huntshow requires a parameter.. return } set %a %hunt. [ $+ [ $$1 ] ] a a  $+ $$1 ( $+ $gettok(%a,0,32) $+ ): %a } ; ison the whole list, userhost the ones that show up (to see if they're away), then '/whois nick nick' for all of them. #huntison off ;ison reply raw 303:*: { a if ( $2 == $null ) { a 5None showed on /ison. huntdone } set %ht.B $2- set %ht.BN $gettok(%ht.B,0,32) a 5,99 $+ %ht.BN of %ht.AN showed on /ison. a $2- a set %i 1 set %c $1 unset %u %a :loop set %n $gettok(%ht.B,%i,32) | if ( %n == $null ) { goto out } inc %a | set %u %u %n | if ( %a == 6 ) { userhost %u | unset %u %a } inc %i goto loop :out if ( %u != $null ) { userhost %u } .disable #huntison .enable #huntuserhost ;i use _reply_ becuase ctcp uses privmsg, which resets idle and confuses ppl. (tell me when i'm done getting userhosts) .ctcpreply $me huntuserdone halt } #huntison end #huntuserhost off ;userhost reply raw 302:*: { set %i 1 unset %u :loop inc %i set %a $ [ $+ [ %i ] ] if ( %a == $null ) { goto out } if ( @enforcer isin %A ) { goto loop } if ( + isin %a ) { set %b $remove($gettok(%a,1,61),*) set %ht.C %ht.C %b ww %b } goto loop :out halt } on 1:CTCPREPLY:huntuserdone*: { if ( $nick == $me ) { if ( %ht.C == $null ) { a 5None showed on /userhost (they're all away or enforcers). huntdone } set %ht.CN $gettok(%ht.C,0,32) a 5,99 $+ %ht.CN of %ht.BN passed /userhost (not set away, not nickserv enforcers). a %ht.C a a 5People who appear to be active will be 2blue5, others 14gray1. set %ht.DN 0 .disable #huntuserhost .enable #huntwhois halt } } #huntuserhost end #huntwhois off ;supress whoises RAW 311:*: if ( $findtok(%ht.C,$2,0,32) != 0 ) { halt } RAW 312:*: if ( $findtok(%ht.C,$2,0,32) != 0 ) { halt } RAW 319:*: if ( $findtok(%ht.C,$2,0,32) != 0 ) { halt } ;away - added 8/18/99 RAW 301:*: { if ( $findtok(%ht.C,$2,0,32) != 0 ) { a 14,99 $+ $2 is now set away. set %ht.K away halt } } ;oper RAW 313:*: { if ( $findtok(%ht.C,$2,0,32) != 0 ) { set %ht.umodes o if ( *services*admin* iswm $3- ) { set %ht.umodes %ht.umodes $+ a } if ( *server*admin* iswm $3- ) { set %ht.umodes %ht.umodes $+ aA } halt } } ;helpful RAW 310:*: if ( $findtok(%ht.C,$2,0,32) != 0 ) { set %ht.umodes %ht.umodes $+ h | halt } ;idle time RAW 317:*: { if ( %ht.K != $null ) { halt } if ( $findtok(%ht.C,$2,0,32) != 0 ) { ; moved following line inside (?) 8/18/99 if ( %ht.umodes != $null ) set %ht.umodes + $+ %ht.umodes if ( $3 < 90 ) { a 2,99 $+ $2 (idle $3 seconds) %ht.umodes | inc %ht.DN | set %ht.D %ht.D $2 } else { a 14,99 $+ $2 (idle $3 seconds) %ht.umodes } unset %ht.umodes halt } } ;end of whois RAW 318:*: { unset %ht.K if ( $findtok(%ht.C,$2,0,32) != 0 ) { set %ht.C $remtok(%ht.C,$2,1,32) if ( %ht.C == $null ) { a a 5,99 $+ %ht.DN of %ht.CN appear to be active. if ( %ht.D != $null) a %ht.D huntdone } halt } } ;no such server - "/whois nick nick" returns this instead of no such nick RAW 402:*: { if ( %ht.C == $null ) { return } if ( $findtok(%ht.C,$2,0,32) != 0 ) { set %ht.C $remtok(%ht.C,$2,1,32) a 14,99 $+ $2 ("no such server" - probably logged offline) if ( %ht.C == $null ) { a a 5,99 $+ %ht.DN of %ht.CN appear to be active. if ( %ht.D != $null) a %ht.D huntdone } halt } } #huntwhois end alias huntdone { a a 6Done. a --------------------- a unset %ht.* ; just in case.. .disable #hunt* halt } alias huntgrab { if ( $1 == $null ) { a e /huntgrab requires a parameter.. return } set %hg.chan $1 if ( $chr(35) !isin %hg.chan ) set %hg.chan $chr(35) $+ %hg.chan a e Grabbing AOP and SOP lists for %hg.chan ... chanserv aop %hg.chan list chanserv sop %hg.chan list .enable #catchlist } #catchlist off ;first is old (before services change), second is new. third still works. on chanserv!service@dal.net:notice:*access denied*:*: .disable #catchlist on chanserv!service@dal.net:notice:*you do not have access*:*: .disable #catchlist on chanserv!service@dal.net:notice:*not registered*:*: .disable #catchlist on chanserv!service@dal.net:notice:*Op list for*:*: { ; %set %hg.blah $strip($1-) set %hg.catching %hg.chan $+ $mid($1-,1,1) $+ op .huntdel %hg.catching unset %hg.oplist } on chanserv!service@dal.net:notice:*End of list*:*: { if ( %hg.catching == $null ) return ; If we just finished getting an sop list, we're done hunt add %hg.catching %hg.oplist if ( $right(%hg.catching,3) == SOP ) { e $chr(160) e Done grabbing AOP/SOP lists for %hg.chan $+  .disable #catchlist } unset %hg.catching %hg.oplist } ; this is triggered by the things.. on chanserv!service@dal.net:notice:*:*: { if ( %hg.catching == $null ) return ; ignore mask entries (ones containing "!") if ( $chr(33) isin $3 ) return set %hg.oplist %hg.oplist $3 if ( $len(%hg.oplist) > 440 ) { hunt add %hg.catching %hg.oplist unset %hg.catching e I didn't get the whole list because it was getting long. Sorry. } } #catchlist end