Cara kerja TCL ini adalah mempaste log yang ada di Chan1 Net1 ke Chan2 Net2 begitu sebaliknya, lalu bagaimana? apakah harus membuat bot eggdrop lagi pada server yang ingin di relay? tidak, karena tCL ini nanti akan membuat bot eggdrop sendiri dengan memanfaatkan Socket pendeknya ketika kita nanti akan merelay atau spy, TCL ini akan mengirim BOT yang masih saudara kembar ke server yang anda tentukan.. Hebat bukan?? Langsung saja ini TCL nya:
# ----------------------------------------------------------------------------------# # relay.tcl owner by Barker JR barkerjr(at)clancdg.com # modified by g0eZ eggoez(at)about.me # /server irc.allnetwork.org:6667 -join:#ciut # loaded & translate by http://eg-goez.blogspot.com # ----------------------------------------------------------------------------------# set debug 1 set debug_out 1 set shortcommands 1 bind dcc m linkchan dcc:linkchan if {$shortcommands == 1} {bind dcc m lc dcc:linkchan} proc dcc:linkchan {hand idx arg} { global nick realname username chanlinkchan chanlinkidx chanlinkserv chanlinknet chanlinknick shortcommands linkchantrim set chanlinknick $nick[rand 1000] set chan [lindex $arg 0] set net [lindex $arg 1] set serv [lindex $arg 2] set port [lindex $arg 3] if {![validchan $chan]} { putdcc $idx "Chan Salah" putdcc $idx "Gunakan: .linkchan <channel> <network> <server> \[port\]" } else { if {$serv == ""} { putdcc $idx "Spesifikasi Server" putdcc $idx "Gunakan: .linkchan <channel> <network> <server> \[port\]" } else { if {[info exists chanlinkidx]} { if {[valididx $chanlinkidx]} { putdcc $chanlinkidx "QUIT :Mengganti Server" killdcc $chanlinkidx } } if {$port == ""} { set chanlinkidx [connect $serv 6667] } else { if {$port != ""} {set chanlinkidx [connect $serv $port]} } set chanlinkchan $chan set chanlinkserv $serv set chanlinknet $net control $chanlinkidx linkchan putlc "USER $username 0 0 :$realname" putlc "NICK :$chanlinknick" set linkchantrim "abcdefghijklmnopqrstuvwxyzABCDEFGHIJGKLMNOPQRSTUVWXYZ1234567890 !@*.#~-_|\[\]\{\}`" bind part - * part:chanlink bind pubm - * pubm:chanlink bind sign - * sign:chanlink bind ctcp - ACTION ctcp:chanlink bind join - * join:chanlink bind nick - * nick:chanlink bind dcc m -linkchan dcc:-linkchan bind dcc m dumplinkchan dcc:dumplinkchan if {$shortcommands == 1} { bind dcc m -lc dcc:-linkchan bind dcc m dumplc dcc:dumplinkchan } return 1 } } } proc dcc:dumplinkchan {hand idx arg} { putlc $arg return 1 } proc dcc:-linkchan {hand idx arg} { global chanlinkidx chanlinkchan chanlinkserv chanlinknet linkchantrim shortcommands putlc "QUIT :Di Bunuh!" killdcc $chanlinkidx linkchan:shutdown return 1 } proc linkchan:shutdown {} { global chanlinkidx chanlinkchan chanlinkserv chanlinknet linkchantrim shortcommands unset chanlinkidx unset chanlinkchan unset chanlinkserv unset chanlinknet unset linkchantrim unbind part - * part:chanlink unbind pubm - * pubm:chanlink unbind sign - * sign:chanlink unbind ctcp - ACTION ctcp:chanlink unbind join - * join:chanlink unbind nick - * nick:chanlink unbind dcc m -linkchan dcc:-linkchan unbind dcc m dumplinkchan dcc:dumplinkchan clearqueue help if {$shortcommands == 1} { unbind dcc m -lc dcc:-linkchan unbind dcc m dumplc dcc:dumplinkchan } } proc putlc {arg} { global chanlinkidx debug_out if {$debug_out == 1} {putlog "linkchan> $arg"} putdcc $chanlinkidx $arg } proc linkchan {idx arg} { global debug nick chanlinkchan chanlinknet chanlinknick username realname linkchantrim if {$debug == 1} {putlog "linkchan< $arg"} set arg2 [lindex $arg 0] switch $arg2 { PING {putlc "PONG [lindex $arg 1]"} ERROR { putserv "PRIVMSG $chanlinkchan :\0032ERROR: Closing Link" linkchan:shutdown } } switch [lindex $arg 1] { 001 { putlc "MODE $chanlinknick :+i" putlc "JOIN $chanlinkchan" } 433 { set chanlinknick $nick[rand 1000] putdcc $idx "NICK :$chanlinknick" } 353 {puthelp "privmsg $chanlinkchan :$chanlinknet NAMES list: [string trimleft [string trimleft [string trimleft $arg :] "abcdefghijklmnopqrstuvwxyzABCDEFGHIJGKLMNOPQRSTUVWXYZ1234567890 !@*.#~-_|\[\]\{\}`="] :]"} JOIN {puthelp "privmsg $chanlinkchan :\0033*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet ([lindex [split $arg2 !] 1]) has joined $chanlinkchan"} KICK {linkchan:kick $idx $arg} NICK {puthelp "privmsg $chanlinkchan :\0033*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet in now known as [string trimleft [lindex $arg 2] :]@$chanlinknet"} PART {puthelp "privmsg $chanlinkchan :\0033*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet ([lindex [split $arg2 !] 1]) has left $chanlinkchan"} PRIVMSG {linkchan:privmsg $idx $arg} QUIT {puthelp "privmsg $chanlinkchan :\0032*** [lindex [split [lindex [split $arg2 !] 0] :] 1]@$chanlinknet ([lindex [split $arg2 !] 1]) Quit ([string trimleft [string trimleft [string trimleft $arg :] $linkchantrim] :])"} } } putlog "Relay Loaded by g0eZ" proc linkchan:privmsg {idx arg} { global chanlinkchan chanlinknet linkchantrim botnick network set nick [lindex [split [lindex [split $arg !] 0] :] 1] if {$nick == $botnick} { putlc "QUIT :Ya, ada yang salah?" killdcc $idx linkchan:shutdown } else { if {[string tolower [lindex $arg 2]] == [string tolower $chanlinkchan]} { set text [string trimleft [string trimleft [string trimleft $arg :] $linkchantrim] :] if {[string match \001*\001 $text]} { if {[string match \001ACTION*\001 $text]} { puthelp "privmsg $chanlinkchan :\0036 * $nick@$chanlinknet[string trimright [string trimleft [string trimleft $text \001ACTION] ""] \001]" } } else { if {[string match -nocase [lindex $text 0] !names]} { putlc "PRIVMSG $chanlinkchan :$network NAMES list: [chanlist $chanlinkchan]" } else { puthelp "privmsg $chanlinkchan :<$nick> $text" } } } } } proc linkchan:kick {idx arg} { global chanlinknick chanlinkchan if {$chanlinknick == [lindex $arg 3]} {putlc "JOIN $chanlinkchan"} } proc join:chanlink {nick uhost hand chan args} { global network chanlinkidx chanlinkchan if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} { if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0033***$network $nick ($uhost) has joined $chan"} } } proc part:chanlink {nick uhost hand chan msg} { global network chanlinkidx chanlinkchan if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} { if {$msg != ""} {set msg ($msg)} if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0033***$network $nick ($uhost) has left $chan $msg"} } } putlog "eg-goez.blogspot.com" proc pubm:chanlink {nick uhost hand chan text} { global network chanlinkidx chanlinkchan chanlinknick if {$nick == $chanlinknick} { putlc "QUIT :Ya!! ada masalah?" killdcc $idx linkchan:shutdown } else { if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} { if {[valididx $chanlinkidx]} { if {[string match -nocase [lindex $text 0] !names]} { putlc "NAMES $chan" } else { putlc "PRIVMSG $chan :<$nick> $text" } } } } } proc sign:chanlink {nick uhost hand chan reason} { global network chanlinkidx chanlinkchan if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} { if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0032***$network $nick ($uhost) Quit ($reason)"} } } proc ctcp:chanlink {nick uhost hand dest keywork arg} { global network chanlinkidx chanlinkchan if {[info exists chanlinkidx]} { if {[valididx $chanlinkidx] && [string match [string tolower $dest] [string tolower $chanlinkchan]]} { putlc "PRIVMSG $dest :\0036 * $nick $arg" } } } proc nick:chanlink {nick uhost hand chan newnick} { global network chanlinkidx chanlinkchan if {[info exists chanlinkidx] && [string match [string tolower $chan] [string tolower $chanlinkchan]]} { if {[valididx $chanlinkidx]} {putlc "PRIVMSG $chan :\0033***$network $nick is now known as $newnick"} } }Tambahkan Scipts di atas ke tcl baru anda,, dan load pada konfig, lalu rehash bot nya.. setelah itu
DCC bot nya dengan cara
/ctcp botnick chatJika ada sebuah pertanyaan Accept aja..
Jika sudah bot nanti akan menanyakan nick dan password pada chat DCC anda
cukup ketik nick anda (Owner bot) dan password Owner bot
kurang lebih seperti ini dialog nya nanti
DCC Chat session
Client: Drone (***.***.***.***)
Acknowledging chat request...
DCC Chat connection established
(Drone) Nickname.
(Drone) (If you are new, enter 'NEW' here.)
(g0eZ) g0eZ
(Drone)
(Drone) Enter your password.
(g0eZ) *******
(Drone) ÿü
(Drone) You have no messages.
(Drone) *** g0eZ joined the party line.
nah seperti itu nanti.. jika sudah kini saatnya anda mengkonfigurasi dan menyuruh bot anda membuat saudara kembar untuk pertugas di jauh sana :D dengan cara
.linkchan <#channel> <namanet> <server> <port>
contoh:
.linkchan #ciut Net2 irc.allnetwork.org 6667Nanti di situ anda akan meliahat modt :) bertanda bot sudah connect :)
Sekian semoga bermanfat temans ;)