Konu: meal.tcl
Tekil Mesaj gösterimi
Alt 22 Nisan 2012, 14:35   #2
Çevrimdışı
saywhat
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: meal.tcl




Pekala dün verdiğim meal.tcl'de şöyle bir sorun vardı..

bir kez !meal komutuyla okutmaya başladı mı bir daha meal.txt içindeki satırları sonuna dek okuyordu yani durdurma imkanı yoktu.

yukarda verdiğim meal.tcl kodunu aşağıdakiyle değişirseniz artık !durmeal komutuyla okutmayı durdurabileceksiniz."denendi"

meal.tcl'nin yeni hali:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
# kanal komutları: # !meal : kanala meal.txt'teki satırları okur. # !meal nick|kanal : kanala yada nicke meal.txt'teki satırı okur. # !durmeal : okutmayı durdurmak için .. # NOT: sadece oplar,halfop ve voice sahipleri # !meal nick|kanal komutlarından birini kullanabilir. # bu komutla sunucudaki kanala yada belirlenen nickin # özeline atacaktır. # bu komutun kötüye kullanılmasından şikayetçiyseniz # aşağıdaki kodlarda oynama yaparak bu özelliği # kapatın-değiştirin. # kodu yüklemek için : # kodun işleyeceği kanalı ve satırları # okuma aralık süresini (dakika cinsinden) # ayarlayın.botunuzun conf'una # source scripts/meal.tcl # şeklinde kodu gösterin. # bot/scripts/ dizini içine meal.txt dosyasını # düzenleyip atmayı unutmayın.. # kodun işlemeye başlaması için # .rehash yada .restart etmeyi unutmayın # # not: ilk verdiğim kodda !meal komutundan sonra # işlem bir daha durduralamıyordu. # meal.txt içindekileri sonuna dek okumadan durmuyordu. # !durmeal komutu bu kodda eklendi denendi. # bunla istendiğinde okuma işleminin durması sağlandı. ############################################################# # kodun çalışmasını istediğiniz kanal set mealkanal "#kanalınız" # satırları okuma süresini ayarlayın(dakika) set mealzaman "3" # kanala post atmaya bu satırdan başlıyoruz set mealsatir 0 # okumayı durdurmak için kullanıcaz. setudef flag durmeal # ayarlar bu kadar..kod başlıyor. if { [info exists mealzaman] } { timer $mealzaman "timer:meal" } set mealtxt "scripts/meal.txt" bind pub - !meal oku:meal proc oku:meal {nick host handle chan text} { global mealkanal mealtxt mealsatir catch {channel set $mealkanal -durmeal} if { [isop $nick $mealkanal] || [ishalfop $nick $mealkanal] || [isvoice $nick $mealkanal] } { if { [lindex $text 0] != "" } { set satiroku [lindex $text 0] } else { set satiroku $mealkanal } set mealdosya [open $mealtxt r] set mealoku [split [read $mealdosya] \n] close $mealdosya # durdurma işlemini kontrol ediyoruz. if {![channel get $mealkanal durmeal]} { putserv "PRIVMSG $satiroku :[lindex $mealoku $mealsatir] " set mealsatir [expr $mealsatir + 1] } } else { set mealdosya [open $mealtxt r] set mealoku [split [read $mealdosya] \n] close $mealdosya if {![channel get $mealkanal durmeal]} { putserv "PRIVMSG $nick :[lindex $mealoku $mealsatir] " set mealsatir [expr $mealsatir + 1] } } } # bu kısım durdurma işlemi için bind pub - !durmeal durmeal proc durmeal {nick host handle chan text} { global mealkanal mealtxt mealsatir if { [isop $nick $mealkanal] || [ishalfop $nick $mealkanal] || [isvoice $nick $mealkanal] } { catch {channel set $mealkanal +durmeal} } putserv "PRIVMSG $chan : $mealkanal kanalında meal okuma $nick tarafından durduruldu." } proc timer:meal {} { global botnick mealkanal mealzaman mealtxt mealsatir if { [onchan $botnick $mealkanal] && ![channel get $mealkanal durmeal] } { set mealdosya [open $mealtxt r] set mealoku [split [read $mealdosya] \n] close $mealdosya putserv "PRIVMSG $mealkanal :[lindex $mealoku $mealsatir] " set mealsatir [expr $mealsatir + 1] timer $mealzaman "timer:meal" } } #bu kadar ... hadi geçmiş olsun :d putlog "meal.tcl kullanıma hazır... " # #

böyle oldu umarım işinize yarar...

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklamver bizimmekan