Bir önceki mesajımda da analttığım gibi bu tarz işlemlerde
bind kullanırız.
Yani "özele bir şey yazıldığında" "kanala bir şey yazıldığında" şeklinde düşünememiz lazım.
Özele gelen yazılar için iki ayrı bind'ımız mevcuttur:
bind msg ve
bind msgm
Kanaldaki yazıların için ise
bind pub ve
bind pubm kullanıyoruz. Bunların mIRC scripttingdeki eventlerle aynı mantıkta olduğunu daha önce söylemiştim zaten. mIRC scriptingde kullandığımız
on text eventi gibi düşünebilirsiniz.
Şimdi bunları kısaca açıklayayım.
bind msg <flaglar> <komut> <proceadı>
Burada belirlediğimiz procedure ise:
proceadı <nick> <user@host> <hand> <arg>
formatında olmalıdır. Yani dört ayrı veri geliyor bize. Gelen verilerden ilki nick, ikincisi user@host üçüncüsü handle ve dördüncüsü argument yani yazının kendisi.
birde
bind msgm <flaglar> <maske> <proceadı>
şeklinde kullanımı mevcuttur. buradaki procedure ise şu şekilde tanımlanmalıdır:
proceadı <nick> <user@host> <hand> <arg>
bir üstteki ile aynı. Peki farkları nelerdir?
bind msgm kullanarak maskede belirlediğimiz kelime gelen yazının neresinde geçerse geçsin bu bind devreye girecektir. bind msg ile belirlediğimiz maskeye uyuşan kelime ise gelen yazıdaki ilk kelime olmak zorundadır.
Kanal genelindeki yazılar için kullandığımız bind pub ve bind pubm da aynı mantıkta olduğu için bunları uzun uzun açıklamayacağım. Sadece genel şablonunu göstereceğim.
bind pub <flaglar> <komut> <proceadı>
procadı <nick> <user@host> <hand> <kanal> <arg>
ve
bind pubm <flaglar> <komut> <proceadı>
procadı <nick> <user@host> <hand> <kanal> <arg>
Şeklinde kullanımları mevcuttur.
Şimdi örneklendirme yapacağım bir kaç tane.. Böylece daha anlaşılır olacaktır.
Mesela birisi özele SaW yazdığında komut devreye girsin. Yazan kişinin botta herhangi bir yetkisi olmasına gerek yok (bunu flaglar açısından söylüyorum) Ama SaW kelimesi eğer cümlede ilk sırada yer alıyorsa..
Bu durumda bind msg kullanmamız gerekiyor.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
bind msg - SaW procsaw
procsaw { nick uhost hand arg } {
putlog "Nick: $nick uhost : $uhost hand : $hand arg : $arg"
}
Burada söylediğimiz şudur.. Eğer özelimize ilk kelimesi SaW olan bir şey yazıldığında konsola gelen verileri yaz.. (bunları tcl scriptinizde deneyip sonuçları konsoldan görerek kendiniz de deneyin
kesinlikle çok daha öğretici olacaktır)
Şimdi başka bir örnekle de kanal mesajını gösterelim
Kod: Kodu kopyalamak için üzerine çift tıklayın!
bind pub - !Nbl procnbl
procnbl {nick uhost hand chan arg} {
putserv "privmsg $chan :$nick !Nbl komutunu kullandı. Yazdığı mesaj : $arg"
}
Bunlar bir kaç basit örnek.. Bot, bind uyarıldıktan sonra procedure içerisinde ne belirlediysek o işlemlerin tümünü uygulayacaktır.
Bir anda hepsini öğrenmeyi beklemeyin ama dediğim gibi eğer bu örnekleri kendiniz dener ve sonuçlarını konsoldan takip edersiniz çok kısa sürede sizler de birşeyler yapmaya başlayabilirsiniz.