Ders: Debug - Webmaster - Teknoloji Forumları
  #1  
Alt 27 Kasım 2022, 19:26:24
Guest#1.424.500 - ait Kullanıcı Resmi (Avatar)
Binbaşı
 
Şubesi
Üyelik Tarihi: 21 Kasım 2022
Mesajlar: 2.399
Konular: 112483
Aldığı Beğeni: 0
Verdiği Beğeni: 0
Standart Ders: Debug

Ders: Debug
Tarih: 01/10/2009 - Perşembe
Yazan: L4roXyL - (Hasan AYDENİZ)
Not: Bu ders bir www.mIRCScripting.net dokumanı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. Cunki neredeyse event(on olay?) kullanmadan bir script dahi yazabilirsiniz.
mIRC-de cok onceki surumlerden beri varolmasına rağmen, pek kimsenin bilmediği ve kullanmadığı bir konudur.
Ki zaten mIRC Help dosyasını hazırlayan "Kjerk" bu kadar onemli bir konunun uzerinde neden kısaca durmuş orasıda bir mechul.
Socket ile aldığımız verileri bilirsiniz. HAM/İŞLENMEMİŞ veri şeklinde gelir tum veriler. Biz /tokenize komutu ile gelen veriyi parcalar ona gore işlev yaparız.
Debug -da hemen hemen aynı şekildedir. Online olarak yaptığınız veya yapılan tum işlevleri debug ile gorebilir ve gorduğunuz 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 | @[Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir. ] | filename] [identifier]
En basitinden bir debug penceresi acmak icin: /debug @[Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir. ]

-

Parametreler:
-n: Pencereyi minimize konumundan acmak icin kullanılır.
Ornek: /debug -n @[Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir. ]

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

-t: Gelen verilerin başında timestamp(zaman) gosterilir. Yani -t komutu ile bir debug getirisi acarsanız, gelen her verinin başında verinin geldiği zamanı $timestamp tanımının doneceği şekilde gorebilirsiniz.
Ornek: /debug -t @[Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir. ]

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

-

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

-

Debug ile alternatif scripting - Verileri işleme

Debug ile gelen verilerin başında her zaman icin; "" karakteri vardır.
-
İlk oncelikle debug-ın algıladığı verileri işlemek icin belirlediğiniz bir "alias" -a debug-ı cağırmalısınız.
Şoyleki: /debug -i on d_alias
Alacağımız yanıt: * Debug output on (d_alias)
Turkcesi: Debug cıkışı d_alias uzerine acıldı.

Sanırım buraya kadar anlaşılmayan birşey yok.
Belirlediğimiz alias uzerine debug verisini cağırdığımızı anlamanın yolu, tabiki belirlediğimiz isimdeki(cağırdımız isimdeki) alias-ı oluşturmaktan gecer.
Ornek:

Kod:
alias d_alias echo $1-

Artık d_alias ismindeki aliasımızın verileri algılayabildiğini goruyoruz.
Bundan sonraki yapmamız işlev aynen socket mantığında oldığu gibi gelen verileri parcalamaktan gecer.
Cunki şu konumda, $1- yerine $1 de yapmış olsak veriler HAM ve AYIKLANMAMIŞ olduğu icin yine TAM olarak gelecektir.
Gelen verileri belirlediğimiz bicimde ayıklamaya/parcalamaya ayırmanın yolu /tokenize komutundan gecer.
Ornek:

Kod:
alias d_alias

Burada yaptığımız işlev; 32(white-space/boşluk) karakterini parcalayan 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 soylediğim gibi veri şeklini tespit etmek icin her zaman "$1" tanımını kullanmalısınız. Cunki $1 tanımı sadece "" şeklinde donecektir.
Sizde bu bilgiden yola cıkarak sizin tarafınızdan gonderilen 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 gucunuze gore geliştirmenize kalmış.

-

Neden debug scripting?

Debug sunucu uzerinden gelen veya gonderilen, kısacası yapılan her işlevi COK HIZLI BİR BİCİMDE algılar.
Ve siz debug-a gelen verileri işleyerek kod yazmak istediğinizde size sonucları hatasız/kusursuz verir.
Debug-ın EN BUYUK OZELLİĞİ normal scripting-den cok cok daha HIZLI calışmasıdır. Yani yabancı olmadığınız socket gibi.
Debug kullanarak normalinden cok daha hızlı kodlar ve işlevler yazabilir/yapabilirsiniz.
Ve buna ek olarak socket-de kullanamadığınız local olmayan bir cok $identifier/tanımı kullanabilirsiniz.(hemen hemen hepsi)
-
UNUTMAYIN: Actığı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 cok cok daha HIZLI kodlar veya uzun işlevli korumalar yazabilirsiniz.
iii) Sunucunuz icin cok daha HIZLI (hemen hemen socket kadar) koruma botu veya farklı işlevler goren botlar yazabilirsiniz.

-

Ek bilgiler:
Debug verimini kapatmak icin: /debug off
Debug verimini herhangi bir dosyaya kayıt etmek icin: /debug dosya-adı.uzantısı
Debug verisini belirlediğiniz pencereye belirlediğiniz renk-de yansıtmak icin: /debug [renk kodu] @[Sadece kayıtlı ve aktif kullanıcılar bağlantıları görebilir. ]

-

Dersimiz burada sona ermiştir.
Daha iyi anlamanız icin basit bir kufur koruması yazacağım.(kelimeler dosya.txt dosyasından okutulacak)

-

Kod:
[B]alias d_alias inc %1 } } } }/B

Kodu denemek icin ilk oncelikle: /debug -i on d_alias

-

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

-

L4roXyL - (Hasan AYDENİZ)

Yeni Konu Aç
Seçenekler


İletişim