TCL Olarak İse ; 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... "
#
İlgili Linkten Daha Detaylı Bilgi Alabilirsiniz. Link ; [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]