## sysfail.irc \-/ The script written for System Failure ## Written by skullY ## Some of this was ripped. I don't have the time to learn ALL I need to know about ircII scripting, nor do I claim to. ## However, I have learned a great deal, and most everything written after .99 beta is my own code, and not ripped. ## If you haven't noticed this already, I formatted it for 132 columns. If you wish to view it correctly, set your terminal ## to at least 132 columns. If you are using linux, edit /etc/lilo.conf, and change the vga=normal line to vga=7. As for ## other terminals, I couldn't tell you, nor do I wish to try. The script will still look good in use on 80, but if you're ## going to edit the code, good luck. ## Greetz go out to everyone on EFnet's #peng, especially kcochran, pinguino, logicbox, Mr_SoniK, Xavier, and spee; FEFnet's ## #continuum especially Runt, Viv, Ryan, SNeeP, mR_ed, mG, and inubus; and to everyone else who helped me test/debug this ## script. ### History ## 1.0pre4 ## Woop! Hey, I may finish this yet one day! Added a command to strip ansi out of channel modes..... ## ## 1.0pre3a ## Added /weather, originally written by kadafi, but moded to use zip codes instead of City/State ## 1.0pre3 ## Added the ^K bind (Joining last invited channel) ## Made a nifty 2 line status bar ## 1.0pre2 ## Added the "name" command and the namef() function. ## Added the randletter() function ## Cleaned up some variables so it uses less memory ## 1.0pre1a ## After reading the epic4pre2 changelog, added stuff based on it. Most notably you can now set yourself away and have it go to ## all channels, not just the current channel. Also changed some of the publics, thanks to Ryan for pointing out inconsistencies ## and helping things to look better. ## Made showing the channel name optional ## Fixed a bug with the status bar if you don't have color on ## Fixed a bug with /chelp ## 1.0pre1 ## First release candidate. Hopefully there aren't too many bugs. This is mostly private. ## .99a beta ## Changed some publics, added the correct time while away and the msg saver. Getting ready for version 1.0 ## .99 beta ## Made it epic only (Easier to script in, and anyone who doesn't use epic should be shot anyway) ## Added DarkFox's color.irc with inubus's mods ## Added the TLD lookup to /whois ## .98a beta ## Added a custom version reply. Changed a few visuals ## .98 beta ## Added various numerics. Took out the /on windows for server notices ## .97 beta ## Mostly done. Everything looks pretty good set NOVICE OFF set EXEC_PROTECTION OFF if (V < 19970130) { //echo *** YOUR CLIENT IS TOO OLD. EITHER INSTALL SOMETHING NEWER OR BEG YOUR SYSADMIN TO! //echo *** I AM NOW GOING TO QUIT SO YOU DON'T GET FUCKED OVER! //signoff I'm a dumbass with an old client } if (!epic()) { //echo *** SysFail.irc needs EPIC4, or an equivalent client. EPIC4 is available from //echo *** ftp.neato.org:/pub/epic or ftp.acronet.net:/pub/ircii. //signoff SysFail.irc needs EPIC4. } if (bitchx()) { //echo *** SysFail.irc was written with EPIC4 in mind. I have not tested it with BitchX //echo *** and do not know if everything will work. You are proceeding at your own risk. } #Dump all the current /ons, variables, and aliases to avoid conflicts //dump all # Customizable things @ msg.kick = [\$N] @ msg.ban = [\$N] @ msg.signoff = [\$N] @ selfmode = [+iw] assign msg.quit SysFail.irc v1.0pre4 beta by skullY :$namef() assign sf.version SysFail.irc v1.0pre4 beta by skullY \($uname()\\) :$namef() @ sf.versiononly = [SysFail.irc v1.0pre4 beta] @ autoaway.msg = [Idle for too long] @ s.ts = [1] @ tostoremsg = [1] @ color = [0] @ sf.quote = [~/.sysfail.quote] @ showchannel = [0] @ dictionary = [ /usr/dict/words ] # Random away messages @ msg.away[0] = [Back when I feel like it] @ msg.away[1] = [bbl] @ msg.away[2] = [Going to take a leak] @ msg.away[3] = [Gone] @ msg.away[4] = [Going to jack off] @ msg.away[5] = [Fly fatass fly!] @ away.limit = [6] # Random back messages @ msg.back[0] = [Woohoo!] @ msg.back[1] = [Anyone know a good way to get human blood off your hands?] @ msg.back[2] = [Dusty D. Dissociation] @ msg.back[3] = [Cocking C. Lockings] @ msg.back[4] = [Schoolhouse E. Anvil] @ msg.back[5] = [What you need is a fatty boom batty blunt, then I guarantee you'll see a sailboat, an ocean and maybe even some of them big-titted mermaids doing some of that lesbian shit!] @ msg.back[6] = [Driving I. Sucked] @ msg.back[7] = [Imprisons U. Better] @ msg.back[8] = [Grapevine O. Flowcharts] @ msg.back[9] = [Pitiful T. Circumcision] @ msg.back[10] = ["They that can give up essential liberty to obtain a little temporary safety deserve neither liberty or safety"] @ back.limit = [11] # Stuff to put in the version reply @ msg.quit[0] = [It's not BitchX \(Thank God\)] @ msg.quit[1] = [Frootier then a nutcake] @ msg.quit[2] = [It rox ur fro'] @ msg.quit[3] = [It kicks mIRC's ass] @ msg.quit[4] = [It eats K.Mardam-Bey for lunch] @ msg.quit[5] = [Mooooooooooooooooooooo!] @ msg.quit[6] = [Fancying D. Buffering] @ msg.quit[7] = [Columnizing A. Bricklaying] @ msg.quit[8] = [Harvester I. Crippling] @ msg.quit[9] = [Intoxicate C. Harpers] @ msg.quit[10] = [Conf info! 1-888-503-4455 pin 321 345 don't give out!@#%!#@$!@$#@!] @ ver.limit = [11] alias randletter { if ([$0]) { eval @ var0 = $0 @ randcount = 0 while ( var0 > randcount ) { eval @ randcharnumb = rand(26) + 65 ^assign randcharwhileloopvar $randcharwhileloopvar$chr($randcharnumb) @ var0-- } ^assign function_return $randcharwhileloopvar ^assign -randcharwhileloopvar ^assign -randcharnumb ^assign -randcount }{ eval @ randcharnumb = rand(26) + 65 ^assign function_return $chr($randcharnumb) } } echo  s$$$$$$$$ss. s$$$$$ $$$$$$$s s$$$$$$$$ss. $$$$$SSs s$^$$ $$$$,,$$$$$s echo  $$$$$'`$$$$$$Ss $$$$ $$$$$$$ $$$$$'`$$$$$$Ss $S $$ $$s $$$$$ $$$$' echo  $$$$$' $$$$$$$'$$$$$ $$$$$$ $$$$$' $$$$$$$'s$$sss $$$s$$$s $$$$ $$$ $$$$$$ echo  `$$$, `$$$$ `$$$$$o$$$$$$$s`$$$, `$$$$ $$$$^^ $$$$ $$$$s`$$$ $$$ `$$$$$ echo  `S$$$$$$$SSs ^^^' `$$$$$$$$s`S$$$$$$$SSs s$$$,s$$$$$ $$$$$s $$ $$$s $$$$$ echo s$$$$$s $$$$$$$,sSSS$$s $$$^s$$$$$s $$$$$$$,`$$$$ $$$$$s`$$$$'s$'$$$$$$$$$$' echo $$$$$$$$ $$$$$$$$s $$$$$$ $$$ $$$$$$$$ $$$$$$$$s system failure(irc)  echo  `$$$$$$$s$$$$$$$$ $$$$$$ $$$$s`$$$$$$$s$$$$$$$$a Saint skullY the Dazed product echo  `$$$$$$$$$$$$' S$$$$$$sS$$$$$s`$$$$$$$$$$$$'  sysfail@sysfail.org  alias sv eval say .oO\($sf.versiononly\)\($J\)\($uname()\)Oo. load .sysfail.sav # color.irc originally by DarkFox with mods by inubus @ dacol = [\[SysFail\]] @ tx = [${BLU}\[${WHT}SysFail${BLU}\]${RST}] if ([$display_ansi]!=[]) { @ color.stat = 0 alias secho if ([$0]) {//xecho -level crap $tx $*} alias color { if (color.stat == 0) { ^set DISPLAY_ANSI ON ^set EIGHT_BIT_CHARACTERS ON @ BLD = [] ^assign BLNK [\;5m ^assign CL [\;0m ^assign WHT [\;37m ^assign RED [\;31m ^assign GRN [\;32m ^assign YEL [\;33m ^assign BLU [\;34m ^assign MAG [\;35m ^assign CYN [\;36m ^assign BBLK [\;40m ^assign BRED [\;41m ^assign BGRN [\;42m ^assign BYEL [\;43m ^assign BBLU [\;44m ^assign BMAG [\;45m ^assign BCYN [\;46m ^assign BWHT [\;47m ^assign HBLU [1\;34m ^assign HMAG [1\;35m ^assign HCYN [1\;36m ^assign HRED [1\;31m ^assign HGRN [1\;32m ^assign HYEL [1\;33m ^assign HBLK [1\;30m ^assign HWHT [1\;37m ^assign RST  @ SV.COLOR.THINGY = [] ^SET INPUT_PROMPT ${BLU}<${RST}$N${BLU}>${RST} ^eval SET BANNER ${BLU}\[${WHT}SysFail${BLU}\]${RST} ^SET STATUS_FORMAT1 ${BBLU}%4 (%T) %*%=%@%N!%1%# %C%+ %>${RST} ^SET STATUS_FORMAT2 ${BBLU}%A%2%3 %M %H%B%Q%D %> %U${RST} @ color = 1 @ color.stat = 1 @ dacol = [${BLU}\[${WHT}SysFail${BLU}\]${RST}] @ tx = [${BLU}\[${WHT}SysFail${BLU}\]${RST}] eval echo ^secho ${YEL}A${RED}N${BLU}S${GRN}i ${MAG}Color Support Has Been Enabled!${RST} }{ @ BLD = [] @ RST = [] @ RED = [] @ GRN = [] @ YEL = [] @ BLU = [] @ MAG = [] @ CYN = [] @ WHT = [] @ BBLU = [] @ BMAG = [] @ BCYN = [] @ BWHT = [] @ HBLU = [] @ HMAG = [] @ HCYN = [] @ HRED = [] @ HGRN = [] @ HYEL = [] @ HBLK = [] @ HWHT = [] @ SV.COLOR.THINGY = [] @ color = 0 @ color.stat = 0 ^set input_prompt <$N> ^eval SET BANNER ${BLU}\[${WHT}SysFail${BLU}\]${RST} ^SET STATUS_FORMAT1 ${BBLU}%4 (%T) %*%=%@%N!%1%# %C%+ %>${RST} ^SET STATUS_FORMAT2 ${BBLU}%A%2%3 %M %H%B%Q%D %> %U${RST} ^set EIGHT_BIT_CHARACTERS OFF @ dacol = [\[SysFail\]] @ tx = [\[SysFail\]] eval echo $tx ANSi Color Support Has Been Disabled. }} #=-=-=-= The Boring Stuff I ripped Myself -inubus alias chelp { secho ${GRN}=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=${RST} secho ${GRN}= ${BLD}${WHT}SysFail ${GRN}C${BLU}o${RED}l${YEL}o${CYA}r${BLD} ${MAG}Help ${GRN}=${RST} secho ${GRN}=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=${RST} secho ${GRN}= ${BLD}${MAG}/Color${RST}${BLD} - Enable/Disable ${YEL}A${RED}N${BLU}S${GRN}i ${RST}Color. ${GRN}=${RST} secho ${GRN}= =${RST} secho ${GRN}= ${BLD}${MAG}\$randcol\(message\)${RST}${BLD} - Now a Function. Gives ${GRN}=${RST} secho ${GRN}= ${RST}Each Letter In Your ${GRN}=${RST} secho ${GRN}= ${RST}Message A Random Color. ${GRN}=${RST} secho ${GRN}= =${RST} secho ${GRN}= ${BLD}${MAG}/LCols${RST}${BLD} - List Of Colors and ${GRN}=${RST} secho ${GRN}= ${RST}How To Use Them. ${GRN}=${RST} secho ${GRN}=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=${BLU}[${BLD}${WHT}SysFail${BLU}${BLD}]${GRN}=-=${RST} } alias lcols { secho ${GRN}=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=${RST} secho ${GRN}= ${MAG}List of ${BLD}${GRN}C${BLU}o${RED}l${YEL}o${CYA}r${WHT}s${BLD} ${MAG}and Usage ${GRN}=${RST} secho ${GRN}=-=-=-=-=-=${BLU}[${BLD}${WHT}Foreground${BLU}${BLD}]${GRN}-=-=-=-=-=-=${RST} secho ${GRN}= ${RST}1. ${BLD}\$\{RED\}${BLD} - ${RED}Red ${GRN}=${RST} secho ${GRN}= ${RST}2. ${BLD}\$\{GRN\}${BLD} - ${GRN}Green ${GRN}=${RST} secho ${GRN}= ${RST}3. ${BLD}\$\{YEL\}${BLD} - ${YEL}Yellow ${GRN}=${RST} secho ${GRN}= ${RST}4. ${BLD}\$\{BLU\}${BLD} - ${BLU}Blue ${GRN}=${RST} secho ${GRN}= ${RST}5. ${BLD}\$\{MAG\}${BLD} - ${MAG}Magenta ${GRN}=${RST} secho ${GRN}= ${RST}6. ${BLD}\$\{CYN\}${BLD} - ${CYN}Cyan ${GRN}=${RST} secho ${GRN}= ${RST}7. ${BLD}\$\{WHT\}${BLD} - ${WHT}White ${GRN}=${RST} secho ${GRN}= ${RST}8. ${BLD}\$\{HRED\}${BLD} - ${HRED}Red ${GRN}=${RST} secho ${GRN}= ${RST}9. ${BLD}\$\{HGRN\}${BLD} - ${HGRN}Green ${GRN}=${RST} secho ${GRN}= ${RST}10. ${BLD}\$\{HYEL\}${BLD} - ${HYEL}Yellow ${GRN}=${RST} secho ${GRN}= ${RST}11. ${BLD}\$\{HBLU\}${BLD} - ${HBLU}Blue ${GRN}=${RST} secho ${GRN}= ${RST}12. ${BLD}\$\{HMAG\}${BLD} - ${HMAG}Magenta ${GRN}=${RST} secho ${GRN}= ${RST}13. ${BLD}\$\{HCYN\}${BLD} - ${HCYN}Cyan ${GRN}=${RST} secho ${GRN}= ${RST}13. ${BLD}\$\{HWHT\}${BLD} - ${HWHT}White ${GRN}=${RST} secho ${GRN}= ${RST}14. ${BLD}\$\{HBLK\}${BLD} - ${HBLK}Black ${GRN}=${RST} secho ${GRN}=-=-=-=-=-=${BLU}[${BLD}${WHT}Background${BLU}${BLD}]${GRN}-=-=-=-=-=-=${RST} secho ${GRN}= ${RST}1. ${BLD}\$\{BBLK\}${BLD} - ${BBLK}Black${RST} ${GRN}=${RST} secho ${GRN}= ${RST}2. ${BLD}\$\{BRED\}${BLD} - ${BRED}Red${RST} ${GRN}=${RST} secho ${GRN}= ${RST}3. ${BLD}\$\{BGRN\}${BLD} - ${BGRN}Green${RST} ${GRN}=${RST} secho ${GRN}= ${RST}4. ${BLD}\$\{BYEL\}${BLD} - ${BYEL}Yellow${RST} ${GRN}=${RST} secho ${GRN}= ${RST}5. ${BLD}\$\{BBLU\}${BLD} - ${BBLU}Blue${RST} ${GRN}=${RST} secho ${GRN}= ${RST}6. ${BLD}\$\{BMAG\}${BLD} - ${BMAG}Magenta${RST} ${GRN}=${RST} secho ${GRN}= ${RST}7. ${BLD}\$\{BCYN\}${BLD} - ${BCYN}Cyan${RST} ${GRN}=${RST} secho ${GRN}= ${RST}8. ${BLD}\$\{BWHT\}${BLD} - ${BWHT}${HBLK}White${RST} ${GRN}=${RST} secho ${GRN}=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=${RST} secho ${GRN}= ${BLD}${RED}Usage:${BLD} ${RST}/csay ${GRN}=${RST} secho ${GRN}= ${BLD}${RED}Ex:${BLD} ${RST}/csay howdy ${GRN}=${RST} secho ${GRN}= =${RST} secho ${GRN}= ${BLD}${RED}Usage:${BLD} ${RST}/cmsg ${GRN}=${RST} secho ${GRN}= ${BLD}${RED}Ex:${BLD} ${RST}/cmsg inubus howdy ${GRN}=${RST} secho ${GRN}=-=-=-=-=-=-=-=-=-=-=-=${BLU}[${BLD}${WHT}SysFail${BLU}${BLD}]${GRN}=-=${RST} } alias csay { say $randcol($*) } alias cmsg { msg $0 $randcol($1-) } #=-=-=-= JailBird's Random Color Alias, Slightly Modified #=-=-=-= Made into $randcol() by Runt alias randcol { ^assign MSGTMP $0- @ MSG = [] EVAL @ NUMCHAR = [$@MSGTMP] @ RANDTMP = 0 while (RANDTMP < NUMCHAR) { if ([$mid($RANDTMP 1 $0-)]!=[ ]) { @rcolor = [$rand(7)] if ([$rcolor]==[0]) { @ COLOR = [${RST}${RED}] }{ if ([$rcolor]==[1]) { @ COLOR = [${RST}${GRN}] }{ if ([$rcolor]==[2]) { @ COLOR = [${RST}${YEL}] }{ if ([$rcolor]==[3]) { @ COLOR = [${RST}${BLU}] }{ if ([$rcolor]==[4]) { @ COLOR = [${RST}${MAG}] }{ if ([$rcolor]==[5]) { @ COLOR = [${RST}${CYA}] }{ if ([$rcolor]==[6]) { @ COLOR = [${RST}${WHT}] }}}}}}} @ MSG = MSG ## COLOR ## [$mid($RANDTMP 1 $0-)] } { @ MSG = MSG ## [ ] } @ RANDTMP = RANDTMP + 1 } @ MSG = MSG ## [${RST}] ^assign FUNCTION_RETURN $MSG } if ([$color]==[1]) { Color } secho Type ${MAG}/Color${RST} To Enable/Disable ${YEL}A${RED}N${BLU}S${GRN}i ${RST}Color } # IRC settings SET ALWAYS_SPLIT_BIGGEST ON SET AUTO_NEW_NICK ON SET AUTO_RECONNECT ON SET AUTO_REJOIN ON SET AUTO_UNMARK_AWAY OFF SET AUTO_WHOWAS ON SET BANNER [SysFail] SET BEEP ON SET BEEP_MAX 3 SET BEEP_ON_MSG MSGS SET BEEP_WHEN_AWAY 1 SET BOLD_VIDEO ON SET CHANNEL_NAME_WIDTH 0 eval SET CLIENT_INFORMATION I read System Failure. ${BRED}PHeeR${RST} SET CLOCK ON SET CLOCK_24HOUR ON SET CMDCHARS / SET COMMAND_MODE OFF SET COMMENT_HACK ON SET CONTINUED_LINE SET DCC_LONG_PATHNAMES ON SET DCC_SLIDING_WINDOW 1 SET DISPLAY ON SET DISPLAY_ANSI ON SET EIGHT_BIT_CHARACTERS ON SET EXEC_PROTECTION OFF SET FLOATING_POINT_MATH OFF SET FLOOD_AFTER 3 SET FLOOD_RATE 3 SET FLOOD_USERS 3 SET FLOOD_WARNING OFF SET FULL_STATUS_LINE ON SET HELP_PAGER ON SET HELP_PATH /usr/local/lib/irc/help SET HELP_PROMPT ON SET HELP_WINDOW OFF SET HIDE_PRIVATE_CHANNELS OFF SET HIGHLIGHT_CHAR BOLD SET HISTORY 150 SET HOLD_MODE OFF SET HOLD_MODE_MAX 0 SET INDENT ON SET INPUT_ALIASES OFF SET INPUT_PROMPT ${BLU}<${RST}$N${BLU}>${RST} SET INPUT_PROTECTION ON SET INSERT_MODE ON SET INVERSE_VIDEO ON SET LASTLOG 1000 SET LASTLOG_LEVEL ALL SET LOAD_PATH ~/irc:/usr/local/lib/irc/script:. SET LOG OFF SET LOGFILE irc.log SET MAIL 2 SET MAX_RECURSIONS 25 SET MODE_STRIPPER OFF SET NO_CTCP_FLOOD ON SET NOTIFY_HANDLER NOISY SET NOTIFY_LEVEL ALL SET NOTIFY_ON_TERMINATION ON SET NOVICE OFF SET NUM_OF_WHOWAS 1 SET REVERSE_STATUS_LINE_VAR ON SET SCROLL ON SET SCROLL_LINES 1 SET SECURITY 0 SET SEND_IGNORE_MSG OFF SET NO_CONTROL_LOG ON SET SHELL /bin/sh SET SHELL_FLAGS -c SET SHELL_LIMIT 0 SET SHOW_AWAY_ONCE ON SET SHOW_CHANNEL_NAMES ON SET SHOW_END_OF_MSGS ON SET SHOW_NUMERICS OFF SET SHOW_STATUS_ALL OFF SET SHOW_WHO_HOPCOUNT ON SET STATUS_AWAY Away SET STATUS_CHANNEL %C SET STATUS_CHANOP @ SET STATUS_CLOCK %T SET STATUS_HOLD : SET STATUS_HOLD_LINES %B SET STATUS_MAIL (Mail: %M) SET STATUS_MODE (+%+) SET STATUS_NO_REPEAT OFF SET STATUS_NOTIFY (W: %F) SET STATUS_OPER * SET STATUS_OVERWRITE (Overwrite) SET STATUS_QUERY (Query: %Q) SET STATUS_SERVER (%S) SET STATUS_UMODE (+%#) SET STATUS_USER [You are PHeeRaBLe] SET STATUS_VOICE + SET STATUS_WINDOW ^^^ SET STATUS_FORMAT %4 (%T) %*%=%@%N%# %C%+ %H%B%Q%D %> %U SET STATUS_FORMAT1 %4 (%T) %*%=%@%N!%1%# %C%+ %> SET STATUS_FORMAT2 %A%2%3 %M %H%B%Q%D %> %U WINDOW DOUBLE ON EVAL SET STATUS_USER1 $X EVAL SET STATUS_USER3 Time Started: $stime($F) EVAL SET STATUS_USER4 [SF-$randletter()$tolower($randletter())$randletter(2)$tolower($randletter())] SET SUPPRESS_SERVER_MOTD ON SET SUPPRESS_FROM_REMOTE_SERVER OFF SET TAB ON SET TAB_MAX 0 SET TRANSLATION ASCII SET UNDERLINE_VIDEO ON SET USER_INFORMATION Rape the System Failure - http://www.sysfail.org SET VERBOSE_CTCP ON SET WARN_OF_IGNORES OFF # Stuff I wrote personally alias save { secho Saving settings, please wait eval : $rename(~/.sysfail.sav ~/sysfail.bak) eval : $unlink(~/.sysfail.sav) exec touch ~/.sysfail.sav ^eval assign SAVEFILE $open(~/.sysfail.sav W) eval : $write($SAVEFILE \@ msg.kick = [$msg.kick]) eval : $write($SAVEFILE \@ msg.ban = [$msg.ban]) eval : $write($SAVEFILE \@ selfmode = [$selfmode]) eval : $write($SAVEFILE \@ msg.quit = [$msg.quit]) eval : $write($SAVEFILE \assign sf.version $sf.version) eval : $write($SAVEFILE \@ autoaway.msg = [$autoaway.msg]) eval : $write($SAVEFILE \@ s.ts = [$s.ts]) eval : $write($SAVEFILE \@ tostoremsg = [$tostoremsg]) eval : $write($SAVEFILE \@ color = [$color]) eval : $write($SAVEFILE \@ showchannel = [$showchannel]) eval : $close($SAVEFILE) eval : $write($SAVEFILE \@ zip = [$zip]) ^assign -SAVEFILE secho Settings saved } alias kickmsg ^assign msg.kick $*;secho Kick Message set to: $* alias banmsg ^assign msg.ban $*;secho Ban Message set to: $* alias quitmsg ^assign msg.signoff $*;secho Signoff Message set to: $* alias selfmode ^assign selfmode $*;secho Your mode set to: $* alias versionmsg ^assign sf.version $*;secho Version Message set to: $* alias autoawaymsg ^assign autoaway.msg $*;secho Autoaway Message set to: $* alias savemsgon { ^assign tostoremsg 1 secho Messages will be saved while away } alias savemsgoff { ^assign tostoremsg 0 secho Messages will not be saved while away } alias savemsg { if ([$tostoremsg]==[1]) { ^assign tostoremsg 0 secho Messages will not be saved while away }{ ^assign tostoremsg 1 secho Messages will be saved while away }} alias tson { ^assign s.ts 1 secho Timestamp turned on } alias tsoff { ^assign s.ts 0 secho Timestamp turned off } alias ts { if ([$s.ts]==[1]) { ^assign s.ts 0 secho Timestamp turned off }{ ^assign s.ts 1 secho Timestamp turned on }} alias showchannel { if ([$showchannel]==[1]) { ^assign showchannel 0 secho Showchannel turned off }{ ^assign showchannel 1 secho Showchannel turned on }} alias saycrap eval say $randchar(26) alias capitolf { ^assign function_return $toupper($left(1 $0))$tolower($mid(1 256 $0)) } alias name { if ([$0]) { eval @ namenum = $0 @ namecount = 0 while ( namenum > namecount ) { say $namef() @ namecount++ } }{ say $namef() } } alias randletter { if ([$0]) { eval @ var0 = $0 @ randcount = 0 while ( var0 > randcount ) { eval @ randcharnumb = rand(26) + 65 ^assign randcharwhileloopvar $randcharwhileloopvar$chr($randcharnumb) @ var0-- } ^assign function_return $randcharwhileloopvar ^assign -randcharwhileloopvar ^assign -randcharnumb ^assign -randcount }{ eval @ randcharnumb = rand(26) + 65 ^assign function_return $chr($randcharnumb) } } alias namef { eval @ randcharnumb = rand(26) + 65 eval ^assign function_return $capitolf($randread($DICTIONARY)) $toupper($randletter()). $capitolf($randread($DICTIONARY)) } alias randquote { eval say $randread($sf.quote) } alias ctcp { secho CTCP $1-->$0 //ctcp $* } alias m msg alias n notice alias wi whois $0 $0 alias ww whowas alias inv invite $0 $C alias sc //names $C alias ig //ignore $0 all alias noig //ignore $0 none alias cat //exec -o cat $0 alias umode //mode $N $0- alias op { //mode $C +ooo $0 $1 $2 if ([$3]) {/op $3-}} alias deop { //mode $C -ooo $0 $1 $2 if ([$3]) {/deop $3-}} alias dop deop alias mc //quote MODE $C -lsnmpitk $decode($set.key) alias signoff quit alias bye quit alias exit quit alias quit { if ([$0]) { eval secho =SIGNOFF= $N \($*\) //quit $* } { eval secho =SIGNOFF= $N \(${msg.quit}\) eval //quit $msg.quit } } alias operwall quote operwall :$* alias kick k alias k { if ([$1]) { //kick $C $0 $1- }{ //kick $C $0 $msg.kick } } alias ban { if ([$0]) { if ([$userhost($0)]==[@]){ secho $0 is not on IRC! }{ mode $C -o+b $0 $mask(4 $userhost($0)) } }{ secho Usage: /ban } } alias bk { if ([$0]) { @ tmpbanmes = [$1-] ban $0 userhost $0 -cmd if ([$4]!=[]) { if ([$tmpbanmes]) { //kick $C $0 $tmpbanmes } { //kick $C $0 $msg.ban } } } } { secho ^BUsage^B: /bk <^_nick^_> } alias unban { if ([$0]) { fe ($0-) ii { ^userhost $ii -cmd if ([$4]!=[]) { @ bt.host = [$0\!$3\@$4];^on ^367 "% #% *" { if (match($2 $bt.host)) { mode $C -b $2 } ;^assign -bt.host } ;^mode $C +b } } } { secho Usage: /unban } } assign REMOTE www.weather.com assign PORT 80 alias secho //echo \[SysFail\] $* alias weather { secho Generating Weather Report, please wait... ^@ MESSAGE = [GET /weather/us/zips/${zip}.html HTTP/1.0] ^exec -name weather telnet $remote $port # ^on ^exec "weather **" {assign location $before(< $after(3 zip $1-))} ^on ^exec "weather *and vicinity*" {assign location $beforew(and $1-)} ^on ^exec "weather *<FONT SIZE=2>last*" {assign lastupdate $before(< $after(1 > $1-))} ^on ^exec "weather *Sunrise:*" {assign sunrise $before(< $after(3 > $1-))} ^on ^exec "weather *Sunset:*" {assign sunset $before(< $after(3 > $1-))} ^on ^exec 'weather *<IMG SRC="/weather*ALT*WIDTH*HEIGHT*' {assign status $sar(g/"//$sar(g/<BR>/ /$before(WIDTH $after(2 " $1-))))} ^on ^exec "weather *temp:*" {assign temp $before(& $after(1 : $1-))} ^on ^exec "weather *wind:*" {assign wind $before(< $after(2 > $1-))} ^on ^exec "weather *humidity:*" {assign humidity $before(< $after(2 > $1-))} ^on ^exec "weather *barometer:*" {assign bar $before(< $after(2 > $1-))} ^on ^exec "weather *" {} ^on ^exec "weather Trying *" ^on ^exec "weather *Trying *" ^on ^exec "weather Connected to *" ^on ^exec "weather *Connected to *" ^on ^exec "weather *Connection closed*" {echo connection was closed bitch} ^on ^exec "weather Escape character is '^]'." {^exec -in %weather $message;^exec -in %weather 0} ^on ^exec_exit %weather {wcache} ^on ^exec_error %weather {} } alias wcache { secho Weather Report for ${RED}$location\.${RST} echo ${MAG}Status:${RST} $capitolf($status) ${MAG}Temp:${RST} $temp ${MAG}Wind:${RST} $wind echo ${MAG}Humidity:${RST} $humidity ${MAG}Barometer:${RST} $bar echo ${MAG}Sunrise:${RST} $sunrise ${MAG}Sunset:${RST} $sunset echo ${MAG}Last updated:${RST} $sar(g/last updated //$lastupdate) secho End of Weather Report for ${RED}$location\.${RST} } alias zip { assign ZIP $0 secho Your zipcode has been set to $0 } alias nokey //quote MODE $C -k $decode($set.key) alias cdban cb alias cb { secho Clearing all bans for $C\ @ banvar = [] ^on ^367 "*" { @ banvar = [$2 $banvar] } //^mode $C +b wait cub $banvar ^on 367 - "*" } alias cub { if ([$3]) { //mode $C -bbb $0 $1 $2 cub $3- }{ if ([$2]) { //mode $C -bbb $0 $1 $2 }{ if ([$1]) { //mode $C -bb $0 $1 }{ if ([$0]) { //mode $C -b $0 }}}}} alias uptime exec -o uptime alias uname exec -o uname -a alias showoff uptime;uname alias cycle { secho Cycling on $C @ tmpchn = [$C] //part $C wate //join $tmpchn } alias wate { wait -cmd # wait -cmd $0- } alias ver { if ([$0]) { ctcp $0 VERSION } { ctcp $C VERSION } } alias join j alias j if ((![$0])||([&]==[$[1]0])||([#]==[$[1]0])||([$0]==[0])||([-]==[$[1]0])) {//join $0-} {//join #$0-} alias away { if ([$0]) { gone $* } { back } } alias back { if ([$0]) { @ gonetime = (time() - AWAYTIME) @ goneminutes = (gonetime / 60) @ goneseconds = (gonetime % 60) ^assign IAMAWAY 0 ^set -status_user2 ^eval quote PRIVMSG $tr(/ /,/$mychannels()) :ACTION is here again. \[$0-\] Gone for $goneminutes minutes and $goneseconds seconds echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) = $N is here again. \{$0-\} Gone for $goneminutes minutes and $goneseconds seconds //away playback } { eval back $msg.back[$rand($back.limit)] } } alias gone { if ([$0]) { ^assign msgnumber 0 ^assign IAMAWAY 1 ^assign awaytime $time() ^set status_user2 \($0-\) if ([$tostoremsg]==[0]) { ^eval quote PRIVMSG $tr(/ /,/$mychannels()) :ACTION is gone \[$0-\] Messages will be saved to /dev/null echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) = is gone \[$0-\] Messages will be saved to /dev/null }{ ^eval quote PRIVMSG $tr(/ /,/$mychannels()) :ACTION is gone \[$0-\] Messages will be saved and traded for valuable prizes. echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) = $N is gone \[$0-\] Messages will be saved and traded for valuable prizes. } //away $0- } { eval gone $msg.away[$rand($away.limit)] } } alias playback { if ([$msgnumber]==[0]) { secho No Messages to playback }{ secho You have $msgnumber stored messages @ pbcount = 0 while (pbcount < msgnumber) { echo $decode($storemsg[$pbcount]) @ pbcount = pbcount + 1 } secho End of Stored Messages } } # Various /on's on ^public * if ([$showchannel]==[1]) { if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) ${BLU}\<${RST}${CYN}$1${RST}:$0${BLU}\>${RST} $2- }{ //echo ${BLU}\<${RST}${CYN}$1${RST}:$0${BLU}\>${RST} $2- } }{ if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) ${BLU}\<${RST}$0${BLU}\>${RST} $2- }{ //echo ${BLU}\<${RST}$0${BLU}\>${RST} $2- }} on ^public_other * if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) ${BLU}\<${RST}$1:$0${BLU}\>${RST} $2- }{ //echo ${BLU}\<${RST}$1:$0${BLU}\>${RST} $2- } on ^public_msg * if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) \{$0/msg\($1\)\} $2- }{ //echo \{$0/msg\($1\)\} $2- } on ^action * if ([$1] == [$C]) { if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) = $0 $2- }{ //echo = :$1: $0 $2- } }{ if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) = :$1: $0 $2- }{ //echo = :$1 $0 $2- } } on ^send_public * if ([$showchannel]==[1]) { if ([$0] == [$C]) { if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) ${BLU}\<${CYN}$C${RST}:$N${BLU}\>${RST} $1- }{ //echo ${BLU}\<${CYN}$C${RST}:$N${BLU}\>${RST} $1- }}{ if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) ${BLU}\<${RST}${CYN}$0${RST}:${N}${BLU}\>${RST} $1- }{ //echo ${BLU}\<${RST}${N}/$0${BLU}\>${RST} $1- }}}{ if ([$0] == [$C]) { if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) ${BLU}\<${RST}$N${BLU}\>${RST} $1- }{ //echo ${BLU}\<${RST}$N${BLU}\>${RST} $1- }}{ if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) ${BLU}\<${RST}${CYN}$0${RST}:${N}${BLU}\>${RST} $1- }{ //echo ${BLU}\<${RST}${CYN}$0${RST}:${N}${BLU}\>${RST} 1- }}} on ^idle "20" { if ([$IAMAWAY]==[0]) { away $autoaway.msg }} ^on ^send_action * { if ([$0] == [$C]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) = ${N} $1- } { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) = :$0: ${N} $1- } } set show_numerics on on ^who * { @ whohost = [$3@$4] echo $[10]0 $[9]1 ${CYN}$[3]2${RST} $[30]whohost ${CYN}\[${RST}$6-${CYN}]${RST} } alias ssecho echo ${BLU}\[${RST}Server${BLU}\]${RST} $* ^on ^315 * secho /w for ${CYN}$1${RST} completed at $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) on $0 ^on ^221 * eval secho $N's mode is \$1 ^on ^mode * eval secho $strip( MODE-$1 \`$2-\' by $0) ^on ^signoff * secho =SIGNOFF= $0\($userhost()\) \($1-\) ^on ^nick * secho =NICK CHANGE= $0--\>$1 ^on ^notify_signon * secho Signon by $0\($1\) detected ^on ^kick * secho =KICK= $2,$0 by $1 \($3-\) ^on ^001 * ssecho $1- ^on ^002 * ssecho $1- ^on ^003 * ssecho $1- ^on ^004 * ssecho $1- ^on ^219 * ^on ^243 * echo ${BLU}\[${RST}O:Line${BLU}\]${RST} ${RED}\[${RST}$4${CYN}\!${RST}$2${RED}\]${RST} on $0 ^on ^251 * ssecho $1- ^on ^252 * ssecho $1- ^on ^254 * ssecho $1- ^on ^255 * ssecho $1- ^on ^250 * ssecho $1- ^on ^265 * ssecho $1- ^on ^266 * ssecho $1- ^on ^351 * ssecho $1- ^on ^371 * ssecho $1- ^on ^364 * ssecho $[20]1 $[20]2 ${CYN}$[2]3${RST} $4- ^on ^365 * ssecho /links completed at $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) on $0 ^on ^366 * ^on ^372 * echo MOTD $1- ^on ^374 * ssecho $1- ^on ^375 * echo MOTD $1- ^on ^377 * echo MOTD $1- ^on ^376 * echo MOTD Finished /motd ^on ^332 * secho =TOPIC= $1\: $2- ^on ^333 * secho =TOPIC= for $1 set by $2 at $stime($3) ^on ^names * secho =$0= $1- ^on ^329 * secho =CREATED= $1 at $stime($2) ^on ^topic * secho =TOPIC= $1 changed by $0 to: $2- on ^666 * echo =URL= $1- on ^381 * secho You are now a wh0re for $0 on ^314 * { //echo \# Whowas info for $1 - //echo \# hostmask - $2@$3 $country.funct($3) eval //echo \# ircname - $5- } on ^367 * secho =BAN= $[10]1 $[25]2 Set by: $[15]3 Set at: $stime($4) on ^369 * //echo \# Whowas info for $1 complete on ^401 * echo \# $1 is not on IRC on ^402 * echo \# $1 is not a server on ^403 * echo \# $1 is not a channel on ^404 * echo \# $1\: Cannot send to channel on ^405 * echo \# You cannot join $1 because you are on too many channels on ^406 * echo \# $1 was not on IRC on ^407 * echo \# $1\; Duplicate recipients, no message delivered on ^409 * echo \# No origin specified on ^411 * echo \# No recipient given on ^412 * echo \# No text to send on ^413 * echo \# $1\: No text to send on ^414 * echo \# $1\: Wildcard in toplevel domain on ^421 * if ([$0]==[$S]) { echo \# $1\: Unknown command }{ echo \# $1\: Unknown command \(From $0\) } on ^422 * echo \# This server's admin decided to not feed you the motd on ^423 * echo \# This server's admin wants to be anonymous on ^424 * echo \# File error doing $1 on $2 on ^431 * echo \# You must supply a nick on ^432 * echo \# Bad characters in nick on ^433 * echo \# $1 is already in use alias nickonly {^assign FUNCTION_RETURN $left($index(! $0) $0)} on ^raw_irc "*PRIVMSG* *VER**" { if ([$2]==[$N]) { ^eval notice $nickonly($0) VERSION $sf.version secho =CTCP VERSION= from $0 on YOU } { ^eval notice $nickonly($0) VERSION $sf.version secho =CTCP VERSION= from $0 on $2 } } on ^ctcp * if ([$toupper($2)] != [ACTION]) {if ([$toupper($2)] != [VERSION]) {secho =CTCP $2= from $0 \($3-\) on $1}} on ^notice * echo =NOTICE $0= $1- on ^send_notice * echo =NOTICE->$0= $1- on ^window "* terminated with return code*" on ^443 * secho $1 is already on $2 on ^341 * secho Inviting $1 to $2 on ^305 * secho You are back on ^invite * secho =INVITE= $0 invites you to $1, hit ^K to join on ^306 * secho You are gone on ^474 * secho =BANNED= You are bizanned from $1 on ^473 * secho =INVITE ONLY= You must be invited to $1 on ^475 * secho =CHANNEL KEY= You must use the correct key to join $1 on ^471 * secho =FULL= $1 is full on ^467 * secho =CHANNEL KEY= The key for $1 has already been set on ^368 * secho =BANS= $2 has $1 bans on ^491 * secho =ERROR= You have no O:line on $0 on ^501 * secho =ERROR= Unknown mode flag alias seecho secho =$0= $1- on ^502 * seecho ERROR Can't change modes for other users on ^302 * secho $0 is $3@$4 on ^301 * seecho AWAY $0 is away \($1-\) ^on ^311 * { //echo \# Whois info for $1 - //echo \# hostmask - $2@$3 $country.funct($3) eval //echo \# ircname - $5- } ^on ^312 * //echo \# server - $2 \($3-\) ^on ^319 * //echo \# channels - $2- ^on ^317 * if (index(012345679 $3) != -1) { @ tmpvar.0 = [$2] / [60] //echo \# idletime - $tmpvar.0 minute\(s\) \($2 seconds\) //echo \# signon - $stime($3) purge tmpvar } ^on ^301 * //echo \# away - $1- ^on ^313 * //echo \# operator - $1 gave the admin of $0 a good blowjob ^on ^318 * //echo \# Whois info for $1 complete ^on ^404 * chksync $0- ^on ^482 * chksync $0- bind  self_insert bind  self_insert bind  self_insert bind  self_insert bind refresh_screen bind  stop_irc bind  backspace bind ^? backspace bind  switch_channels bind ^K parse_command join $I 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 ^on ^join * secho ^VJOIN^O/^V$1^O$0^B\(^O$2^B\)^O ^on ^leave * /secho PART/$1 $0\($userhost()\) ^on ^msg * if ([$IAMAWAY]==[1]) { if ([$tostoremsg]==[1]) { assign storemsg[$msgnumber] $encode($strftime($time()[${RED}%X${RST}]) *$0\($userhost()\)* $1-) @ msgnumber = msgnumber + 1 //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) *$0\($userhost()\)* $1- }{ //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) *$0\($userhost()\)* $1- } }{ if ([$s.ts]==[1]) { //echo $strftime($time()${CYN}[${RST}%X${CYN}]${RST}) *$0\($userhost()\)* $1- }{ //echo *$0\($userhost()\)* $1- } } ^on ^send_msg * //echo msg->$0: $1- ^on ^dcc_chat x //echo $0/dcc: $1- ^on ^ctcp_reply * /secho $1 reply from $0= $2- ^on ^wallop * xecho -level userlog1 =WALLOP= \!$0\! $2- alias l if ([$C] != [0]) { if ([$0]) { if ([$[1]0] == [#]) { //part $0 } { //part #$0 } } { //part $C } } { secho Syntax: /l ${CYN}[${RST}channel${CYN}]${RST} } alias w if ([$C] != [0]) { if ([$0]) {//who $0-}{//who $C} }{ secho Syntax: /w ${CYN}<${RST}channel${CYN}>${RST} } alias t { if ([$0]==[#*]) { //topic $0- } { //topic $C $0- } } alias sb bans alias bans mode $C +b alias wall { if ([$C]==0) {secho You must be on a channel to use /WALL.}{ secho Sending WallOp message to $C, please wait... ^assign message $encode($0-) secho [WallOP:$C] $decode($message) ^on ^names "*" sendwall $$1- ^names $C wait -CMD ^on names - "*" }} alias sendwall { if ([$0]) { if (([$[1]0] == [@]) && ([$0] != [@] ## N)) { if ([$sendlist]==[]) { ^assign sendlist $strip(@ $0) ^assign showlist $strip(@ $0) sendwall $1-}{ ^assign sendlist $strip(@ $0),$sendlist ^assign showlist $strip(@ $0) $showlist sendwall $1- }}{/sendwall $1-}}{ if ([$sendlist]!=[]) { //^notice $sendlist [WallOP:$C] $decode($message) secho WALLOPED: $showlist ^assign -sendlist ^assign -showlist }}} alias p ping alias ping { if ([$C] != [0]) { if ([$0]) { /eval ctcp $0 PING $utime() } { /eval ctcp $C PING $utime() } } } alias sping if ([$0]) { quote PING :$0 } { quote PING :$S } alias alias if ([$0]) { //alias $0- } { secho Syntax: /alias <alias> <command> } alias set if ([$0]) { //set $0- } { secho Syntax: /set <variable> <value> } alias assign if ([$0]) { //assign $0- } { secho Syntax: /assign <variable> <value> } alias names if ([$0]) { //names $0- } { secho Syntax: /names <channel> } alias who if ([$0]) { //who $0- } { secho Syntax: /who <channel> } alias on if ([$0]) { //on $0- }{ secho Syntax: /on <event> <action> } ^alias currtime @ function_return = strftime(%T) ^alias isbogus { ^if ([$3]) { @ function_return = 1 } ^if (rmatch(.$1. $isbogus.pats *..*)) { @ function_return = 1 } ^if (rmatch(.$2. $isbogus.pats *..*)) { @ function_return = 1 } } ^alias boguspat ^assign isbogus.pats $isbogus.pats $0-;echo $0- added ^alias boguslist echo Pats: $isbogus.pats ^alias bogusclear ^assign -isbogus.pats;echo Bogus list clean ^ON ^CHANNEL_SIGNOFF "% % %.% %.%" { if (isbogus($1-)) { secho =SIGNOFF= $1 \($2-\) } { ^netbroke $encode($tolower($0)) $encode($1) $encode($2).$encode($3) $2 $3 } } ^alias netbroke { @ signcross[$2][$0][$1] = 1 @ signoffs[$0][$1] = [$2] @ splittime[$2] = time() ^if ( isbroke[$2] ) { } { secho Netsplit, \[$3-\] secho Type /wholeft or hit ^D to see who split @ isbroke[$2] = 1 @ splitname[$2] = [$3-] } } ^ON ^JOIN * { ^netjoined $encode($tolower($1)) $encode($0) $1 $0 $USERHOST() } ^alias netjoined { if ( signoffs[$0][$1] ) { ^if ( isbroke[$signoffs[$0][$1]] ) { secho Netjoined, \[$splitname[$signoffs[$0][$1]]\] } ^assign -isbroke[$signoffs[$0][$1]] ^assign -signcross[$signoffs[$0][$1]][$0][$1] ^assign -signoffs[$0][$1] } { secho JOIN/$2 $3 \($4-\) } } ^on #^timer 70 * netclean ^alias netclean { foreach splittime ii { foreach splittime.$ii jj { if ( time() - splittime[$ii][$jj] > 300 ) { foreach signcross.$(ii).$jj xx { foreach signcross.$(ii).$(jj).$xx yy { ^assign -signcross[$ii][$jj][$xx][$yy] ^assign -signoffs[$xx][$yy] } } ^assign -xx ^assign -yy ^assign -isbroke[$ii][$jj] ^assign -splitname[$ii][$jj] ^assign -splittime[$ii][$jj] } } } ^assign -ii ^assign -jj } ^alias netpurge { purge isbroke purge splitname purge splittime purge signcross purge signoffs } ^alias showsplit { if ( [$($0)] ) { echo $0 $($0) } foreach $0 ii { showsplit $0.$ii } ^assign -ii } ^alias purge { foreach $0 ii { purge $0.$ii } ^assign -ii ^assign -$0 } alias wl wholeft bind ^D parse_command wholeft ^alias wholeft { secho Channel Nick Servers secho ------- ---- ------- foreach signoffs ii { foreach signoffs.$ii jj { secho $lformat(15 $decode($ii)) $lformat(10 $decode($jj)) $splitname[$signoffs[$ii][$jj]] } } ^assign -ii ^assign -jj } alias lformat { @ IRCII.word = [$1-] if (@IRCII.word < [$0]) { @ function_return = [$([$0]IRCII.word)] } { @ function_return = [$IRCII.word] } } # Tabkey script, taken from the ircii2.8.2 source bind ^I parse_command ^tk.getmsg 1 $tk.msglist bind ^R parse_command ^tk.getmsg -1 $tk.msglist alias nicklist echo *** Nickname List: $tk.msglist alias addnick if ([$1]) { addnick $1- };tk.addmsg $0 $tk.msglist @ tk.msgmax = 15 alias tk.addmsg { @ tk.matched = rmatch($0 $^\1-) if (tk.matched) { @ tk.msglist = [$(0-${tk.matched-1}) $(${tk.matched+1}-)] } #else { @ 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 ## [msg] 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 alias notword { if ([$0] > 0) { if (([$0] > 1) && ([$0] < rmatch($~ $1-))) { @ nw.sep = [ ] } { @ nw.sep = [] } @ function_return = [$(1-${[$0]-1})] ## [$nw.sep] ## [$(${[$0]+1}-)] } { @ function_return = [$1-] } } # Pageup/Pagedn keys, written by Viv bind meta2-^@ scroll_end bind meta2-5 parse_command ^scroll_up bind meta2-6 parse_command ^scroll_dn bind meta2-1 parse_command ^scroll_end bind ^[^A scroll_backward bind ^[^B scroll_forward alias scroll_up { ^bind ~ nothing ^type ^U^[^A^U ^timer 1 ^bind ~ self_insert } alias scroll_dn { ^bind ~ nothing ^type ^U^[^B^U ^timer 1 ^bind ~ self_insert } alias scroll_end { ^bind ~ nothing ^type ^[[^@ ^timer 1 ^bind ~ self_insert } #Country Code Lookup, written by Viv, function written by Xavier alias country.funct if ([$0]) { @ tld.0 = [$mid(${rindex(. $0) +1} 5 $0)] if ([$country_symbol[$tld.0]]) { @ function_return = [[$country_symbol[$tld.0]]] @ tld.1 = [1] } if ([$rmatch($tld.0 *1* *2* *3* *4* *5* *6* *7* *8* *9* *0*)] != [0]) { @ function_return = [[numerical ip]] @ tld.1 = [1] } if (!tld.1) { @ function_return = [[${RED}${BLNK}unknown -- possible spoof${RST}]] } purge tld }{ @ function_return = [0] } alias country { if ([$0]) { if (country_symbol[$strip(. $0)]) { secho .$strip(. $0) is $country_symbol[$strip(. $0)] }{ secho No country name for .$strip(. $0) found. } } } @ country_symbol[AF] = [Afghanistan] @ country_symbol[AR] = [Argentina] @ country_symbol[HU] = [Hungary] @ country_symbol[IS] = [Iceland] @ country_symbol[IN] = [India] @ country_symbol[ID] = [Indonesia] @ country_symbol[IR] = [Iran] @ country_symbol[IQ] = [Iraq] @ country_symbol[IE] = [Ireland] @ country_symbol[IL] = [Israel] @ country_symbol[IT] = [Italy] @ country_symbol[JM] = [Jamaica] @ country_symbol[AM] = [Armenia] @ country_symbol[JP] = [Japan] @ country_symbol[JO] = [Jordan] @ country_symbol[KZ] = [Kazakhstan] @ country_symbol[KE] = [Kenya] @ country_symbol[KI] = [Kiribati] @ country_symbol[KP] = [North Korea] @ country_symbol[KR] = [South Korea] @ country_symbol[KW] = [Kuwait] @ country_symbol[KG] = [Kyrgyzstan] @ country_symbol[AW] = [Aruba] @ country_symbol[LA] = [Laos] @ country_symbol[LV] = [Latvia] @ country_symbol[LB] = [Lebanon] @ country_symbol[LS] = [Lesotho] @ country_symbol[LR] = [Liberia] @ country_symbol[LY] = [Libyan Arab Jamahiriya] @ country_symbol[LY] = [Lybia] @ country_symbol[LI] = [Liechtenstein] @ country_symbol[LT] = [Lithuania] @ country_symbol[LU] = [Luxembourg] @ country_symbol[AU] = [Australia] @ country_symbol[MO] = [Macau] @ country_symbol[MK] = [Macedonia] @ country_symbol[MG] = [Madagascar] @ country_symbol[MW] = [Malawi] @ country_symbol[MY] = [Malaysia] @ country_symbol[MV] = [Maldives] @ country_symbol[ML] = [Mali] @ country_symbol[MT] = [Malta] @ country_symbol[MH] = [Marshall Islands] @ country_symbol[MQ] = [Martinique] @ country_symbol[AT] = [Austria] @ country_symbol[MR] = [Mauritania] @ country_symbol[MU] = [Mauritius] @ country_symbol[MX] = [Mexico] @ country_symbol[FM] = [Micronesia] @ country_symbol[MD] = [Moldova] @ country_symbol[MC] = [Monaco] @ country_symbol[MN] = [Mongolia] @ country_symbol[MS] = [Montserrat] @ country_symbol[MA] = [Morocco] @ country_symbol[MZ] = [Mozambique] @ country_symbol[AZ] = [Azerbaijan] @ country_symbol[MM] = [Myanmar] @ country_symbol[NA] = [Namibia] @ country_symbol[NR] = [Nauru] @ country_symbol[NP] = [Nepal] @ country_symbol[NL] = [Netherlands] @ country_symbol[AN] = [Netherlands Antilles] @ country_symbol[NT] = [Neutral Zone] @ country_symbol[NC] = [New Caledonia] @ country_symbol[NZ] = [New Zealand] @ country_symbol[NI] = [Nicaragua] @ country_symbol[BS] = [Bahamas] @ country_symbol[NE] = [Niger] @ country_symbol[NG] = [Nigeria] @ country_symbol[NU] = [Niue] @ country_symbol[NF] = [Norfolk Island] @ country_symbol[MP] = [Northern Mariana Islands] @ country_symbol[NO] = [Norway] @ country_symbol[OM] = [Oman] @ country_symbol[PK] = [Pakistan] @ country_symbol[PW] = [Palau] @ country_symbol[PA] = [Panama] @ country_symbol[BH] = [Bahrain] @ country_symbol[PG] = [Papua New Guinea] @ country_symbol[PG] = [Papua] @ country_symbol[PG] = [New Guinea] @ country_symbol[PY] = [Paraguay] @ country_symbol[PE] = [Peru] @ country_symbol[PH] = [Philippines] @ country_symbol[PN] = [Pitcairn] @ country_symbol[PL] = [Poland] @ country_symbol[PT] = [Portugal] @ country_symbol[PR] = [Puerto Rico] @ country_symbol[BD] = [Bangladesh] @ country_symbol[QA] = [Qatar] @ country_symbol[RE] = [Reunion] @ country_symbol[RO] = [Romania] @ country_symbol[RU] = [Russian Federation] @ country_symbol[RW] = [Rwanda] @ country_symbol[KN] = [Saint Kitts And Nevis] @ country_symbol[LC] = [Saint Lucia] @ country_symbol[VC] = [Saint Vincent And The Grenadines] @ country_symbol[WS] = [Samoa] @ country_symbol[SM] = [San Marino] @ country_symbol[BB] = [Barbados] @ country_symbol[ST] = [Sao Tome and Principe] @ country_symbol[SA] = [Saudi Arabia] @ country_symbol[SN] = [Senegal] @ country_symbol[SC] = [Seychelles] @ country_symbol[SL] = [Sierra Leone] @ country_symbol[SG] = [Singapore] @ country_symbol[SI] = [Slovenia] @ country_symbol[SB] = [Solomon Islands] @ country_symbol[SO] = [Somalia] @ country_symbol[ZA] = [South Africa] @ country_symbol[AL] = [Albania] @ country_symbol[BY] = [Belarus] @ country_symbol[ES] = [Spain] @ country_symbol[LK] = [Sri Lanka] @ country_symbol[SH] = [St. Helena] @ country_symbol[PM] = [St. Pierre And Miquelon] @ country_symbol[SD] = [Sudan] @ country_symbol[SR] = [Suriname] @ country_symbol[SJ] = [Svalbard and Jan Mayen Islands] @ country_symbol[SZ] = [Swaziland] @ country_symbol[SE] = [Sweden] @ country_symbol[CH] = [Switzerland] @ country_symbol[BE] = [Belgium] @ country_symbol[CH] = [Cantons of Helvetia] @ country_symbol[CH] = [Confederation Helvetique] @ country_symbol[SY] = [Syrian Arab Republic] @ country_symbol[SY] = [Syria] @ country_symbol[TW] = [Taiwan] @ country_symbol[TJ] = [Tajikistan] @ country_symbol[TZ] = [Tanzania] @ country_symbol[TH] = [Thailand] @ country_symbol[TG] = [Togo] @ country_symbol[TK] = [Tokelau] @ country_symbol[BZ] = [Belize] @ country_symbol[TO] = [Tonga] @ country_symbol[TT] = [Trinidad and Tobago] @ country_symbol[TN] = [Tunisia] @ country_symbol[TR] = [Turkey] @ country_symbol[TM] = [Turkmenistan] @ country_symbol[TC] = [Turks and Caicos Islands] @ country_symbol[TV] = [Tuvalu] @ country_symbol[UG] = [Uganda] @ country_symbol[UA] = [Ukrainian SSR] @ country_symbol[AE] = [United Arab Emirates] @ country_symbol[BJ] = [Benin] @ country_symbol[UK] = [United Kingdom] @ country_symbol[GB] = [Great Britain] @ country_symbol[US] = [United States Of America] @ country_symbol[UM] = [United States Minor Outlying Islands] @ country_symbol[UY] = [Uruguay] @ country_symbol[SU] = [USSR] @ country_symbol[UZ] = [Uzbekistan] @ country_symbol[VU] = [Vanuatu] @ country_symbol[BM] = [Bermuda] @ country_symbol[VA] = [Vatican City] @ country_symbol[VE] = [Venezuela] @ country_symbol[VN] = [Vietnam] @ country_symbol[VI] = [Virgin Islands (US)] @ country_symbol[VG] = [Virgin Islands (UK)] @ country_symbol[WF] = [Wallis And Futuna Islands] @ country_symbol[EH] = [Western Sahara] @ country_symbol[YE] = [Yemen] @ country_symbol[YU] = [Yugoslavia] @ country_symbol[BT] = [Bhutan] @ country_symbol[ZR] = [Zaire] @ country_symbol[ZM] = [Zambia] @ country_symbol[ZW] = [Zimbabwe] @ country_symbol[COM] = [Commercial Organization] @ country_symbol[EDU] = [Educational Institution] @ country_symbol[NET] = [Networking Organization] @ country_symbol[MIL] = [US Military] @ country_symbol[ORG] = [Nonprofit Organization] @ country_symbol[GOV] = [US Government] @ country_symbol[KP] = [Korea - Democratic People's Republic Of] @ country_symbol[BO] = [Bolivia] @ country_symbol[KR] = [Korea - Republic of] @ country_symbol[LA] = [Lao Peoples' Democratic Republic] @ country_symbol[SU] = [Russia] @ country_symbol[SK] = [Slovakia] @ country_symbol[CZ] = [Czech] @ country_symbol[BA] = [Bosnia] @ country_symbol[BW] = [Botswana] @ country_symbol[BV] = [Bouvet Island] @ country_symbol[DZ] = [Algeria] @ country_symbol[BR] = [Brazil] @ country_symbol[IO] = [British Indian Ocean Territory] @ country_symbol[BN] = [Brunei Darussalam] @ country_symbol[BG] = [Bulgaria] @ country_symbol[BF] = [Burkina Faso] @ country_symbol[BI] = [Burundi] @ country_symbol[BY] = [Byelorussian SSR] @ country_symbol[KH] = [Cambodia] @ country_symbol[CM] = [Cameroon] @ country_symbol[AS] = [American Samoa] @ country_symbol[CA] = [Canada] @ country_symbol[CV] = [Cap Verde] @ country_symbol[KY] = [Cayman Islands] @ country_symbol[CF] = [Central African Republic] @ country_symbol[TD] = [Chad] @ country_symbol[CL] = [Chile] @ country_symbol[CN] = [China] @ country_symbol[CX] = [Christmas Island] @ country_symbol[CC] = [Cocos (Keeling) Islands] @ country_symbol[CO] = [Colombia] @ country_symbol[AD] = [Andorra] @ country_symbol[KM] = [Comoros] @ country_symbol[CG] = [Congo] @ country_symbol[CK] = [Cook Islands] @ country_symbol[CR] = [Costa Rica] @ country_symbol[CI] = [Cote D'Ivoire] @ country_symbol[HR] = [Croatia] @ country_symbol[HR] = [Hrvatska] @ country_symbol[CU] = [Cuba] @ country_symbol[CY] = [Cyprus] @ country_symbol[CS] = [Czechoslovakia] @ country_symbol[AO] = [Angola] @ country_symbol[DK] = [Denmark] @ country_symbol[DJ] = [Djibouti] @ country_symbol[DM] = [Dominica] @ country_symbol[DO] = [Dominican Republic] @ country_symbol[TP] = [East Timor] @ country_symbol[EC] = [EcuadoR] @ country_symbol[EG] = [Egypt] @ country_symbol[SV] = [El Salvador] @ country_symbol[GQ] = [Equatorial Guinea] @ country_symbol[EE] = [Estonia] @ country_symbol[AI] = [Anguilla] @ country_symbol[ET] = [Ethiopia] @ country_symbol[FK] = [Falkland Islands] @ country_symbol[FK] = [Malvinas] @ country_symbol[FO] = [Faroe Islands] @ country_symbol[FJ] = [Fiji] @ country_symbol[FI] = [Finland] @ country_symbol[FR] = [France] @ country_symbol[GF] = [French Guiana] @ country_symbol[PF] = [French Polynesia] @ country_symbol[TF] = [French Southern Territories] @ country_symbol[AQ] = [Antarctica] @ country_symbol[GA] = [Gabon] @ country_symbol[GM] = [Gambia] @ country_symbol[GE] = [Georgia] @ country_symbol[DE] = [Germany] @ country_symbol[GH] = [Ghana] @ country_symbol[GI] = [Gibraltar] @ country_symbol[GR] = [Greece] @ country_symbol[GL] = [Greenland] @ country_symbol[GD] = [Grenada] @ country_symbol[AG] = [Antigua and Barbuda] @ country_symbol[GP] = [Guadeloupe] @ country_symbol[GU] = [Guam] @ country_symbol[GT] = [Guatemala] @ country_symbol[GN] = [Guinea] @ country_symbol[GW] = [Guinea Bissau] @ country_symbol[GY] = [Gyana] @ country_symbol[HT] = [Haiti] @ country_symbol[HM] = [Heard and McDonald Islands] @ country_symbol[HN] = [Honduras] @ country_symbol[HK] = [Hong Kong] # Rot13, the coolest encryption. Script written by Daemon alias rot say $rot13($0-) (rot13) @ alpha.norm = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] @ alpha.rot = [nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM] alias rot13 { @ r3.line = [$*] @ r3.len = @r3.line @ r3.new = [] @ r3.cnt = 0 while (r3.cnt < r3.len) { @ r3.ind = index($mid($r3.cnt 1 $r3.line) $alpha.norm) if (r3.ind > -1) { @r3.new = r3.new ## mid($r3.ind 1 $alpha.rot) } { @r3.new = r3.new ## mid($r3.cnt 1 $r3.line) } @r3.cnt = r3.cnt + 1 } @ function_return = r3.new ^assign -r3.cnt ;^assign -r3.new ;^assign -r3.ind ;^assign -r3.line ^assign -r3.len } on ^public "% % *(rot13)%" { @ mystr = [$2-] @ newstr = [$(${2 ## [-] ## #mystr})] echo $strftime($time()[%X]) <$0> $rot13($newstr) \(rot13\) } on ^public_other "% % *(rot13)%" { @ mystr = [$2-] @ newstr = [$(${2 ## [-] ## #mystr})] echo $strftime($time()[%X]) \{$0/$1\} $rot13($newstr) \(rot13\) } # Help and whatnot alias shelp { echo ---------------------------SysFail Help--------------------------- echo /qhelp Commands which can now be typed quicker echo /chhelp Channel Related Commands echo /cthelp CTCP commands echo /mhelp Various commands echo /bhelp Key Bindings echo /chelp ANSi Related Help echo /sethelp Things you can set echo /color Turn Ansi Color on or off echo ---------------------------SysFail Help--------------------------- } alias sethelp { echo ------------------------Things you can Set------------------------ echo /ts Turn Timestamp on or Off echo /tson /tsoff Specify Timestamp on or Off echo /savemsg Toggle saving messages while away echo /savemsgon /savemsgoff Specify Message Saving On or Off echo /kickmsg Set the kick message echo /banmsg Set the kick message on a bankick echo /quitmsg Set the signoff message echo /selfmode Set your umode permanently echo /versionmsg Set the message you give people when they version you echo /autoawaymsg Set the autoaway message echo /showchannel Toggles showing the channel in publics echo /zip Set your zip code for weather echo /save Saves your settings for next time echo ------------------------Things you can Set------------------------ } alias qhelp { echo --------------------------Quick Commands-------------------------- echo /m <nick> <blah> Send a message to <nick> echo /n <nick> <blah> Send a notice to <nick> echo /wi <nick> Whois <nick> echo /ww <nick> Whowas <nick> echo /ig <nick> Ignore someone echo /noig <nick> Stop ignoring someone echo /umode <mode> Change your user mode echo --------------------------Quick Commands-------------------------- } alias chhelp { echo -------------------------Channel Commands------------------------- echo /j <channel> Join <channel>. # is not needed echo /l Leave current channel echo /w <channel> Gets a who list for channel. "/w" will use current channel echo /wall <message> Send a message to all channel operators echo /cycle Leave and rejoin your current channel echo /inv <nick> Invite a nick to your current channel echo /sc Show everyone on your current channel echo /op <nicks> Op <nick(s)> echo /dop <nicks> Deop <nick(s)> echo /mc Clear all the modes in your current channel echo /nokey Clear the channel key on your current channel echo /cdban Clear the ban list in your current channel echo /k <nick> <reason Kicks <nick> with <reason> echo /bk <nick> Bankick <nick> echo /ban <nick> Bans <nick> echo /sb Show the current banlist echo /unban <nick> Unbans <nick> echo -------------------------Channel Commands------------------------- } alias mhelp { echo --------------------------Misc Commands--------------------------- echo /gone <reason> Sets you away with <reason> echo /back Sets you back echo /uptime Outputs your uptime to the current channel echo /uname Outputs your uname -a to the current channel echo /showoff Does a /uptime and /uname to showoff your system echo /cat file Display the contents of file to your current channel echo /country <country> Lookup a country by it's two letter abbreviation echo /rot <text> Encodes <text> with rot13 and output it to current channel echo /randquote Displays a random quote. Must have a .sysfail.quote file echo /name Shows a random name. Requires a valid dictionary echo --------------------------Misc Commands--------------------------- } alias cthelp { echo --------------------------CTCP Commands--------------------------- echo /ver <nick|channel> Versions nick/channel. "/ver" will use current channel echo /p <nick|channel> Ping nick/channel. "/p" will ping current channel echo /sping <server> Pings servers echo --------------------------CTCP Commands--------------------------- } alias bhelp { echo --------------------------Bind Commands--------------------------- echo PageUp Scroll Up echo PageDown Scroll Down echo ^K Join the last channel you were invited to echo ^B Bold Character echo ^V Reverse Character echo ^O Remove all special chars echo ^_ Cyan/Underline (Depends on your term) echo UpArrow Command history up echo DownArrow Command history down echo Tab Message the last person to message you echo --------------------------Bind Commands--------------------------- } ^eval ^mode $N $selfmode secho Finished Loading SysFail.irc beta 1.0pre4 secho Type /shelp for help #EOF