# This code is based on GemZ by gemini however it is not his responsibily # # If there are any errors contact [NuKe]! !!!!NOT!!!! gemini! # # All credits are stated (if not...they are most likely gemini) ^fset FORMAT_XTERM_TITLE [$0][$2] $5- ^set COMMENT_BREAKAGE on ^set JOIN_NEW_WINDOW on ^set JOIN_NEW_WINDOW_TYPE create double on ^set QUERY_NEW_WINDOW on ^set QUERY_NEW_WINDOW_TYPE create ^set WINDOW_DESTROY_PART on ^set SERVER_GROUPS on @ actionsfile = [$IRCLIB()/script/actplug.gmz] @ loadacts = [NO] @ ctcpsound = [OFF] @ ctcpsndreq = [OFF] @ EXEDIR = [~] @ sounddir = [$EXEDIR/sounds] @ SOUND_PATH = [$EXEDIR/sounds ~ ~/sounds] @ gz.sounds = 1 # Echo Strings ^assign gemz.act * ^assign gemz.str .gz. ^assign gemz.usage *** ^eval ^assign gemzov.str \\[\$bgrn\ov${cl}\\]\ alias gecho xecho -b -level crap $* alias gbecho xecho -b -level crap $* alias gbecho xecho -b -level crap $* alias gtecho xecho -b -target $0 $1- alias gtbecho xecho -b -target $0 $1- alias gtbecho xecho -b $1- alias gaecho xecho -b -level crap $* alias gnecho xecho -b -level crap $* alias guecho xecho -b -level crap gemz.usage $* @ NUMKICK = [7] @ kick.0 = [uh, huh huh... uh... yew suck, or something] @ kick.1 = [meep meep!] @ kick.2 = [bork bork bork bork] @ kick.3 = [oops, silly me, that's the wrong key] @ kick.4 = [nostalgia kick: Roadkill splattered all over the infobahn] @ kick.5 = [nostalgia kick: CDA VIOLATION] @ kick.6 = [If anybody gets funk'd its gun' be U!] #----------------------------Kicks-----------------------------# alias bkk {/k $0 BurgerKingKick - You get it my way} alias mck {/k $0 McKick: You Want Fries with that?} alias mcdk {/k $0 McKick: Have you had your break today?!?} alias tbk {/k $0 TacoBellKick: Make a run for the border} alias cjk {/k $0 CarlsJrKick: If it don't get all over your face, you don't belong in this place} alias jbk {/k $0 JackInTheBoxKick: Jacks Back!!} alias kfck {/k $0 KentuckyFriedKick: Original Recipe or Extra Crispy?} alias kt {/k $0 Kick Toy (tm)} alias tkl {/k $0 TaeKwonLeapKick} alias gk {/k $0 [GreetKick] Hello to you too!} alias wk {/k $0 woikick} alias save { if (fexist(~/menu.sav) != -1) { @ unlink(~/menu.sav) } @ outfile = open(~/menu.sav W) # gecho Saving menu.bx settings... @ write($outfile //^assign ctcpsound $ctcpsound) @ write($outfile //^assign loadacts $loadacts) @ write($outfile //^assign ctcpsndreq $ctcpsndreq) @ write($outfile //^assign SOUND_PATH $SOUND_PATH) @ write($outfile //^assign sounddir $sounddir) @ write($outfile //^assign actionsfile $actionsfile) @ close($outfile) //save } # # This code courtesy of mikh # alias searchpath { fe ($1-) bleah { if (file.exist($bleah/$0)) { return $bleah/$0 } } return 0 } ### returns 1 if we have file $* for playing, path is stripped from parameter ### so you can safely pass full qualified filenames here, if file exist, ### ctcpsnd.fname variable will contain full path to the file, which can ### be passed to mmpm.playfile or mmpm.playfile2 alias ctcpsnd.havefile { @ctcpsnd.fname = searchpath($file.sanspath($*) $SOUND_PATH) @function_return = file.exist($ctcpsnd.fname) } ### should be called if you requested a file from someone, and expect dcc ### send to happen ### $0 == file name alias ctcpsnd.requested { @ctcpsnd[$file.sanspath($*)] = time() } ### this function returns if we already have this file requested from someone ### it returns time since we requested file, or 10000 if we did not requested ### such file, so if (ctcpsnd.isrequested(file.wav) > 30) will check if ### file was requested longer then 30 seconds ago, or not requested at all alias ctcpsnd.isrequested { @ function_return = 10000 if (ctcpsnd[$file.sanspath($*)] != []) @function_return = time() - ctcpsnd[$%file.sanspath($*)] } ### returns 1 if we getting this file right now... alias ctcpsnd.isgetting { @ function_return = ctcpsnd.getting[$file.sanspath($*)] > 0 } ### usage is simple, in your own on ^dcc_request, do something like ### ^on dcc_request * if (!ctcpsnd.dcc_request($*)) { ### your code here ### } alias ctcpsnd.dcc_request { @ function_return = 0 if (ctcpsnd[$file.sanspath($2)] > 0) { @function_return = 1 if (file.isdir($EXEDIR/SOUNDS)) { @mkdir($EXEDIR/SOUNDS/RECV) //^dcc rename $4 $EXEDIR/SOUNDS/RECV/$file.sanspath($2) @ctcpsnd.getting[$file.sanspath($2)] = time() ^on ^dcc_connect "$4 $0 GET % %" # //^dcc get $4 ^on ^dcc_connect -"$4 $0 SEND % %" if (dccitem($4) == []) { //^assign -ctcpsnd.getting[$file.sanspath($2)] //^assign -ctcpsnd[$file.sanspath($2)] }{ //on ^dcc_lost "$4 $0 GET $word(8 $dccitem($4)) %*" { @ctcpsnd.dcc_lost($*) } } }{ //^assign -ctcpsnd.getting[$file.sanspath($2)] //^assign -ctcpsnd[$file.sanspath($2)] //^dcc close $4 } } } ### same here alias ctcpsnd.dcc_lost { @function_return = 0 if (ctcpsnd[$%file.sanspath($3)] > 0) { @function_return = 1 switch ($4) { (ERROR)(LOST)(CLOSED) { @unlink($3) //^assign -ctcpsnd.getting[$file.sanspath($3)] //^assign -ctcpsnd[$file.sanspath($3)] //hook ctcpsnd error $file.sanspath($3) closed } (COMPLETED) { //^assign -ctcpsnd.getting[$file.sanspath($3)] //^assign -ctcpsnd[$file.sanspath($3)] if (fsize($3) && fsize($3) == word(7 $dccitem($0))) { @rename($3 $exedir/sounds/$file.sanspath($3)) //^hook ctcpsnd received $exedir/sounds/$file.sanspath($3) }{ if (fsize($3)) { @unlink($3) //hook ctcpsnd error file.sanspath($3) file size mistmatch }{ @unlink($3) //hook ctcpsnd error file.sanspath($3) zero length file } } } } //on ^dcc_lost -"$0 $1 $2 $3 %*" } } ### this function is called from main script /sound routine to find if ### we have a local file. If we do, it is assumed that we gonna send it, ### so its added to a circlular buffer of last 10 filenames sent via /sound ### if function returns 1, then ctcpsnd.fname will be a full filename, ready ### to be passed to mmpm.playfile if (ctcpsnd.cansendidx == []) @ctcpsnd.cansendidx=0 alias ctcpsnd.localfile { @ function_return = 1 # cannot send files which we are currently downloading yet if (ctcpsnd.isgetting($*)) { @function_return = 0 } else if (file.exist($*)) { @ ctcpsnd.fname = [$*] @ ctcpsnd.cansend[$ctcpsnd.cansendidx] = [$*] @ ctcpsnd.cansendidx = (ctcpsnd.cansendidx+1) % 10 } else if (file.exist(${ctcpsnd.fname = searchpath($* $SOUND_PATH)})) { @ ctcpsnd.cansend[$ctcpsnd.cansendidx] = [$*] @ ctcpsnd.cansendidx = (ctcpsnd.cansendidx+1) % 10 } else @function_return = 0 } ### $0 is what they requested, function returns 0 or 1, if it returns 1, then ### ctcpsnd.fname will be a file name for /dcc send alias ctcpsnd.cansend { @function_return = 0 if (rmatch($* %.wav %.au %.mid)) { @ctcpsnd.tmp = file.sanspath($*) foreach ctcpsnd.cansend ctcpsnd.ii { if (ctcpsnd.tmp == file.sanspath($ctcpsnd.cansend[$ctcpsnd.ii])) { if (file.exist($ctcpsnd.cansend[$ctcpsnd.ii])) { @ ctcpsnd.fname = ctcpsnd.cansend[$ctcpsnd.ii] @ function_return = 1 //break } else if (file.exist(${ctcpsnd.fname = searchpath($file.sanspath($ctcpsnd.cansend[$ctcpsnd.ii]) $SOUND_PATH)})) { @ function_return = 1 //break } } } } } ### next 3 ones should be called from ON ^PUBLIC, ON ^MSG and ^ON NOTICE ### Note that we only allow to request these sounds we just recently played ### using /sound, last 10 actually alias ctcpsnd.msg { @function_return = 0 if ([$1] == [!$N] && [$2] != [] && [$3] == []) { @ function_return = 1 if (ctcpsnd.cansend($2)) { //^hook ctcpsnd request 1 $0 $ctcpsnd.fname ctcpsnd.sendfile_with_timeout $0 $ctcpsnd.fname }{ //^hook ctcpsnd request 0 $0 $2 } } } alias ctcpsnd.notice { @function_return = 0 if (index(# $0) == -1 && ([$1] == [!dccsend] || [$1] == [!$N]) && [$2] != [] && [$3] == []) { @ function_return = 1 if (ctcpsnd.cansend($2)) { //^hook ctcpsnd request 1 $0 $ctcpsnd.fname ctcpsnd.sendfile_with_timeout $0 $ctcpsnd.fname }{ //^hook ctcpsnd request 0 $0 $2 } } } alias ctcpsnd.public { if ([$2] == [!$N] && ctcpsnd.cansend($3)) { //^hook ctcpsnd request 1 $0 $ctcpsnd.fname ctcpsnd.sendfile_with_timeout $0 $ctcpsnd.fname } } alias ctcpsnd.close_unactive { if (dccitem($0) != [] && word(2 $dccitem($0)) != [active]) { //^dcc close $0 //^on ^dcc_connect -"$0 $1 SEND % %" } } ### $0 == nick, $1 == file alias ctcpsnd.sendfile_with_timeout { @ dnum = 0 on ^dcc_sent "$0 SEND % % #%" {@dnum = [$4]} //^dcc send $0 $1- on ^dcc_sent -"$0 SEND % % #%" on ^dcc_connect "$dnum $0 SEND % %" { //on ^dcc_connect -"$0 $1 SEND % %" //on ^dcc_lost "$0 $1 SEND $word(8 $dccitem($0)) %*" { //on ^dcc_lost -"$0 $1 $2 $3 %*" } } if (dnum) /timer 180 ctcpsnd.close_unactive $dnum $0 } alias file.exist { @ function_return = fexist($*) == 1 } alias file.isdir { @ function_return = fexist($* d) == 1 } alias file.sanspath { if (file.spi=rindex(\\/: $*)+1) { @function_return=mid($file.spi 255 $*) } else { @function_return=[$*] } } alias file.ext { @file.sp=file.sanspath($*) if (file.exi=rindex(. $file.sp)+1) { @function_return=[mid($file.exi 255 $file.sp)] } else { @ function_return = [] } } alias file.sansext { @file.sp=file.sanspath($*) if (file.sei=rindex(. $file.sp)+1) { @function_return=left(${[$@*] - ((@file.sp - file.sei) + 1)} $*) } else { @function_return=[$*] } } alias file.path { if (file.spi=rindex(\\/: $*)+1) { @function_return=[mid(0 $file.spi $*)] } else { @function_return=[] } } alias file.tofat { @file.path=file.path($*) @file.name=file.sansext($file.sanspath($*)) @file.ext=file.ext($*) # if extention is >3 chars long truncate it if (@file.ext > 3) @file.ext=left(3 $file.ext) if (@file.name > 8) { @file.tohash=right(${@file.name-5} $file.name) echo +++ tohash = $file.tohash @file.name=left(5 $file.name) @file.tmp=0 fec ($file.tohash) file.c { @file.tmp = file.tmp + ascii($toupper($file.c)) } echo +++ result = $file.tmp @file.tmp = file.tmp % 256 @file.name #= file.tmp } if (file.path) @function_return=[$file.path/$file.name\.$file.ext] else @function_return=[$file.name\.$file.ext] } alias mmpm.debug { if (mmpm.debug) {xecho +++ [mmpm] $*} } if (!mmpm.loaded) { @ mmpm.loading = 1 @ mmpm.multimedia = mciapi() if (!mmpm.multimedia) { /mmpm.debug } else { /mmpm.debug } @ mmpm.loaded = 1 @ mmpm.volume = mmpm.midi.volume = mmpm.wave.volume = 100 } ### outside of 1st if in case we loading it over an older mmpm.api version... if (mmpm.wave.state == [] && mmpm.midi.state == []) { @ mmpm.wave.state = [CLOSED] @ mmpm.midi.state = [CLOSED] } ### always interrups previous sound #alias mmpm.playfile { # @mmpm.donotstop = 0 # mmpm.playfile_internal $* #} #alias mmpm.playfile2 { # @mmpm.donotstop = [$0] # mmpm.playfile_internal $1- #} #I am not sure why the raw version of mmpm.playfile does not work... #until I figure it out... alias mmpm.playfile { eval $mciapi(playfile $0) } alias mmpm.playfile2 { eval $mciapi(playfile $0) } alias mmpm.sendplaycmd { @ mmpm[$device][nextfile] = [$*] switch ($mmpm[$device][state]) { (CLOSED) { if (device == [wave]) { @ device.name = [waveaudio] } else if (device == [midi]) { @ device.name = [sequencer] } else { @ device.name = 0 } mmpm.raw open $device.name alias $device$pid() shareable if (!mmpm.err) @mmpm[$device][state] = [OPEN_WAIT] } (PLAYING) { ### let the stop notification kick in next file mmpm.raw stop $device$pid() if (mmpm.err) {mmpm.close} } } } ### should return a device name 'wave' or 'midi' for a filename passed ### as a parameter alias mmpm.get_device_for_file { @ function_return = 0 switch ($*) { (*.wav)(*.au)("*.wav")("*.au") { @ function_return = [wave] } (*.mid)(*.midi)("*.mid")("*.midi") { @ function_return = [midi] } (*) { ### todo: default, may open file and look for a header } } } alias mmpm.playfile_internal { if (mmpm.multimedia && file.exist($*)) { @ device = mmpm.get_device_for_file($*) if (device) { if (!mmpm.donotstop || mmpm[$device][state] != [PLAYING]) { mmpm.sendplaycmd $* } }{ mmpm.debug +++ Unknown file extention `$*' } } } # Numeric code for commands we use: # @mmpm.commands[OPEN] = 1 @mmpm.commands[CLOSE] = 2 @mmpm.commands[LOAD] = 22 @mmpm.commands[PLAY] = 4 @mmpm.commands[STOP] = 6 # # These are notification codes, anything else is an error code and # error description can be found using mciapi(errorstr code) function # # #define MCI_NOTIFY_SUCCESSFUL 0x0000 # #define MCI_NOTIFY_SUPERSEDED 0x0001 # #define MCI_NOTIFY_ABORTED 0x0002 # #define MCI_NOTIFY_ERROR 0x0003 ### global variable device == wave or midi alias mmpm.close { if (mmpm[$device][state] != [CLOSED] && mmpm[$device][state] != [CLOSE_WAIT]) { mmpm.raw close $device$pid() if (!mmpm.err) { @ mmpm[$device][state] = [CLOSE_WAIT] } else { @ mmpm[$device][state] = [CLOSED] } } } ### #define MCIERR_BASE 5000 alias mmpm.raw { mmpm.debug Raw $* @mmpm.result = mciapi(raw ${device==[wave]?11:12} $* notify) @mmpm.err = mmpm.result > 5000 } alias mmpm.kickload { if (mmpm[$device][nextfile] != []) { mmpm.raw load $device$pid() $mmpm[$device][nextfile] ${device==[wave]?[readonly]:[]} if (!mmpm.err) { @mmpm[$device][state] = [LOAD_WAIT] @mmpm[$device][nextfile] = [] }{ mmpm.close } }{ mmpm.close } } ### we are receiving control of a device on ^mci_notify "passdevice % 2" { if ([$1] == mmpm.wave) { @ device = [wave] } else if ([$1] == mmpm.midi) { @ device = [midi] } else { @ device = 0 } if (device) { if (mmpm[$device][state] == [OPENED]) { mmpm.kickload } } else { mmpm.debug +++ Aqured device $1 (not opened by mmpm.api module) } } ### we are loosing control of a device, so lets close it to avoid confusion on ^mci_notify "passdevice % 1" { if ([$1] == mmpm.wave) { @ device = [wave] } else if ([$1] == mmpm.midi) { @ device = [midi] } else @ device = 0 if (device) { mmpm.debug someone is taking device from us... mmpm.close } } ### This is a main handler of notifications from mmpm/2, each command we ### issue (except set volume ones) have `nofify' flag, and is confirmed here. ### Much to my surprise I yet have to see mmpm/2 to lose notifications... on ^mci_notify "NOTIFY % 1? % %" { mmpm.debug Notify $* if ([$2] == 11) { @ device = [wave] } else if ([$2] == 12) { @ device = [midi] } else @ device = 0 if (device) { if ([$4] == mmpm.commands[OPEN]) { ### open notification if ([$1] == 0) { @ mmpm[$device] = [$3] @ mmpm[$device][state] = [OPENED] ### it waits for passdevice now, which gonna start file loading }{ mmpm.close } } else if ([$4] == mmpm.commands[LOAD]) { ### load notification, lets play it now when it finished loading if ([$1] == 0) { if (mmpm[$device][volume] != 100) { if (device == [midi]) { @mciapi(raw set midi$pid() volume $mmpm[$device][volume]) } else if (device == [wave]) { @mciapi(raw set wave$pid() audio volume all $mmpm[$device][volume]) } } mmpm.raw play $device$pid() if (!mmpm.err) { @ mmpm[$device][state] = [PLAYING] } else { mmpm.close } }{ mmpm.close } } else if ([$4] == mmpm.commands[PLAY]) { ### play is finished, try to start next file in case we were stopped mmpm.kickload } else if ([$4] == mmpm.commands[STOP]) { ### stop notification, not actually used anyhow mmpm.debug Stop confirmed } else if ([$4] == mmpm.commands[CLOSE]) { ### close notification, lets mark device as closed... if ([$1] == 0) { @mmpm[$device][state] = [CLOSED] @mmpm[$device] = 0 } } } else { mmpm.debug +++ Unknown device $3 notification received } } alias mmpm.midi.stop { @ device=[midi] mmpm.close } alias mmpm.wave.stop { @ device=[wave] mmpm.close } alias mmpm.stop { mmpm.wave.stop mmpm.midi.stop } alias mmpm.midi.volume { @ mmpm.midi.volume = [$0] if (mmpm.midi.state == [PLAYING]) @mciapi(raw set midi$pid() volume $0) } alias mmpm.wave.volume { @ mmpm.wave.volume = [$0] if (mmpm.wave.state == [PLAYING]) @mciapi(raw set wave$pid() audio volume all $0) } alias mmpm.volume { mmpm.wave.volume $0 mmpm.midi.volume $0 } ### these are aliases for debugging, /mci sends a raw ### command to mmpm/2 and displays result and an error string in case of error /on ^mci_notify * {echo [mci] $*} /alias mci { @ _rc = mciapi(raw $0-) if (_rc) { echo [mci] Error: $mciapi(errstring $_rc) }{ if (mciapi(result) != []) { echo [mci] Result: $mciapi(result) } } } ############# #GemZ Extras# ############# @ gz.extras = 1 ######################################################################### ### figlet v1.0 support by Kanji_Man. Modified by Gemini ### Modified by OS2-Mike # fixed code by OS2-Mike (with a lot of help from mikh) # fixored the prob of 4OS2 echoing its logo info into the figlet pipe. # filget.exe is borked - it expects a ^Z EOF to terminate it - # added to $fig.text # Modified slightly by gemini to replace ^Z with $chr(26) :) ######################################################################### @ def.figfont = [short] @ fig.fontdir = [$exedir/fonts] @ figfont = [$fig.fontdir/bubble.flf] alias figfix { if ([$0]) { @ figfix.count = 0 ^assign -figfix.text while ([$@0-]>=[$figfix.count]) { @ figfix.char = [$mid($figfix.count 1 $0-)] if ([$strip(<>\;\(\)*/\\\{\}$$~`|'\" $figfix.char)]!=[$figfix.char]) { @ figfix.text = [$figfix.text\\] } if (figfix.char) { ^assign figfix.text $figfix.text$figfix.char } else {^assign figfix.text $figfix.text} @ figfix.count++ } @ FUNCTION_RETURN = [$encode($figfix.text)] purge fixfix } else {gecho [Error] FIGFIX is an internal alias, avoid using!} } alias fig figlet $* #alias figlist {^exec -name figlet ls $fig.fontdir/*.flf} alias figlist { gecho Starting Font list fe ($findfiles(fn $fig.fontdir/*.flf)) _f.1 _f.2 _f.3 _f.4 { gecho $[15]_f.1 $[15]_f.2 $[15]_f.3 $[15]_f.4 } gecho End of Font list purge _f } alias figlet { if ([$0]) { @ fig.text = encode($strip(| $1-)) ## encode($chr(26)) ^on ^exec_error "figlet *" {gecho [ERROR] Cannot load figlet!} if ([$0]==[*]) {^exec -name figlet -out figlet -f $figfont;^msg %figlet $decode($fig.text) } else {^exec -name figlet -msg $0 figlet -f $figfont;^msg %figlet $decode($fig.text)} ^assign -fig.text } else {gecho Usage: /FIGLET } } alias figfont { if ([$0]) { @ figfont.file = [$0] if ([$fexist($fig.fontdir/$figfont.file\.flf)]==[1]) { gecho Figlet font changed from $fig.fontfile\ to $figfont.file\. @ figfont = [$fig.fontdir/$figfont.file\.flf] @ fig.fontfile = [$figfont.file] if ([$1]==[-d]) {@ def.figfont = [$figfont.file];gecho Default Figlet Font Changed} ^assign -figfont.file } else {gecho [Error] Figlet font not found: $figfont.file\} } else { gecho Current Figlet Font: $fig.fontfile\ gecho Usage: /FIGFONT } } alias figdir { input "Please Enter The directory where you fonts are located: " if ([$0]) { if ([$fexist($0-)]==[1]) { @ fig.fontdir = [$0-] gecho Figlet Font Directory Changed to $fig.fontdir } } else { gecho Figlet Font Directory is $fig.fontdir } figfont $fig.fontfile } #added by request -- Ripped from Kanji :) alias bleah { if ([$0]) { ^msg $0 \\|/ ____ \\|/ \\|/ ____ \\|/ ^msg $0 ~@-/ oO \\-@~ ~@-/ Oo \\-@~ ^msg $0 /_\( \\__/ \)_\\ Bleah!! /_\( \\__/ \)_\\; ^msg $0 \\__U_/ \\_U__/ gecho BLEAH launched on $0. }{gecho Usage: /BLEAH } } alias bork { if (C) { @ _o.s = lastserver() @ _o.t = _dfn($_o.s) evalserver $_o.s @ _o.n = N evalserver $_o.s @ _o.c = C evalserver $_o.s nick SwdshChef evalserver $_o.s WAIT evalserver $_o.s saysend $_o.c bork bork bork bork evalserver $_o.s nick $_o.n @ _rfn($_o.s $_o.t) purge _o }{gecho Yer not on a channel in this window.} } alias _dfn { @ function_return = fn[$servergroup($0)] @ fn[$servergroup($0)] = 0 } alias _rfn {@ fn[$servergroup($0)] = [$1]} alias fozzie { if (C) { @ _o.s = lastserver() @ _o.t = _dfn($_o.s) evalserver $_o.s @ _o.c = C evalserver $_o.s @ _o.n = N evalserver $_o.s nick _fozzie_ evalserver $_o.s WAIT evalserver $_o.s saysend $_o.c wakka wakka wakka evalserver $_o.s nick $_o.n @ _rfn($_o.s $_o.t) purge _o }{gecho Your not in a channel in this window.} } alias beaker {@ o.n = [$N];nick _Beaker_;WAIT;say meep meep meep meep;nick $o.n;^assign -o.n} alias gimpkick { @ _g.s = lastserver() @ _g.t = _dfn($_g.s) @ _g.n = N @ _g.c = C if (ischanop($_g.n $_g.c)) { evalserver $_g.s saysend $_g.c $0, I think The Gimp would love a piece of meat like you... evalserver $_g.s saysend $_g.c You're the kind of piece of shit trash he likes... evalserver $_g.s nick _The_Gimp_ evalserver $_g.s WAIT evalserver $_g.s saysend $_g.c ARRRGGGGGGGGGHHHHHHHH!!!!! evalserver $_g.s saysend $_g.c I'm gonna drill you a new asshole!!! evalserver $_g.s WAIT evalserver $_g.s me Bends $0 over and "goes to town" on him! evalserver $_g.s saysend $_g.c AAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!! evalserver $_g.s saysend $_g.c Feels so fuckin good don't it boy!!!!????? evalserver $_g.s WAIT evalserver $_g.s me zip up $gender leather pants and leaves $0 crying and rubbing his ass! evalserver $_g.s //kick $_g.c $0 You're good...you should give references... evalserver $_g.s nick $_g.n @ _rfn($_g.s $_g.t) }{gecho You're not a channel Operator} purge _g } # alias soupkick { @ _s.s = lastserver() @ _s.t = _dfn($_s.s) @ _s.c = C if (ischanop($N $C)) { evalserver $_s.s @ _s.n = N evalserver $_s.s nick Soup_Nzi evalserver $_s.s Wait evalserver $_s.s saysend $_s.c VAT!??!??!!!! evalserver $_s.s //kick $_s.c $0 N() S()UP F()R Y()U evalserver $_s.s Wait evalserver $_s.s nick $_s.n @ _rfn($_s.s $_s.t) } purge _s } #ripped from Kanji_man alias gerbilkick { if (ischanop($N $C)) { @ old_nick = N say $0, watch out for the giant gerbil... say I hear he likes MomoBoys like you... nick _Gerbil_ WAIT me towers above the entire channel... looking for pleasure... me reaches down and grabs $0 by the shoulders with one claw... WAIT me bends over, parts both cheeks with the other claw... WAIT me begins to scream as a muffled shreek can be heard from $0 /k $0 SCREEEEEEEEEEEEEECH! nick $old_nick ^assign -old_nick }{gecho You're not a channel operator} } ###Pimp Ideas Ripped from PimpToolz alias pimpslap { if (ischanop($N $C)) { @ old_nick = N nick PimpGuido WAIT say WhaT HaPPenS wHeN YeR hO dOn'T WoRk?? /k $0 !PiMPSlaP HeR! WAIT nick $old_nick WAIT ^assign -old_nick }{gecho You're not a channel operator} } alias pimpkick { if (ischanop($N $C)) { @ old_nick = N nick PimpGuido WAIT say WHAT IS THE MEANING OF PIMP? say PiMP = PoWeR! say PiMP = PoWeR! say PiMP = PoWeR! WAIT /k $0 !PiMP-PoWeR! !PiMP-PoWeR! WAIT nick $old_nick WAIT ^assign -old_nick }{gecho You're not a channel Operator} } alias stinkkick { if (ischanop($N $C)) { say ShiT SomEThinG FuXinG StINkS!!! /k $0 !ThaT'S BeTTeR! }{gecho You're not a channel Operator} } alias lamahkick { if (ischanop($N $C)) { say I'M A LaMaH HawK... say HuNtInG FoR A LaMaH... /k $0 !FuXinG LaMaH! }{gecho You're not a channel Operator} } #-------------------------------------------------------------------------# #Swedish Chef Filter by gemini alias chefsay { @ in_line = [$0-] fe ($in_line) _in_word { switch ($_in_word) { (bork) {@ _out_line = _out_line ## [$_in_word]} (*tion) { @ _len = [$@_in_word] - 4 @ _out_line = [$_out_line ]##[$subchef($left($_len $_in_word))]##[shun] } (an) {@ _out_line = _out_line ## [un ]} (the) {@ _out_line = _out_line ## [zee ]} (*) {@ _out_line = _out_line##[$subchef($_in_word)] } } } say $_out_line ^assign -_out_line;^assign -_in_line;^assign -_in_word } alias chefme { @ in_line = [$0-] fe ($in_line) _in_word { switch ($_in_word) { (bork) {@ _out_line = _out_line ## [$_in_word]} (*tion) { @ _len = [$@_in_word] - 4 @ _out_line = [$_out_line ]##[$subchef($left($_len $_in_word))]##[shun] } (an) {@ _out_line = _out_line ## [un]} (the) {@ _out_line = _out_line ## [zee]} (*) {@ _out_line = _out_line##[$subchef($_in_word)] } } } me $_out_line ^assign -_out_line;^assign -_in_line;^assign -_in_word } alias chefmsg { @ in_line = [$1-] fe ($in_line) _in_word { switch ($_in_word) { (bork) {@ _out_line = _out_line ## [$_in_word]} (*tion) { @ _len = [$@_in_word] - 4 @ _out_line = [$_out_line ]##[$subchef($left($_len $_in_word))]##[shun] } (an) {@ _out_line = _out_line ## [un]} (the) {@ _out_line = _out_line ## [zee]} (*) {@ _out_line = _out_line ##[$subchef($_in_word)] } } } /msg $0 $_out_line ^assign -_out_line;^assign -_in_line;^assign _in_word } alias subchef { @ __bork = [$0] fec ($__bork) _bork { switch ($_bork) { (a) {@ bork_return = bork_return ## [e]} (e) {@ bork_return = bork_return ## [i]} (f) {@ bork_return = bork_return ## [ff]} (i) {@ bork_return = bork_return ## [ee]} (v) {@ bork_return = bork_return ## [f]} (o) {@ bork_return = bork_return ## [u]} (u) {@ bork_return = bork_return ## [oo]} (w) {@ bork_return = bork_return ## [v]} #(.) {@ bork_return = bork_return ## [. Bork Bork Bork!]} (!) {@ bork_return = bork_return ## [! Bork Bork Bork!]} (*) {@ bork_return = bork_return ## [$_bork]} } } @ FUNCTION_RETURN = [$bork_return ] ^assign -bork_return;^assign -_bork;^assign -__bork } alias postal { if (C) { @ _p.s = lastserver() @ _p.t = _dfn($_p.s) @ _p.c = C @ _p.mn = N evalserver $_p.s if (ischanop($_p.mn $_p.c)) { if ([$0]==[all]) { evalserver $_p.s @ _p.l = chanusers($_p.c) }{ evalserver $_p.s fe ($chanusers($_p.c)) _p.u {if (!ischanop($_p.u $_p.c)) {@ _p.l = [$_p.l $_p.u]}} } @ _p.n = [$mid(0 3 $_p.mn)] @ _p.n = [$_p.n]##[Postal] @ _p.o = [$_p.mn] evalserver $_p.s /me suddenly has an urge to become a postal worker. evalserver $_p.s /nick $_p.n evalserver $_p.s WAIT evalserver $_p.s /me grabs an assault weapon and picks a random person... evalserver $_p.s //kick $_p.c $word($rand($#_p.l - 1) $_p.l) pOsTaLkIcK vIcTiM evalserver $_p.s /nick $_p.o @ _rfn($_p.s $_p.t) }{gecho You don't own a gun, You can't go postal without one!} }{gecho Not in a channel, how can you go postal???} purge _p } alias gz.unloadextras { ^alias -bleah;^alias -bork;^alias -fozzie;^alias -beaker ^alias -postal;^alias -chefme;^alias -chefsay;^alias -subchef ^alias -gimpkick;^alias -soupkick;^alias -gerbilkick;^alias -pimpslap ^alias -pimpkick;^alias -pimpslap;^alias -lamahkick;^alias -stinkkick ^assign -gz.extras; ^timer 1 ^alias -gz.unloadextras ^timer 2 makegemzmenu } #Stripw (orginal asmodean) alias stripw { for (@ __i = 1, [$($__i)] != [], @ __i = __i + 1) { if ([$($__i)] != [$0]) {@ _sw = _sw ## [ $($__i)]} } @ function_return = mid(1 2048 $_sw) ^assign -_sw; } alias _srvc.menu { if (isconnected($0)) { # //window goto ${ww = _srv.win($0)} //xecho -window $ww $SHOW_NUMERICS_STR\This server is connected or in process of connecting } else { //server $0 } } alias _srvn.menu { if (isconnected($0)) { # //window goto ${ww = _srv.win($0)} //xecho -window $ww $SHOW_NUMERICS_STR\This server is connected or in process of connecting } else { //window create server $0 } } alias _cm {if ([$0]==[ON] || [$0]==[YES] || [$0]==[1]) {@ FUNCTION_RETURN = [-c]} } alias makemenu { ^menu -menubar ^menu menubar ^submenu menubar main -s "~Main" ^submenu menubar join -s "~Join" ^submenu menubar user -s "~User" ^submenu menubar server -s "~Server" ^submenu menubar cdcc -s "~CDCC" ^submenu menubar msgs -s "M~esgs" ^submenu menubar bx -s "~BitchX" #^submenu menubar window -s "~Windows" ^submenu menubar help -s "~Help" ^makemain ^makejoin ^makeuser ^makeserver ^makecdcc ^makemesgs ^makebx #^makewindows ^makehelp ^set DEFAULT_MENU menubar ^window menu menubar } alias makemain { menu -main menu main ^submenu main saveset "Save Settings" ^menuitem saveset "Save All" { /save /cdcc save } ^menuitem saveset "Save BitchX Settings" {/save} ^menuitem saveset "Save CDCC pack list" {/cdcc save} ^submenu main clrscr "Clear Screen" ^menuitem clrscr "Clear Screen" {/clear} ^menuitem clrscr "Clear All" {/clear -all} ^menuitem clrscr "Clear Scrollback" {/clear -scrollback} ^menuitem clrscr "Clear All Scrollback" {/clear -scrollback -all} ^submenu main settings "Settings" ^menuitem settings -n -c $_cm($ctcpsound) 9 "Ctcp Sound" { if (ctcpsound == [ON]) { @ ctcpsound = [OFF] @ menucontrol(settings 9 check 0) } else { @ ctcpsound = [ON] @ menucontrol(settings 9 check 1) } } ^menuitem settings -n -c $_cm($ctcpsndreq) 10 "Ctcp Sound Request" { if (ctcpsndreq == [ON]) { @ ctcpsndreq = [OFF] @ menucontrol(settings 10 check 0) } else { @ ctcpsndreq = [ON] @ menucontrol(settings 10 check 1) } } ^menuitem settings -n -c $_cm($loadacts) 11 "Load Action File" { if (loadacts == [YES]) { @ loadacts = [NO] @ menucontrol(settings 11 check 0) } else { @ loadacts = [YES] @ menucontrol(settings 11 check 1) } } if (ctcpsound == [ON]) { @ menucontrol(settings 9 check 1) } else { @ menucontrol(settings 9 check 0) } if (ctcpsndreq == [ON]) { @ menucontrol(settings 10 check 1) } else { @ menucontrol(settings 10 check 0) } if (loadacts == [YES]) { @ menucontrol(settings 11 check 1) } else { @ menucontrol(settings 11 check 0) } ^menuitem main "Properties" {/properties} ^menuitem main "Change Font" {/fontdialog 0 0} ^menuitem main separator ^menuitem main "Quit" {/quit} } alias makejoin { menu -join menu join for (@ ajl=0, ajoinitem($ajl), @ajl++) { @ ajlchan = [$word(0 $ajoinitem($ajl))] @ ajlkey = [$word(1 $ajoinitem($ajl))] submenu join join$ajl "$ajlchan" menuitem join$ajl -d "Join Channel" {j $ajlchan $ajlkey} menuitem join$ajl "Leave Channel" {leave $ajlchan} menuitem join$ajl "Cycle Channel" {cycle $ajlchan} menuitem join$ajl "Remove From List" {unajoin $ajlchan} } menuitem join separator menuitem join "Leave ~Current Channel" {l} menuitem join "~Leave & Kill Current Window" {window delete} menuitem join "~Show AutoJoinList" {ajoinlist} # gz.addonjoin # menu join -reset } alias makeuser { menu -user menu user ^menuitem user "Set Away" {/away $J Away} ^menuitem user "Set Back" {/back} ^menuitem user separator ^menuitem user "Show Notify" {//notify} } alias makeserver { menu -srv menu srv submenu server srvc "Change Current Server" submenu server srvn "Connect to new server" purge srvgrp for (@ srv=0, servername($srv), @srv++) { if (srvgrp = servergroup($srv)) { if (!srvgrp[srvc][$encode($srvgrp)]) { @ srvgrp[srvc][$encode($srvgrp)] = 1 submenu srvc srvc_$encode($srvgrp) "$srvgrp" } menuitem srvc_$encode($srvgrp) "$servername($srv):$word(0 $serverport($srv))" {_srvc.menu $srv} # if submenu does not exist if (!srvgrp[srvn][$encode($srvgrp)]) { @ srvgrp[srvn][$encode($srvgrp)] = 1 submenu srvn srvn_$encode($srvgrp) "$srvgrp" } menuitem srvn_$encode($srvgrp) "$servername($srv):$word(0 $serverport($srv))" {_srvn.menu $srv} } else { #servers without a group menuitem srvc "$servername($srv):$word($serverport($srv))" {_srvc.menu $srv} menuitem srvn "$servername($srv):$word($serverport($srv))" {_srvn.menu $srv} # menuitem srvc ${isconnected($srv)?[-c]:[]} "$servername($srv):$word($serverport($srv))" {_srvc.menu $srv} # menuitem srvn ${isconnected($srv)?[-c]:[]} "$servername($srv):$word($serverport($srv))" {_srvn.menu $srv} } } menuitem srvc separator menuitem srvc "Manually enter server: " { manserv } menuitem srvn separator menuitem srvn "Manually enter server: " { manservn } menuitem server separator ^menuitem server "Reconnect" {/rec} ^menuitem server "Disconnect" {/disco} ^menuitem server separator ^submenu server servinfo "Server Information" ^menuitem servinfo "Administration" {/admin} ^menuitem servinfo "List users" {/luser} ^menuitem servinfo "Message of the Day" {/motd} ^menuitem servinfo "Server Links" {/links} ^menuitem servinfo "Server Uptime" {/stats u} ^submenu server ov "Toggle OperView" ^menuitem ov "On" {/ov on} ^menuitem ov "Off" {/ov off} } alias makedccmenu { menu -dccgl menu dccgl if (dccitem(1)) { #add default when fixed menuitem dccgl -d "Display DCC Items" { dcc } menuitem dccgl separator } else { menuitem dccgl -d "No DCC's in progress" { dcc } } for (@ _gl.i = 1, _gl.x = dccitem($_gl.i), @ _gl.i++) { if (word(0 $_gl.x) == [chat] || word(0 $_gl.x) == [raw]) { submenu dccgl dccsubgl$_gl.i "~$_gl.i $toupper($word(0 $_gl.x)): $word(1 $_gl.x)" } else { submenu dccgl dccsubgl$_gl.i "~$_gl.i $toupper($word(0 $_gl.x)): $word(1 $_gl.x) \($file.sanspath($word(8 $_gl.x))\)" gl $_gl.i } menuitem dccsubgl$_gl.i -d "Display" { dcc } if (xdcc.isoktopreview($file.sanspath($word(8 $_gl.x)))) { menuitem dccsubgl$_gl.i "~Preview Image" { previewbynum $word(9 $_gl.x) } } menuitem dccsubgl$_gl.i "Close" { //dcc close $word(9 $_gl.x) } } purge _gl menu dccgl -reset } makedccmenu alias makecdcc { menu -cdcc menu cdcc ^submenu cdcc dccgl -s "Current DCC Items" ^submenu cdcc cdccoff "Offers..." ^menuitem cdccoff "Create New offer" {cdcc offer} ^menuitem cdccoff "Remove an Existing offer" {cdcc doffer} ^menuitem cdccoff "List your offers (local)" {cdcc list} ^menuitem cdccoff "Notify Current Channel" {cdcc notice} ^menuitem cdccoff "Show channel your offers" {cdcc plist} ^menuitem cdccoff separator ^menuitem cdccoff "Save Offer File" {cdcc save} ^menuitem cdccoff "Reload Offer File" {cdcc load} ^menuitem cdcc separator ^menuitem cdcc "Create DCC ~Window" {/window create level dcc} ^menuitem cdcc "Send File(s)" { mansenddialog } ^menuitem cdcc "ReSend File(s)" { manresenddialog } } alias manserv { @ _kat = [$"Enter Server name: "] if (_kat) {//^server $_kat} ^assign -_kat } alias manservn { @ _kat = [$"Enter Server name: "] if (_kat) {//^window create server $_kat} ^assign -_kat } alias makemesgs { ^menuitem msgs "Read Message log" {/readlog} ^menuitem msgs "Delete Message log" {/remlog} } alias makebx { ^submenu bx bxmdi "MDI Window..." ^menuitem bxmdi "MDI On" {/set MDI on} ^menuitem bxmdi "MDI Off" {/set MDI off} ^menuitem bx separator ^menuitem bx "Paste" {/pmpaste} ^menuitem bx "Paste to input" {/pmpaste -input} ^menuitem bx "SmartPaste" {/pmpaste -smart} ^menuitem bx separator ^menuitem bx "Play a sound" {/dialogplaysound} ^menuitem bx separator ^menuitem bx "Show Version" {/sv} } alias makewindows { ^menuitem window "New Window" {/window create} ^menuitem window "Describe Window" {/window describe} } alias makehelp { ^menuitem help "Help" {/help} ^menuitem help "Extended Help" {/bhelp index} ^menuitem help separator ^menuitem help "About" {/about} } alias redraw_menus { for (@ idx = 1, (win = winitem($idx)) && !done, @ idx++) { if (win) { if ([$word(6 $win)]!=[]) { ^window $word(0 $win) menu $word(6 $win) } } else {@ done = 1} } ^assign -done;^assign -win;^assign -idx } alias makepopup { @ gt.ppnick = [$1] @ gt.ppchan = [$0] menu -popup menu popup //submenu popup md "$gt.ppnick" //menuitem md "Op (+o)" {op $gt.ppnick} //menuitem md "DeOp (-o)" {deop $gt.ppnick} //menuitem md "Voice (+v)" {voice $gt.ppnick} //menuitem md "Quiet (-v)" {quiet $gt.ppnick} ##Add some cool ignore stuff here. //menuitem md "Ignore (temp)" {ig $gt.ppnick all} //menuitem md "Ignore (perm)" {ig $gt.ppnick -p all} //menuitem md "Unignore" {unig $gt.ppnick all} ##Do it right //submenu popup nxdcc "XDCC" //menuitem nxdcc -d "Req Pack List" {msg $gt.ppnick xdcc list} //menuitem nxdcc separator for (@ _xidx = 1, _xidx <= 15, @ _xidx++) { //submenu nxdcc nx$_xidx "Pack #$_xidx " //menuitem nx$_xidx "List" msg $gt.ppnick xdcc list #$_xidx //menuitem nx$_xidx -d "Send" msg $gt.ppnick xdcc send #$_xidx //menuitem nx$_xidx "ReSend" msg $gt.ppnick xdcc resend #$_xidx } //menuitem popup "Send File(s)" {senddialog $gt.ppnick} //menuitem popup "ReSend File(s)" {resenddialog $gt.ppnick} //menuitem popup "Send Sound" {dialogsound $gt.ppnick} //submenu popup popother "Other" //menuitem popother -d "Whois" {whois $gt.ppnick} //menuitem popother "Server Whois" {wii $gt.ppnick} //menuitem popother "Lookup" {nslookup $gt.ppnick} //menuitem popother "Channel Idletime" {/showidle} //menuitem popother separator //menuitem popother "Talk (query)" {talk $gt.ppnick} //menuitem popother "Chat (dcc chat query)" {chat $gt.ppnick} //menuitem popother separator //menuitem popother "Ping" {ping $gt.ppnick} //menuitem popother "Time" {/ctcp $gt.ppnick TIME} //menuitem popother "UserInfo" {/ctcp $gt.ppnick userinfo} //menuitem popother "Finger" {/ctcp $gt.ppnick finger} //menuitem popother "Version" {ver $gt.ppnick} //menuitem popup separator //submenu popup kicks "Kicks" //menuitem kicks -d "Random Kick" {k $gt.ppnick} //menuitem kicks "McKick" {mck $gt.ppnick} //menuitem kicks "McKick (break)" {mcdk $gt.ppnick} //menuitem kicks "TacobellKick" {tbk $gt.ppnick} //menuitem kicks "BurgerKing Kick" {bkk $gt.ppnick} //menuitem kicks "KentuckyFried" {kfck $gt.ppnick} //menuitem kicks "CarlsJr Kick" {cjk $gt.ppnick} //menuitem kicks "TaeKwonLeap Kick" {tkl $gt.ppnick} //menuitem kicks "GreetKick" {gk $gt.ppnick} if (gz.extras) //menuitem kicks -b "PimpKick" {pimpkick $gt.ppnick} if (gz.extras) //menuitem kicks "PimpSlap" {pimpslap $gt.ppnick} if (gz.extras) //menuitem kicks "GerbilKick" {gerbilkick $gt.ppnick} if (gz.extras) //menuitem kicks "GimpKick" {gimpkick $gt.ppnick} if (gz.extras) //menuitem kicks "Stinkkick" {stinkkick $gt.ppnick} if (gz.extras) //menuitem kicks "LamahKick" {lamahkick $gt.ppnick} if (gz.extras) //menuitem kicks "Soup Kick" {soupkick $gt.ppnick} //submenu popup popban "Bans" //menuitem popban "Ban" {ban $gt.ppnick} //menuitem popban -d "Ban/Kick" {bk $gt.ppnick} //menuitem popban "Kick/Ban/Ignore" {kbi $gt.ppnick} //menuitem popban separator //menuitem popban "Screw Ban" {sban $gt.ppnick} //menuitem popban "Screw Ban/Kick" {sban $gt.ppnick;k $gt.ppnick} //menuitem popban "Screw Ban/Kick/Ignore" {sban $gt.ppnick;k $gt.ppnick;ig $gt.ppnick} //menuitem popup separator //submenu popup popnotify "Notify..." //menuitem popnotify "Add to Notify list" {//notify $gt.ppnick} //menuitem popnotify "Remove from Notify List" {//notify -$gt.ppnick} //menuitem popnotify "Show Notify List" {//notify} //submenu popup poppaste "Clipboard" //menuitem poppaste -d "Paste" {//pmpaste} //menuitem poppaste "SmartPaste" {//pmpaste -smart} //menuitem popup separator //submenu popup actions "Actions" //submenu actions cluebats "ClueBats" //menuitem cluebats "Clue Bludgeon" {/me bludgeons $gt.ppnick with the cluebat} //menuitem cluebats "Lead ClueBat" {/me pulls out a lead cluebat, engraves $gt.ppnick's name on it, and swings wildly} //menuitem cluebats "Pi¤ata" {/me strings $gt.ppnick up, puts on a blindfold, and declares a cluebat pi¤ata party!!!} //menuitem cluebats "SuperMomoCluebat" {/me purchases a sUpErMoMo (tm) cluebat and pummels $gt.ppnick to the ground} //menuitem cluebats "Windows Cluebat" {/me finds the Windows edition Cluebat, taps it over $gt.ppnick's head, and watches it break} //menuitem actions separator //menuitem actions "Awake?" {/me pokes $gt.ppnick in the ribs ... you awake?} //menuitem actions "Backside" {/me calls attention to $gt.ppnick's backside} //menuitem actions "Booger" {/me flicks a booger at $gt.ppnick} //menuitem actions "Cookie Toss" {/me tosses $gt.ppnick a cookie... good boy} //menuitem actions "Curse" {/me wishes the fleas of a thousand camels upon $gt.ppnick's underwear drawer.} //menuitem actions "Fart" {/me farts in $gt.ppnick's general direction, clearing $gt.ppchan as well.} //menuitem actions "Finger" {/me gives $gt.ppnick the finger. nInn} //menuitem actions "Glare" {/me glares at $gt.ppnick} //submenu actions ctacts -b "Cute Actions" //menuitem ctacts "Hug" {/me hugs $gt.ppnick ....} //menuitem ctacts "Pass Kiss" {/me Passionately Kisses $gt.ppnick} //menuitem ctacts "Hug/Kiss" {/me Hugs and Kisses $gt.ppnick} //menuitem ctacts "Dance" {/me takes $gt.ppnick in hand and Dances $rgenderex() around the channel} //menuitem ctacts "OZ-Hug" {/me gives $gt.ppnick a Big Ole Ozzie hug....} //menuitem ctacts "Rose" {/me drops to $gender knees and hands $gt.ppnick a long stemed rose @>->-`-,-->---} //menuitem ctacts "Snuggle" {/me snuggles up to $gt.ppnick ....} //menuitem actions separator //menuitem actions "HerringSlap" {/me slaps $gt.ppnick around a bit with an official sized #os/2 herring...} //menuitem actions "Noogie" {/me noogies $gt.ppnick} //menuitem actions "Nosepicker" {/me watches in disgust, as $gt.ppnick picks their nose} //menuitem actions "Slap" {/me slaps $gt.ppnick around a bit with a substantially large Brown Cow...} //menuitem actions "Moon" {/me drops $gender drawers and moons $gt.ppnick ( | )} //menuitem actions "PoopFace" {say Hey $gt.ppnick does the expression "Up your Bum PoopFace" Mean anything to you ??? :P} //menuitem actions "Rose" {/me tosses $gt.ppnick a rose @>--`-} //menuitem actions "Smurf" {/me points at $gt.ppnick and calls him a 09SMURF07} //submenu actions deaths -b "Deaths" //menuitem deaths "AK47" {/me pulls out $gender trusty AK47... nestles the sites squarely on $gt.ppnick's head... eases back on the trigger and empties a 30 round clip....BANG You're Dead} //menuitem actions separator //menuitem actions "Sneeze" {/me sneezes violently and a blob of snot lands on $gt.ppnick} //menuitem actions "Thwap" {/me thwaps $gt.ppnick upside the head... \"Get with the program.\"} //menuitem actions "Tickle" {/me sneaks up behind $gt.ppnick ... tickle tickle tickle...} //menuitem actions "Wet Noodle" {/me pummels $gt.ppnick with a wet noodle} //menuitem actions "Whistle" {/me whistles with an innocent look on $gender face...} //menuitem actions "Win95 Torture" {/me handcuffs $gt.ppnick to a desk with Windows95 - "Multitask, bitch."} //menuitem actions "Vomit upon" {/me vomits repeatedly upon $gt.ppnick} //menuitem actions "Yucko" {/me slids over close to $gt.ppnick and gives them a nice slimey YUCKO !!!!} //submenu popup greets "Greets" //menuitem greets "moo" {say moo $gt.ppnick} //menuitem greets "\'lo" {say 'lo $gt.ppnick} //menuitem greets "heya" {say heya $gt.ppnick} //menuitem greets "what's up" {say what's up $gt.ppnick} //menuitem greets "re" {say re $gt.ppnick} //menuitem greets "hi" {say hi $gt.ppnick} //menuitem greets "Yo" {say Yo!! $gt.ppnick\!} //menuitem greets "hello" {say hello $gt.ppnick} //menuitem greets "Howdy" {say Howdy $gt.ppnick} //menuitem greets "\'sup?" {say \'sup $gt.ppnick\?} //menuitem greets "!!!!!" {say $gt.ppnick!!!!!} //menuitem greets "!@#\$\%\^" {say $gt.ppnick\!@#\$\%\^} //submenu popup byes "Byes" //menuitem byes "bye" {say bye $gt.ppnick} //menuitem byes "hastalapasta" {say hastalapasta $gt.ppnick} //menuitem byes "hastalabyebye" {say Hastalabyebye $gt.ppnick} //menuitem byes "wave" {/me waves bye to $gt.ppnick\. \"Don't let the door hit you in the arse\"} //menuitem byes "See ya" {say See ya $gt.ppnick} if ([$loadacts]==[YES]) { /loadplug $actionsfile } ^popupmenu popup } alias rccheck { if (onchannel($lastclickline(4) $C)==1) {makepopup $C $lastclickline(4)} else {windowlist} } alias ldccheck { if (onchannel($lastclickline(4) $C)==1) {talk $lastclickline(4)} } alias logstart { @ cc = [$0] filedialog S $exedir/*.log "Logfile for $cc" "Set" { if ([$0]==[OK]) { ^cset CHANNEL_LOG_FILE $decode($1-) ^cset CHANNEL_LOG on gecho Logging of $cc to $decode($1-) now active. } } } alias logchange { @ cc = [$0] if ([$getcset(CHANNEL_LOG $cc)]!=[ON]) { filedialog S $exedir/*.log "Logfile for $cc" "Set" { if ([$0]==[OK]) { ^cset CHANNEL_LOG_FILE $decode($1-) gecho Log file for $cc changed to $decode($1-). } } } else {gecho You must turn Logging off before changing the log file} } alias logstop { @ cc = [$0] ^cset CHANNEL_LOG OFF gecho Log file $getcset(CHANNEL_LOG_FILE $cc) for $cc now closed. } alias gz.ajoinlist { for (@ idx = 0, ajoinitem($idx), @ idx++) { push _ret $ajoinitem($idx) } #@function_return = $_ret return $_ret purge _ret } alias inajoinlist { @ function_return = match($0 $gz.ajoinlist()) ? 1 : 0 } #Popup Channel Menu inspired by menus.scr by OS3 alias chanmenu { @ cc = [$0] menu -popcm menu popcm if (match($cc $mychannels())) { if (cc != T) {//menuitem popcm "goto $cc window" /j $cc} //menuitem popcm \"~Leave: $cc\" {leave $cc} } else {//menuitem popcm \"~Join: $cc\" {join $cc}} if (inajoinlist($cc)) { //menuitem popcm "~Remove from AJoin" {unajoin $cc} } else { //menuitem popcm "~Add to AJoin" {ajoin $cc} } if (match($cc $mychannels())) { if ([$getcset(CHANNEL_LOG $cc)]==[ON]) { menuitem popcm "Stop Logging" { logstop $cc } } else { menuitem popcm "Start Logging" { logstart $cc $1- } } menuitem popcm "Change Logfile" { logchange $cc $1- } } if (![$1]) { menuitem popcm separator //submenu popcm cmm "Channel Stats" if (gz.longcsc) { //menuitem cmm -d "Names (detailed)" {/scan} //menuitem cmm "Names (short)" {cnames} } else { //menuitem cmm -d "Names (short)" {cnames} //menuitem cmm "Names (detailed)" {/scan} } //menuitem cmm "Who (Detailed)" {cwho} //menuitem cmm "Show Channel Bans" {csb} //menuitem cmm "Show Channel Topic" {t} //submenu popcm cmodes "Modes" //menuitem cmodes "Show Modes" {gecho Mode For $cc is \+$chanmode($cc)} //menuitem cmodes "Remove Keys (unlock)" {unlock} //submenu cmodes csetmode "Set Modes" //menuitem csetmode "Mode (+nst)" {/mode $cc +nst} //menuitem csetmode "Mode (+inst)" {/mode $cc +inst} //submenu cmodes creset "Reset Modes" //menuitem creset "Reset (+nst)" {/creset} //menuitem creset "Reset (+inst)" {/creseti} //submenu cmodes cmass "Mass" //menuitem cmass "Mass Op (+o)" {mop} //menuitem cmass "Mass DeOp (-o)" {mdop} //menuitem cmass "Mass Voice (+v)" {mvoice} //menuitem cmass "Mass UnVoice (-v)" {mdvoice} //menuitem popcm separator //submenu popcm credir "Redirects" //submenu credir lrm "Last Received Message" //menuitem lrm "=> Channel" {relm} //menuitem lrm "=> Topic" {relmt} //submenu credir lrn "Last Received Notice" //menuitem lrn "=> Channel" {reln} //menuitem lrn "=> Topic" {relnt} //submenu credir lsm "Last Sent Message" //menuitem lsm "=> Channel" {relsm} //menuitem lsm "=> Topic" {relsmt} //submenu credir lsn "Last Sent Notice" //menuitem lsn "=> Channel" {relsn} //menuitem lsn "=> Topic" {relsnt} //submenu popcm other "Other" //menuitem other "Channel Away" {away -c} //menuitem other "Channel Back" {cback} //menuitem other "Cycle" {cycle} //menuitem other "Check Offers" {/ctcp $cc xdcc list} //menuitem other "Check ctcp Time" {/ctcp $cc time} //menuitem popcm "Send Sound" dialogsound $cc //menuitem popcm separator //submenu popcm cgreets "Greets" //menuitem cgreets "moo" {/say moo!} //menuitem cgreets "zug zug" {/say zug zug} //menuitem cgreets "Hey all" {/say Hey all} //menuitem cgreets "'lo" {/say 'lo} //menuitem cgreets "What's up folks?" {/say What's up folks?} //submenu popcm cacts "Actions" //menuitem cacts "Binoculars" {/me pulls out $gender binoculars and searches $cc for intelligent life.... Damn... None to be found!} //menuitem cacts "Gerbil Release" {/me releases $gender gerbils upon $cc, run while you can!!!} //menuitem cacts "PinDrop" {/me drops the proverbial pin...} //menuitem cacts "Slide" {/me slides into the channel... dances a happy jig... falls on $gender arse in the process} //submenu popcm cbyes "Byes" //menuitem cbyes "Later all" {/say Later all} //menuitem popcm separator //menuitem popcm "Ping" {ping $CC} //menuitem popcm "Version" {ver $CC} } popupmenu popcm #^assign -cc } alias targetmenu { menu -tm menu tm if (![$1]) { menuitem tm "Queried: $0 " # } else { menuitem tm "nick: $0 " # } menuitem tm separator if (![$1]) { menuitem tm "Turn Log On" {//^window logfile $exedir/logs/$left(8 $strip(=\\*?<>|\"\' $T)).log;//window log on} menuitem tm "Turn Log off" //window log off } else { menuitem tm "Talk Window" /talk $0 menuitem tm "Chat Window" /chat $0 } submenu tm tmi "Ignores" menuitem tmi -d "Ignore (temp)" ig $0 -t 180 all menuitem tmi "Ignore (perm)" ig $0 -p all menuitem tmi "Unignore" unig $0 all //submenu tm tmo "Other" //menuitem tmo -d "Whois" whois $0 //menuitem tmo "Server Whois" wii $0 //menuitem tmo "Lookup" nslookup $0 //menuitem tmo separator //menuitem tmo "Ping" ping $0 //menuitem tmo "Time" ctcp $0 TIME //menuitem tmo "UserInfo" ctcp $0 userinfo //menuitem tmo "Finger" ctcp $0 finger //menuitem tmo "Version" ver $0 //submenu tm tmx "XDCC" //menuitem tmx -d "Req Pack List" msg $0 xdcc list //menuitem tmx separator for (@ _xidx = 1, _xidx <= 15, @ _xidx++) { //submenu tmx tmx$_xidx "Pack #$_xidx " //menuitem tmx$_xidx "List" msg $0 xdcc list #$_xidx //menuitem tmx$_xidx -d "Send" msg $0 xdcc send #$_xidx //menuitem tmx$_xidx "ReSend" msg $0 xdcc resend #$_xidx } //menuitem tm "Send File(s)" senddialog $0 //menuitem tm "ReSend File(s)" resenddialog $0 //menuitem tm "Send Sound" dialogsound $0 popupmenu tm ^assign -_xidx } alias windowlist { @ _ll.l = lastclickline(0) if (![$0]) {@ _cw = lastclickline(3);@ __cw = lastclickline(4)} else {@ _cw = []} if ((word(2 $_ll.l) == [SOUND:]) && (![$0]) && (word(4 $_ll.l) == [\(autorequest])) { menu -tmpmenu menu tmpmenu if (gz.mircsndpatch) { //^quote PRIVMSG $1 :!$0 $3 menuitem tmpmenu "request Sound [$word(3 $_ll.l)]" { /msg $C !$word(1 $_ll.l) $word(3 $_ll.l) } } else { menuitem tmpmenu "request Sound [$word(3 $_ll.l)]" { /msg $word(1 $_ll.l) !$word(1 $_ll.l) $word(3 $_ll.l) } } # menuitem tmpmenu "request Sound [$word(3 $_ll.l)]" { /msg $word(1 $_ll.l) !$word(1 $_ll.l) $word(3 $_ll.l) } popupmenu tmpmenu } else if ((rmatch($_cw *.??*)) && (@_cw > 4)) { # if (!rmatch($_cw http:// ftp:// gopher://)) {@_cw=[http://]##_cw} urlmenu $_cw;^assign -_cw # } else if (ischannel($strip(@\'\"\(\) $_cw))) {chanmenu $strip(@\'\"\(\) $_cw) -d;^assign -_cw } else if (ischannel($gz.safechan($_cw))) {chanmenu $gz.safechan($_cw) -d;^assign -_cw # } else if (ischannel($strip(+@\'\"\(\) $_cw))) {chanmenu $_cw -d;^assign -_cw} } else if (__cw == T && [$T]!=[]) {targetmenu $T } else { menu -menulist menu menulist #submenu menulist setup -s "Setup" //submenu menulist pastepop "Clipboard" //menuitem pastepop -d "Paste" {//pmpaste} //menuitem pastepop "SmartPaste" {//pmpaste -smart} # if (lastclickline(3)) { # //submenu menulist webster "Dictionary" # //menuitem webster "Define: $strip(\[\]!@#$%^&*\(\)-_=+\\|,.<>\/?~`\" $lastclickline(3))" define $strip(\[\]!@#$%^&*\(\)-_=+\\|,.<>\/?~`\" $lastclickline(3)) # //menuitem webster "Spell: $strip(\[\]!@#$%^&*\(\)-_=+\\|,.<>\/?~`\" $lastclickline(3))" spell $strip(\[\]!@#$%^&*\(\)-_=+\\|,.<>\/?~`\" $lastclickline(3)) # } //submenu menulist popsave "Save..." //menuitem popsave "Save All" { /save /cdcc save } //menuitem popsave "Save BitchX Settings" {/save} //menuitem popsave "Save CDCC Pack List" {/cdcc save} //menuitem menulist "Change Font" {fontdialog 0 0} makedccmenu submenu menulist subdcc "Current DCC Items" if (dccitem(1)) { #add default when fixed menuitem subdcc -d "Display DCC Items" dcc menuitem subdcc separator } else { menuitem subdcc -d "No DCC's in progress" dcc } for (@ _gl.i = 1, _gl.x = dccitem($_gl.i), @ _gl.i++) { if (word(0 $_gl.x) == [chat] || word(0 $_gl.x) == [raw]) { submenu subdcc subdccsubgl$_gl.i "~$_gl.i $toupper($word(0 $_gl.x)): $word(1 $_gl.x)" } else { submenu subdcc subdccsubgl$_gl.i "~$_gl.i $toupper($word(0 $_gl.x)): $word(1 $_gl.x) \($file.sanspath($word(8 $_gl.x))\)" gl $_gl.i } menuitem subdccsubgl$_gl.i -d "Display" dcc if (xdcc.isoktopreview($file.sanspath($word(8 $_gl.x)))) { menuitem subdccsubgl$_gl.i "~Preview Image" { previewbynum $word(9 $_gl.x) } } menuitem subdccsubgl$_gl.i "Close" { //dcc close $word(9 $_gl.x) } } purge _gl //menuitem menulist "Show Notify" {//notify} //menuitem menulist separator //menuitem menulist "Properties" {/properties} //menuitem menulist separator //menuitem menulist " << Window list >> " # @ done = 0 for (@ idx = 1, (win = winitem($idx)) && !done, @ idx++) { if (win) { if ([$word(3 $win)]!=[]) { //menuitem menulist "~$idx $word(3 $win) [$word(0 $win)]" { //window show $word(0 $win) } } else if ([$word(4 $win)!=[]) { //menuitem menulist "~$idx $word(4 $win) [$word(0 $win)]" { //window show $word(0 $win) } } else { //menuitem menulist "~$idx $word(1 $win) [$word(0 $win)]" { //window show $word(0 $win) } } } else {@ done = 1} } popupmenu menulist } ^assign -_cw;^assign -__cw ^assign -done } alias urlmenu { @ url = [$strip(\(\)\" $0)] if (url) { menu -wm menu wm //submenu wm wm3 "Netscape" //menuitem wm3 -d \"$left(100 $url)\" webfix netscape $url //submenu wm wm1 "WebExplorer" //menuitem wm1 -d \"$left(100 $url)\" webfix webexplorer $url //submenu wm wm2 "Lynx" //menuitem wm2 -d \"$left(100 $url)\" exec -start LYNX $url //menuitem wm separator //submenu wm wmh "Add to URL Save File" //menuitem wmh -d \"$left(100 $url)\" addtofile $url //submenu wm wmc "Copy URL to clipboard" //menuitem wmc -d \"$left(100 $url)\" clipbrdput $url popupmenu wm } ^assign -url } alias webfix { @ _weblist = [$webrun($0)] if (_weblist) { @ webrun(activate $word(0 $_weblist)) @ webrun($0 pushurl $word(0 $_weblist) $1) } else { if ([$0]==[webexplorer]) {/exec -noshell explore.exe $1} if ([$0]==[netscape]) {/exec -start netscape $browserparams $1} } ^assign -_weblist } #OS2-Mike's idea and code stub. alias dialogsound { @ gt.sndnick = [$0] if (ischannel($gt.sndnick)) { filedialog OA $sounddir/*.* "Send Sound Files" "Send/Exit" "Send" { if ([$0]==[OK]) {/csound $gt.sndnick $decode($1);^assign -gt.sndnick} if ([$0]==[APPLY]) {/csound $gt.sndnick $decode($1)} if ([$0]==[CANCEL]) {^assign -gt.sndnick} } } else { filedialog OA $sounddir/*.* "Send Sound Files" "Send/Exit" "Send" { if ([$0]==[OK]) { if (ctcpsnd.localfile($decode($1))) { /mmpm.playfile $ctcpsnd.fname //ctcp $gt.sndnick SOUND $decode($1) ^assign -gt.sndnick } } if ([$0]==[APPLY]) { if (ctcpsnd.localfile($decode($1))) { /mmpm.playfile $ctcpsnd.fname //ctcp $gt.sndnick SOUND $decode($1) } } if ([$0]==[CANCEL) { ^assign -gt.sndnick } } } } alias dialogplaysound { filedialog OA $sounddir/*.* "Play Sound Files" "Play" "Test" { if ([$0]==[OK]) { if (ctcpsnd.localfile($decode($1))) { /mmpm.playfile $ctcpsnd.fname ^assign -gt.sndnick } } if ([$0]==[APPLY]) { if (ctcpsnd.localfile($decode($1))) { /mmpm.playfile $ctcpsnd.fname } } if ([$0]==[CANCEL) { ^assign -gt.sndnick } } } alias senddialog {//filedialog OM $gx.uploaddir\* "Select Files to send" sendproc send $0 $$*} alias resenddialog {//filedialog OM $gx.uploaddir\* "Select Files to send" sendproc resend $0 $$*} alias sendproc { if ([$2] == [OK]) { @ _sp.f = 0 fe ($3-) _sp.t { if (fexist($decode($3-)) == 1) { //dcc $0 $1 $decode($3-) @ _sp.f = 1 } } if (_sp.f) {gecho File Request sent to $1} purge _sp } } alias mansenddialog {//filedialog OM $gx.uploaddir\* "Select Files to send" mansendproc send $$*} alias manresenddialog {//filedialog OM $gx.uploaddir\* "Select Files to send" mansendproc resend $$*} alias mansendproc { if ([$1] == [OK]) { @ _sp.n = [$"[gxDCC] Nick to send to : "] if (_sp.n) { @ _sp.f = 0 fe ($2-) _sp.t { if (fexist($decode($_sp.t)) == 1) { //dcc $0 $_sp.n $decode($_sp.t) @ _sp.f = 1 } } } if (_sp.f) {gecho File Request sent to $_sp.n} purge _sp } } #on ^hook "dccchanged*" { # makedccmenu # /redraw_menus # } #on #-dcc_connect 23 "*" {^hook dccchanged} #on #-dcc_lost 23 "*" {^hook dccchanged} #on #-dcc_request 23 "*" {^hook dccchanged} #^on ^connect "*" { # makemenu # /redraw_menu #} ^on #^timer 60 * { if (rmatch($0 %:00*) || match($0 %:30*) || match($0 %:15*) || match($0 %:45*)) { for (@ idx = 1, (win = winitem($idx)), @ idx++) { if (win) {xecho -b -window $word(0 $win) The Time is now $0} } } } alias gz.sndon { if (ctcpsound == [OFF]) { @ function_return = 0 } else { if (away && gz.noctcpaway) { @ function_return = 0 } else { @ function_return = isctog($0 S) ? 0 : 1 } } } alias gz.reqon { if (ctcpsndreq == [OFF]) { @ function_return = 0 } else { if (away && gz.noctcpaway) { @ function_return = 0 } else { @ function_return = isctog($0 R) ? 0 : 1 } } } on ^ctcp "% % SOUND *" { @ _dl = [] if (rmatch($3 *.wav *.au *.mid) && [$3] && gz.sndon($1)) { if (ctcpsnd.havefile($3)) { # mmpm.playfile2 $gz.playifplaying $ctcpsnd.fname mmpm.playfile $ctcpsnd.fname } else { if (!gz.reqon($1)) { @ _dl = [autorequest disabled] } else if (ctcpsnd.isgetting($3)) { @ _dl = [downloading] } else if (ctcpsnd.isrequested($3) < 30) { @ _dl = [requested] } else { if (gz.mircsndpatch) { //^quote PRIVMSG $1 :!$0 $3 } else { //^quote PRIVMSG $0 :!$0 $3 } ctcpsnd.requested $3 @ _dl = [requesting] } } if (ischannel($1)) { //xecho -b -t $1 ${gc.nickaction}$0${cl}/$1 SOUND: $file.sanspath($3) ${_dl?[\($_dl\)]:[]} $mirc2cntl(,$4-) } else { //xecho -b ${gc.nickaction}$0${cl} SOUND: $file.sanspath($3) ${_dl?[\($_dl\)]:[]} $mirc2cntl(,$4-) } } else { if (ischannel($1)) { //xecho -b -t $1 ${gc.nickaction}$0${cl}/$1 SOUND: $file.sanspath($3) \(ctcp sounds disabled\) $mirc2cntl(,$4-) } else { //xecho -b ${gc.nickaction}$0${cl} SOUND: $file.sanspath($3) \(ctcp sounds disabled) $mirc2cntl(,$4-) } } } on ^hook "ctcpsnd received %*" { if (ctcpsound == [on]) { gecho Requested Sound Finished: $2- # /mmpm.playfile2 $gz.playifplaying $2 /mmpm.playfile $2 } } on ^hook "ctcpsnd request % % *" { gecho \($4\) file request from $3 ${[$2]?[sent]:[access denied]} } on #-send_msg 74 "% !% %.wav" ctcpsnd.request $2 on #-send_msg 74 "% !%.au" ctcpsnd.request $2 on #-send_msg 74 "% !%.mid" ctcpsnd.request $2 on #-send_notice 74 "% !% %.wav" ctcpsnd.request $2 on #-send_notice 74 "% !% %.au" ctcpsnd.request $2 on #-send_notice 74 "% !% %.mid" ctcpsnd.request $2 on #-send_public 74 "% !% %.wav" ctcpsnd.request $2 on #-send_notice 74 "% !% %.mid" ctcpsnd.request $2 on #-send_msg 74 "% !% %.au" ctcpsnd.request $2 alias sound { if ([$0]) { if (T) { if (ischannel($T)) {@ _t = T} else {@ _t = strip(= $T)} if (ctcpsnd.localfile($0)) { # /mmpm.playfile2 $gz.playifplaying $ctcpsnd.fname /mmpm.playfile $ctcpsnd.fname /ctcp $_t SOUND $0- if ([$1] != []) { //xecho -b ${gc.action}$N${cl}/$T SOUND \($0\): $1- } else { //xecho -b ${gc.action}$N${cl}/$T SOUND \($0\) } } else { gecho File $0 does not exist${index(\\/: $0) >= 0 ? [, please check your /set sound_path] : []} } } else { gecho There are no channel or /query in this window } } else { gecho Usage: /sound file.wav [] } ^assign -_t } alias csound { if (ctcpsnd.localfile($1)) { # /mmpm.playfile2 $gz.playifplaying $ctcpsnd.fname /mmpm.playfile $ctcpsnd.fname /ctcp $0 SOUND $1- //xecho -b ${gc.action}$N${cl} SOUND \($1) } else { gecho File $1 does not exist } } alias chat { if ([$1]==[-b]) {@ _oink = gz.autotalkfg} else {@ _oink = 1} if ([$0]) { for (@ idx = 1, (win = winitem($idx)) && !done, @ idx++) { if (win) { if (word(4 $win)==[=$0]) { gecho You already have a query to $0 @ borky = 1 } } else {@ done = 1} } if (!borky) { gecho ${gc.msginfo} Creating chat window with${cl} ${gc.msgfrom} $0${cl} //^window create nicklist 0 query =$0 //dcc chat $0 if (autotalklogging == [ON]) { switch ($gz.drivetype($gz.logdir)) { (hpfs) {@ _talk.file = strip(\\*?<>|\"\' $0) ## [.log]} (*) {@ _talk.file = left(8 $strip(\\*?<>|\"\' $0)) ## [.log]} } //^window $_moo logfile $gz.logdir\/$_talk.file xecho -target $0 $gemz Window Logfile is $gz.logdir\/$_talk.file //^window $_moo log on xecho -target $0 $gemz Window LOG is ON } } } else {gecho Usage talk } ^assign -done;^assign -borky;^assign -_moo;^assign -_oink } alias talk { if ([$1]==[-b]) {@ _oink = gz.autotalkfg} else {@ _oink = 1} if ([$0]) { for (@ idx = 1, (win = winitem($idx)) && !done, @ idx++) { if (win) { if (word(4 $win)==[$0]) { gecho You already have a query to $0 @ borky = 1 } } else {@ done = 1} } if (!borky) { gecho ${gc.msginfo} Creating chat window with${cl} ${gc.msgfrom} $0${cl} //^window create nicklist 0 query $0 if (autotalklogging == [ON]) { switch ($gz.drivetype($gz.logdir)) { (hpfs) {@ _talk.file = strip(\\*?<>|\"\' $0) ## [.log]} (*) {@ _talk.file = left(8 $strip(\\*?<>|\"\' $0)) ## [.log]} } //^window $_moo logfile $gz.logdir\/$_talk.file xecho -target $0 $gemz Window Logfile is $gz.logdir\/$_talk.file //^window $_moo log on xecho -target $0 $gemz Window LOG is ON } } } else {gecho Usage talk } ^assign -done;^assign -borky;^assign -_moo;^assign -_oink } alias addhilite { if ([$0]) { if ([$0]==[-n]) { push hilitelist $1 gecho \$1\ added to the hilite list. } else { if (match($0 $hilitelist)) { gecho a matching highlite string was found, to force gecho a new highlight, use /addhilite -n } else { push hilitelist $0 gecho \$0\ added to the hilite list. } } } else { gecho Usage: /addhilite } } alias addignore /ignore $* alias addnotify { if ([$0]) { notify $0 } else {gecho Usage: /addnotify } } alias showignore { /ignore } alias cnames { if ([$0]) { if (ischannel($0)) { if (onchannel($N $0)) { gtecho $0 $0: $_cnames($0) } else {gecho You are not on $0} } else {gecho $0 is not a valid channel;gecho Usage: /cnames [<#channel>]} } else { if (C) { gecho $C: $_cnames($C) } else {gecho You are not on any channels} } } alias _cnames { fe ($chanusers($0)) _cn.ch { if (ischanop($_cn.ch $0)) { @ _cn.no #= [ @$_cn.ch] } else { @ _cn.nv #= isvoice($_cn.ch $0) ? [ +$_cn.ch] : [ $_cn.ch] } } @ function_return = [${gc.chops}$_cn.no${cl}${gc.lamers}$_cn.nv$_cn.nl${cl}] purge _cn } alias creseti {/c -inst+mlk 40 resetting;/c +inst-mlk resetting} alias creset {/c -nst+milk 40 resetting;/c +nst-milk resetting} alias ctcpreply if ([$0]) {gecho ${gc.ctcpban}ctcp${cl}: ${gc.ctcp}$tolower($1) reply${cl} from ${gc.ctcpnk}$0${cl}: $2-} alias ctcpreq if ([$0]) {gecho ${gc.ctcpban}ctcp${cl}: ${gc.ctcp}$tolower($2) request${cl} from ${gc.ctcpnk}$0${cl} ${gc.peren}\(${gc.ctcpnk}$userhost()${gc.peren}\)${cl} to ${gc.ctcpnk}$1${cl}} alias cwait {wait -CMD #;wait -CMD $0-} alias ctogg { if (![$0]) { foreach ch.flags _ch { gecho Channel $decode($_ch)\ flags $ch.flags[$_ch]\ } gecho Usage: /ctogg [#channel] flags } else { if (![$1]) { if (ischannel($0)) { @ _ch = [$%0] gecho Channel $decode($_ch)\ flags $ch.flags[$_ch]\ } else { if (C) { ctogg $C $0 } else { gecho No current channel in this window gecho Usage: /ctogg [#channel] flags } } } else { @ _ch = ischannel($0) ? [$0] : [#$0] @ _wasm = index(M $ch.flags[$%_ch]) >= 0 @ ch.flags[$%_ch] = _alter_flags($_valid_ctogg($1) $ch.flags[$%_ch]) if (!ch.flags[$%_ch]) { //^assign -ch.flags[$%_ch] gecho Channel $_ch\ removed if (_wasm) { _recache_channels $_ch } } else { gecho New flags for $_ch\ are '$ch.flags[$%_ch]' if (_wasm != (index(M $ch.flags[$%_ch]) >= 0)) { _recache_channels $_ch } } } } //^assign -_ch } # cached /who alias cwho { if ([$0] && onchannel($N $0)) { fe ($chanusers($0)) _n { gecho ${ischanop($_n $0) ? [@] : isvoice($_n $0) ? [+] : [ ]}$[9]_n [$[8]nickdata($0 $_n 2)\] '$nick($_n)->host' } //^assign -_n } else { if ([$0]) { gecho You are not on channel $0 } else { if (C) { cwho $C } else { gecho You aren't on any channel in this window } } } } # cached banlist alias csb { if ([$0] && onchannel($N $0)) { @ _idx = 0 @ _idx2 = 0 fe ($chanmode($0 1)) _n { @ _idx++ gecho [$[2]_idx\] '$_n' $tdiff(${time() - word(${_idx2 * 3 + 2} $chanmode($0 2))}) old gecho ${_idx2*3} @ _idx2++ } if ([$_idx]==[0]) {gecho There Are No Bans in $0} //^assign -_n //^assign -_idx //^assign -_idx2 } else { if ([$0]) { gecho You are not on channel $0 } else { if (C) { csb $C } else { gecho You are on any channel in this window } } } } #csc written by mikh, enhanced by gemini alias csc { if ([$0] && onchannel($N $0)) { @ _co.t = #chanusers($C)_co.u fe ($gz.chanops($0)) _co.tn {@ _co.co #= _co.co ? [ @$_co.tn] : [@$_co.tn]} fe ($gz.voices($0)) _co.tn {@ _co.v #= _co.v ? [ +$_co.tn] : [+$_co.tn]} @ _co.l = gz.lamers($0) gtbecho $0 ${gc.cscborder}ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿ gtbecho $0 ${gc.cscborder}³${gc.topicchan}$[10]0${cl} ${gc.cscborder}³${cl} ${gc.chops}ChanOps${cl}: \$[-3]#_co.co\ ${gc.cscborder}³${cl} ${gc.lamers}Voiced${cl}: \$[-3]#_co.v\ ${gc.cscborder}³${cl} ${gc.lamers}Normal${cl}: \$[-3]#_co.l\ ${gc.cscborder}³${cl} Total: \$[-3]_co.t\ ${gc.cscborder}³ gtbecho $0 ${gc.cscborder}ÃÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ´ if (_co.co) { fe ($_co.co) _co.1 _co.2 _co.3 _co.4 _co.5 _co.6 { gtbecho $0 ${gc.cscborder}³ ${gc.chops}$[10]_co.1 $[10]_co.2 $[10]_co.3 $[10]_co.4 $[10]_co.5 $[10]_co.6 ${gc.cscborder}³ } } if (_co.v || _co.l) { fe ($_co.v $_co.l) _co.1 _co.2 _co.3 _co.4 _co.5 _co.6 { gtbecho $0 ${gc.cscborder}³ ${gc.lamers}$[10]_co.1 $[10]_co.2 $[10]_co.3 $[10]_co.4 $[10]_co.5 $[10]_co.6 ${gc.cscborder}³ } } gtbecho $0 ${gc.cscborder}ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ purge _co } else { if ([$0]) { gecho You are not on channel $0 } else { if (C) { csc $C } else { gecho No current channel in this window } } } purge _co } ################################ # GemZ easy find Api functions # ################################ alias gz.bkgd { switch ($_bkgd) { (-) {@ _bkgd = [\\]} (\\) {@ _bkgd = [|]} (|) {@ _bkgd = [/]} (/) {@ _bkgd = [-]} (*) {@ _bkgd = [-]} } ^set status_notify [$_bkgd][%F] } alias gz.bytestomegs { ^set float on @ _xm.m = [$0] / 1048576 ^set float off @ function_return = mid(0 ${index(. $_xm.m) + 3} $_xm.m) purge _xm } alias gz.chanops { fe ($chanusers($0)) _h.o { if (ischanop($_h.o $0)) {@ _h.r #= _h.r ? [ $_h.o] : _h.o} } @ function_return = _h.r purge _h } alias chanops {@ function_return = gz.chanops($0)} alias gz.chatstat { # Input: # return 0 if no chat # rerurn 1 if chat is waiting # return 2 if chat is active # return 3 if chat is offered @ function_return = 0 for (@ _d.i = 0, (_d.c = dccitem($_d.i)), @ _d.i++) { if ((word(0 $_d.c) == [CHAT]) && (word(1 $_d.c) == [$0])) { if (word(2 $_d.c) == [Active]) {@ function_return = 2 } else if (word(2 $_d.c) == [Offered]) {@ function_return = 3 } else {@ function_return = 1} //break } } purge _d } alias gz.chatwinstat { # Input: # return 0 if there isn't a window (regardless of dcc status) # return 1 if there is a window (regardless of dcc status) @ function_return = 0 for (@ _c.i = 1, (_c.w = winitem($_c.i)), @ _c.i++) { if (_c.w) { if (word(1 $_c.w) == [=$0_Queried]) { @ function_return = 1 //break } } } purge _c } alias gz.rows {@ function_return = gz.dimension(row $*)} alias gz.cols {@ function_return = gz.dimension(col $*)} alias gz.dimension { switch ($0) { (col) {@ _cl.t = 8} (row) {@ _cl.t = 9} } switch ($2) { (r) {@ _cl.mw = 0} (n) {@ _cl.mw = 1} (c) {@ _cl.mw = 3} (q) {@ _cl.mw = 4} (*) {@ _cl.mw = 0} } @ function_return = 0 for (@ _cl.i = 1, _cl.w = winitem($_cl.i), @ _cl.i++) { if (word($_cl.mw $_cl.w) == [$1]) { @ function_return = word($_cl.t $_cl.w) //break } } purge _cl } alias gz.exdcc {//dcc $0 $1 "$decode($2)"} alias gz.finuh {@ function_return = is_ip($0@$1) ? [$0] ## [@] ## [$1] : fix.umask($0 $1)} alias gz.finline { @ _w.i = [..................................................................] @ _w.0 = [$0] @ _w.1 = strip( $1) @ _w.2 = strip( $2) @ _w.s = _w.0 - (@_w.1 + @_w.2) if (_w.s < 1) {@ _w.s = 0} @ function_return = [$1] ## left($_w.s $_w.i) ## [$2] purge _w } alias gz.fixbytes { ^set float on if ([$0] < 1000) {@ function_return = [$0] ## [b] } else if ([$0] < 10240) {@ function_return = left(3 ${[$0] / 1024}) ## [k] } else if ([$0] < 102400) {@ function_return = left(2 ${[$0] / 1024}) ## [k] } else if ([$0] < 1022976) {@ function_return = left(3 ${[$0] / 1024}) ## [k] } else if ([$0] < 10485761) {@ function_return = left(3 ${[$0] / 1048576}) ##[M] } else if ([$0] < 104857600) {@ function_return = left(2 ${[$0] / 1048576}) ##[M] } else {@ function_return = left(3 ${[$0] / 1048576}) ##[M]} ^set float off } alias gz.fixnum { if (left(1 $0) == [-]) {@ _fn.neg = 1} fec ($0) _fn.rc {@ _fn.r = _fn.rc ## _fn.r} @ _fn.r = strip(- $_fn.r) fec ($_fn.r) _fn.sc { if (_fn.c == 3) {@ _fn.c = 0;@ _fn.scr = _fn.sc ## [,] ## _fn.scr} else {@ _fn.scr = _fn.sc ## _fn.scr} @ _fn.c++ } if (_fn.neg) {@ _fn.scr = [-] ## _fn.scr} @ function_return = _fn.scr purge _fn } alias gz.fixpath { fec ($*) _fp.c {if ([$_fp.c]==[\\]) {if (_fp.r) {@ _fp.r #= [/]} else {@ _fp.r = [/]}} else {if (_fp.r) {@ _fp.r #= _fp.c} else {@ _fp.r = _fp.c}}} @ function_return = _fp.r purge _fp } alias gz.getdate { @ _d = stime($time())) @ function_return = [$gz.getmonth($word(1 $_d))]##[/]##[$word(2 $_d)]##[/]##[$right(2 $word(4 $_d))] ^assign -_d } alias gz.getmonth { switch ($0) { (Jan) {@ _m = 1} (Feb) {@ _m = 2} (Mar) {@ _m = 3} (Apr) {@ _m = 4} (May) {@ _m = 5} (Jun) {@ _m = 6} (Jul) {@ _m = 7} (Aug) {@ _m = 8} (Sep) {@ _m = 9} (Oct) {@ _m = 10} (Nov) {@ _m = 11} (Dec) {@ _m = 12} } @ function_return = _m ^assign -_m } alias gz.hasnicklist { # takes in $T for window in question if (chanwindow($0)) { for (@ _is.i = 1, _is.w = winitem($_is.i), @ _is.i++) { if (word(0 $_is.w) == chanwindow($0)) { @ function_return = index(N $word(16 $_is.w)) >= 0 ? 1 : 0 //break }}} purge _is } alias gz.isoper {@ function_return = O == status_oper ? 1 : gz.localoper} alias gz.lamers { fe ($chanusers($0)) _h.o { if (!isvoice($_h.o $0) && !ischanop($_h.o $0)) {@ _h.r #= _h.r ? [ $_h.o] : _h.o} } @ function_return = _h.r purge _h } alias gz.nban { @ _nb.u = [$strip(~ $mid(0 $index(@ $1) $1))] @ _nb.u = [$right(8 $_nb.u)] @ _nb.h = [$strip(@ $mid($index(@ $1) $@1 $1))] if (is_ip($1)) { @ function_return = [*!*]## _nb.u ## [@] ## [$mid(0 $rindex(. $_nb.h) $_nb.h).*] } else { if (index(. $1) != rindex(. $1)) {@ function_return = [*!*$fix.umask($_nb.u $_nb.h)]} else {@ FUNCTION_RETURN = [*!*] ## _nb.u ## [@] ## _nb.h} } purge _nb } alias gz.playsnd {if (gz.sounds) {playfile $(snd.$0)}} alias gz.randnick { @ _r.c = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_^\\\{\}\[\]`|0123456789-] @ _r.n = mid($rand(62) 1 $_r.c) for (@ _r.l = 1, _r.l < 9, @ _r.l++) { @ _r.n = _r.n ## mid($rand(62) 1 $_r.c) } @ function_return = _r.n purge _r } alias gz.reverse { fec ($*) _r.c {@ _r.r = _r.c ## _r.r} @ function_return = _r.r purge _r } alias gz.safechan { if (index(# $0) == [0]) {@ _sf.r = [$0] } else if (index(# $0) == [1] && ( (index(+ $0) == [0]) || (index(@ $0) == [0])) ) { @ _sf.r = mid(1 9999 $0) } else { @ _sf.r = [$0] } @ function_return = _sf.r purge _sf.r } alias gz.servergroups { for (@ _sg.i = 0, servername($_sg.i), @_sg.i++) { if (!match($servergroup($_sg.i) $_sg.r)) { @ _sg.r #= _sg.r ? [ ] ## servergroup($_sg.i) : servergroup($_sg.i) } } @ function_return = _sg.r purge _sg } alias gz.striplastslash {@ function_return = right(1 $*)==[/] ? left(${gz.strlen($*) - 1} $*) : [$*]} alias gz.strlen {@ _t = [$*];@ function_return = @_t;^assign -_t} alias gz.stripfw { if ([$0] == [$1]) { @ _wr.r = [$2-] } else { @ _wr.r = [$1-] @ _wr.n = 0 fe ($1-) _wr.d { @ _wr.n++ if (_wr.d == [$0]) { @ _wr.r = ref(1-${_wr.n - 1} $1-) ## [ ] ## ref(${_wr.n + 1}\-1000 $1-) //break } } } @ function_return = _wr.r purge _wr } alias gz.subaway { @ away = 1 if ([$1]) {@ away.reason = [$1-]} else {@ away.reason = [$away[$rand($numaway)]]} //away -all $away.reason [Log:$logging] $gemz.str gecho Setting you away. Message logging is \$logging\ switch ($0) { (-q) {gecho Quiet Away Reason: $away.reason} (-c) {if (C) {/me $str.away \($away.reason\) [Log:$logging] $gemz.str}} (-n) { if (mychannels()) { /tzmme $str.away \($away.reason\) [Log:$logging] $gemz.str } } } } alias gz.testoper { #Idea/inspiration by Blackjac. Implementation GemZ dependent. _gz.OperTestAddNick $0 $1 userhost $0 -cmd if ([$1] == [+]) { @ gt.tn = _gz.OperTestDoNick($0) if (gt.tn) { gtecho $gt.tn ${gc.opernick}$0${cl} ${gc.peren}\(${gc.operuh}$3@$4${gc.peren}\)${cl} is a megamomo (IRCop). } else { gecho ${gc.opernick}$0${cl} ${gc.peren}\(${gc.operuh}$3@$4${gc.peren}\)${cl} is a megamomo (IRCop). } } else {@ _gz.OperTestDoNick($0)} ^assign -gt.tn } alias gz.voices { fe ($chanusers($0)) _h.o { if (isvoice($_h.o $0) && !ischanop($_h.o $0)) {@ _h.r #= _h.r ? [ $_h.o] : _h.o} } @ function_return = _h.r purge _h } alias quiet { if ([$0]) { if (ischanop($N $C)) { //mode $C -v $0 }{gecho You are not a channel Operator} }{gecho Usage: //quiet } } alias tlm {t $last.mesg} alias tlsm {t $lastmsmg} alias tlsn {t $lastsnot} alias tln {t $last.noti} ##action plugin module support for GemZ 2.5 ##Format for the plugin file must be one line per //menuitem using ## the following keyword format ##"TITLE" TYPE TEXT GOES HERE ## Type Keywords are: %ACT, %PUB, %KICK or %CMD ## Other Keywords are %nk (nick) %pnk (possesive nick) ## and %ch (current channel) ## Comment lines must begin with a pound (#) ##To create a new column in the //submenu, put %new as the second word ## followed by a Command keyword ##%kick must have %nk following it immediately. ##%cmd must be followed by a valid command... like /gimpkick alias loadplug { @ pluginsloaded = 1 if ([$0] && fexist($0)==[1]) { # makepopup //menuitem popup separator //submenu popup custact "Custom Actions" //submenu popup custkick "Custom Kicks" //submenu popup custcmd "Custom Command" @ _plugfile = open($0 R) while (!eof($_plugfile)) { @ _tmp.p = strip(; $read($_plugfile)) @ _tmp.p = [$^(^)_tmp.p] if (left(1 $_tmp.p) == [#]) { } else if (word(1 $_tmp.p) == [%new]) { switch ($word(2 $_tmp.p)) { (%cmd) {//menuitem custcmd -b "$word(0 $_tmp.p)" custout $stripw(%new $_tmp.p)} (%kick) {//menuitem custkick -b "$word(0 $_tmp.p)" custout $stripw(%new $_tmp.p)} (%act) {//menuitem custact -b "$word(0 $_tmp.p)" custout $stripw(%new $_tmp.p)} (%pub) {//menuitem custact -b "$word(0 $_tmp.p)" custout $stripw(%new $_tmp.p)} (*) {} } } else { switch ($word(1 $_tmp.p)) { (%cmd) {//menuitem custcmd "$word(0 $_tmp.p)" custout $_tmp.p} (%kick) {//menuitem custkick "$word(0 $_tmp.p)" custout $_tmp.p} (%act) {//menuitem custact "$word(0 $_tmp.p)" custout $_tmp.p} (%pub) {//menuitem custact "$word(0 $_tmp.p)" custout $_tmp.p} (*) {} } } } @ close($_plugfile) ^assign -_tmp.p;^assign -_plugfile }{gecho No module specifed, or file does not exist} } alias custout { @ _nick = [$strip(@+=\'\" $lastclickline(4))] @ _chan = [$C] @ _input = [$1-] if ([$1]==[%act] || [$1]==[%pub] || [$1]==[%kick] || [$1]==[%cmd]) { fe ($_input) _word { if ([$_word]==[%act]) { @ _output = [$_output]##[/me] } else if ([$_word]==[%pub]) { @ _output = [$_output]##[/say] } else if ([$_word]==[%kick]) { @ _output = [$_output]##[/k] } else if ([$_word]==[%cmd]) {@ _cmd = [true] } else if ([$_word]==[%nk]) { @ _output = [$_output $_nick] } else if ([$_word]==[%nk,]) { @ _output = [$_output $_nick\,] } else if ([$_word]==[%nk.]) { @ _output = [$_output $_nick\.] } else if ([$_word]==[%nk!]) { @ _output = [$_output $_nick\!] } else if ([$_word]==[%pnk]) { @ _output = [$_output $_nick\'s] } else if ([$_word]==[%ch]) { @ _output = [$_output $_chan] } else if (_cmd) { @ _output = [$_output]##[$_word];^assign -_cmd } else @ _output = [$_output $strip(; $_word)] } eval $_output #gecho $_output } else { gecho $_input gecho ERROR in plugin (2nd word not %act, %pub, %kick, %cmd) } ^assign -_output;^assign -_chan;^assign -_input } alias saysend { .send $0- fe ($unparse($0)) _s { xecho -target $_s ${gc.pubbrac}<${gc.spub}$N${gc.pubbrac}>${cl} $1- } ^assign -_s } alias .send quote PRIVMSG $0 :$cntl2mirc(f0 $1-) # Finish up if (fexist($EXEDIR/menu.sav) != -1) { //load $EXEDIR/menu.sav } ^bind rclick parse_command rccheck ^bind nicklistrclick parse_command rccheck ^bind ldblclick parse_command ldccheck ^bind nicklistldblclick parse_command ldccheck ^bind statusrclick parse_command if (C) {chanmenu $C} else {if (T) {targetmenu $strip(= $T)}} ^makemenu