;connection on *:connect:{ set %serv $addtok(%serv,$server,64) set %cid $addtok(%cid,$cid,64) } on *:disconnect:{ if ($istok(%serv,$server,64)) && ($istok(%cid,$cid,64)) { set %serv $remtok(%serv,$server,64) set %cid $remtok(%cid,$cid,64) } } on *:exit:{ unset %serv | unset %cid } ;startup menu ;error and info dialogs #relay on dialog info { title "Chat Relay by tank59" size -1 -1 100 60 option dbu text "INFO:", 1, 45 2 15 10 text "", 2, 2 9 95 33 button "Close", 3, 10 45 20 10, cancel flat link "papabear@dcdi.net", 4, 40 45 50 10 } dialog error { title "Chat Relay by tank59" size 200 200 100 60 option dbu text "ERROR:", 1, 40 6 25 10 text "", 2, 5 15 90 25 button "Close", 3, 10 45 20 10, cancel flat link "papabear@dcdi.net", 4, 40 45 50 10 } dialog men { title "Chat Relay by tank59" size -1 -1 100 110 option dbu button "Set", 1, 30 95 20 10, ok flat button "Cancel", 2, 50 95 20 10, cancel flat text "Select the type of relay you would like to use.", 3, 5 5 80 25 check "Single Channel Relay", 4, 5 20 75 10 check "Multi Channel Relay", 5, 5 30 60 10 link "papabear@dcdi.net", 7, 5 62 50 10 text "Any bugs, comments, suggestions, send to:", 8, 5 50 90 13 text "Visit", 10, 5 70 10 10 text "for the best scripting resource online.", 11, 5 77 90 10 link "http://www.hawkee.com/", 9, 16 70 62 10 check "Nick Relay", 12, 5 40 40 10 } ;Menu dialogs on *:dialog:men:sclick:2:{ .disable #relay } on *:dialog:men:sclick:1:{ if ($did(4).state == 0) && ($did(5).state == 0) && ($did(12).state == 0) { dialog -m error error did -ra error 2 Error:You need to select one of the three options. halt } elseif ($did(4).state == 1) { .enable #srel dialog -m nrelay nrelay } elseif ($did(5).state == 1) { .enable #mcevent dialog -m mclay mclay } elseif ($did(12).state == 1) { .enable #nnsr dialog -m nicklay nicklay } } on *:dialog:men:sclick:*:{ if ($did == 4) { did -e men 5,12 if ($did(4).state == 1) { did -b men 5,12 } } if ($did == 5) { did -e men 4,12 if ($did(5).state == 1) { did -b men 4,12 } } if ($did == 12) { did -e men 5,4 if ($did(12).state == 1) { did -b men 5,4 } } } #relay end #srel on ;nrelay dialog dialog nrelay { title "Chat Relay by tank59" size -1 -1 120 130 option dbu button "Set", 6, 55 110 20 10, ok flat button "Cancel", 7, 78 110 20 10, cancel flat text "To Room:", 1, 5 51 40 10 text "From Room:", 2, 5 67 30 20 check "Multiple-Server", 3, 5 110 50 10 combo 4, 45 50 70 50, size drop combo 5, 45 66 70 50, size drop text "To Network:", 8, 5 19 70 10 text "From Network:", 9, 5 35 45 10 combo 10, 45 18 70 50, size drop combo 11, 45 34 70 50, size drop button "Info", 24, 5 90 15 10 box "Single Channel Relay", 12, 2 2 116 126 } ;channel relay dialogs on *:dialog:nrelay:sclick:7:{ .disable #srel #relay unset %tc1 unset %fc1 unset %channelto.cid unset %channelfrom.cid } on *:dialog:nrelay:init:0:{ chantok } on *:dialog:nrelay:sclick:6:{ if ($did(4) == $null) || ($did(5) == $null) || ($did(10) == $null) || ($did(11) == $null) { dialog -m error error did -ra error 2 Error:You need to fill in all the fields. halt } elseif (%tc1 != %fc1) && ($did(3).state == 0) { dialog -m error error did -ra error 2 Error:You have it set for multiple server. You need to select the "Multiple-Server" box. halt } else { unset %fc1 unset %tc1 set %channel.to $did(4) set %channel.from $did(5) set %multi.serv $did(3).state } } on *:dialog:nrelay:sclick:10:{ set %tc1 $findtok(%serv,$did(10),1,64) set %channelto.cid $gettok(%cid,%tc1,64) did -r nrelay 4 scid %channelto.cid chansto if (%fc1 == %tc1) { did -b nrelay 3 } else { did -e nrelay 3 } } on *:dialog:nrelay:sclick:11:{ set %fc1 $findtok(%serv,$did(11),1,64) set %channelfrom.cid $gettok(%cid,%fc1,64) did -r nrelay 5 scid %channelfrom.cid chansfrom if (%fc1 == %tc1) { did -b nrelay 3 } else { did -e nrelay 3 } } on *:dialog:nrelay:sclick:24:{ dialog -m info info did -ra info 2 The chan relay is a function to relay everything that is happening in a certain channel to another room on the same or different server. } ;Channel Relay Commands on *:TEXT:*:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  < $+ $nick $+ > $1- } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  < $+ $nick $+ > $1- } } on *:ACTION:*:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  6* $nick $1-  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  6* $nick $1-  } } on *:JOIN:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick ( $+ $mask($address,3) $+ ) has joined %channel.from  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to $+  3* $nick ( $+ $mask($address,3) $+ ) has joined %channel.from  } } on *:PART:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick ( $+ $mask($address,3) $+ ) has left %channel.from ( $1- ) } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick ( $+ $mask($address,3) $+ ) has left %channel.from ( $1- ) } } on *:KICK:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } } on *:OP:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: +o $opnick  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: +o $opnick  } } on *:DEOP:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: -o $opnick  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: -o $opnick  } } on *:HELP:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: +h $hnick  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: +h $hnick  } } on *:DEHELP:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: -h $hnick  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: -h $hnick  } } on *:VOICE:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: +v $vnick  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: +v $vnick  } } on *:DEVOICE:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: -v $vnick  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: -v $vnick  } } on *:BAN:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: +b $banmask  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: +b $banmask  } } on *:UNBAN:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: -b $banmask  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: -b $banmask  } } on *:TOPIC:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick changes topic to ' $+ $chan(%channel.from).topic ' } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick changes topic to ' $+ $chan(%channel.from).topic ' } } on *:MODE:%channel.from:{ if (%multi.serv == 0) { msg %channel.to 4 %channel.from $+  3* $nick sets mode: $1-  } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick sets mode: $1-  } } on *:QUIT:{ if (%multi.serv == 0) && ($nick ison %channel.from) { msg %channel.to 4 %channel.from $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } elseif (%multi.serv == 1) && ($nick ison %channel.from) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } } on *:NICK:{ if (%multi.serv == 0) && ($comchan($newnick,0) > 0) { msg %channel.to 4 %channel.from $+  3* $nick is now known as $newnick  } elseif (%multi.serv == 1) && ($comchan($newnick,0) > 0) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 %channel.from $+  3* $nick is now known as $newnick  } } #srel end #nnsr off dialog nicklay { title "Chat Relay by tank59" size -1 -1 120 130 option dbu button "Set", 6, 55 110 20 10, ok flat button "Cancel", 7, 78 110 20 10, cancel flat text "From Network:", 14, 5 54 40 10 text "To Network:", 15, 5 36 40 10 edit "", 16, 45 19 70 10 combo 17, 45 35 70 50, size drop combo 18, 45 53 70 50, size drop text "Nick to watch:", 19, 5 20 35 10 text "To Channel:", 20, 5 71 30 10 combo 21, 45 71 70 50, size drop button "Info", 22, 5 90 15 10 check "Multiple-Server", 25, 5 110 50 10 box "Single Nick Relay", 12, 2 2 116 126 } ;Nick relay dialogs on *:dialog:nicklay:init:0:{ nicktok } on *:dialog:nicklay:sclick:6:{ if ($did(16) == $null) || ($did(17) == $null) || ($did(18) == $null) || ($did(21) == $null) { dialog -m error error did -ra error 2 Error:You need to fill in all the fields. halt } elseif (%tc2 != %fc2) && ($did(25).state == 0) { dialog -m error error did -ra error 2 Error:You have it set for multiple server. You need to select the "Multiple-Server" box. halt } else { unset %fc2 unset %tc2 set %nickr on set %vic $did(16) set %channel.to $did(21) set %multi.serv $did(25).state } } ;Nick relay dialogs on *:dialog:nicklay:sclick:22:{ dialog -m info info did -ra info 2 The nick relay is a function to relay what a paticular person is saying/doing in all channels on a server that you and him are both in to another room on the same or different server. } on *:dialog:nicklay:sclick:17:{ set %tc2 $findtok(%serv,$did(17),1,64) set %channelto.cid $gettok(%cid,%tc2,64) did -r nicklay 21 scid %channelto.cid nickto if (%fc2 == %tc2) { did -b nicklay 25 } else { did -e nicklay 25 } } on *:dialog:nicklay:sclick:18:{ set %fc2 $findtok(%serv,$did(18),1,64) set %channelfrom.cid $gettok(%cid,%fc2,64) if (%fc2 == %tc2) { did -b nicklay 25 } else { did -e nicklay 25 } } on *:dialog:nicklay:sclick:7:{ .disable #nnsr #relay unset %tc2 unset %fc2 unset %channelto.cid unset %channelfrom.cid } ;Nick Relay commands on *:TEXT:*:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  < $+ $nick $+ > $1- } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  < $+ $nick $+ > $1- } } on *:ACTION:*:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  6* $nick $1-  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  6* $nick $1-  } } on *:JOIN:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } } on *:PART:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } } on *:KICK:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } } on *:OP:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } } on *:DEOP:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } } on *:HELP:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } } on *:DEHELP:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -h $hnick  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -h $hnick  } } on *:VOICE:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } } on *:DEVOICE:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } } on *:BAN:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } } on *:UNBAN:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } } on *:TOPIC:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } } on *:MODE:#:{ if (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 4 $+ $chan $+  3* $nick sets mode: $1-  } elseif (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 4 $+ $chan $+  3* $nick sets mode: $1-  } } on *:QUIT:{ if ($comchan($nick,0) > 0) && (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } elseif ($comchan($nick,0) > 0) && (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } } on *:NICK:{ if ($comchan($newnick,0) > 0) && (%nickr == on) && ($nick == %vic) && (%multi.serv == 0) { msg %channel.to 3* $nick is now known as $newnick  | set %vic $newnick } elseif ($comchan($newnick,0) > 0) && (%nickr == on) && ($nick == %vic) && (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 3* $nick is now known as $newnick  | set %vic $newnick } } #nnsr end #mcevent off dialog mclay { title "Chat Relay by tank59" size -1 -1 180 150 option dbu button "Set", 1, 75 125 30 20, ok flat button "Cancel", 2, 110 125 30 20, cancel flat check "Multiple-Server", 3, 5 135 45 10 combo 4, 10 10 70 50, size drop combo 7, 102 10 70 50, size drop combo 10, 10 68 70 50, size drop combo 11, 10 83 70 50, size drop combo 12, 10 98 70 50, size drop combo 13, 102 68 70 50, size drop combo 14, 102 83 70 50, size drop combo 15, 102 98 70 50, size drop box "To Network", 16, 2 2 83 25 box "From Network", 17, 94 2 83 25 box "To Channels", 18, 2 60 83 55 box "From Channels", 19, 94 60 83 55 button "Info", 20, 5 120 12 10 text "1.", 27, 5 69 5 10 text "2.", 28, 5 84 5 10 text "3.", 29, 5 99 5 10 text "1.", 30, 97 69 5 10 text "2.", 31, 97 84 5 10 text "3.", 32, 97 99 5 10 } ;multiple channel dialogs on *:dialog:mclay:sclick:2:{ .disable #mcevent #relay unset %channelto.cid unset %channelfrom.cid unset %tc3 unset %fc3 } on *:dialog:mclay:init:0:{ mulchan } on *:dialog:mclay:sclick:20:{ dialog -m info info did -ra info 2 The multi channel relay is to relay what is said in up to three rooms into three other rooms on the same or different server. } on *:dialog:mclay:sclick:1:{ if ($did(4) == $null) && ($did(7) == $null) && ($did(10) == $null) && ($did(11) == $null) && ($did(12) == $null) && ($did(13) == $null) && ($did(14) == $null) && ($did(15) == $null) { dialog -m error error did -ra error 2 Error:You need to fill in the required fields. halt } elseif ($did(4) == $null) || ($did(7) == $null) { dialog -m error error did -ra error 2 Error:You need to fill in the required fields. halt } elseif ($did(10) == $null) && ($did(11) == $null) && ($did(12) == $null) { dialog -m error error did -ra error 2 Error:You need to fill in at least one To Channel. halt } elseif ($did(13) == $null) && ($did(14) == $null) && ($did(15) == $null) { dialog -m error error did -ra error 2 Error:You need to fill in at least one From Channel. halt } elseif (%tc3 != %fc3) && ($did(3).state == 0) { dialog -m error error did -ra error 2 Error:You need to check the "Multiple-Server" option as you have it set for multiple server relaying. halt } else { unset %fc3 unset %tc3 set %channel.to1 $did(10) set %channel.to2 $did(11) set %channel.to3 $did(12) set %channel.from1 $did(13) set %channel.from2 $did(14) set %channel.from3 $did(15) set %multi.serv $did(3).state } } on *:dialog:mclay:sclick:*:{ if ($did == 4) { set %tc3 $findtok(%serv,$did(4),1,64) set %channelto.cid $gettok(%cid,%tc3,64) did -r mclay 10,11,12 scid %channelto.cid mulchanto } elseif ($did == 7) { set %fc3 $findtok(%serv,$did(7),1,64) set %channelfrom.cid $gettok(%cid,%fc3,64) did -r mclay 13,14,15 scid %channelfrom.cid mulchanfrom } } ;multiple channel events on *:TEXT:*:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  < $+ $nick $+ > $1- } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  < $+ $nick $+ > $1- } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  < $+ $nick $+ > $1- } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  < $+ $nick $+ > $1- } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  < $+ $nick $+ > $1- } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  < $+ $nick $+ > $1- } } on *:ACTION:*:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  6* $nick $1-  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  6* $nick $1-  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  6* $nick $1-  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  6* $nick $1-  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  6* $nick $1-  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  6* $nick $1-  } } on *:JOIN:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has joined $chan  } } on *:PART:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick ( $+ $mask($address,3) $+ ) has left $chan ( $1- ) } } on *:KICK:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $knick was kicked by $nick ( $+ $1- $+ ) } } on *:OP:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +o $opnick  } } on *:DEOP:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: -o $opnick  } } on *:HELP:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } } on *:DEHELP:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -h $hnick  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -h $hnick  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +h $hnick  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -h $hnick  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -h $hnick  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: -h $hnick  } } on *:VOICE:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +v $vnick  } } on *:DEVOICE:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: -v $vnick  } } on *:BAN:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: +b $banmask  } } on *:UNBAN:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: -b $banmask  } } on *:TOPIC:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick changes topic to ' $+ $chan($chan).topic ' } } on *:MODE:%channel.from1,%channel.from2,%channel.from3:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: $1-  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: $1-  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: $1-  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick sets mode: $1-  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick sets mode: $1-  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick sets mode: $1-  } } on *:QUIT:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  2* $nick ( $+ $mask($address,3) $+ ) Quit ( $+ $1- $+ ) } } on *:NICK:{ if (%multi.serv == 0) && (%channel.to2 == $null) && (%channel.to3 == $null) { msg %channel.to1 4 $+ $chan $+  3* $nick is now known as $newnick  } elseif (%multi.serv == 0) && (%channel.to3 == $null) { msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick is now known as $newnick  } elseif (%multi.serv == 0) { msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick is now known as $newnick  } elseif (%multi.serv == 1) && (%channel.to2 == $null) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 4 $+ $chan $+  3* $nick is now known as $newnick  } elseif (%multi.serv == 1) && (%channel.to3 == $null) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 4 $+ $chan $+  3* $nick is now known as $newnick  } elseif (%multi.serv == 1) { scid %channelto.cid msg %channel.to1 $+ , $+ %channel.to2 $+ , $+ %channel.to3 4 $+ $chan $+  3* $nick is now known as $newnick  } } #mcevent end ;alias's used in dialogs alias mulchanto { var %c 1 while (%c <= $chan(0)) { did -a mclay 10,11,12 $chan(%c) inc %c } } alias mulchanfrom { var %c 1 while (%c <= $chan(0)) { did -a mclay 13,14,15 $chan(%c) inc %c } } alias mulchan { var %t 1 while (%t <= $numtok(%serv,64)) { did -a mclay 4,7 $gettok(%serv,%t,64) inc %t } } alias nicktok { var %t 1 while (%t <= $numtok(%serv,64)) { did -a nicklay 17,18 $gettok(%serv,%t,64) inc %t } } alias chantok { var %t 1 while (%t <= $numtok(%serv,64)) { did -a nrelay 10,11 $gettok(%serv,%t,64) inc %t } } alias nickto { var %c 1 while (%c <= $chan(0)) { did -a nicklay 21 $chan(%c) inc %c } } alias chansto { var %c 1 while (%c <= $chan(0)) { did -a nrelay 4 $chan(%c) inc %c } } alias chansfrom { var %c 1 while (%c <= $chan(0)) { did -a nrelay 5 $chan(%c) inc %c } } menu * { Turn Relay $iif($group(#relay) == on,Off,On) { if ($group(#relay) == on) { .disable #relay #srel #mcevent #nnsr | echo -a *Relay Script Disabled | unset %channel.to | unset %channel.from | unset %multi.serv | unset %channelto.cid | unset %channelfrom.cid | unset %vic | unset %nickr | unset %channel.to1 | unset %channel.to2 | unset %channel.to3 | unset %channel.from1 | unset %channel.from2 | unset %channel.from3 } else { .enable #relay | dialog -m men men } } }