mIRC Identifierlar: $ ile Başlayan Hazır Bilgi Kaynakları
İçindekiler
- En Temel Identifier'lar
- Parametreli Identifier'lar
- Özellikler (Properties)
- Kanal ve Kullanıcı Identifier'ları
- Metin Identifier'ları
- Sayı ve Zaman Identifier'ları
- Dosya ve Sistem Identifier'ları
- Identifier'ları İç İçe Kullanmak
- Identifier'ları Öğrenmenin Yolu
- Sık Yapılan Hatalar
- Identifier'ların Bağlamı
- Hangi Identifier'ı Aramalı?
- Sonuç
mIRC scripting dilini öğrenmenin büyük kısmı, aslında identifier'ları öğrenmektir. mIRC identifier, dolar işaretiyle başlayan ve o anki duruma göre bir değer döndüren hazır bilgi kaynağıdır. Kanaldaki kişi sayısını, bir kullanıcının adresini, şu anki saati, bir metnin uzunluğunu, bir dosyanın var olup olmadığını identifier'larla öğrenirsiniz. Ne kadar çok identifier bilirseniz o kadar kısa ve etkili kod yazarsınız.
En Temel Identifier'lar
| Identifier | Döndürdüğü değer |
|---|---|
$me | Kendi nickiniz |
$nick | Olayı tetikleyen kişinin nicki |
$chan | O anki kanal |
$network | Bağlı olduğunuz ağın adı |
$server | Bağlı olduğunuz sunucu |
$address | Kullanıcının adres maskesi |
$time | Şu anki saat |
$date | Bugünün tarihi |
$ticks | mIRC açıldığından beri geçen süre |
$version | mIRC sürümü |
$null | Boş değer |
$true / $false | Mantıksal değerler |
Bunların yanında komut parametrelerine erişim sağlayan $1, $2, $1- gibi identifier'lar da sık kullanılır; bunları mIRC alias yazma yazımızda anlattık.
Parametreli Identifier'lar
Birçok identifier parametre alır:
$nick($chan,0)
$chan(1)
$time(HH:nn:ss)
$address($nick,2)
$gettok(a.b.c,2,46)
Parametrelerin anlamı identifier'a göre değişir. Liste identifier'larında sıfır parametresi öğe sayısını, diğer sayılar o sıradaki öğeyi verir. Bu kalıp mIRC'te tutarlıdır ve bir kez öğrendiğinizde bütün liste identifier'larında işinize yarar.
Özellikler (Properties)
Bazı identifier'lar, nokta ile eklenen bir özellik kabul eder:
$chan($chan).topic
$chan($chan).mode
$nick($chan,1).pnick
$file(veri.txt).size
$url
Özellikler, aynı identifier'dan farklı bilgiler almanızı sağlar. Örneğin kanal identifier'ı özellik olmadan kanal adını verirken, .topic özelliğiyle kanalın konusunu, .mode özelliğiyle modlarını verir. Hangi identifier'ın hangi özellikleri desteklediğini mIRC'in yardım dosyasından öğrenebilirsiniz; bu dosya identifier'ları kategorilere ayırarak listeler ve her birinin parametrelerini açıklar.
Kanal ve Kullanıcı Identifier'ları
$chan(0)
$nick($chan,0)
$nick($chan,0,o)
$snick($chan,1)
$ial($nick)
$comchan($nick,0)
$chan(0): Bulunduğunuz kanal sayısı.$nick($chan,0,o): Kanaldaki op sayısı (filtre parametresiyle).$snick: Kullanıcı listesinde seçili kişiler.$ial: Dahili adres listesinden kullanıcı adresi.$comchan: Bir kullanıcıyla ortak olduğunuz kanallar.
$comchan özellikle kullanışlıdır: Bir kullanıcının sizinle hangi kanalları paylaştığını öğrenmek, kullanıcı takibi yapan scriptlerde sık gereken bir bilgidir.
Metin Identifier'ları
| Identifier | Ne yapar? |
|---|---|
$len | Metin uzunluğu |
$left / $right | Soldan/sağdan karakter alır |
$mid | Ortadan parça alır |
$upper / $lower | Büyük/küçük harfe çevirir |
$replace | Metin değiştirir |
$remove | Metin siler |
$gettok / $numtok | Parçalara erişim |
$chr / $asc | Karakter kodu dönüşümleri |
$str | Metni tekrar eder |
Metin işleme, scriptlerin büyük kısmında gerekir: Kullanıcı mesajlarını ayrıştırmak, çıktıları biçimlendirmek, verileri birleştirmek. Token identifier'ları için mIRC token identifierları yazımıza bakın.
Sayı ve Zaman Identifier'ları
$calc(5 * 3 + 2)
$round($calc(10 / 3),2)
$rand(1,100)
$int(7.8)
$abs(-5)
$ctime
$asctime($ctime,dd.mm.yyyy HH:nn)
$duration(3600)
$ctime zamanı saniye cinsinden bir sayı olarak verir; bu, zaman karşılaştırmaları ve süre hesaplamaları için idealdir. $duration ise saniye sayısını "1 saat 30 dakika" gibi okunabilir bir ifadeye çevirir. Hatırlatıcı ve bekleme süresi gösteren scriptlerde bu iki identifier birlikte çok kullanılır.
Dosya ve Sistem Identifier'ları
$exists(veri.txt)
$lines(veri.txt)
$read(veri.txt,1)
$mircdir
$scriptdir
$file(veri.txt).size
$disk(C:).free
$mircdir mIRC'in kurulu olduğu klasörü, $scriptdir ise o anki scriptin bulunduğu klasörü verir. Scriptlerinizde dosya yolu yazarken bu identifier'ları kullanmak, scriptin farklı bilgisayarlarda da çalışmasını sağlar. Dosya işlemleri için mIRC dosya işlemleri yazımıza bakın.
Identifier'ları İç İçe Kullanmak
Identifier'lar birbirinin parametresi olabilir:
echo -a $upper($gettok($1-,1,32))
echo -a $asctime($calc($ctime + 3600),HH:nn)
echo -a $nick($chan,$rand(1,$nick($chan,0)))
Son örnek, kanaldan rastgele bir kullanıcı seçer. İç içe kullanım güçlüdür ama okunabilirliği düşürür. Üçten fazla seviye iç içe geçtiğinde ara değerleri yerel değişkenlere atamak kodu çok daha anlaşılır hâle getirir.
Identifier'ları Öğrenmenin Yolu
Yüzlerce identifier vardır ve hepsini ezberlemek gereksizdir. Pratik bir yaklaşım şudur: En sık kullanılan yirmi otuz identifier'ı iyi öğrenin, geri kalanları ihtiyaç duydukça yardım dosyasından bakın. Yardım dosyasının identifier listesi kategorilere ayrılmıştır; aradığınız bilginin hangi kategoride olabileceğini düşünmek, doğru identifier'ı bulmanın en hızlı yoludur.
Bir diğer öğrenme yöntemi, başkalarının scriptlerini okumaktır. Tanımadığınız bir identifier gördüğünüzde yardım dosyasından bakmak, hem o identifier'ı hem de onu kullanmanın pratik bir yolunu birlikte öğretir.
Komut satırında deneme yapmak da çok etkilidir: İki eğik çizgiyle başlayan bir satır, identifier'ları değerlendirerek çalıştırılır. Böylece bir identifier'ın ne döndürdüğünü anında görebilirsiniz.
Sık Yapılan Hatalar
- Parametre sayısını karıştırmak: Liste identifier'larında sıfır ile birinci öğeyi karıştırmak.
- Özellik yanlış yazımı: Nokta ile eklenen özellik adlarında yazım hatası sessizce boş değer döndürür.
- Bağlam dışı kullanım:
$nickyalnızca bir olay bağlamında anlamlıdır; alias içinde parametre olmadan kullanmak boş değer verir. - $chan varsaymak: Komut bir kanal penceresinde çalışmıyorsa
$chanboş olur; kontrol etmek gerekir. - Boş değer kontrolü atlamak: Bir identifier'ın boş dönebileceğini hesaba katmamak.
Identifier'ların Bağlamı
Identifier'ların çoğu bağlama duyarlıdır: Aynı identifier, çağrıldığı yere göre farklı değer döndürür veya boş kalır. Bu, yeni başlayanların en çok şaşırdığı konulardan biridir. Örneğin olayı tetikleyen kişiyi veren identifier yalnızca bir olay içinde anlamlıdır; elle çalıştırdığınız bir komutta boş döner. Aynı şekilde kanal identifier'ı, komutun bir kanal penceresinde mi çalıştırıldığına bağlıdır.
Bu yüzden bağlama bağlı identifier'ları kullanan kodların başında bir kontrol yapmak iyi bir alışkanlıktır: Kanal yoksa kullanıcıya açıklayıcı bir mesaj göstermek, sessizce yanlış çalışmaktan çok daha iyidir. Bir komutun hem kanal hem özel mesaj penceresinde çalışmasını istiyorsanız, hedefi belirleyen bir ara değişken kullanmak kodu sadeleştirir.
Hangi Identifier'ı Aramalı?
İhtiyacınız olan bilgiyi veren identifier'ı bulmak başta zor görünebilir. Pratik bir yaklaşım, aradığınız bilginin türünü düşünmektir: Kanala dair bir bilgi mi, bir kullanıcıya dair mi, bir metne dair mi, zamana dair mi, dosyaya dair mi? mIRC'in yardım dosyası identifier'ları tam bu kategorilere göre gruplar. Doğru kategoriye baktığınızda aradığınızı genellikle birkaç saniyede bulursunuz.
Bir diğer ipucu, benzer işleri yapan scriptleri incelemektir. Bir kanal istatistik scripti okuduğunuzda kanal bilgisi veren identifier'ların çoğunu bir arada görürsünüz.
Sonuç
Identifier'lar, mIRC scripting'in kelime dağarcığıdır. En çok kullanılanları öğrenin, parametre ve özellik kalıplarını kavrayın, iç içe kullanımda okunabilirliği koruyun, yardım dosyasını yanınızda tutun ve komut satırında deneyerek pekiştirin. Kendi identifier'larınızı yazmak için sıradaki rehberimiz mIRC özel identifier.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
Identifier nedir?
Dolar işaretiyle başlayan ve o anki duruma göre bir değer döndüren hazır bilgi kaynağıdır.
Bir identifier'ın özelliklerini nasıl görürüm?
mIRC'in yardım dosyasında her identifier'ın alabileceği parametreler ve özellikler listelenir.
Kendi identifier'ımı yazabilir miyim?
Evet. return komutuyla değer döndüren bir alias, identifier gibi çağrılabilir.


