halen üzerinde çalıştığım kodun bir kısmıdır. geliştirmeye açık uzuuun olması beklenebilecek bir kodun deneme aşaması denebilir.
kanalda aktif etmek için : .chanset #kanal +istatistik
komutla kanaldaki kişinin toplamda kaç kelime yazdığı ve yazdığı toplam karakter sayısını verir. (en azından bu şimdi paylaştığım kısmı bunu yapar.listeleme prosedürü tamamlanmak üzereyken artık gözlerim yorulduğundan bıraktım öylece... ilerki sürüm/leri,olursa kickleri,banları,ctcp,/me,smiley'leri vs vs kullanıcı istatistiği çıktısına eklemeyi düşünüyorum.olur yada olmaz artık günler ne getirirse.)
Dikkat : bu script Tcl8.5.x ve üstü Tcl sürümleri gerektirir.daha eski sürümlere uyumlu değildir.*
script dict Tcl komutunun kazandırdığı özellikleri kullanarak yazılmıştır ki bu Tcl8.5 ve daha sonraki sürümlerin komutlarından biridir.
bunun "tam anlamıyla dengi" sayılabilecek (en yakın akrabası array'dir.) ,yerine konabilecek birşey yoktur ki daha eski sürümler de desteklesin...
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
# komutlara erişimi olacak kullanıcı flagları:
set istflag "-|-"
# komut başına gelecek işaret:
set isttrig "."
# komut:
set istkomut "stat"
# kanal/lar üstünde aktif etmek için : .chanset #kanal +istatistik
# ayarlar sonu...
proc stat_say {nick uhost hand chan text} {
if {![channel get $chan istatistik]} { return }
set kelime [llength $text]
set karakter [string length [regsub -all " " $text ""]]
if {![info exists ::keli($nick)] && ![info exists ::kara($nick)]} {
set ::keli($nick) [dict create]
set ::kara($nick) [dict create]
}
dict incr ::keli($nick) $chan $kelime
dict incr ::kara($nick) $nick $karakter
}
setudef flag istatistik
proc stat_cmd {nick uhost hand chan text} {
if {![channel get $chan istatistik]} { return }
set hedef [lindex [split $text] 0]
if {[llength $hedef] eq "0"} {
puthelp "notice $nick :Kullanımı : $::lastbind < rumuz >"
return 0
}
if {[info exists ::keli($nick)] && [info exists ::kara($nick)]} {
putserv "privmsg $chan :$hedef : [lindex [dict get $::keli($nick)] 0] kanalında ; \
[lindex [dict get $::keli($nick)] 1] kelime ,[lindex [dict get $::kara($nick)] 1] karakter kullanmış."
return 0
} else {
putserv "privmsg $chan :$hedef ile ilgili bir kayıt bulunmuyor."
}
}
bind pubm - "*" stat_say
bind pub $istflag $isttrig$istkomut stat_cmd
putlog "ok..."