Cevap: TCL scripting öğrenmek istiyorum
O halde bind'lardan anlatıma başlayalım..
Bindları mIRC scripttingde bildiğimiz eventlere benzetebiliriz. proclar (procedure) ise programlama dillerinde sıklıkla kullandığımız fonksiyonlar gibidir. Bir komutu proc içerisinde tarif ederiz. Komutun ne olduğunu ve ne gibi işlemler yapacağını proc içerisinde belirtiriz.
proc ile komut belirlenirken genel olarak şu şemayı kullanırız: proc proacadı {kullanacağımız argumanlar} { procun yapacağı işlemler } proacadı : bunu tamamen kendimiz belirliyoruz, bunu belirlerken dikkat etmemiz gereken husus komut neyle ilgiliyse onla ilgili bir isim vermektir. Bu kural değil teammüldür. Genel olarak ise ilk harfi büyük yapılır, birden çok kelimeden oluşuyorsa diğer kelimelerinde ilk harfleri büyük yapılır. BuBenimIlkKomutum gibi.. Bu da yine kural değil teammüldür. Belirleyeceğiniz komut adı türkçe karakter içermemelidir. 1 2 3 4 gibi rakam adlarını tek başlarına proca veremezsiniz. ama Komutum2 gibi verebilirsiniz. kullanacağımız argumanlar : procu çağırırken onun içerisinde kullanabilecek bir takım veriler ile çağırırız. Kaç tane olacağını, olup olmayacağını komutu oluştururken biz belirliyoruz. Mesela oraya üç tane değer atadık, { isim yas cinsiyet } gibi.. Daha sonra bu procu çağırdığımızda üç veriyle çağırmak durumundayız. proc BenimKomutum { isim yas cinsiyet } { ... } şeklinde belirlediğimiz komutumuzu daha sonra başka yerde kullanırken üç ayrı veriyle kullanmamız lazım.. Daha az ya da daha fazla veriyle kullandığımızda hata verecektir. [BenimKomutum ahmet 18 erkek]
şeklinde çağırabiliriz.. Burada ahmet = isim, yas = 18, cinsiyet = erkek değerlerine karşılık gelecek ve komut içerisinde $isim değişkenini kullandığımızda ahmet verisini ifade edecektir. (Anlatıma değişkenlerden başlamak belki daha iyi olurdu ama belki bir sonraki onla ilgili olursa onu da anlatırız)
Genel olarak bir procun tarifi ve kullanımı bu şekildedir. İleride başka sorularda daha detaylı anlatırız böylece daha iyi öğrenmiş olursunuz..
procun ne demek olduğunu öğrendiğimize göre şimdi bind'lardan bahsedebiliriz.
bindı en özet tarifiyle "Belirtilen olay gerçekleştiğinde" diye ifade edebiliriz. Genel kullanımı:
bind <olay> <falglar> <maske> <procadı> Eggdropta belirlenmiş mevcut olayların bazıları şunlardır: ACT PUB PUBM MSG MSGM TIME DCC CTCP CTCR EVNT JOIN MODE NICK NOTE PART RAW
diye devam eder.. Bu bindlar eggdropun içerisindeki modullerde belirlenmektedir. O yüzden her bir olay sonucunda kaç ayrı veri geleceği bellidir. Örnek olarak BIND MODE ile <nick> <user@host> <handle> <channel> <mode-change> <target> olmak üzere 6 ayrı veri gelir. (Bu veriler sunucudan gelen verilerdir)
Şu durumda BIND MODE kullanıyorsak eğer bu bind ile çağıracağımız procta 6 ayrı veri belirlenmiş olmalıdır.
bind mode - * BenimKomutum
Bu şekilde "BenimKomutum procunu mode olayı gerçekleştiğinde - flagına uyanlar arasında (herkes) * (herhangibir) mode değişikliği gerçekleştiyse çağır" demek istiyoruz..
proc BenimKomutum {nick uhost hand chan mode target} { ... }
Şeklinde komutumuzu belirlemek zorundayız.
Her bindı uzun uzun açıklamaktansa böyle genel açıklamasını yapmak mesajın okunabilirliği açısından daha iyi olacağı kanısındayım. İleriki mesajlarda her birinin içeriğine zaten ayrı ayrı girilir.
Konuyla ilgili anlaşılmayan yerler varsa mutlaka sorunuz. |