Aradan uzun zaman geçti, hatırlamakta da zorlandım bu konuyu, bir arkadaş msnden bu kodla ilgili yardım istedi; çalıştıramamış. Ben de zaten o zaman kodu denemediğimi yazmıştım, ufak tefek hatalar varmış kodta. Gözüme çarpanlarını düzelttim. Bu haliyle kullanılabiliyor.
İşte çalışan hali:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
#################################################################### # BANLANSIN.tcl # Kullanıcıların kanalda rahatsızlık verenleri oylama # yolu ile botunuza attırmasını sağlayacak olan, daha öncesinde # mIRC tabanlı örneğini gördüğümüz özelliğin istekler doğrultusunda # TCL scripting ile baştan kodlanmış halidir. # Mümkün olduğunca ayarlanabilir şekilde hazırladım. # # Yapımcı : SaW (Nebiliymben) # İletişim: Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
# 24 Ekim 2008 Cuma (edit: 5 eylül 2009) # ####################################################################
# Bu özelliğin çalışmasını istediğiniz kanalları # Aralarına boşluk bırakarak belirtiniz. # Botun bulunduğu bütün kanallarda çalışmasını istiyorsanız "*" yazınız. set bn(kanallar) "#Kanal1 #kanal2 #kanal3"
# Ban süresini giriniz. (0'dan daha büyük rakam belirtiniz.) # Süreyi dakika cinsinden belirtiniz. set bn(bansure) 15
# Belirtilen kişilerin banlanması için gereken oy adedini giriniz. # (Bir kişi sadece bir oy kullanabilir.) set bn(oyadeti) 4
# Oylama süresini giriniz. Süre sonunda oylama sıfırlanacaktır. # Süreyi saniye cinsinden belirtiniz. set bn(oysure) 120
# Oylama sonuçlarının kişiye notice ile bildirilmesi için 1, # kanala mesaj halinde bildirilmesi için 2 yazınız. set bn(msgtype) 1
bind pub - !banla banla:rey
if {$bn(msgtype) != "1" && $bn(msgtype) != "2"} { putlog "Geçersiz Mesaj tipi! bn(msgtype) 1 ya da 2 olabilir." die }
proc banla:rey {nick uhost hand chan arg} { global bn botnick if {([lsearch -exact $bn(kanallar) $chan] == -1) && ($chan != "*")} {return} if {![isop $botnick $chan]} {return} if {[llength $arg] < 1} { putquick "NOTICE $nick :Banlanmasını\ istediğiniz \037nicki\037 belirtmediniz!" return } if {[llength $arg] > 1} { putquick "NOTICE $nick :Bu komutu \037sadece\ bir nick\037 için kullanabilirsiniz!" return } set bnick $arg if {![onchan $bnick $chan]} { putquick "NOTICE $nick :Banlanmasını\ istediğiniz nick şuanda bu kanalda bulunmuyor!" return } if {[isop $bnick $chan]} { putquick "NOTICE $nick :Banlanmasını\ istediğiniz kişi bir \037kanal yetkilisidir!\037" putquick "NOTICE $bnick :$nick sizin $chan kanalından banlanmanız\ için oy kullanmaya çalıştı." return } if {$bn(msgtype) == 1} { set bildiri NOTICE ; set bilecek $nick } if {$bn(msgtype) == 2} { set bildiri PRIVMSG ; set bilecek $chan } if {![info exists bn([set onick [md5 [string tolower [getchanhost $bnick $chan]]]])]} { if {![info exists bn([set rnick [md5 [string tolower [getchanhost $nick $chan]$onick]]])]} { putlog "buradayim: $onick - $rnick" set bn($rnick) 1 utimer $bn(oysure) [list unset bn($rnick)] } elseif {[info exists bn([set rnick [md5 [string tolower [getchanhost $nick $chan]$onick]]])]} { putlog "buradayim0: $onick - $rnick" putquick "NOTICE $nick :Bu nick için zaten oy kullandınız!" return } set bn($onick) 1 utimer $bn(oysure) [list oyTime $onick] putquick "NOTICE $nick :$bnick nickinin $chan kanalından banlanması\ için verdiğiniz oy kaydedilmiştir." putquick "$bildiri$bilecek :[expr $bn(oyadeti)-1] kişinin daha oy kullanması\ halinde kişi $chan kanalından banlanacaktır." return } if {[info exists bn([set onick [md5 [string tolower [getchanhost $bnick $chan]]]])]} { if {![info exists bn([set rnick [md5 [string tolower [getchanhost $nick $chan]$onick]]])]} { putlog "buradayim1: $onick - $rnick" set bn($rnick) 1 utimer $bn(oysure) [list unset bn($rnick)] } elseif {[info exists bn([set rnick [md5 [string tolower [getchanhost $nick $chan]$onick]]])]} { putlog "buradayim2: $onick - $rnick" putquick "NOTICE $nick :Bu nick için zaten oy kullandınız!" return } incr bn($onick) if {$bn($onick) < $bn(oyadeti)} { putquick "NOTICE $nick :$bnick nickinin $chan kanalından banlanması\ için verdiğiniz oy kaydedilmiştir." putquick "$bildiri$bilecek :[expr $bn(oyadeti)-$bn($onick)] kişinin daha oy kullanması\ halinde kişi $chan kanalından banlanacaktır. Kullanılan oy sayısı: $bn($onick)" return } if {$bn($onick) == $bn(oyadeti)} { putquick "MODE $chan +b *!*@[getchanhost $bnick$chan]" putquick "KICK $chan$bnick Yapılan oylama sonucunda verdiğiniz rahatsızlıktan\ dolayı $bn(bansure) dk $chan kanalından uzaklaştırıldınız!" timer $bn(bansure) [list pushmode $chan -b *!*@[getchanhost $bnick $chan]] unset bn($rnick) unset bn($onick) } } }
proc oyTime onick { global bn if {[info exists bn($onick)]} { incr bn($onick) -1 if {$bn($onick) <= 0} {unset bn($onick)} } }
putlog "BANLANSIN.tcl by SaW Başarıyla Yüklendi."
Konu Nebiliymben tarafından (05 Eylül 2009 Saat 05:50 ) değiştirilmiştir.