08 Mart 2009, 20:12 | #11 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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.. |
|
01 Nisan 2009, 14:55 | #12 | ||||
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Cevap: TCL scripting öğrenmek istiyorum
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. | ||||
|
01 Nisan 2009, 15:03 | #13 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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. |
|
01 Nisan 2009, 15:03 | #14 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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? |
|
01 Nisan 2009, 20:54 | #15 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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. |
|
02 Nisan 2009, 01:01 | #16 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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. |
|
04 Nisan 2009, 23:14 | #18 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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 |
|
10 Nisan 2009, 22:06 | #19 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | 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. |
|
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 |