IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 22 Şubat 2009, 21:47   #1
Çevrimdışı
SaW
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
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.



 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 23 Şubat 2009, 04:29   #2
Çevrimdışı
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




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..


 
Alıntı ile Cevapla

Alt 23 Şubat 2009, 07:30   #3
Ç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




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.

 
Alıntı ile Cevapla

Alt 23 Şubat 2009, 13:41   #4
Çevrimdışı
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




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

 
Alıntı ile Cevapla

Alt 23 Şubat 2009, 16:45   #5
Çevrimdışı
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




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

 
Alıntı ile Cevapla

Alt 23 Şubat 2009, 17:41   #6
Çevrimdışı
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




Ç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.

 
Alıntı ile Cevapla

Alt 23 Şubat 2009, 18:41   #7
Ç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




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.

 
Alıntı ile Cevapla

Alt 26 Şubat 2009, 16:52   #8
Çevrimdışı
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




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.

 
Alıntı ile Cevapla

Alt 04 Mart 2009, 22:20   #9
Çevrimdışı
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




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 ?

 
Alıntı ile Cevapla

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

Cevapla

Etiketler
istiyorum, ogrenmek, scripting, tcl, öğrenmek


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Scripting laglagorg mIRC Scripting Sorunları 1 17 Aralık 2007 03:50
TCL Scripting'den anlayan? bLackStar Eggdrop, NeoStats, BNC 10 11 Nisan 2006 21:58
mIRC Scripting Öğrenmek İstoyorum... DoStNaMe mIRC Scripting Sorunları 19 27 Şubat 2006 13:50