Tekil Mesaj gösterimi
Alt 24 Ocak 2014, 19:17   #8
Çevrimdışı
saywhat
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ScanX hakkında.




yukarda verdiğim koda baktığımızda kendi içinde üç ayrı bind'e ve herbir bind'e bağlı-o bind'e ait prosedüre sahip.

kendi içinde 3 ayrı kod tek ortak noktaları yansi_knl değişkenini ortaklaşa kullanmaları.

bu bind çeşitleri mirc scripting'teki eventlerin eggdrop Tcl'deki karşılıkları.
ancak her event-aksiyon için belirlenmiş bindler için kendine özgü proc/prosedürleri var.yukarda verdiğim linkteki eggdrop tcl commands dökümanını "binds" bind çeşitlerini inceleyiniz. her bind türü için kullanılacak- proc / prosedür yapısı gösterilmiştir.

yukarda verdiğim kod çalışır..(denemeye gerek görmedim..çünkü yapı olarak oldukça düz basit.. hata vs olacak durumu yok)

sadece kanala yazılan yazıları yakalamak istiyorum diyorsanız bind pubm dışındaki bind'leri bind join ve bind part'ı unbind olarak değişirsiniz etkisiz hale gelir .onlar işlemez..


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
;# setudef : kullanıcı tarafından belirlenmiş flag ;# dcc/telnet .chaninfo #kanal komutunda -log gibi görünür. ;# bu kodun yüklendiğini sorgulanan kanal üstünde pasif olduğunu gösterir. ;# bu kullanıldığında prosedür içinde bunu destekleyen kodu da yazmanız gerekir. ;# aksi halde aktif etme şansınız olmaz. ;# bu prosedür içinde iki ayrı şekilde belirtilir. ;# bir benim daha sık kullandığım şekliyle : ;# if {![channel get $chan log]} { return ;} ;# diğer daha eski yöntem / satır ise: ;# if {![lsearch -exact [channel info $chan] "+log"] != -1} { return;} ;# her iki satırda kodu aktif etmek için udef kullanıcı tanımlı flag/ayarın kanal üstünde ;# aktif durumda olup olmadığını kontrol eder ..değilse işleme ..diyor basit anlamda... setudef flag log set yansi_knl "#kanaladi" ;# bind pubm ile "*" kanal üstünde yazılan her kelime/cümlede harekete geçer bind pubm -|- "*" log ;# bind kmutları eggdrop'a özgüdür Tcl/tk'da da bind komutu vardır ancak bambaşka ;# anlamda-şekilde kullanımı vardır. eggdrop bind'leri eggdrop kaynak kodları içinde ;# kendilerine göre prosedürleriyle tanımlanıp oluşturulmuştur. ;# hemen her bind'in prosedürü kullanım yeri,amacına göre farklıdır. proc yakala_chat {nick uhost hand chan text} { ;# aşağıdaki puthelp kanala postalama satırı sonunda " tırnakta sonra diğer satırı ayıracak bir ayraç ;# olmadan satırları uç uca eklerseniz hata alırsınız.bot kendini killer. ;# ayrıca böyle bir satır sonunda açık ayraç olmaz. ;# herhangi bir şart / koşul gösterip ,eğer bu bu bu şartlar oluşmuşsa { ;# dedikten sonra açık bir ayraç ekler ,şunu şunu şunu yap... ;# açılmış ayraç yapılan işlerin sonunda kapalı bir ayraç eklenerek son bulur. puthelp "privmsg $::yansi_knl :$chan $nick : $text" return 0 } { ;# şartları -koşulları prosedürün başında belirlemilisiniz ki ;# ona göre işlem / sonuç alabilin önce sonuç / çıktı sonra koşulları sıralamak işlemez. ;# bind pubm prosedürleri sonunda return 0 ile bitirp herhangi bir hareket olmadığında ;# kodun pasifize hale getirilmesi gerekir. ;# eğer bot ise boş dön ..işlem yapma/ atla anlamına ;# ancak bind pubm ile bunu kullanmaya gerek var mı? ;# orası tartışılır... if {[isbotnick $nick]} { return 0;} ;# (msg ""} değişkeni bind part'a aittir .. ;# amacı part mesajlarını yakalamak .görmektir. ;# bunu öylece buraya eklerseniz bu değişken/variable hata verir. ;# bind pubm'a ait değildir.eğer ayrıca düşündüğünüz yaptırmak istediğiniz bir durum varsa ;# ayrıca bunu tanımlamanız gerekir.öylece ekleyemezsiniz. if {$msg ne ""} { puthelp "privmsg $::yansi_knl :$chan $nick $uhost $msg" } else { puthelp "privmsg $::yansi_knl :$chan $nick $uhost" return 0 } }


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver