|
saywhat Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
sizden cevap gelmeyince bende sorun yok sanmıştım.çok basit bazı hatalar yapmışım . kodda şimdi deneyince hataları verdi bot.düzelttim
ben kodları süblime text 2 üzerinde göz kararı yazıp postalıyorum çoğu zaman sıkıldığım için denemiyorum .göz kararı olmuştur olmuştur diyorum ama çoklukla böyle basit şeyler gözümden kaçmış oluyor..ekleme-silme okuma şimdi sorunsuz çalışıyor ... Kod: Kodu kopyalamak için üzerine çift tıklayın! # kullanımı :
# hangi kanalda duyru eklemek -silmek isteniyorsa ,
# telnet/dcc üzerinden bota .chanset #kanalınız +duyuru
# komutuyla kodu aktif etmelisiniz.
# belirlenen kanalda op olanlar
# duyuru ekleyip silebilir.
# !dyrekle duyuruno duyurumsg
# !dyrsil duyuruno
# bota özelde duyur , duyuru ,dyr demeniz yeterli
# /msg botnick dyr ... gibi...
setudef flag duyuru
set dzn "duyurular.txt"
bind pub -|- !dyrekle duyuru:ekle
bind pub -|- !dyrsil duyuru:sil
bind msgm - "*" duyuru:duyur
proc duyuru:ekle {nick host hand chan arg} {
global dzn
if {![channel get $chan duyuru]} {
return
}
if {![isop $nick $chan]} {
return
}
set dyrno [lindex [split $arg] 0]
set dyrmsg [join [lrange [split $arg] 1 end]]
if {$dyrno == ""} {
puthelp "notice $nick eksik komut girdiniz.kullanımı : !dyrekle duyuruno duyuru"
return 0
}
if {$dyrmsg == ""} {
puthelp "notice $nick eksik komut girdiniz.kullanımı : !dyrekle duyuruno duyuru"
return 0
}
if {[file exists $dzn] == 0} {
set file [open $dzn w]
close $file
}
set file [open $dzn a]
puts $file $dyrno#$dyrmsg
close $file
puthelp "notice $nick $dyrno $dyrmsg eklendi"
}
proc duyuru:sil {nick host hand chan arg} {
global dzn
if {![channel get $chan duyuru]} {
return
}
if {![isop $nick $chan]} {
return
}
set dyrno [lindex [split $arg] 0]
if {$dyrno == ""} {
puthelp "notice $nick yanlış komut girdiniz. kullanımı : !dyrsil duyuruno"
return 0
}
if {[file exists $dzn] == 0} {
set file [open $dzn w]
close $file
}
set file [open $dzn "r"]
set data [read -nonewline $file]
close $file
set lines [split $data "\n"]
set i [expr $dyrno - 1]
set delete [lreplace $lines $i $i]
set files [open $dzn "w"]
puts $files [join $delete "\n"]
close $files
set file [open $dzn "r"]
set data [read -nonewline $file]
close $file
if {$data == ""} {
set files [open $dzn "w"]
close $files
}
puthelp "notice $nick $dyrno silindi."
}
proc duyuru:duyur {nick host hand arg} {
global dzn
if {![file exists "$dzn"]} {
putserv "notice $nick :herhangi bir duyuru bulunamadı."
return 0
}
if {![file readable "$dzn"]} {
putserv "notice $nick :herhangi bir duyuru bulunamadı."
return 0
}
if {[string match -nocase "duyur*" $arg] || [string match -nocase "dyr" $arg]} {
set msgno 0
set file [open "$dzn" r]
set line [gets $file]
incr msgno
putserv "privmsg $nick :$line"
}
if {[eof $file]} {
close $file
break
}
}
putlog "bir kar yagar ince ince..."
son anda kodu fikir değiştirip okuma yönteminde eof kısmında değişiklik yapmıştım.gene bozmuşum kodu :p şu haliyle deneyin sonucu bildirin.
|
selam yeniden ilk duyuru yu ekliyor ve rahatca okuyor ama sonraki duyurulari eklemiyor:
!dyrekle 2 ikinci duyuru
seklinde ekliyorum, ekliyor gozukuyor ama dyr, duyur diyince okumuyor.
telnet ciktisi;
[10:17:19] [Steaqueolth!squirt@Thychaskel.j] dyr
[10:17:40] Tcl error [duyuru:duyur]: invoked "break" outside of a loop
[10:17:40] [Steaqueolth!squirt@Thychaskel.j] dyr
[10:17:44] Tcl error [duyuru:duyur]: invoked "break" outside of a loop
[10:17:44] [Steaqueolth!squirt@Thychaskel.j] duyur
[10:20:12] [Steaqueolth!squirt@Thychaskel.j] duyur
[10:21:13] Tcl error [duyuru:duyur]: can't read "file": no such variable
[10:21:52] [Steaqueolth!squirt@Thychaskel.j] duyur
[10:22:07] Tcl error [duyuru:duyur]: can't read "file": no such variable