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 off dialog info { title "Chat Relay by lidder" 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 "rejected@austnetexposed.com", 4, 40 45 50 10 } dialog error { title "Chat Relay by lidder" 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 "rejected@austnetexposed.com", 4, 40 45 50 10 } dialog men { title "Chat Relay by lidder" 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 "rejected@austnetexposed.com", 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 "rejected@austnetexposed.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 off ;nrelay dialog dialog nrelay { title "Chat Relay by lidder" 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 0 $1- } elseif (%multi.serv == 1) && (%channelfrom.cid) { scid %channelto.cid msg %channel.to 0 $1- } } #srel end #nnsr off dialog nicklay { title "Chat Relay by lidder" 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 *: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 lidder" 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- } } 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 *: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 } } }