mIRC Scripting  


Geri dön   mIRC Scripting > mIRC Scripting > Tutorials - Dersler

Tutorials - Dersler mIRC Scripting hakkında yazılmış özel dersleri bulup, paylaşabileceğiniz bölüm.

Cevapla
 
LinkBack Seçenekler
  #1  
Alt 01 Ekim 2009, 21:13
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 32
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart Debug.

Ders: Debug
Tarih: 01/10/2009 - Perşembe
Yazan: L4roXyL - (Hasan AYDENİZ)
Not: Bu ders bir www.mIRCScripting.net dökümanıdır.

-

Evet arkadaşlar bu dersimizde mIRC-de varolan /debug komutunu ve getirilerini ele alacağız.
Ben debug konusunu kendimce "alternatif scripting" diye adlandırıyorum. Çünki neredeyse event(on olay?) kullanmadan bir script dahi yazabilirsiniz.
mIRC-de çok önceki sürümlerden beri varolmasına rağmen, pek kimsenin bilmediği ve kullanmadığı bir konudur.
Ki zaten mIRC Help dosyasını hazırlayan "Kjerk" bu kadar önemli bir konunun üzerinde neden kısaca durmuş orasıda bir mechul.
Socket ile aldığımız verileri bilirsiniz. HAM/İŞLENMEMİŞ veri şeklinde gelir tüm veriler. Biz /tokenize komutu ile gelen veriyi parçalar ona göre işlev yaparız.
Debug -da hemen hemen aynı şekildedir. Online olarak yaptığınız veya yapılan tüm işlevleri debug ile görebilir ve gördüğünüz verilere işlev yapabilirsiniz.
Ve hatta bu verileri belirlediğiniz dosyaya otomatik depolayabilirsiniz.

-

Daha fazla uzatmadan artık konumuza başlayalım.
mIRC Help dosyasında debug komutu aşağıdaki gibidir.
Komut: /debug [-cinpt] [N] [on | off | @window | filename] [identifier]
En basitinden bir debug penceresi açmak için: /debug @deneme

-

Parametreler:
-n: Pencereyi minimize konumundan açmak için kullanılır.
Örnek: /debug -n @deneme

-c: Debug ile gelen verileri durdurma işleminde(off) bu anahtarı kullanırsanız, gelen verilerin açılmış olduğu pencerede kapatılır.
Örnek: /debug -c off

-t: Gelen verilerin başında timestamp(zaman) gösterilir. Yani -t komutu ile bir debug getirisi açarsanız, gelen her verinin başında verinin geldiği zamanı $timestamp tanımının döneceği şekilde görebilirsiniz.
Örnek: /debug -t @deneme

-i: İŞTE debug-la gelen verileri işleyebilmemizin yolu bu anahtardan geçer. Bu anahtar ile gelen verileri belirlediğimiz "alias" -a çağırabiliyoruz. Yani bir nevi belirlediğimiz alias artık debug verilerini algılıyor ve yansıtabiliyor-da.
Örnek: /debug -i on d_alias
Not: Buradaki d_alias ismine takılmayın. İstediğiniz bir isim belirleyebilirsiniz.

-

Debug identifier: $debug
Açıklaması: Bu identifier/tanım debug verilerinin yansıtıldığı pencerenin veya alias -ın ismini verir.
Örnek: //echo -: $debug
-
Debug mIRC help dosyasında anlatıldığı gibi aslında bu verdiğim bilgilerden ibaret gibi gözüksede, gelen verileri "işlemek istediğiniz" an farklı bir boyuta geçiş yaparsınız.

-

Debug ile alternatif scripting - Verileri işleme

Debug ile gelen verilerin başında her zaman için; "<-" karakteri vardır.
Giden veriler(sizin tarafınızda gönderilen veri veya isteklerin başında) ise; "->" karakteri vardır.
-
İlk öncelikle debug-ın algıladığı verileri işlemek için belirlediğiniz bir "alias" -a debug-ı çağırmalısınız.
Şöyleki: /debug -i on d_alias
Alacağımız yanıt: * Debug output on (d_alias)
Türkçesi: Debug çıkışı d_alias üzerine açıldı.

Sanırım buraya kadar anlaşılmayan birşey yok.
Belirlediğimiz alias üzerine debug verisini çağırdığımızı anlamanın yolu, tabiki belirlediğimiz isimdeki(çağırdımız isimdeki) alias-ı oluşturmaktan geçer.
Örnek:

Kod:
alias d_alias echo $1-
Artık d_alias ismindeki aliasımızın verileri algılayabildiğini görüyoruz.
Bundan sonraki yapmamız işlev aynen socket mantığında oldığu gibi gelen verileri parçalamaktan geçer.
Çünki şu konumda, $1- yerine $1 de yapmış olsak veriler HAM ve AYIKLANMAMIŞ olduğu için yine TAM olarak gelecektir.
Gelen verileri belirlediğimiz biçimde ayıklamaya/parçalamaya ayırmanın yolu /tokenize komutundan geçer.
Örnek:

Kod:
alias d_alias {
 tokenize 32 $1-
 echo $1
}
Burada yaptığımız işlev; 32(white-space/boşluk) karakterini parçalayan veri olarak belirliyoruz.
Yani bildiğiniz $1 (1. kelime) $2 (2. kelime) vs. bu şekilde konumlandırıyoruz. Artık $1 yanıtı sadece 1. kelimeyi verecektir.
Kısacası aynen socket-de yaptığımız işlev gibi.
NOT: Yukarıda söylediğim gibi veri şeklini tespit etmek için her zaman "$1" tanımını kullanmalısınız. Çünki $1 tanımı sadece "<- veya ->" şeklinde dönecektir.
Sizde bu bilgiden yola çıkarak sizin tarafınızdan gönderilen verileri ve online şekilde gelen verileri ayırt edebilirsiniz.

Sanırım buraya kadar anlaşılmayan birşey yok.
Debug scripting diye adlandırdığım şey bundan ibarettir. Tabiki sizin isteklerinize ve hayal gücünüze göre geliştirmenize kalmış.

-

Neden debug scripting?

Debug sunucu üzerinden gelen veya gönderilen, kısacası yapılan her işlevi ÇOK HIZLI BİR BİÇİMDE algılar.
Ve siz debug-a gelen verileri işleyerek kod yazmak istediğinizde size sonuçları hatasız/kusursuz verir.
Debug-ın EN BÜYÜK ÖZELLİĞİ normal scripting-den çok çok daha HIZLI çalışmasıdır. Yani yabancı olmadığınız socket gibi.
Debug kullanarak normalinden çok daha hızlı kodlar ve işlevler yazabilir/yapabilirsiniz.
Ve buna ek olarak socket-de kullanamadığınız local olmayan bir çok $identifier/tanımı kullanabilirsiniz.(hemen hemen hepsi)
-
UNUTMAYIN: Açtığınız her bir event(on olay) veya oluşturduğunuz her bir "alias" belirli bir miktarda RAM-da yer kaplar.

-

Debug ile neler yapılabilir?

i) Neredeyse event(on olay) kullanmadan script yazabilirsiniz.
ii) Normalinden çok çok daha HIZLI kodlar veya uzun işlevli korumalar yazabilirsiniz.
iii) Sunucunuz için çok daha HIZLI (hemen hemen socket kadar) koruma botu veya farklı işlevler gören botlar yazabilirsiniz.

-

Ek bilgiler:
Debug verimini kapatmak için: /debug off
Debug verimini herhangi bir dosyaya kayıt etmek için: /debug dosya-adı.uzantısı
Debug verisini belirlediğiniz pencereye belirlediğiniz renk-de yansıtmak için: /debug [renk kodu] @pencere

-

Dersimiz burada sona ermiştir.
Daha iyi anlamanız için basit bir küfür koruması yazacağım.(kelimeler dosya.txt dosyasından okutulacak)

-

Kod:
alias d_alias {
  ;alias-a gelen verileri tokenize ile parçalıyoruz.
  tokenize 32 $1- 
  ;eğer 1. kelime <- ise(yani bize DIŞARIDAN gelen veri ise) ve(&&) 3. kelime PRIVSMG ise
  if ($1 = <- && $3 = PRIVMSG) {
    ;4. kelime bulunduğumuz herhangi bir kanal ise
    if ($4 ischan) {
      ;%_n değişkenine kanala yazı yazan nick-i ata(tabi ayıklama işlemini yaparak), %_t değişkenine ise kanala gönderilen mesajı ata
      ;burada $2 yani 2. kelime :Nick!ident@host olarak döner. biz burada sadece nick-i ayıklayarak %_n değişkenine atıyoruz.
      ;son olarak %1 değişkenine 1 değeri veriyoruz.
      var %_n = $right($token($2,1,33),-1),%_t = $right($5-,-1),%1 = 1
      ;while ile dosya.txt dosyasındaki satırları işliyoruz
      while ($read(dosya.txt,%1)) {
        ;eğer %_t değişkeni yani kanala gelen text içerisinde dosya.txt dosyasındaki kelimelerden herhangi birisi varsa
        ;ve(&&) $4 4. kelime(kanal oluyor) kanalında ben @, %, &, ~ prefixlerinden herhangi birisine SAHİBSEM
        if ($regex(%_t,/ $+ $v1 $+ /i) && $regex($nick($4,$me).pnick,[@&~%])) { 
          ;algılanan kanaldan($4) belirtilen nick-i(%_n) banla.
          ban -k $4 %_n 2 sebeb.
          ;while döngüsünü sonlandır.
          break 
        }
        inc %1 
      }
    }
  }
}
Kodu denemek için ilk öncelikle: /debug -i on d_alias

-

Umarım artık alternatif kodlar yazmaya başlarsınız.
Saygılarımla.

-

L4roXyL - (Hasan AYDENİZ)
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
Sponsored Links
  #2  
Alt 01 Ekim 2009, 21:19
Avatar Yok

mS Puan: 31
mS Derece: WeiLSiDe
 
Üyelik tarihi: 10 Temmuz 2009
Mesajlar: 119
Konular: 24
Eklentiler: 0
Alınan Teşekkür: 1
Yapılan Teşekkür: 0
Standart

Eline sağlık Hasan.
__________________
The end of Something...

Konu WeiLSiDe tarafından (01 Ekim 2009 Saat 21:58 ) değiştirilmiştir.
Alıntı ile Cevapla
  #3  
Alt 01 Ekim 2009, 23:35
CoCoRiCo - ait Kullanıcı Resmi (Avatar)
 Chief 

mS Puan: 571
mS Derece: CoCoRiCo ÇalışkanCoCoRiCo ÇalışkanCoCoRiCo ÇalışkanCoCoRiCo ÇalışkanCoCoRiCo ÇalışkanCoCoRiCo Çalışkan
 
Üyelik tarihi: 10 Temmuz 2009
Bulunduğu yer: \xml:http\
Yaş: 41
Mesajlar: 135
Konular: 22
Eklentiler: 0
Alınan Teşekkür: 85
Yapılan Teşekkür: 19
Standart

Bunu fark etmeleri için bişiler yapmak lazımdı güzel bi tutorial ellerine saglık hasancım.
__________________
3m2t
//alias $str($+(alias,$chr(32)),4) | alias

Konu CoCoRiCo tarafından (01 Ekim 2009 Saat 23:57 ) değiştirilmiştir.
Alıntı ile Cevapla
Cevapla

Etiketler
debug

Seçenekler

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 Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Debug Scripting CoCoRiCo Snippets - Parça kodlar 1 11 Temmuz 2009 17:55


Yasal Uyarı

    5651 sayılı yasada belirtilen "Yer Sağlayıcı" olarak hizmet sunmaktadır. İlgili yasaya göre site yönetiminin tüm içerikleri kontrol etme yükümlülüğü yoktur. Bu sebep ile sitemiz, uyarıları dikkate alarak yasa dışı paylaşımlar hakkında gerekli işlemleri yapmaktadır. Oluşabilecek yasal sorumluluklar üyelerimize aittir. Gerekli şikayet bildirimleri yapabilmek için "burayı" tıklayarak gerekli alanları doldurup yapabilirsiniz.
mIRCScripting©
Powered by vBulletin®
Copyright © 2000-2015, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76