22 Şubat 2009, 21:47 | #1 | |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | TCL scripting öğrenmek istiyorum TCL scripting öğrenmek isteyen arkadaşlara bu başlık altında yardımcı olmaya çalışacağım. Çok ilgi çekecek bir konu olmadığını biliyorum, ancak iyi niyetle bu işi öğrenmek isteyen ama bir türlü kaynak bulamayan arkadaşlara takıldıkları yerlerde bu başlık altında elimizden geldiğince cevap vereceğiz. Bazı kurallarımız var: ◘ Bu başlık insanlara sadece komut bazında yardımcı olmak içindir. ◘ Herhangi bir kod yada script isteğine bu başlık altında cevap verilmeyecektir. ◘ Elinizdeki başka scriptlerle ilgili bu başlık altında yardımcı olunmayacaktır. ◘ Elinizdeki herhangi bir mIRC kodunu TCL scriptinge dönüştürme sorularınız yanıtsız kalacaktır. ◘ Mevcut botlarınızın karşılaştığı hatalarla ilgili bu başlık altında yardımcı olunmayacaktır. Bu gibi sorunlarınız için başka konular açınız ya da başka başlıklar altında yardım isteyiniz. Her scripting dilinde olduğu gibi TCL scriptingte de o scriptinge özel komutlar vardır. Eğitim adı altında bir başlık açıp tek tek komutları açıklamaktansa insanların sorduklarını açıklamak daha mantıklı geldi bana. Siz de merak ettiğiniz komutları burada sorabilir ve bizden elimizden geldiğince cevap alabilirsiniz. Bu başlık altındaki sorular nasıl olmalı? Örnek: • lindex komutunu anlatabilir misiniz? • TCL scriptingde regexp kullanımını açıklarmısınız? • bind pub bind'ını açıklayabilir misiniz? • Nasıl yeni bir komut oluştururum? Gibi tamamen öğrenme amaçlı sorular sorabilir ve cevaplarını alabilirsiniz. | |
|
23 Şubat 2009, 04:29 | #2 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum TCL Scripting'i genel olarak özetleyen bir ders yazarsan sıfırdan başlayanlar içinde bir kaynak olur. Ben mesela mIRC Scripting biliyorum TCL Scripting hakkında pek bir bilgim yok. Buna benzer yönleri özellikleri TCL Scripting'n artıları eksileri. Yüzeysel olarak bir bilgilendirme iyi olur. Sonuçta soru sorarken bile bilmek gerekiyor bilmeden soru sormak zor.. |
|
23 Şubat 2009, 07:30 | #3 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum Soru da bilgiden doğar cevap da.. Bunda haklısın, ancak biz sorular sizden gelsin istiyoruz, genel olarak özetlemek diye bir şey yokki, her komut ayrı yerlerde kullanılır ve herbiri en az diğerleri kadar önemlidir. Zaten sizler tek komut sorsanız bile onu açıklarken örneklerde başka komutlarda kullanacığımız için onları da açıklamak durumunda olacağız.. mIRC scripting bilmek tcl öğrenmeyi kolaylaştırır. Sadece mIRC değil herhangi bir programlama dilini bilen bir başka programlama dilini daha rahat öğrenir. Çünkü algoritması gelişmiştir. Kodlama olayında işin temeli algoritmadır. Yeri gelmişken bu mesajda algoritma nedir onu açıklayalım.. Algroritma en basit tabiriyle "türkçe düşünmektir" diyebiliriz. Tabi bu bizim için geçerli Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Bir kod yazacağınız zaman onun planlamasını kafanızda kurmanız demektir. Bir başlangıç noktasından yola çıkılıp adım adım gidilir ve sonuca ulaşılır. Bir kaç örnekle açıklayalım. Örneğin yemek yapacağız. Yemek yapılacağı zaman ilk başta neler lazım diye düşünülür. Mesela yumurta pişireceksiniz. - yumurta lazım, yağ lazım, tuz lazım, tava lazım, ocak lazım. Sonra nasıl pişireceğinizi düşünürsünüz - tavayı ocağa koy - yağı koy - biraz ısınmasını bekle - yumurtayı kırıp karıştır - tuzunu ekle - pişir Ve sonuca ulaştık.. İşte algoritma bu kadar basit birşeydir.. Her kod yazılırken de bunları düşünürsünüz.. Neler lazım? Nereden yola çıkmalıyım? Nasıl ilerlemeliyim? Bu esnada ne gibi terslikler ya da hatalarla karşılaşabilirim? Zaten kullanılan komutların hepsinin kullanılışını yüzde yüz aklınızda tutmanıza gerek yok. Sadece nerede ne lazım onu bilmeniz yeterli; kullanılışı için açarsınız bir yerden bakarsınız.. İşte nerede ne lazım onu bilmek için de birazcık komutlara aşinalığınız olmalı.. Aslında anlatmaya başlayınca açıldım devam edebilirim ama soru gelsin istiyoruz Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
|
23 Şubat 2009, 13:41 | #4 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum oncelikle boyle bir yardımda bulundugun için tesskur ederim. Ben yeni yeni ogrendım eggdrop ve tcl scriptleri. ve cok meraklıyım bu iş için 4 gozle cvplarını bekliyicem. tcl bilgim sıfır denecek şekilde. Mesela komut olarak kanalda yazınca tepki versin cevabı kanala versin yazdıgım şey !yardim deyince ozelden deilde ortak kanala yazılınca cvp versin ortak kanala bunun hakkında bilgi almak istiorum tekrar tesskurler |
|
23 Şubat 2009, 16:45 | #5 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum konu eggdrop konusunda önemli olduğu için [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] tşk ederim ve konuyu sabitliyorum herkesin yararlanması için |
|
23 Şubat 2009, 17:41 | #6 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum Çok Güzel bir düşünce bir çok arkadaşın düşündüğü mirc scripting dersleri var da TCL scripting dersleri neden yok şeklinde idi. iLk oLarak nacizane isteğimi belirtmek istiyorum. TCL scripting de regexp kullanımını ve bind pub bind msgm bind'ının bildiğiniz farklı türde kullanılanları da mevcut ise açıklayabilir misiniz? Bu konudaki iLgi ve aLakanız için ayrıca tşk ederim. |
|
23 Şubat 2009, 18:41 | #7 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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. |
|
26 Şubat 2009, 16:52 | #8 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum irc le ilgilenen herkes TCL yi bir irc scripting olarak biliyor oysa TCL bambaşkadır. Eggdrop daemonu ile TCL scripting işletilir. TCL ile herşeyi yapabilirsiniz. Örneğin-> Amsn. |
|
04 Mart 2009, 22:20 | #9 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum merhaba nebiliyim ben mesela ben !add komutu ekliyicem bu komutu ekledikten sonra ona emir vermek için hangi komutları yazıcam mantık nedir onları yonlendirmenin mesela ben !add komutunu kanalda deilde botun ozeline yazıldıgında calısmasını istiyorum bunları saglayan mantık komut nedir acıklarmısın ? |
|
05 Mart 2009, 02:14 | #10 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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!
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!
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. |
|
Etiketler |
istiyorum, ogrenmek, scripting, tcl, öğrenmek |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Scripting Hakkında | Lord_Raiden | mIRC Scripting Sorunları | 1 | 22 Ekim 2008 02:41 |
mIRC Scripting | By_GuRbey | mIRC Scripting Sorunları | 3 | 01 Ağustos 2008 18:57 |
Scripting | laglagorg | mIRC Scripting Sorunları | 1 | 17 Aralık 2007 03:50 |
mIRC Scripting Öğrenmek İstoyorum... | DoStNaMe | mIRC Scripting Sorunları | 19 | 27 Şubat 2006 13:50 |