28 Kasım 2012, 23:08
#3 Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Cevap: A kanalinda atilan bani B kanalina yansitmak ?
Denememiş olman güzel çünkü sonuç alamicaktın. ChanRelay.TCL var onla mümkün; PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
# chan-relay v1.01 by shred, 2001 <Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. .ru> # <vars> set cr ( version ) "1.01" # format: "bot1 #bot1chan flags1 {users1} bot2 #bot2chan flags2 {users2}" # bot1 <--- #bot2chan, flags2, {users2} # #bot1chan, flags1, {users1} ---> bot2 # users: # {} - no users # {*} - all users # {nick1 nick2} - selected users (only nick1 and nick2) # flags (what to send): # - - NOTHING # c - chan msgs, actions # C - chan msgs, actions with @/+ prefix # j - join, part, quit msgs # m - mode change msgs # k - kick msgs # n - nick change # N - send with out nick (message only) # t - topic change # u - request user list (from another side) # T - t + synchronize # 1|2|3 - output priority (default is 3, 1 is NOT recommended) # a = cjmnkt # A = CjmknT # !! incorrect lines are ignored !! ### *** THIS IS WORKING EXAMPLE: set cr ( sets ) { "ricin #bluehell cNknmjt {*} cyanide #bluehell cNknmjt {*}" } # list of bots with this script on board (authorized bots) # also needed for dcc command "cr_rehash" (rehash all selected bots) ### *** THIS IS WORKING EXAMPLE: set cr ( netbots ) "ricin cyanide" # </vars> # <procs> proc xindex { xarg xarg1 } {return [ join [ lrange [ split $xarg ] $xarg1 $xarg1 ]]} proc xrange { xarg xarg1 xarg2 } {return [ join [ lrange [ split $xarg ] $xarg1 $xarg2 ]]} proc b {} { return \ 002 } proc cr_modep { nick chan cmd } { if { $cmd == "cr_pubm" || $cmd == "cr_act" } { if {[ isop $nick $chan ]} {return "\@ $nick " } if {[ isvoice $nick $chan ]} {return "\+ $nick " } } return $nick } proc cr_cansend { cmd modes } { if { $modes == "-" } {return 0 } regsub "a" $modes "cjmnkt" modes regsub "A" $modes "CjmnkT" modes if {[ lsearch "cr_report cr_ulist" $cmd ] != - 1 } {return 1 } switch $cmd { cr_pubm {if {[ string match "*\[cC\]*" $modes ]} {return 1 }} cr_act {if {[ string match "*\[cC\]*" $modes ]} {return 1 }} cr_join {if {[ string match "*j*" $modes ]} {return 1 }} cr_part {if {[ string match "*j*" $modes ]} {return 1 }} cr_sign {if {[ string match "*j*" $modes ]} {return 1 }} cr_mode {if {[ string match "*m*" $modes ]} {return 1 }} cr_nick {if {[ string match "*n*" $modes ]} {return 1 }} cr_topc {if {[ string match "*\[tT\]*" $modes ]} {return 1 }} cr_ulistreq {if {[ string match "*u*" $modes ]} {return 1 }} } return 0 } proc cr_getpri { modes } { if {[ string match "*1*" $modes ]} {return 1 } if {[ string match "*2*" $modes ]} {return 2 } return 3 } proc cr_send2 { b1d b2d cmd nick text } { set b1name [ xindex $b1d 0 ] set b1chan [ xindex $b1d 1 ] set b1modes [ xindex $b1d 2 ] set b1users [ xindex $b1d 3 ] set b1pri [ cr_getpri $b1modes ] set b2name [ xindex $b2d 0 ] set b2chan [ xindex $b2d 1 ] set b2modes [ xindex $b2d 2 ] set b2users [ xindex $b2d 3 ] set b2pri [ cr_getpri $b2modes ] if {![ cr_cansend $cmd $b1modes ]} {return} if { $b1name == $b2name } { if {[ string match "*\[CA\]*" $b1modes ]} { set nick [ cr_modep $nick $b1chan $cmd ]} cr_brecive $b1name $cmd [ concat $b2chan $nick $text ] } else { if {[ string match "*\[CA\]*" $b1modes ]} { set nick [ cr_modep $nick $b1chan $cmd ]} foreach x $b1users { if { $x == $nick || $x == "\*" } { if { $cmd == "cr_topc" && $nick == $b1name } {continue} if {( $cmd == "cr_topc" ) && [ string match "*\[AT\]*" $b1modes ]} { append cmd "s" } if {( $cmd == "cr_pubm" || $cmd == "cr_act" ) && [ string match "*N*" $b1modes ]} { set nick "\*" } if {[catch { putbot $b2name " $cmd $b1pri $b2chan $nick $text " } err ]} { putlog " $x bot error: $err " } } } } } proc cr_send { cmd chan nick text } { global botnick cr regsub - all ï $text Ÿ text foreach i $cr ( sets ) { if {[ llength $i ] != 8 } {continue} set b1name [ xindex $i 0 ] set b1chan [ xindex $i 1 ] set b1modes [ xindex $i 2 ] set b1users [ xindex $i 3 ] set b2name [ xindex $i 4 ] set b2chan [ xindex $i 5 ] set b2modes [ xindex $i 6 ] set b2users [ xindex $i 7 ] if { $b1name == $botnick && $b1chan == $chan } { cr_send2 " $b1name $b1chan $b1modes $b1users " " $b2name $b2chan $b2modes $b2users " $cmd $nick $text } elseif { $b2name == $botnick && $b2chan == $chan } { cr_send2 " $b2name $b2chan $b2modes $b2users " " $b1name $b1chan $b1modes $b1users " $cmd $nick $text } } } proc cr_pubm { nick uhost hand chan text } { cr_send cr_pubm $chan $nick $text } proc cr_act { nick uhost hand chan keyw text } { cr_send cr_act $chan $nick $text } proc cr_nick { nick uhost hand chan newnick } { cr_send cr_nick $chan $nick $newnick } proc cr_mode { nick uhost hand chan mc victim } { if { $nick == "" && $hand == "\*" } { cr_send cr_mode $chan $uhost " $chan $mc $victim " } else { cr_send cr_mode $chan $nick " $chan $mc $victim " } } proc cr_join { nick uhost hand chan } { cr_send cr_join $chan $nick " $chan $uhost " cr_send cr_ulistreq $chan $nick " $chan " } proc cr_part { nick uhost hand chan msg } { cr_send cr_part $chan $nick " $chan $uhost " } proc cr_sign { nick uhost hand chan reason } { cr_send cr_sign $chan $nick " $uhost $reason " } proc cr_topc { nick uhost hand chan topic } {if { $nick == "\*" } {return}; cr_send cr_topc $chan $nick " $chan $topic " } proc cr_kick { nick uhost hand chan target reason } { cr_send cr_kick $chan $nick " $target $reason " } proc cr_putx { pri text } { switch $pri { 1 { putquick $text } 2 { putserv $text } 3 { puthelp $text } default { putlog "ERROR: Wrong priority ( $pri ) for message ' $text '" } } } proc cr_brecive { frombot cmd arg } { global cr server if { $server == "" } {return} if {[ lsearch $cr ( netbots ) $frombot ] == - 1 } {return} set pri [ xindex $arg 0 ] set chan [ xindex $arg 1 ] set nick [ xindex $arg 2 ] set text [ xrange $arg 3 end ] switch $cmd { cr_pubm {if { $nick == "*" } { cr_putx $pri "PRIVMSG $chan : $text " } else { cr_putx $pri "PRIVMSG $chan :\< $nick \> $text " }} cr_act {if { $nick == "*" } { putact $chan $text } else { cr_putx $pri "PRIVMSG $chan :\* $nick $text " }} cr_nick { cr_putx $pri "PRIVMSG $chan :\*\*\* $nick is now known as $text " } cr_mode { cr_putx $pri "PRIVMSG $chan :\*\*\* $nick sets [xindex $text 0] mode: [xrange $text 1 end]" } cr_sign { cr_putx $pri "PRIVMSG $chan :\*\*\* $nick ([xindex $text 0]) Quit ([xrange $text 1 end])" } cr_join { cr_putx $pri "PRIVMSG $chan :\*\*\* $nick ([xindex $text 1]) has joined [xindex $text 0]" } cr_part { cr_putx $pri "PRIVMSG $chan :\*\*\* $nick ([xindex $text 1]) has left [xindex $text 0]" } cr_topc { cr_putx $pri "PRIVMSG $chan :\*\*\* $nick changes [xindex $text 0] topic to '[xrange $text 1 end]'" } cr_topcs { cr_putx $pri "PRIVMSG $chan :\*\*\* $nick changes [xindex $text 0] topic to '[xrange $text 1 end]'" ; if {[ botisop $chan ]} { putserv "TOPIC $chan :[xrange $text 1 end] ( $nick )" }} cr_kick { cr_putx $pri "PRIVMSG $chan :\*\*\* [xindex $text 0] was kicked from $chan by $nick ([xrange $text 1 end])" } cr_dorehash { putbot $frombot cr_rehashing ; putlog "REHASH request from $frombot " ; rehash } cr_rehashing { putlog " $frombot : rehashing..." } cr_report { cr_putx $pri "PRIVMSG $chan :\! Relay bot ( ${ frombot } ) reporting: $text " } cr_ulistreq { putbot $frombot "cr_ulist 3 $text $nick [b][llength [chanlist $chan ]][b] users on [b] $chan [ b ] : [join [lsort [chanlist $chan ]] {, }]" } cr_ulist { cr_putx $pri "NOTICE $nick :\[ $chan \] $text " } } } proc cr_sendrehash { hand idx arg } { global cr botnick putlog "Sending REHASH request to [llength $cr (netbots)] bots..." foreach x $cr ( netbots ) { if { $x == $botnick } {continue} if {![ islinked $x ]} { putlog " $x bot is not currently linked" ; continue} if {[catch { putbot $x "cr_dorehash" } err ]} { putlog " $x bot error: $err " } } putlog "Send completed. Rehashing myself..." ; rehash } proc cr_need { chan type } { if { $type == "unban" } { cr_send cr_report $chan - "need unban on $chan " } } # </procs> # <binds> bind dcc n cr_rehash cr_sendrehash bind need - * cr_need bind pubm - * cr_pubm bind ctcp - ACTION cr_act bind nick - * cr_nick bind mode - * cr_mode bind join - * cr_join bind part - * cr_part bind sign - * cr_sign bind topc - * cr_topc bind kick - * cr_kick bind bot - cr_pubm cr_brecive bind bot - cr_act cr_brecive bind bot - cr_nick cr_brecive bind bot - cr_mode cr_brecive bind bot - cr_join cr_brecive bind bot - cr_part cr_brecive bind bot - cr_sign cr_brecive bind bot - cr_topc cr_brecive bind bot - cr_topcs cr_brecive bind bot - cr_kick cr_brecive bind bot - cr_dorehash cr_brecive bind bot - cr_rehashing cr_brecive bind bot - cr_report cr_brecive bind bot - cr_ulistreq cr_brecive bind bot - cr_ulist cr_brecive # </binds> # <c> putlog " chan-relay v $cr (version) by shred, 2001 <Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. .ru>" # </c>