Tekil Mesaj gösterimi
Alt 12 Kasım 2014, 23:33   #4
Çevrimdışı
saywhat
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: #bilgi kanalı için tcl




bot 1.6.21 sürümü ise , bu sürümde (ve bir kullanıcıya Efnet'te yardım verirken görüldü ki 1.8 sürümünde de bu sorun var...) onchan ve botonchan komutlarıyla ilgili bir "bug" ,hata var şöyle ki ; bot ayrıldığı kanalla ilgili bilgiyi resetlemiyor ve bu nedenle orada olmamasına rağmen hala o sakladığı/silmediği veriye göre işlem yapmaya çalışabiliyor.

bu belirlenen "sorun" üzerine yukarıdaki gibi onchan yada botonchan komutları içeren scriptlerde "sıkıntı" yaşanmaması için (bot kanalda olmamasına rağmen hala "1" dönüyor "0" dönmesi gerekirken...) ,botunuz bu sürümlerden biri ise ,eggdrop geliştiricisi thommey'in bu sorunu onarmaya/gidermeye yönelik yazdığı şu scripti ,(mümkünse .conf dosyasında yüklenecek scriptler listesinin en üstlerinde source listesine ekleyin) yüklemelisiniz:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
# botonchan.tcl # Track [botonchan]/[onchan] in a script, working around a bug in Eggdrop1.6.21 # # (c) 2014 Thomas Sader # ---------------------------------------------------------------------------- # "THE BEER-WARE LICENSE" (Revision 42): # <thommey@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].com> wrote this file. As long as you retain this notice you # can do whatever you want with this stuff. If we meet some day, and you think # this stuff is worth it, you can buy me a beer in return. - thommey # ---------------------------------------------------------------------------- bind join - * onchan:join # for some weird reason the part bind doesn't trigger if the bot parts on its own #bind part - * onchan:part bind out - "% sent" onchan:checkpart bind kick - * onchan:kick bind evnt - disconnect-server onchan:disconnect proc setbotonchan {chan value} { global botonchan if {$value} { set botonchan($chan) 1 } else { unset -nocomplain botonchan($chan) } } proc unsetbotonallchan {} { global botonchan if {![info exists botonchan]} { return } foreach chan [array names botonchan] { setbotonchan $chan 0 } } proc onchan:join {nick host hand chan} { if {![isbotnick $nick]} { return } setbotonchan $chan 1 } proc onchan:checkpart {queue text status} { if {[string toupper [lindex [split $text] 0]] eq "PART"} { onchan:part $::botnick - - [lindex [split $text] 1] } } proc onchan:part {nick host hand chan {reason ""}} { if {![isbotnick $nick]} { return } setbotonchan $chan 0 } proc onchan:kick {nick host hand chan victim text} { if {![isbotnick $victim]} { return } setbotonchan $chan 0 } proc onchan:disconnect {args} { unsetbotonallchan } proc botonchan {{chan "any"}} { global botonchan if {![info exists botonchan]} { return 0 } if {($chan eq "any" && ![llength [array names botonchan]]) || ![info exists botonchan($chan)]} { return 0 } return 1 } # we also have to workaround [onchan] being 1 for old nicknames by embedding [botonchan] into it if {[info commands _onchan] eq ""} { rename onchan _onchan } proc onchan {nick {chan ""}} { if {$chan eq ""} { set chans [channels] } else { set chans [list $chan] } foreach c $chans { if {[botonchan $chan] && [_onchan $nick $chan]} { return 1 } } return 0 }

yukarıdaki sorunuz içinse,şöyle birşey :

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
# rapor verilecek kanal. set raporch "#rapor" # komutu kullanma yetkisi olacak kişinin aynı zamanda bulunması aranan kanal. set operch "#opers" # uzaklaştırma sebebleri: set sebep { "Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı." "canı öyle istemiş" "gözünün üstünde kaşın var..." "goooooooooooooolllllll" "bu tuşa basınca ne oluyordu acaba?" "ah elim kaydı..." } # ayar sonu... proc msg_nickban {nick uhost hand chan text} { if {![isop $nick $chan] || ![ishalfop $nick $chan] && ![onchan $nick $::operch]} { puthelp "notice $nick :$::lastbind komutunu kullanmak için,$chan kanalında en az Halfop yada Op olmalı \ ve $::operch kanalında bulunuyor olmak zorundasınız..." return } if {![botisop $chan] || ![botishalfop $chan]} { puthelp "notice $nick :$chan kanalında bunu yapmaya yetkim yok $nick" return } set person [filtre [lindex [split $text] 0]] set neden [subst -nocommands [lindex $::sebep [expr {int(rand()*[llength $::sebep])}]]] set zaman [clock format [clock seconds] -format "%d/%B/%Y %A %H:%M:%S" -locale tr_TR] if {[llength $person] eq "0"} { puthelp "notice $nick :kullanımı : $::lastbind <hedef>" return } if {$person eq $::botnick || [matchattr [nick2hand $person] mnoaf|mnoaf $chan]} { puthelp "notice $nick :bu kabul edilemez $nick..." return 0 } pushmode $chan +b $person flushmode $chan putkick $chan $person :"$neden" if {[botonchan $::raporch]} { puthelp "privmsg $::raporch :$zaman $person nicki, \"$neden\" nedeniyle , $nick tarafından $chan kanalından uzaklaştırıldı." set iletildi 1 } else { putlog "$::raporch kanalında olmadığımdan, bilgi iletilemedi..." set iletildi 0 } } proc filtre {filter} { return [regsub -all -- $filter {[][*?\\]} {\\\0} filter] } bind pub - "!nick" msg_nickban putlog "ok..."



Konu saywhat tarafından (13 Kasım 2014 Saat 01:01 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver