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

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 01 Ekim 2009, 21:42   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Debug




Ders: Debug
Tarih: 01/10/2009 - Perşembe
Yazan: L4roXyL - (Hasan AYDENİZ)
Not: Bu ders bir [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] dökümanıdır. Döküman sahibi L4roXyL-den izin alınarak yayınlanmıştı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:   Kodu kopyalamak için üzerine çift tıklayın!
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:   Kodu kopyalamak için üzerine çift tıklayın!
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:   Kodu kopyalamak için üzerine çift tıklayın!
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ıkla***** %_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
L4roXyL - (Hasan AYDENİZ)


Konu GemLik tarafından (04 Ekim 2009 Saat 14:51 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 04 Ocak 2012, 09:20   #2
Çevrimdışı
AvB
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Debug




çok değerli bir döküman aslında , event kullanmak yerine debugdan gelen sonuçlara göre hareket etmek daha mantıklı ve geniş bir alana hitap etmede kullanılabilir.

 
Alıntı ile Cevapla

Cevapla

Etiketler
debug, mirc, mirc download, mirc indir


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
Debug koruma sahr mIRC Scripting Sorunları 9 02 Mart 2011 11:13
DEV-C++ ile DEBUG toXic C ve C++ 0 10 Şubat 2010 12:43
debug hakkında.. Lord_Raiden mIRC Scripting Sorunları 1 05 Aralık 2008 22:37