Eğer birilerine bişeyler öğreterek faydalı olmaksa amacımız ve de eğer yaptığınız çok çok büyük bir proje değil ve ticari amaçlı değilse her zaman açık koddan yana olduğumu bir kez daha burada belirtmek istiyorum. Bu konuyu okuyup bu ekranda kodladığım bir tcl.. O yüzden denemeye fırsatım olmadı, buyrun deneyin, eğer hatayla karşılaşırsanız yazın buraya ve halledip öyle verelim. 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 # ####################################################################
# 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şilen 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!" retutrn } if {[llength $arg] > 1} { putquick "NOTICE $nick :Bu komutu \037sadece\ bir nick\037 için kullanabilirsiniz!" retutrn } set bnick $arg if {![onchan $bnick $chan]} { putquick "NOTICE $nick :Banlanmasını\ istediğiniz nick şuanda bu kanalda bulunmuyor!" retutrn } 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ı." } 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]]])]} { set bn($rnick) 1 uitmer $bn(oysure) [list unset bn($rnick)] } elseif {[info exists bn([set rnick [md5 [string tolower [getchanhost $nick $chan]$onick]]])]} { putquick "NOTICE $nick :Bu nick 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]]])]} { set bn($rnick) 1 uitmer $bn(oysure) [list unset bn($rnick)] } elseif {[info exists bn([set rnick [md5 [string tolower [getchanhost $nick $chan]$onick]]])]} { putquick "NOTICE $nick :Bu nick zaten oy kullandınız!" return } incr bn($rnick) if {$bn($rnick) < $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($rnick)] kişinin daha oy kullanması\ halinde kişi $chan kanalından banlanacaktır. Kullanılan oy sayısı: $bn($rnick)" return if {$bn($rnick) == $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."
|