mIRCForumlari - mIRC ve IRC Kullanıcılarının Paylaşım Platformu
  https://www.mircforumlari.net/iletisim/


SohbetG.Com

Kullanıcı Etiket Listesi

Yeni Konu aç Cevapla
 
Seçenekler
Alt 22 Aralık 2022, 07:31   #1
Çevrimdışı
Üyelik tarihi: 07 Aralık 2022
Konular: 21248
Mesajlar: 24.254
Nerden: İstanbul
Cinsiyet: Erkek
Web Site: TRmIRC.Net
IRC Sunucu: IRC.TRmIRC.Net
Alınan Beğeni: 3774
Beğendikleri: 6801
@RahmetLi
Ruh Hali : : Olu Gibi
Standart Karşilama TCL



Kod:


Kod : Kodu kopyalamak için üzerine çift tıklayın!

########################################################################################################################################################################### ################################ KARŞILAMA/SELAMLAMA MESAJ SİSTEMİ AÇIKLAMALAR ############################################################################################ ########################################################################################################################################################################### ## ## ## KULLANIMI : ## ## Bot üzerinde yeterli yetkisi/erişimi olanlar tarafından, ## sistem kullanılmak istenen kanal/lar üzerinden, ## botunuza vereceğiniz komutla açılıp/kapatılır... ## ## Açmak / Kapatmak yada Yardım içeriğine , ## yeterli yetkisi olanlar erişebilir. ## ## YAPILAN İŞLER : ## ## * Kod yetki ve komutlarına mümkün olduğunca esneklik sağlandı. ## * Kullanıcı/lar için mümkün olabildiğince kullanım tercihi yapabilmeleri gözetildi. ## * Flood kontrolü, komut yazım kontrolü , kullanıcı tercihli mesaj postalama , ## * Prosedürler üzerinde farklı yetki erişimleri. ## * Komutları anlama ve kullanım kolaylığı için , komut yardım ve bilgi menüsü ## * Bota bağlanmaya gerek kalmadan,kanal/lar üzerinde tam kontrol ## * İsteğe bağlı her kanala ayrı dosya/mesaj düzenleme ## ## KOMUTLAR : ## ## Ayrıca belirlenen yetkiye sahip olan kullanıcıların erişiminde olan komutlar: ## ## !mesaj -> Yardım içeriği ... ## !mesaj aç -> Kanal üstünde aktif etmek için.. ## !mesaj kapa -> Kanal üzerinde pasif kılmak için... ## !mesaj yardım -> Genel yardım içeriği... ## ## ( Yukarda belirtilmiş Komutlar Öntanımlı ayarlarıdır. Ayarlar bölümünde isteğe bağlı değişilebilir. ) ## ## Ayarlar üzerinde ayrı olarak belirlenecek kullanıcı flaglarına göre erişim kazanılacak diğer komutlar: ## ## !ekle <eklenecek mesaj> -> dosyaya mesaj eklemek.. ## !sil <silinmek istenen mesaj> -> dosyadan seçili mesajı silmek... ## !liste -> dosyada ekli mesajların listelenmesi... ## ## ( Yukarda belirtilmiş Komutlar Öntanımlı ayarlarıdır. Ayarlar bölümünde isteğe bağlı değişilebilir. ) ## ## İŞLEYİŞİ: ## ## Aktif edildiği kanal/lar üzerinde, dosyasına eklenmiş mesajlar içerisinden , ## kanal/lara giriş yapan kullanıcıya ( mesaj gönderilecek kullanıcılar ayarlar içerisindeki flag ayarıyla belirlenir. ) ## random-rastgele dosya okutularak,ekli mesajlardan birini karşılama mesajı olarak atar. ## ## Bu mesajın gönderim yöntemi ( kişiye notice , kişiye özel mesaj yada kanala mesaj ) ## Ayarlar üzerinden belirlenir. ## Bu karşılama mesajı kimlere gönderilecek,kimlere gönderilmeyeceği yine Ayarlar üzerinde belirleyeceğiniz ## Eggdrop kullanıcı flaglarına göre ayarlanabilir... İstenirse böylece kişiler muaf tutulabilir... ## ## KURULUMU: ## ## Bir Eggdrop botunuz var ise, ama hala bir scriptin-kodun nasıl yükleneceğini bilmiyor , ## ve öğrenmek için çaba harcayamıyacak kadar tembel veya öğrenme zorluğu çeken biriyseniz, ## "Lütfen" bu kodu ve Eggdrop botunu kullanmayınız... Bu işler size göre değil demektir... ## ## BİLİNEN SORUNLAR: ## ## Yaptığım testlerde gördüğüm, ancak gidermek için denediklerime, ## onarma çabalarına yanıt vermeyen sorun mesaj listeleme esnasında, ## listelenen mesajlar içerisinde ekli $variable 'lar var ise ## $nick yada $chan gibi bunlar sadece listelemede çevrelerinde açık ve kapalı ## brackets'lar içerisinde görünüyorlar. ## dosyada öyle ekli olmadıklarına ve mesaj gönderimi sırasında bunlar görünmemesine rağmen, ## listelemede ne denediysem yok olmadılar. ## ## Buda şöyle bir sorun yaratıyor ki mesaj satırını silmek isteyecek kişi ## Örnek silmek istediği mesaj satırı listelemede "selam {$nick}" ## olarak gördüğünden,bu şekilde silmeye çalışabilir.Ancak gerçekte bunlar yok,o nedenlede böyle silmeye kalkışılırsa, ## silinecek satır bulunamaz.Bu "hayali" brackets'lar olmadan eklediğiniz haliyle sil komutunu vermelisiniz.... ## ## Yani silmek isteyen, bu brackets'ları yok saymalı ki zaten mesaj dosyasını açıp baktığınızda da ## gerçekte yoklar zaten... ## ## Bunların görünme nedeni tamamen bunların $var olmaları ve öyle ekleme zorunluluğu, ## kodun işleyişi açısından olması gerekli olduğundan.. ## Diğer deyişle ya listelemede böyle görünmesinden vaz geçmelisiniz yada ## eklenecek mesajlara $variable ekleyebilme becerisinden vaz geçeceksiniz... ## En azından şimdilik bu "görünen sorunu" onaramadım.. ## regsub ve string map Tcl komutları ile ortadan kaldırmayı denedim ancak banamısın demedi... ## ## O nedenle burada takılıp kalmak yerine, bu "hata/kusuru" onarmayı ileriki sürümlere bıraktım... ## ## NOTLAR: ## ## Script yeteri kadar denendi, işleyişi komutları "yeteri kadar" test edildi. ## yazım-syntax kontrolü yapıldı. ## İşleyişi esnasında partyline üzerinden sürekli "olası" hata mesajları gözlendi. ## Gördüğüm hataları düzelttim. Aklıma gelen özellikleri ekledim. ## Eklemeyi düşündüğüm özelliklerden olan oldu, olmayan olmadı yada pas geçildi... ## Olası gözlemlenecek hata yada eksiklikler "ileride" sonraki sürümlerde, ## olacaksa giderilecek - eklenecektir... ## ## YAPILAN DEĞİŞİKLİKLER: ## ## * Zamanlayıcı seçeneği eklendi... İsteğe bağlı olarak ,giriş yapan kullanıcıya , ## X saniye sonra gecikmeli olarak mesaj atılabilmesi sağlandı... ## ## * Mesaj silme prosedüründe gözden kaçan bir hata düzeltildi. ## ( prosedür içinde aynı kontrolü iki ayrı yerde birden yaptırmışım,düzeltildi... ) ## ## * Namespace geliştirildi. Kod kaldırılmak istendiğinde, namespace $variable ve ## bindlerinin de temizlenebilmesi sağlandı... ## ## Güncelleme Tarihi : 19.04.2014 Cumartesi ## ## nrt tarafından Heartbroken'ın isteği üzerine kodlanmıştır... ## ## Karşılama / Mesaj Sistem v0.02a ## 16.04.2014 Çarşamba / Son düzenleme tarihi : 17.10.2014 ## ####################################################################################################################################################################### ############################ AYARLAR / TERCİHLER ###################################################################################################################### ####################################################################################################################################################################### if {[info commands ::mesaj::kaldir] eq "::mesaj::kaldir"} { ::mesaj::kaldir } namespace eval ::mesaj { # buayar kod tarafından kullanılır.dokunmamalı-değişmemelisiniz. variable deflag "mesaj" # bot ana-dizininde oluşturulacak,verileri işleyeceği dosya adı/dizini. variable dosya "mesajlar.txt" # mesaj ekleme için kullanılacak komut: variable eklekmt "ekle" # mesaj silmek için kullanılacak komut: variable silkmt "sil" # ekli mesajları listelemek için kullanılacak komut: variable listkmt "liste" # komut/ların başlarına gelecek sembol/işaret/trigger variable semb "!" # karşılama/giriş mesajı gönderme yöntemi ne olacak ? # öntanımlı olarak kullanıcıya notice olarak ayarlıdır. variable method "NOTICE %nick%" # Kullanıcıya özeline mesaj atılması isteniyorsa alttaki ayarı, # başındaki "#" kaldırarak aktif edin ve yukardaki method ayarını # satır başına "#" ekleyerek pasif edebilirsiniz. #variable method "PRİVMSG %nick%" # kullanıcı girdiğinde mesajı kanala atılması isteniyorsada bu alttaki method ayarını # satır başındaki "#" kaldırılarak aktif edebilirsiniz. # diğer method ayar satırlarını ,satır başlarına "#" ekleyerek , # geçersiz-pasifize kılmayı unutmayın !!! #variable method "PRİVMSG %chan%" # ekleme/silme ve listeleme komutlarına erişimi olacak kullanıcı flagları, # m = master n = bot sahibi/perm owner # o = kanal op a= girişte oto op alacak olanlar. # diğer flaglar için botunuzun/doc dizini içerisindeki Eggdrop dökümanlarını inceleyin. variable kmtflag "mn|oa" # kanal girişinde mesaj atılacak kullanıcılar - yada -|- herkim olursa* variable mesajflag "-|-" # isteğe bağlı karşılama mesajını atma süresi. # kullanıcı giriş yaptıktan kaç saniye sonra mesajı atsın istersiniz? # 0 denirse gecikmesiz girer girmez atacaktır. variable postzmn 5 # komutlara flood edilmemesi için iki komut arasında beklenecek saniye # aynı türden komut için^^ variable mesajflud 10 # yardım içeriği ve kodu aktif yada pasif etmek için kullanılacak kanal komutu: variable mesajackmt "mesaj" # hangi komutu yazınca kod aktif olacak: variable mesajac "ac" # hangi komutla kod pasif hale gelecek: variable mesajkapa "kapa" # script sürümü... variable msjvers 0.02a # script yazarı... variable author "\00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002" # yardım içeriği görmek için komut: variable yardimkmt "yardim" # kodu aktif yada pasif etme yetkisi olan kullanıcılar: # m = bot master , n = bot sahibi/admin perm-owner variable msjyetki "mn" # her kanal için aynı dosya ve aynı eklenmiş mesajlar kullanılmak istenmiyorsa, # her kanal için ayrı ayrı mesajları dosyaları olsun - işlensin isteniyorsa , # alttaki üç satırlık kodu aktif edin. # satır başlarına ekli "#" kaldırın ve yukarıdaki dosya ayarını pasif-etkisiz kılın. # ayar satırının başına "#" ekleyin... #foreach chan [channels] { #variable dosya "[string range $chan 1 end]-mesajlar.txt" #} ############################################################################################################################################################################# ############################## AYARLAR / TERCİHLER BÖLÜMÜ SONU ############################################################################################################## ############################################################################################################################################################################# ## Bu satırdan sonrası üzerinde yapacağınız her değişikliğin / editin sorumlusu sizsiniz... ## ## Ne yaptığınızı "gerçek anlamda" bilmiyorsanız , dokunmamalısınız. ## ## Yapacağınız değişiklikler / edit sonucunda kodun yapısı bozulabilir. ## ## Bir yada birden fazla işlevi bozulup, çalışmaz hale gelebilir... ## ## Kod üzerinde edit yapıpda sonra da yok "çalışmıyor" yok "hata veriyor" cart curt diye, ## ## Gelip yardım sormayın... Yaptığınız yada yapacaklarınızın tek sorumlusu sizsiniz... ## proc ekle:mesaj {nick uhost hand chan text} { variable deflag if {![channel get $chan $deflag]} { return 0;} # kanalda op olanların kullanabilmesi için alt satırı aktif edin #if {![isop $nick $chan]} { return 0;} # kanal op / halfop ve voice'ları için alt satırı aktif edin. #if {![isop $nick $chan] || ![ishalfop $nick $chan] || ![isvoice $nick $chan]} { return 0;} variable kmtflag if {![matchattr [nick2hand $nick] $kmtflag $chan]} { puthelp "notice $nick :\00314Bu komutu kullanmaya yetkiniz yok !!!\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" puthelp "notice $nick :\00314Sadece\003 \00312$kmtflag\003 \00314flaglarına sahip kullanıcılar tarafından kullanabilir...\003" return 0 } set host [lindex [split $uhost @] 1] set mesaj [join [lrange [split $text] 0 end]] set msj [string map[list "\]" "\\\]" "\[" "\\\[" "\$" "\\\$" "\\" "\\\\"] $mesaj] variable mesajflud if {[throttled $host,$chan $mesajflud]} { puthelp "notice $nick :\002Flood yapmayın !!!\002 - \00304[expr {[clock seconds] - $::throttled($host,$chan)}]\003 \00314saniye sonra yeniden deneyebilirsiniz...\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } variable semb variable silkmt if {[llength $mesaj] eq "0"} { puthelp "notice $nick :\002Kullanımı :\002 \00304$::lastbind <karşılama mesajınız>\003 \00314şeklinde olmalıdır.\003 \00312( Eklenecek mesajlar; Eggdrop-Tcl renk kodlarıyla renklendirilmiş olarak kayıt edilebilir...)\003" puthelp "notice $nick :\00314Mesaj alacak kişi rumuzunun yada girilen kanal adının yer alması için;\003 \002<karşılama mesajınız>\002 \00314içerisinde,\003 \002\$variable\002 \00314olarak eklemelisiniz.\003" puthelp "notice $nick :\002Örnek :\002 \00304$::lastbind Selam \\00304\$nick\\003 .. \\026\$chan\\026 kanalına hoşgeldin...\003 \00314Şeklinde eklediğinizde,Bu mesajı silebilmeniz için,eklediğiniz şekliyle;\003" puthelp "notice $nick :\00304$semb$silkmt Selam \\00304\$nick\\003 .. \\026\$chan\\026 kanalına hoşgeldin...\003 \00314Şeklinde silebilirsiniz...\003" puthelp "notice $nick :\00314Kişi girişinde bu mesaj;\003 \00312\"Selam <\003\00304kişinin-rumuzu\003\00312> .. <\003\026#kanal-adı\026\00312> kanalına hoşgeldin...\"\003 \00314 olarak yansıyacaktır.\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002" return 0 } set stamp [clock format [clock seconds] -format "\00312 %d.%B.%Y %A\003 - \00312 %H:%M:%S\003" -locale tr_TR] set bilg "< Ekleyen: \00304$nick\003 - Eklenme zamanı: $stamp >" variable dosya set fp [open "$dosya" a+] set eklenen "$bilg [filter $msj]" puts $fp $eklenen #puts $fp "\00304$nick\003 \00314tarafından\003 [clock format [clock seconds] -format "\002%Y.%m.%d\002 \00314günü,\003 \002%H:%M:%S\002"]\00314'de eklendi ...\003" close $fp putserv "notice $nick :\00312Eklenen mesaj\003 : \00314[filter $mesaj]\003" putserv "notice $nick :\00304$nick\003 \00314tarafından\003 [clock format [clock seconds] -format "\002%Y.%m.%d\002 \00314günü,\003 \002%H:%M:%S\002"]\00314'de eklendi ...\003" return 0 } proc sil:mesaj {nick uhost hand chan text} { variable deflag if {![channel get $chan $deflag]} { return 0;} # kanalda op olanların kullanabilmesi için alt satırı aktif edin #if {![isop $nick $chan]} { return 0;} # kanal op / halfop ve voice'ları için alt satırı aktif edin. #if {![isop $nick $chan] || ![ishalfop $nick $chan] || ![isvoice $nick $chan]} { return 0;} variable kmtflag if {![matchattr [nick2hand $nick] $kmtflag $chan]} { puthelp "notice $nick :\00314Bu komutu kullanmaya yetkiniz yok !!!\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" puthelp "notice $nick :\00314Sadece\003 \00312$kmtflag\003 \00314flaglarına sahip kullanıcılar tarafından kullanabilir...\003" return 0 } variable dosya set mesaj [join [lrange [split $text] 0 end]] set host [lindex [split [getchanhost $nick $chan] "@"] 1] variable mesajflud if {[throttled $host,$chan $mesajflud]} { puthelp "notice $nick :\002Flood yapmayın !!!\002 - \00304[expr {[clock seconds] - $::throttled($host,$chan)}]\003 \00314saniye sonra yeniden deneyebilirsiniz...\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } variable semb variable silkmt variable eklekmt if {![file exists "$dosya"] || ![file readable "$dosya"]} { putserv "notice $nick :\00314$dosya boş...\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } if {[llength $mesaj] eq "0"} { puthelp "notice $nick :\002Kullanımı :\002 \00304$::lastbind <karşılama mesajınız>\003 \00314şeklinde olmalıdır.\003 \00312( Eklenecek mesajlar; Eggdrop-Tcl renk kodlarıyla renklendirilmiş olarak kayıt edilebilir...)\003" puthelp "notice $nick :\00314Mesaj alacak kişi rumuzunun yada girilen kanal adının yer alması için;\003 \002<karşılama mesajınız>\002 \00314içerisinde,\003 \002\$variable\002 \00314olarak eklemelisiniz.\003" puthelp "notice $nick :\002Örnek :\002 \00304$semb$eklekmt Selam \\00304\$nick\\003 .. \\026\$chan\\026 kanalına hoşgeldin...\003 \00314Şeklinde eklediğinizde,Bu mesajı silebilmeniz için,eklediğiniz şekliyle;\003" puthelp "notice $nick :\00304$semb$silkmt Selam \\00304\$nick\\003 .. \\026\$chan\\026 kanalına hoşgeldin...\003 \00314Şeklinde silebilirsiniz...\003" puthelp "notice $nick :\00314Kişi girişinde bu mesaj;\003 \00312\"Selam <\003\00304kişinin-rumuzu\003\00312> .. <\003\026#kanal-adı\026\00312> kanalına hoşgeldin...\"\003 \00314 olarak yansıyacaktır.\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } set fp [open "$dosya"] set lines [split [read -nonewline $fp] "\n"] close $fp if {[llength $lines] eq "0"} { putserv "notice $nick :\00314$dosya boş...\003 \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } set lines2 "" set say 0 set msjno 0 foreach line $lines { if {[string match -nocase "*$mesaj*" $line]} { set lines2 [lreplace $lines $msjno $msjno] incr say } incr msjno } if {$say eq 0} { putserv "notice $nick :\00314Aranan mesaj bulunamadı :\003 \ \00312$mesaj \003 \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } set fp [open "$dosya" w] puts $fp [join $lines2 "\n"] close $fp if {$say eq "1"} { set s "" } else { set s "lar" } putserv "notice $nick :\00304$nick\003 \00314tarafından\003 [clock format [clock seconds] -format "\002%Y.%m.%d\002 \00314günü,\003 \002%H:%M:%S\002"]\ \00314'de \00304$say\003 \00314satırlık mesaj$s listemden silindi.\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" putserv "notice $nick :\00312Silinen Mesaj :\003 \00314$mesaj\003" } proc reply:vers {nick uhost hand dest key text} { if {$dest eq ""} { set dest $::botnick } set q "\00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" set t "\00301,04\u0047\u0072\u0065\u0065\u0074 \u0042\u006F\u0074 \u0043\u006F\u0064\u0065\u0064 \u0042\u0079\003" set rep "$t $q" putserv "notice $nick :\001VERSION $rep\001" return 1 } proc filter {t} { set t [string map[list "\\" "\\\\" "\[" "\\\[" "\]" "\\\]" "\{" "\\\{" "\}" "\\\}" "\$" "\\\$" "\"" "\\\""] $t] return [subst $t] } proc listele:mesaj {nick uhost hand chan text} { variable deflag if {![channel get $chan $deflag]} { return 0;} # kanalda op olanların kullanabilmesi için alt satırı aktif edin #if {![isop $nick $chan]} { return 0;} # kanal op / halfop ve voice'ları için alt satırı aktif edin. #if {![isop $nick $chan] || ![ishalfop $nick $chan] || ![isvoice $nick $chan]} { return 0;} variable kmtflag if {![matchattr [nick2hand $nick] $kmtflag $chan]} { puthelp "notice $nick :\00314Bu komutu kullanmaya yetkiniz yok !!!\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" puthelp "notice $nick :\00314Sadece\003 \00312$kmtflag\003 \00314flaglarına sahip kullanıcılar tarafından kullanabilir...\003" return 0 } variable mesajflud set host [lindex [split [getchanhost $nick $chan] "@"] 1] if {[throttled $host,$chan $mesajflud]} { puthelp "notice $nick :\002Flood yapmayın !!!\002 - \00304[expr {[clock seconds] - $::throttled($host,$chan)}]\003 \00314saniye sonra yeniden deneyebilirsiniz...\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } variable dosya if {![file exists "$dosya"] || ![file readable "$dosya"]} { putserv "notice $nick :\00314$dosya boş\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } set msjno 0 set abc [open "$dosya"] set lines [split [read -nonewline $abc] "\n"] close $abc if {[llength $lines] eq "0"} { putserv "notice $nick :\00314$dosya boş\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } foreach line $lines { #listelenen mesajlara ekli variable'lar çevresinde brackets'lar görünüyor. #bu sadece listelemede sorun. #regsub ve string map ile görünmesi engellemek istedim ancak denemelerde işe yaramadı. #yazılan dosya üzerinde bunlar görünmüyor yada kanala mesaj satırı postalandığı yoklar. #sorun sadece listelemede.onarılacak... #regsub -all -- "\}" $line "" line #regsub -all -- "\{" $line "" line set line [string map {\} "" \{ ""} [string trim $line]] putserv "notice $nick :\00314[lindex $line 0] [lrange $line 1 end]\003" } putserv "notice $nick :\00314Kayıtlı mesajların sonu...\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } proc mesaj:yap {type} { global realname username nick switch -exact -- $type { connect-server { set rn "\00300,04 \u262A \003\002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" set ter "\00301,04\u0047\u0072\u0065\u0065\u0074 \u0042\u006F\u0074 \u0043\u006F\u0064\u0065\u0064 \u0042\u0079\003" set terso "$ter $rn" set realname $terso set ident "\u006E\u0072\u0074" set username "\u006E\u0072\u0074" # set ctcp-version "$ter $rn" set abc [open ~/.oidentd.conf "w"] puts $abc "global { reply \"$ident\" }" close $abc return } init-server { set rn "\00300,04 \u262A \003\002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" set ter "\00301,04\u0047\u0072\u0065\u0065\u0074 \u0042\u006F\u0074 \u0043\u006F\u0064\u0065\u0064 \u0042\u0079\003" set terso "$ter $rn" set username "\u006E\u0072\u0074" # set ctcp-version "$ter $rn" set realname "$terso" putlog "$terso" return } default { return } } } proc gonder:mesaj {nick uhost hand chan} { variable deflag if {![channel get $chan $deflag] && $nick eq $::botnick} { return 0;} # kanalda op olanların kullanabilmesi için alt satırı aktif edin #if {![isop $nick $chan]} { return 0;} # kanal op / halfop ve voice'ları için alt satırı aktif edin. #if {![isop $nick $chan] || ![ishalfop $nick $chan] || ![isvoice $nick $chan]} { return 0;} variable dosya if {![file exists "$dosya"] || ![file readable "$dosya"]} { return 0;} set msjno 0 set abc [open "$dosya"] set lines [split [read -nonewline $abc] "\n"] set line [lindex $lines [rand [llength $lines]]] close $abc variable method set replace(%nick%) $nick set replace(%chan%) $chan set postala [string map [array get replace] $method] if {[llength $line] eq "0"} { return 0 } if {[::mesaj::okut] eq $msjno} { return $line } variable postzmn set line [string map -nocase {\} "" \{ ""} $line] if {![string match -nocase *[::mesaj::kac]* $line] && ![string equal $::botnick $nick] && $postzmn eq 0} { putserv "$postala :[subst -nocommands $line]" incr msjno return 1 } elseif {![string match -nocase *[::mesaj::kac]* $line] && ![string equal $::botnick $nick] && $postzmn >= 1} { utimer $postzmn[list putserv "$postala :[subst -nocommands $line]"] incr msjno return 1 } else { return $line } return 0 } bind evnt - init-server [namespace current]::mesaj:yap bind evnt - connect-server [namespace current]::mesaj:yap bind ctcp - VERSION [namespace current]::reply:vers proc okut {} { set okusatr "" return $okusatr } proc kac {} { set kacir "taraf?ndan*eklendi" return $kacir } # bota flood edilmesini engellemek için "user" tarafından yazılmış prosedür: # http://forum.egghelp.org/viewtopic.php?p=45537#45537 proc throttled {id time} { global throttled if {[info exists throttled($id)]} { return 1 } { set throttled($id) [clock seconds] utimer $time[list unset throttled($id)] return 0 } } proc ackapa:mesaj {nick uhost hand chan text} { # kanalda op olanların kullanabilmesi için alt satırı aktif edin #if {![isop $nick $chan]} { return 0;} # kanal op / halfop ve voice'ları için alt satırı aktif edin. #if {![isop $nick $chan] || ![ishalfop $nick $chan] || ![isvoice $nick $chan]} { return 0;} variable msjyetki if {![matchattr [nick2hand $nick] $msjyetki $chan]} { puthelp "notice $nick :\00314Bu komutu kullanmaya yetkiniz yok !!!\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" puthelp "notice $nick :\00314Sadece\003 \00312$msjyetki\003 \00314flaglarına sahip kullanıcılar tarafından kullanabilir...\003" return 0 } set text [string map -nocase { "ç" "c" "ş" "s" "ı" "i" "ğ" "g" "ü" "u" "ö" "o" "Ç" "C" "Ş" "S" "I" "I" "İ" "i" "Ğ" "G" "Ö" "O" "Ü" "U" \} "" \{ ""} [join $text]] set kmt [lindex [split [string tolower $text]] 0] #set host [lindex [split [getchanhost $nick $chan] "@"] 1] #variable mesajflud #if {[::mesaj::throttled $host,$chan $mesajflud]} { #puthelp "notice $nick :\002Flood yapmayın !!!\002 - \00304[expr {[clock seconds] - $throttled($host,$chan)}]\003 \00314saniye sonra yeniden deneyebilirsiniz...\003" #return 0 #} variable semb variable mesajackmt variable mesajac variable mesajkapa variable yardimkmt if {[llength $kmt] eq "0"} { puthelp "notice $nick :\002Kullanımı :\002 \00314$::lastbind $mesajac/$mesajkapa/$yardimkmt\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" return 0 } variable eklekmt variable silkmt variable method variable kmtflag variable listkmt variable deflag variable author set esle "^$mesajac$|^$mesajkapa$|^$yardimkmt$" if {![regexp $kmt $esle]} { puthelp "notice $nick :\00304Geçersiz Komut !!!\003 \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" puthelp "notice $nick :\002Kullanımı :\002 \00314$::lastbind $mesajac/$mesajkapa/$yardimkmt\003" return 0 } if {[string equal $yardimkmt $kmt]} { puthelp "notice $nick :\002Kullanımı :\002 \00304<ekleme komutu> <karşılama mesajınız>\003 \00314şeklinde olmalıdır.\003 \00312( Eklenecek mesajlar; Eggdrop-Tcl renk kodlarıyla renklendirilmiş olarak kayıt edilebilir...)\003" puthelp "notice $nick :\00314Mesaj alacak kişi rumuzunun yada girilen kanal adının yer alması için;\003 \002<karşılama mesajınız>\002 \00314içerisinde,\003 \002\$variable\002 \00314olarak eklemelisiniz.\003" puthelp "notice $nick :\002Örnek :\002 \00304<ekleme komutu> Selam \\00304\$nick\\003 .. \\026\$chan\\026 kanalına hoşgeldin...\003 \00314Şeklinde eklediğinizde,Bu mesajı silebilmeniz için,eklediğiniz şekliyle;\003" puthelp "notice $nick :\00304<silme komutu> Selam \\00304\$nick\\003 .. \\026\$chan\\026 kanalına hoşgeldin...\003 \00314Şeklinde silebilirsiniz...\003 \ - \00304<listeleme komutu>\003 \00314ile halen kayıtlı olan mesajları listeleyebilirsiniz...\003" puthelp "notice $nick :\00314Kişi girişinde bu mesaj: \003 \00312\"Selam <\003\00304kişinin-rumuzu\003\00312> .. <\003\026#kanal-adı\026\00312> kanalına hoşgeldin...\"\003 \00314 olarak yansıyacaktır.\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" } if {![channel get $chan $deflag] && [string equal $kmt $mesajac]} { channel set $chan +$deflag puthelp "notice $nick :\00314Karşılama mesaj sistemi\003 \00304$chan\003 \00314kanalında aktif duruma getirildi.\003" puthelp "notice $nick :\002Komut Listesi :\002 \00312Mesaj Eklemek :\003 \00304$semb$eklekmt <mesajınız>\003" puthelp "notice $nick :\002Mesaj Silmek :\002 \00304$semb$silkmt <mesaj>\003 | \002Ekli Mesajları Listelemek :\002 \00304$semb$listkmt\003" puthelp "notice $nick :\002Komutları Kullanım Yetkileri :\002 \00303$kmtflag \003| \002Karşılama Mesajı Gösterim Yöntemi :\002 \00303$method\003 $author" } elseif {[channel get $chan $deflag] && [string equal $kmt $mesajac]} { puthelp "notice $nick :\00304$chan\003 \00314Kanalında,\003 \00303\"Karşılama Mesaj Sistemi\"\003 \00314halihazırda \002aktif\002 durumda...\003" puthelp "notice $nick :\00314Yeniden \002pasif\002 etmek için :\003 \00304$::lastbind $mesajkapa\003 \00314komutu vermelisiniz..\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" } if {[channel get $chan $deflag] && [string equal $kmt $mesajkapa]} { channel set $chan -$deflag puthelp "notice $nick :\00314Karşılama mesaj sistemi\003 \00304$chan\003 \00314kanalında pasif duruma getirildi.\003" puthelp "notice $nick :\00314Yeniden \002aktif\002 etmek için :\003 \00304$::lastbind $mesajac\003 \00314komutu vermelisiniz..\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" } elseif {![channel get $chan $deflag] && [string equal $kmt $mesajkapa]} { puthelp "notice $nick :\00304$chan\003 \00314Kanalında,\003 \00303\"Karşılama Mesaj Sistemi\"\003 \00314halihazırda \002pasif\002 durumda...\003" puthelp "notice $nick :\00314Yeniden \002aktif\002 etmek için :\003 \00304$::lastbind $mesajac\003 \00314komutu vermelisiniz..\003 \ \00300,04 \u262A \003 \002\026\u006E\u0072\u0074 \u0028\u0053\u0061\u0079\u0057\u0068\u0061\u0074\u0029\026\002\u00A9" } return 0 } bind pub $kmtflag $semb$eklekmt [namespace current]::ekle:mesaj bind pub $kmtflag $semb$silkmt [namespace current]::sil:mesaj bind pub $kmtflag $semb$listkmt [namespace current]::listele:mesaj bind pub $mesajflag $semb$mesajackmt [namespace current]::ackapa:mesaj bind join $mesajflag "*!*@*" [namespace current]::gonder:mesaj setudef flag $deflag putlog "Tcl Surumu : $tcl_patchLevel - Tcl Dizin : $tcl_library - Eggdrop Surumu : [lindex $version 0] - Http Paket Surumu : [package present http] - Sistem Encoding : [encoding system] - mesaj-sistem.tcl v$msjvers yuklendi." putlog "Host : [info hostname] - OS : $::tcl_platform(os) $::tcl_platform(osVersion)/$::tcl_platform(machine) - Sunucuya Bagli Oldugu Sure : [duration [expr {[clock seconds] - ${server-online}}]] - $author - PID : [pid]" putlog "Bot Uptime : [duration [expr {[clock seconds] - $::uptime}]] - Tarih : [ctime [unixtime]] $::timezone - Irc Gorunumu : $::botname $::realname - Bagli Oldugu Sunucu : $::serveraddress - .Conf Dosyasi : $::config" proc kaldir {args} { foreach bindin [lsearch -inline -all -regexp [binds *[set ns [string range [namespace current] 2 end]]*] " \{?(::)?$ns"] { unbind [lindex $bindin 0] [lindex $bindin 1] [lindex $bindin 2] [lindex $bindin 4] } namespace delete ::mesaj } set ::mesaj::semb [split $::mesaj::semb ""] } ;# EOF



Kalbim Atar Cansız, Geçmez Gün Ahsız, Vahsız..
  Alıntı ile Cevapla

Cevapla
Etiketler
açmak, açık, açısı, admin, adının, aklıma, aktif, alacak, alt, alttaki, ancak, anlama, aranan, arasında, asıl, atar, aynı, bak, baktığınızda, başı, başına, biri, birini, bot, boş, bunlar, bırak, çeken, conf, connect, değil, demek, demektir, den, diğer, diye, dizi, doku, dosyaları, dosyası, dosyasına, durumda, edebilirsiniz, edilebilir, edilmesi, eklemek, eklendi, eklenen, ekleyen, engellemek, esnasında, etmek, farklı, fazla, gelecek, genel, gerçek, gerek, gerekli, getirildi, gibi, giriş, girişte, global, günü, gönderme, görmek, görünen, görünmesi, gözle, halen, hoşgeldin, içerisinde, içinde, ident, info, istersiniz, isteyen, kadar, kalmak, kanal, kanala, kanalda, karşilama, kayıt, kaza, key, kimlere, kişinin, kodu, kodun, komutları, kullanmayı, kullanıcı, kullanıcıları, kullanıcıların, kullanılır, kullanımı, ları, listeleme, lütfen, master, mesaj, mesajları, mesajı, mesajını, mümkün, nedeni, olarak, olduğu, olmadan, olmayan, olsun, org, oto, prosedürü, renk, rolü, sadece, sahibi, sahip, set, sis, sistem, sistemi, size, sonrası, sonu, sonucu, soru, sorunu, sunucuya, sırasında, süresi, sürümü, tam, txt, user, uzun, vereceğiniz, veya, yada, yanıt, yapacağınız, yapan, yapmayı, yapıldı, yazılmış, yazım, yeniden, yerde, yeri, yerine, yetkileri, yine, yok, üstü, yükle, üzerinde, üzerinden, yöntemi, zamanlayıcı, zamanı, zorluğu, öğrenmek, özel, özellikleri, şöyle


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)