# # _/_/_/_/_/ _/_/_/_/ _/_/_/ _/_/ # _/ _/ _/ _/ _/ _/ # _/ _/_/_/ _/_/_/ _/ _/ # _/ _/ _/ _/ _/ _/ # _/_/_/_/_/ _/_/_/_/ _/ _/ _/_/ # # by orabidoo 94/95 # @ version = [0044] # Any copies without the version number are just prehistoric. # News since 0037: site bans, site ignores, site filterkickban, fk no # longer kicks you, logging of userhosts and the time when # setaway, /unban renamed to /ub and can now take an address, a # nick, or the number of a ban after a /sb; added /wall and /umode # since 0041: a toggle (/wallv) to send wallops to +v people # since 0042: a couple typos fixed, and a fix for EPIC # since 0043: small portability change in /setaway # Acknowledgements: the first versions of this were based on various # popular scripts, mostly Infinity. I doubt there is much code # left from that anymore. Thanks to Rubens (ubac3ew@dcs.bbk.ac.uk) # for lots of help and ideas, and slackie (slackjaw@sky.net) for # more ideas. # for comments, bug reports, ideas: email roger.espel.llima@ens.fr # filenames ^set shell /bin/sh ^set shell_flags -c @ cfgfile = HOME ## [/.irc/zer0.lst] @ awayfile = HOME ## [/.irc/zer0.mes] ^eval ^exec mkdir $HOME/.irc 2>/dev/null # default values @ opdelay = 5 @ autoops = [on] @ autorejoin = [off] @ slowserver = [off] @ banign = [off] @ wallv = [off] ^assign -isaway ^assign -autooplist ^assign -lastignore ^assign -message @ pingmsg = [I'm not lagged, but maybe you are!] @ fingmsg = [Keep your fingers to yourself...] @ quitmsg = [Connection reset by pear] # client settings ^set exec_protection off ^set status_user zer0 ^set novice off ^eval set client_information running zer0 version $version ^set history 100 ^set max_recursions 50 ^set flood_warning on ^set flood_after 10 ^set flood_rate 10 ^set auto_unmark_away off ^set continued_line ^set channel_name_width 10 ^set auto_whowas on ^set status_window = ^set status_hold off ^set indent on ^set show_away_once on ^set send_ignore_msg off ^set show_channel_names on ^set hide_private_channels off ^set highlight_char bold ^set beep off ^set clock_24hour off ^set verbose_ctcp off ^set warn_of_ignores on ^set status_format %T %*%@%N%#%S%H%B%Q%A%C%+%I%O%F %W%>%U%M%X%Y%Z # for EPIC ^set notify_on_termination off # key bindings ^bind ^t switch_channels ^bind ^w quote_character ^bind ^x next_window ^bind ^b self_insert ^bind ^_ self_insert ^bind ^v self_insert ^bind ^z stop_irc ^bind ^[ meta1 ^bind meta1-[ meta2 ^bind meta1-O meta2 ^bind meta2-A backward_history ^bind meta2-B forward_history ^bind meta2-C forward_character ^bind meta2-D backward_character # tab key handling; since lots of badly installed clients don't have it, # here it is again - credit where due bind ^i parse_command ^tk.getmsg 1 $tk.msglist bind ^r parse_command ^tk.getmsg -1 $tk.msglist alias addnick { if ([$1]) { addnick $1- } { } tk.addmsg $0 $tk.msglist } @ tk.msgmax = 10 alias tk.addmsg { @ tk.matched = rmatch($0 $^\1-) if (tk.matched) { @ tk.msglist = [$(0-${tk.matched-1}) $(${tk.matched+1}-)] } { @ tk.msglist = [$(0-${tk.msgmax-1})] } @ tk.msgcnt = 0 ^assign -tk.matched } alias tk.getmsg { @ tk.msgcnt = tk.msgcnt + [$0] if (#tk.msglist < tk.msgcnt) { @ tk.msgcnt = 1 } if (tk.msgcnt <= 0) { @ tk.msgcnt = #tk.msglist } @ tk.junk = K ## [m] type ^U$tk.junk $^^{[$($tk.msgcnt)]} } on #-send_msg 55 * ^tk.addmsg $0 $tk.msglist on #-msg 55 * ^tk.addmsg $0 $tk.msglist on #-send_dcc_chat 55 * ^tk.addmsg \=$0 $tk.msglist on #-dcc_chat 55 * ^tk.addmsg \=$0 $tk.msglist # time-saving aliases alias cl clear alias n notify alias q query alias w { if ([$0]==[*]) { who * } { whois $0- } } alias wi whois $0 $0 alias fing ctcp $0 finger alias ver ctcp $0 version alias tim ctcp $0 time alias ll who * alias l if (C) { list $C names $C } alias de describe alias ig ignore alias re redirect alias mo mode $C +$0- alias umode mode $N alias nokey mo -k $chankey alias open { mode $C -lsmpi nokey } alias k kick $C alias m msg alias a m $. alias ex exec alias ls exec ls -al alias cat exec cat alias rm exec rm alias ps exec ps x $0- alias p if ([$0]) { ping $0- } { ping $C } alias ss slowserver alias j if (([#]==[$[1]0]) || ([&]==[$[1]0]) || [$0]==[0]) { //join $0- } { if ([$0]) { //join #$0- } { join $I } } alias leave if (![$0]) { //leave $C } { if (([#]==[$[1]0]) || ([&]==[$[1]0]) || ([$0]==[*])) { //leave $0 } { //leave #$0 } } alias hop leave alias part leave alias t { if (match(#* $0)) { //topic $0- } { //topic $C $0- } } # dcc related aliases alias dc dcc chat alias ds dcc send alias dl dcc list alias dg if ([$0]) { dcc get $0- } { dcc get $lastdcc ^assign -lastdcc } alias dc if ([$0]) { dcc chat $0- } { dcc chat $lastdc ^assign -lastdc } alias dr if ([$1]) { dcc rename $0- } { dcc rename $lastdcc $0- } alias cdc dcc close chat alias cdg dcc close get alias cds dcc close send # presentation ^on -public - ^on -action - ^on ^msg "*" { echo [$0] $1- ^bind ^o type_text [$0] $1- add.truenick $0 $msg.good if (isaway) { //^msg %away :$0!$userhost() [$Z]: $1- if (!rmatch($0 $^\nickssent)) { ^notice $0 Your messages are being logged - zer0 version $version @ nickssent = nickssent ## [ $0] } } } on ^dcc_chat "*" { echo =$0= $1- ^bind ^o type_text =$0= $1- if (isaway) { //^msg %away =$0 [$Z]= $1- } } ^on ^action "*" if ([$1]==C) { echo * $0 $2- } { if ([$1]==N) { echo *> $0 $2- } { echo * $0:$1- } } ^on ^send_action "*" if ([$0]==C) { echo * ${N} $1- } { if (match(#* $0)) { echo * -> $0: $N $1- } { echo * -> $0: $N $1- } } ^on ^leave "*" echo *<* $0 has left channel $1 ^on ^signoff "*" if ([$0]!=N) { echo *<* Signoff: $0 \($1-\) } ^on ^mode "*" if ([$1]==N) { echo *+* Mode change \"$2-\" for user $1 by $0 } { echo *+* Mode change \"$2-\" on channel $1 by $0 } ^on ^invite "*" echo *I* $0 invites you to channel $1 ^on ^nickname "*" if ([$1]==N) { echo *N* You are now known as $1 } { echo *N* $0 is now known as $1 } alias msg if ([$0]) { @ mg.nb = rmatch($0 $^\msg.good) if (mg.nb) { //msg $word(${mg.nb-1} $msg.good) $1- add.truenick $word(${mg.nb-1} $msg.good) $msg.good } { //msg $0 $1- } } { echo *Z* You must specify a nick! } # handling of "true nicks" (with the right caps); some code taken from # tabkey.irc, but i'm not mixing it with tabkey, because here we only # want the nicks for which we're sure of the spelling alias add.truenick { @ mg.nb2 = rmatch($0 $^\1-) if (mg.nb2) { @ msg.good = [$(0-${mg.nb2-1}) $(${mg.nb2+1}-)] } { @ msg.good = [$(0-39)] } } on ^send_msg "*" echo >$0< $1- on ^send_public * echo <${N}> $1- on ^notice "*" echo -$0- $1- on ^send_dcc_chat "*" echo |$0| $1- alias list { ^set channel_name_width 0 //list $0- } on ^323 "*" set channel_name_width 10 # other hooks on ^401 * : on ^406 * echo *?* $1 not found on IRC. on ^names "*" echo *#* Users on $0: $1- on ^353 "*" echo *#* Users on $2: $3- on -ctcp "% % dcc send *" @ lastdcc = [$0] on -ctcp "% % dcc chat *" @ lastdc = [$0] on ^notify_signoff "*" echo *\(* Signoff at $Z for $0 on ^notify_signon "*" if (slowserver==[off]) { userhost $0 -cmd echo *\)* Signon by $$0 [$strip(;~#- $$3@$$4)] detected } { echo *\)* Signon by $0 detected } on -raw_irc "% kick *" if (([$3]==N) && (autorejoin==[on])) { quote join $2 } ^on ^ctcp_reply "% finger *" { @ f.tmp = match(Idle $*) if (f.tmp) { echo *** CTCP FINGER reply from $0: $(2-${f.tmp -1}) $tdiff($(${f.tmp})) $(${f.tmp + 2}-) } { echo *** CTCP FINGER reply from $0: $2- } ^assign -f.tmp } # key bomb protection only for old clients ^on -raw_irc "% MODE % *+k % *" { @ chankey = [$4] if (V<19940321) { ^set status_mode [key] } } if (V<19940321) { ^on -raw_irc "% MODE % *-k *" ^timer 1 ^set status_mode (+%+) } ^on ^ctcp "*" if (([$2]!=[dcc]) && ([$2]!=[action])) { if ([$1]==N) { echo *Z* $0 did a CTCP $2- to you. } { echo *Z* $0 did a CTCP $2- to $1. } } ^on ^ctcp "% % ping " { if ([$1]==N) { echo *Z* $0 has pinged you. } { echo *Z* $0 has pinged $1. } ^quote notice $0 :PONG $pingmsg  # this way we don't interfere with /a } ^on ^raw_irc "% privmsg % *finger*" { @ fnick = left($index(! $0) $0) ^quote notice $fnick :FINGER $fingmsg  if ([$2]==N) { echo *Z* $fnick did a CTCP FINGER to you. } { echo *Z* $fnick did a CTCP FINGER to $2. } } ^on ^join "*" if ([$0]!=N) { @ local = strip(~# $userhost()) if (rmatch($0!$local $autooplist) && autoops==[on]) { timer $opdelay if \(!ischanop\($0 $1\)\ && ischanop\($$N $1\)) \{//mode $1 +o $0\} } echo *>* $0 \($userhost()\) has joined channel $1 } { echo *>* You have joined channel $1 } # undernet compatibility hooks - if you don't use Undernet, they # won't do you any harm either on ^333 * echo *** Topic for $1 set by $2 on $stime($3) on ^329 * echo *** $1 : created $stime($2) alias silence quote silence alias si silence on ^raw_irc "% silence %" echo *** $1- on ^421 "% silence *" : # functions alias userpat { @ pt = left($index(. $1) $1) if (pt!=((pt-1)+1)) { @ function_return = [*$mid(1 64 $0)@*$mid(${1+index(. $1)} 256 $1)] } { @ function_return = [*$mid(1 64 $0)@$left($rindex(. $1) $1).*] } } alias userdom { @ pt = left($index(. $0) $0) if (pt!=((pt-1)+1)) { @ function_return = [*@*$mid(${1+index(. $0)} 256 $0)] } { @ function_return = [*@$left($rindex(. $0) $0).*] } } alias addop if ([$0]) { echo *Z* Adding $0 to your auto-op list if (match(*!*@* $0)) { @ autooplist = autooplist ## [ $0] } { userhost $0 -cmd if ([$3]!=[]) { @ pattern = [*!] ## userpat($3 $4) if (rmatch($pattern $autooplist)) { echo *Z* $0 is already on your list. } { ^notice $0 You have been added to ${N}'s auto op list. ^notice $0 Don't you feel better now? @ autooplist = autooplist ## [ ] ## pattern } ^assign -pattern } { echo *?* I cannot find $0 on IRC. echo *Z* If it's a pattern you want to autoop, it must match *!*@*. } } } { echo *Z* You must specify the nick or pattern. } alias delay if ([$0]) { @ opdelay = [$0] echo *Z* Delay before autoops set to $0. } { echo *Z* Delay before autoops is $opdelay } alias autoop { if (rmatch($0 on off)) { @ autoops = [$0] } { } echo *Z* Auto-op is $autoops } alias wallv { if (rmatch($0 on off)) { @ wallv = [$0] } { } if (wallv==[on]) { echo *Z* Wallops are being sent to +v people } { echo *Z* Wallops are not being sent to +v people } } alias rejoin { if (rmatch($0 on off)) { @ autorejoin = [$0] } { } echo *Z* Auto-rejoin is $autorejoin } alias banignore { if (rmatch($0 on off)) { @ banign = [$0] } { } echo *Z* Ignore on kickban is $banign } alias slowserver { if (rmatch($0 on off)) { @ slowserver = [$0] } { } echo *Z* Slowserver is $slowserver } alias setping if ([$0]) { @ pingmsg = [$0-] echo *Z* Your ping reply is now: $0- } { echo *Z* Your ping reply is: $pingmsg } alias setfing if ([$0]) { @ fingmsg = [$0-] echo *Z* Your finger reply is now: $0- } { echo *Z* Your finger reply is: $fingmsg } alias setquit if ([$0]) { @ quitmsg = [$0-] echo *Z* Your quit message is now: $0- } { echo *Z* Your quit message is: $quitmsg } alias listop { echo *Z* You have the following people in your auto-op list. @ listopv = 0 while ([$(#autooplist)]>listopv) { echo *Z* $word($listopv $autooplist) @ listopv = listopv + 1 } echo *Z* A total of $listopv people. } alias ignore if ([$0]) { if ([$1]) { @ what = [$1-] } { @ what = [all] } if (match(*@* $0)) { @ lastignore = [$0] //ignore $0 $what } { userhost $0 -cmd if ([$4]!=[]) { @ lastignore = userpat($3 $4) //ignore $lastignore $what } { echo *?* Cannot find $0 on IRC. } } } { //ignore } alias sig if ([$0]) { if ([$1]) { @ what = [$1-] } { @ what = [all] } userhost $0 -cmd if ([$4]!=[]) { @ lastignore = userdom($4) //ignore $lastignore $what } { echo *?* Cannot find $0 on IRC. } } { //ignore } alias unig if (lastignore) { //ignore $lastignore none silence -$lastignore ^assign -lastignore } alias kb if ([$0]) { if ([$1]) { @ kbres = [$1-] } { @ kbres = [game over, man. game over.] } userhost $0 -cmd if ([$4]!=[]) { @ pat = userpat($3 $4) mode * -o+b $0 *!$pat ^kick * $0 $kbres if (banign==[on]) { @ lastignore = pat //ignore $lastignore all silence $lastignore } { } ^assign -pat } { echo *?* Cannot find $0 on IRC. } } { echo *Z* Must specify a nick to kickban. } alias ksb if ([$0]) { if ([$1]) { @ kbres = [$1-] } { @ kbres = [game over, man. game over.] } userhost $0 -cmd if ([$4]!=[]) { @ pat = userdom($4) mode * -o+b $0 *!$pat ^kick * $0 $kbres if (banign==[on]) { @ lastignore = pat //ignore $lastignore all silence $lastignore } { } ^assign -pat } { echo *?* Cannot find $0 on IRC. } } { echo *Z* Must specify a nick to kick-siteban. } alias fkb if ([$0]) { if ([$1]) { @ kbres = [$1-] } { @ kbres = [game over, man. game over.] } userhost $0 -cmd if ([$4]!=[]) { @ pat = userdom($4) mode * -o+b $0 *!$pat if (banign==[on]) { @ lastignore = pat //ignore $lastignore all silence $lastignore } { } fk $pat $kbres ^assign -pat } { echo *?* Cannot find $0 on IRC. } } { echo *Z* Must specify a nick to filter-kickban. } alias fk if ([$0]) { if ([$1]) { @ fkres = [$1-] } { @ fkres = [though names may change each face retains the mask it wore] } echo *Z* Filter kick on $0 started. ^assign -ftbkick ^on -who "*" if \(match\(*$0* $$1!$$3@$$4\)\) { @ ftbkick = ftbkick ## [ $1] } ^set display off who $C wait ^set display on @ fkcnt = 0 @ kicked = 0 while ([$(#ftbkick)]>fkcnt) { if ([$word($fkcnt $ftbkick)]!=N) { @ kicked = kicked + 1 kick * $word($fkcnt $ftbkick) $fkres } { } @ fkcnt = fkcnt + 1 } echo *Z* kicked $kicked people from $C ^on who - } { echo *Z* You must specify a filter to kick. (/fk ) } alias fkick fk alias ban if ([$0]) { userhost $0 -cmd if ([$3]) { if ([$4]!=[]) { mode * +b *!$userpat($3 $4) } { echo *?* Cannot find $0 on IRC } } } { echo *Z* You must specify a nick. } alias sban if ([$0]) { userhost $0 -cmd if ([$3]) { if ([$4]!=[]) { mode * +b *!$userdom($4) } { echo *?* Cannot find $0 on IRC } } } { echo *Z* You must specify a nick. } alias sb { if ([$0]) { @ svbchan = [$0] } { @ svbchan = C } ^assign -svblist @ svbnext = 1 mode $svbchan b } on ^367 "*" if (hidebans) { if (match($2 $banpat) || match($banpat $2)) { @ banlist = banlist ## [ $2] } } { if (svbnext && [$1]==svbchan) { @ svblist = svblist ## [ $2] echo *b* $1 ${svbnext}: $2-3 @ svbnext = svbnext + 1 } { echo *** $1- } } on -368 "*" { ^assign -svbnext ^assign -hidebans ^assign -banpat } alias cb { ^assign -banlist @ hidebans = 1 @ banpat = [*] mode $C b wait ^unbans $banlist ^assign -banlist } alias ubaddr { ^assign -banlist @ hidebans = 1 @ banpat = [$0] ^mode $C b wait ^unbans $banlist ^assign -banlist } alias unban if ([$0]) { if ([$0]==(([$0]-1)+1)) { if (C==svbchan) { @ banlist = banlist ## [ ] ## word(${[$0]-1} $svblist) if ([$1]) { unban $1- } { ^unbans $banlist ^assign -banlist } } { echo *Z* No banlist available for $C } } { if (match(*@* $0)) { ubaddr $0 } { userhost $0 -cmd if ([$3]!=[]) { ubaddr $0!$3@$4 } { echo *Z Cannot find $0 on IRC } } } } { echo *Z* You need a nick, address or number. } alias ub unban alias unbans if ([$3]) { mode $C -bbbb $0 $1 $2 $3 unbans $4- } { if ([$2]) { mode $C -bbb $0 $1 $2 } { if ([$1]) { mode $C -bb $0 $1 } { if ([$0]) { mode $C -b $0 } } } } alias o if ([$4]) { mode $C +oooo $0-3 o $4- } { mode $C +oooo $0- } alias d if ([$4]) { mode $C -oooo $0-3 d $4- } { mode $C -oooo $0- } alias setaway if (isaway) { echo *Z* You're already away. } { ^away $0- if (C) { me is away - $0- - messages will be logged. } { } @ isaway = [on] ^assign -nickssent ^eval exec -name away touch $awayfile \\\; chmod 600 $awayfile \\\; cat >> $awayfile timer 1 //^msg %away >> set away at $Z - $0- << } alias setback { ^away ^exec -close %away ^exec cat $awayfile 2>/dev/null ^assign -isaway input "clear saved messages (y/n)? " if ([$0-]==[y]) { clearmes } } alias clearmes ^exec rm $awayfile alias sve { ^exec -name saver sed 's/... Currently .*:/^notify/' > $cfgfile //^msg %saver @ autoops = [$autoops] //^msg %saver @ autorejoin = [$autorejoin] //^msg %saver @ slowserver = [$slowserver] //^msg %saver @ autooplist = [$autooplist] //^msg %saver @ pingmsg = [$pingmsg] //^msg %saver @ fingmsg = [$fingmsg] //^msg %saver @ quitmsg = [$quitmsg] //^msg %saver @ delay = [$opdelay] //^msg %saver @ banign = [$banign] //^msg %saver @ wallv = [$wallv] //^msg %saver ^notify - redirect %saver notify ^exec -close %saver echo *Z* Save completed. } alias save echo *Z* Use /sve instead, or //save if you really want that. alias remop if ([$0]) { if (match(*@* $0)) { if (match(*!*@* $0)) { remoppat $0 } { remoppat *!$0 } } { userhost $0 -cmd if ([$3]!=[]) { remoppat $0!$3@$4 } { echo *?* $0 not found on IRC. } } } { echo *Z* You must specify a nick or address to remove. } alias remoppat { ^assign -opdlist @ rmopcnt = 0 while ([$(#autooplist)]>rmopcnt) { if (match($word($rmopcnt $autooplist) $0)) { echo *Z* $word($rmopcnt $autooplist) has been removed. } { @ opdlist = word($rmopcnt $autooplist) ## [ ] ## opdlist } @ rmopcnt = rmopcnt + 1 } ^assign -autooplist @ autooplist = opdlist ^assign -opdlist } alias clearop { ^assign -autooplist echo *Z* Auto-Op list now cleared. } # wallops code rewritten for compactness, based on one by Eagle_1 alias wall if (C) { @ walllist = [] @ wallmsg = [$0-] ^on ^353 "*" { dowall $3- ^on ^353 "*" echo *#* Users on $$2: $$3- } names $C } { echo *Z You must be on a channel to send a /wall } alias dowall if ([$0]) { if (([$[1]0]==[@]) || ([$0]==N) || (([$[1]0]==[+]) && (wallv==[on]))) { @ walllist = walllist ## [,] ## strip(+@ $0) dowall $1- } { dowall $1- } } { if ((walllist==[]) || (walllist==[,])) { echo *Z* No ops to wallop } { @ walllist = mid(1 512 $walllist) ^notice $walllist [WallOp/$C] $wallmsg ^assign -walllist } } alias inv if ([$1]) { inv $1- invite $0 $C } { invite $0 $C } alias quit { if ([$0]) { @ why = [$0-] } { @ why = quitmsg } quote QUIT :$why sleep 1 //quit } alias signoff quit alias exit quit alias bye quit # some help alias zhelpgeneral { echo *Z* Help on zer0's "general" functions: echo *Z* /m send a message echo *Z* /a follow up to your last message echo *Z* /q [] starts a query with , or gets off one echo *Z* /n [[-]] shortcut for /notify echo *Z* /w gets /whois info about echo *Z* /wi gets /whois info + idle time about echo *Z* /de sends a private action echo *Z* /p [] pings the user [or your current channel] echo *Z* /ver gets version info about echo *Z* /fing does a ctcp finger to echo *Z* /tim gets 's local time echo *Z* /ig [] ignores echo *Z* /sig [] ignores 's site echo *Z* /unig undoes your last /ig echo *Z* /cl clears screen echo *Z* /setaway sets yourself away, logs messages echo *Z* /setback sets yourself back, shows messages echo *Z* /clearmes erases saved messages echo *Z* /addop | adds user to your auto-op list echo *Z* /listop lists your auto-op list echo *Z* /remop | removes from your auto-op list } alias zhelpchannel { echo *Z* Help on zer0's channel-oriented functions: echo *Z* /j [] joins a channel \(# can be ommited\) echo *Z* /hop [] leaves a channel [the current one] echo *Z* /l short list of people on the current channel echo *Z* /ll long list of people on the current channel echo *Z* /mo does mode changes on the current channel echo *Z* /open removes weird modes on the current channel echo *Z* /t [<#chnl>] [] sets or sees the topic echo *Z* /k kicks from current channel echo *Z* /o ops people on current channel echo *Z* /d deops people on current channel echo *Z* /inv invites people to current channel echo *Z* /sb [] shows ban list on a channel [current one] echo *Z* /ban bans on current channel echo *Z* /ub |
unbans on current channel echo *Z* /ub [..] removes bans by number after a /sb echo *Z* /cb clears all bans on current channel echo *Z* /kb [] kicks and bans and possibly ignores echo *Z* /ksb [] kicks and site-bans (and possibly ignores) echo *Z* /fk [] kicks all users matching the filter echo *Z* /fkb [] site-bans and kicks all users from the site echo *Z* /wall sends to the ops on current channel } alias zhelpfiles { echo *Z* Help on zer0's file-oriented functions: echo *Z* /dc [] starts /dcc chat [last offered] echo *Z* /dg [] [] gets file via /dcc [last offered] echo *Z* /ds sends file via /dcc echo *Z* /dr [] renames an incoming file from echo *Z* /cdc closes a /dcc chat with echo *Z* /cdg closes a /dcc get from echo *Z* /cds closes a /dcc send to echo *Z* /ex shortcut for /exec echo *Z* /ls [] lists files in Unix directory echo *Z* /cat shows files echo *Z* /rm deletes files echo *Z* /ps lists processes } alias zhelpsettings { echo *Z* Help on zer0's settings: \(toggle means 'on' or 'off'\) echo *Z* /ss [] togles slow-server mode \(turn it on when echo you have a slow link to your server\) echo *Z* /delay [] set delay for the auto-ops echo *Z* /rejoin [] toggle auto-rejoin on kick echo *Z* /autoop [] toggle auto-ops echo *Z* /banignore [] togle /ignore on /kb echo *Z* /wallv [] toggles whether +v people get wallops echo *Z* /setping [] set your ping reply echo *Z* /setfing [] set your /ctcp finger reply echo *Z* /setquit [] set your /exit message echo *Z* /sve saves your settings and notify list } alias zhelpkeys { echo *Z* Help on zer0's keys: echo *Z* tab next nick for /msg echo *Z* ctrl-r previous nick for /msg echo *Z* ctrl-x go to next window echo *Z* ctrl-t go to next channel echo *Z* ctrl-z suspend irc \(come back with 'fg'\) echo *Z* ctrl-b toggle bold echo *Z* ctrl-v toggle inverse echo *Z* ctrl-_ toggle underlined echo *Z* ctrl o type in last message } alias zhelpnew { echo *Z* New functions since zer0 version 0037: echo *Z* /sig = site-ignore /ksb = kick site-ban echo *Z* /fkb = filter-kick-ban /wall = send to channel ops echo *Z* /setquit = sets your quit msg /wallv = wallops go to +v ppl echo *Z* Improved functions: echo *Z* /sb shows ban and numbers them echo *Z* /ub (unban) takes nick, address, or ban number echo *Z* /fk no longer kicks you echo *Z* /setaway logs userhost and time, and sends notice only once echo *Z* userhost on msg removed, it was slow and useless } alias zhelp if (([$0]==[general]) || ([$0]==[channel]) || ([$0]==[files]) || ([$0]==[settings]) || ([$0]==[keys]) || [$0]==[new]) { zhelp$0 } { eval echo *Z* This is zer0, by orabidoo, version $version echo *Z* echo *Z* To get help on zer0's general aliases, type /zhelp general echo *Z* To get help on the keys that zer0 users, type /zhelp keys echo *Z* To get help on zer0's channel functions, type /zhelp channel echo *Z* To get help on zer0's file functions, type /zhelp files echo *Z* To get help on zer0's settings, type /zhelp settings echo *Z* To see what's new on this version, type /zhelp new echo *Z* echo *Z* Arguments between [] are optional echo *Z* echo *Z* For comments, bug reports, ideas: email roger.espel.llima@ens.fr } eval load $cfgfile eval echo *Z* orabidoo's *zer0* version $version loaded, type /zhelp for help