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

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 08 Mart 2009, 20:12   #11
Ç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




anladım hocam sanırsam bir tek ben ilgileniyorum burda neyse sora sora ogrenin demiştiniz sorulara devam ediyoruz. Mesela !go die bir komut var. bu komutu yalnızca eggdrop sahibi değilde o kanalda bulunan herkes yazdığında herkese !go komutu tepki versin bunu nasıl mantıkla yurutebiliriz..

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 01 Nisan 2009, 14:55   #12
Ç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




snapcstrike Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
anladım hocam sanırsam bir tek ben ilgileniyorum burda neyse sora sora ogrenin demiştiniz sorulara devam ediyoruz. Mesela !go die bir komut var. bu komutu yalnızca eggdrop sahibi değilde o kanalda bulunan herkes yazdığında herkese !go komutu tepki versin bunu nasıl mantıkla yurutebiliriz..

Yanlış anlamadıysam tcl yazılımlarındaki terimleri burda sorarak öğrenebilirsiniz. !go yazdığım vakit şu şekilde kullanmak istiyorum şekilde sorulara cvp geleceğini pek sanmıyorum.

 
Alıntı ile Cevapla

Alt 01 Nisan 2009, 15:03   #13
Ç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




Uygulamalı örnekle insanları daha çok aydınlatacaktır. Örneğin bota !k !kb nick gibi özellikleri nasıl yaparız.

Botun karşılama mesajı, noticesi vs.. atmasını nasıl sağlarız tcl scripting eğitimi verilecekse ortaya kısa işlevli kodlar dökülüp uygulamalı olarak anlatılıp hangi parametre ve komutun ne iş yaptığını neye karşılık gediğini + / - anlatmak daha iyidir bence.

Sadece bir öneri.

 
Alıntı ile Cevapla

Alt 01 Nisan 2009, 15:03   #14
Ç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 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
İncelediğim bir kaç örnek kodlarda karşıma çıkan foreach append ve lrange kodlarının mantığı ve işlevini öğrenme açısından yardımcı olabilir misiniz?

 
Alıntı ile Cevapla

Alt 01 Nisan 2009, 20:54   #15
Ç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




Sayın hocalarım elimde bir mirc script kodu var bunu tcl'ye çevirebilme imkanımız nedir acaba? ben kısaca kodun ne işe yaradığını belirteyim..

Benim görüşüme göre kod tam anlamı ile botnet v.b. saldırıları kesen bi kod.. örnek vermek gerekirse ;

sunucunuza yapılan bi saldırıda botnet girişlerinde bi kesinti yapmıyor. fakat atılan mesajlara göre bi kesinti söz konusu.. spamı neye göre eklediğini anlamış değilim. fakat benim remotelerimde ekli bu kod , özelime aynı kelime ardı ardına 2 defa yazıldığında o kelimeyi otomatik olarak spama alıyorum.. böyle bi script kodu.. kodu sizlerle paylaşmak istiyorum buyurun birlikte inceleyelim..




[script]
n0=on *:open:?:{
n1= set -u5 %nickw. [ $+ [ $nick ] ] warn
n2=}
n3=alias spch {
n4= if (!$window(@Spams)) window -ne @Spams
n5= spamekle $yildiztemizle($2-)
n6= echo -t @Spams $1 : $yildiztemizle($2-)
n7=}
n8=on *:text:*:?:{
n9= if (!%nickw. [ $+ [ $nick ] ]) { halt }
n10= var %t = 1 , %kelime = $strip($gettok($1-,0,32))
n11= var %cümle = $strip($1-)
n12= if (%kelime == 2) && ($len($strip($1)) >= 5) && ($strip($2) == @) { spch $nick $strip($1-) | halt }
n13= while (%t <= %kelime) {
n14= set %ara $strip($gettok($1-,%t,32))
n15= if ($v1 == 1) && ($right(%ara,1) == @) || ($right(%ara,2) == @h) || ($right(%ara,3) == @hot) { spch $nick %ara | halt }
n16= if (*_* iswm %ara) && ($right(%ara,1) isnum) { spch $nick %ara | halt }
n17= if (*-* iswm %ara) && ($right(%ara,1) isnum) { spch $nick %ara | halt }
n18= if ($right($gettok(%ara,1,64),1) isnum) && (@ isin %ara) { spch $nick %ara | halt }
n19= if (*@* iswm %ara) && ($3) { spch $nick $gettok($strip($1-),$calc(%t - 1),32) %ara $gettok($strip($1-),$calc(%t + 1),32)) | halt }
n20= if (*@h?* iswm %ara) { spch $nick %ara | halt }
n21= if ($right($gettok($strip($1-),$calc(%t - 1),32),1) isnum) && (*h?t* iswm %ara) { spch $nick $gettok($strip($1-),$calc(%t - 1),32) %ara | halt }
n22= inc %t 1
n23= }
n24=}
n25=alias yildiztemizle {
n26= var %y $+(.,?) , %yi
n27= %yi = $replace($1-,$chr(42),%y,$chr(36),%y,$chr(91),%y,$chr(93),%y,$ chr(92),%y,$chr(47),%y,$chr(43),%y,$chr(63),%y,$ch r(94),%y,$chr(124),%y,$chr(40),%y,$chr(41),%y,$chr (164),%y,$chr(33),%y,$chr(123),%y,$chr(125),%y,$ch r(189),%y,$chr(188),%y,$chr(39),%y,$chr(46),%y,$ch r(44),%y,$chr(60),%y,$chr(61),%y,$chr(62),%y,$chr( 34),%y,$chr(199),%y,$chr(221),%y,$chr(58),%y,$chr( 45),%y,$chr(254),%y,$chr(222),%y,$chr(32),%y)
n28= return $iif($len($remove(%yi,.,*)) > 5,%yi,SPAMKONTROLUNDEGECERSIZ aslolan mesaj: $1- )
n29=}
n30=alias spamekle {
n31= spamfilter add cNnpa gzline +7200 4(Clone/Reklam/Spam® $1-
n32=}
n33=alias spamsil {
n34= spamfilter del cNnpa gzline +7200 4(Clone/Reklam/Spam® $1-
n35=}

kolay gelsin.

 
Alıntı ile Cevapla

Alt 02 Nisan 2009, 01:01   #16
Ç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




@snapcstrike

O tarz örneklendirmeleri şu aşamada vermek için henüz erken. Komutların açıklamalarını artırdıktan sonra söylediğin şekilde örnekler verebiliriz, o aşamaya kadar @Siber55'in istediği gibi yardımlar istemen daha doğru olacaktır.

@Snet

Sanırım sen konudaki ilk postu okumamışsın. Seni ilk postu okumaya, yetkili arkadaşları da @Snet'in postunu silmeye davet ediyorum.

@Siber55

Tam olarak istediklerimiz budur. Bu şekilde sorular sorarsanız bizler de gayet zevkle yardımcı olmaya çalışırız. Şimdi sorduğun üç komutu örneklerle açıklamaya çalışalım.

lrange

lrange komutu ingilizce range (dağılım, sıra, hatta biraz daha zorlarsak aralık ve mesafe) kelimesinden gelmektedir. Elimizdeki bir değerin kaç kelimeden kaç ayrı değerden oluştuğunu anlamamıza yarar.

lrange "a b c d e f"
değeri 5 olarak dönecektir.

lrange "0 1 2 3 25 125 8"
değeri 7 olarak dönecektir.

lrange "{1 2 3} {8 9} 2 a {x y}"
değeri 5 olarak dönecektir. içerisindeki süslü parantezlerin herbirini birer kümecik ve tek bir eleman olarak sayar. Bu örneği biraz daha geliştirelim.

lindex bir komutumuz daha vardır. Elimizdeki verilen belirtilen nolu değerini görmemize yarar. İlk değer 0'dan başlar (bu çok önemli!). Örnek verelim:

lindex "a b c d e" 0
verilen "a b c d e" değerinin 0 nolu elamanını kasdeder ve o da a'dır.

lindex "ahmet mehmet hasan hüseyin" 2
Bu değerin 2 nolu elemanını kasdeder ve o da hasan'dır.

Şimdi lindex ve lrange komutlarını iç içe kullanalım..

lrange [lindex "{1 2 3} {8 9} s a {x y}" 0]
ilk önce iç kısıma bakarız. lindex ile bize gelen değer içerideki dizinin 0 numaralı elamanı olan {1 2 3} değeridir. Daha sonra ise bu değerin dağılımını lrange komutuyla soruyoruz. O da bize 3 cevabı olarka dönecektir.

lrange'in mantığı budur. Örnekler çoğaltılabilir. Her zaman söylediğim gibi botunuza konsoldan bağlanarak bu örnekleri kendiniz yapınız ve cevaplarını görünüz. Böylece daha kalıcı olacaktır. Peki nasıl yaparsınız bunu?
Bota konsoldan bağlantıktan sonra komutların başına .tcl yazarak geri kalanını yazmanız yeterli olacaktır. Örnek:

.tcl lrange "ab cd ef gh"
gibi..

Şimdi gelelim append komutuna..

append

append komutu set, var, incr gibi komutlarıda olduğu gibi elimizdeki değişkene değerler atamaya yarayan daha farklı bir işlevi olan bir komuttur.

set x a
ile $x değişkeninin değerini a olarak atadık.

append x b
burada ise $x değişkenine b değerini arasına boşluk bırakmadan ekledik. Yani $x değişkenin değeri artık ab'dir.

append x c
artık $x değişkeni abc haline gelmiştir.

append x 1
$x değişkeni abc1 haline gelmiştir.

Arasına boşluk bırakmak istersek ne yapmamız lazım?

append x " m"
Şeklinde yazdığımızda m'den önce bir de boşluk bıraktığımız için artık $x değişkeninin değeri "abc1 m" şeklini almıştır. İşte burada append komutuna çok benzeyen ve lappend olarak adlandırılan farklı bir komut bu işlevi görür. Eklenen değerler arasına kendisi boşluk koyar. Örnek verelim:

set x a
$x
değerini a olarak belirledik.

lappend x b
$x değişkeni artık "a b" halini aldı.

lappend x c
$x değişkeni "a b c" değerini aldı.

Şimdi bir diğer komut olan foreach komutuna geçelim.

foreach

foreach komutu loop (döngü) olarak kullandığımız komutlardan birisidir. Yukarıda bahsettiğimiz diğer komutlara nazaran biraz daha karışık bir komuttur. Tarifini ise, "eldeki verinin her bir elemanını döngü her gerçekleştiğinde belirtilen değişkene atar" şeklinde yapabiliriz. Eldeki verilerin her biri sırasıyla atandığında döngü kendiliğinden sonlanır. Eğer bitmeden herhangi bir anda sonlandırmak istiyorsak break, belirli bir değere geldiğinde o değeri atlayıp başa dönüp bir sonraki değerden devam etmesini istiyorsan continue komutlarını kullanırız. Bu iki komutu daha sonra başka konularda ayrıca açıklayacağım. Örneklendirdiğimiz zaman biraz daha iyi anlaşılabilir.

foreach x "a b c d e" { putlog "Şuan x değeri : $x " }
Toplam 5 eleman var. Döngü 5 kere başa dönecektir. $x değeri her defasından bir sonraki değeri alacaktır. Bize cevaplar şu şekilde dönecektir.
Şuan x değeri : a
Şuan x değeri : b
Şuan x değeri : c
Şuan x değeri : d
Şuan x değeri : e


Bunun en basit anlatımı budur. Örnekleri kendiniz konsoldan denerseniz daha iyi anlamanıza yardımcı olacaktır.

foreach komutuyla aynı anda birden çok değere de atama yapılabilir. Örnek verelim:

foreach {x y z} "a b c" { putlog "$x - $y - $z" }
Burada ise "a b c" değerlerini bir kerede sırasıyla $x $y ve $z değişkenlerine atadık. Böyle bir sorguda bize cevap a - b - c olarak dönecektir.

foreach ile ilgili örnekleri çoğaltıp kafanızı karıştırmak istemiyorum. Şimdilik genel mantığını bilmeniz yeterli olacaktır. Örnekleri kendiniz çoğaltırsanız daha iyi anlayacaksınız.

Kolay gelsin.

 
Alıntı ile Cevapla

Alt 02 Nisan 2009, 12:20   #17
Ç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




Kusura bakmayın hocam olaya hızlı giriş yaptım sanırım..
Unutmuşum emeklemeden yürümeye çalışmamak lazım.

Üzgünüm..

 
Alıntı ile Cevapla

Alt 04 Nisan 2009, 23:14   #18
Ç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




Ben Mirc scripting meraklisiyim daha onu ogrenmeye calisiyorum. tcl scripting'e cok yabanciyim yanliz merak ettigim birsey var. Onu bu baslik altinda sorayim dedim..
mirc scriptin'e gore dahami zor tcl scripting sormamin nedeni su basit trivia botlari ele alalim mirc scriptingde mckrueger'in botuna bakin birde merliny in baloncuklu botuna bakin ikisinin arasinda daglar kadar fark var yani tcl olarak neden bu gune kadar boyle osellikli gelismis bir bot yapilmadi trivia 6.0 in birebir tcl karsiligi kodlanabilirmi? tskrler

 
Alıntı ile Cevapla

Alt 10 Nisan 2009, 22:06   #19
Ç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




Daha zor ya da daha kolay diye bir kıyaslama yapmayalım çünkü bu kişiye göre değişebilir. Ama TCL scriptingde kullanılabilecek daha fazla arguman olduğunu söyleyebilirim.

Eggdrop olarak TCL tabanlı bir çok trivia çeşidi mevcuttur. Hatta TCL tabanlı triviaların mIRC tabanlı olanlardan fazlası vardır eksiği yoktur. Mevcut TCL tabanlı triviaları deneyerek hoşuna gideni kullanabilirsin. Şuana kadar biz Türklerden bir Trivia botu yazan olmadı. Bunun bir nedeni oldukça zahmetli ve zorlu olması diğer bir nedeni ise zaten piyasada bir çok örneği var, olan bir şeyi de ve bu denli zahmetli birşeyi baştan yazmanın bi alemi yok. Tekrardan bu konunun script istekleri için değil, TCL komut yardımı için olduğunu hatırlatmak istiyorum.

Bu konu sanırım bir buçuk aydır açık. Ama ilginin ne kadar az olduğunu görüyorsunuz sanırım. İşte biz genel olarak hazırcı bir toplum olduğumuz için çok az üretiyor ama çok fazla tüketiyoruz. Konu eleştirmeye gelince de hepimiz "neden bizde böyle birşey yapılmıyor?" "neden bu kadar güzel çalışmaları bizde yapan yok?" gibi dert yakınıyoruz. İşte sebebi budur... Öğretici ve emek harcanması gereken bir konu olunca ona ilgi olmuyor. Ama hep örneğini verdiğim gibi; iki satır soru dosyası editleyip buyrun falanca soru botu deseydik ne kadar ilgi olurdu görürdük. Burada birşeyleri anlatmanın bize herhangi bir faydası yok, ya da bundan herhangi bir çıkarımız yok, sizler için emek harcıyoruz ama farkında olan da ne yazık ki çok çok az
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

Alt 14 Nisan 2009, 20:20   #20
Ç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




Ben Bu Kanal Muafın Mantıgını Çözemedım Bu Botlara Nasıl Sağliyoruz En Azından Bı Mantıgını Ogrenseydık Komutlara Bulmayı Calısırdık

 
Alıntı ile Cevapla

Cevapla

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


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

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