Tekil Mesaj gösterimi
Alt 05 Mart 2009, 02:14   #10
Çevrimdışı
SaW
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: TCL scripting öğrenmek istiyorum




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.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklamver bizimmekan