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

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 29 Eylül 2007, 21:37   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Nick ve adres "Identifier(s)" açıklamalı bilgi.




Ders: Nick ve Adres Identifier.
Tarih: 29 Eylül 2007 Cumartesi.
Yazan: L4roXyL

-
Evet arkadaşlar zaten mIRC Scripting konusunda orta halde bilgiye sahip olan arkadaşlar bunların % 60/70'ini biliyorlar zaten.
Ben burada hem bilinmiyenleri hemde hiç bilgisi olmayanlara gayet basit ve örnekli bir şekilde anlatıcağım.
Ders sonunda hiç bilgisi olmayan bir arkadaşımız bile, ön bilgi'yi almış olucak.
Neyse başlıyorum.

Identifier'lar;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
$address(nickname,type) $anick $comchan(nick,N) - Prop: op/help/voice $ial(nick/mask,N) $ialchan(nick/mask,#,N) - Prop: pnick $ibl(#channel,N)-\ $iel(#channel,N)--: - Prop: by/date/ctime $iil(#channel,N)--/ $link(N) - Prop: addr/ip/level/info $mask(address,type) $me $mnick $nick(#,N/nick,aohvr,aohvr) - Prop: pnick/idle $notify(n,nick) - Prop: ison/note/sound/whois/addr $snicks $snick(#,N) $snotify


Evet arkadaşlar tek tek ve çok açık bir şekil'de anlatıcağım.

Adres kontrolü veya gerekli işlev için; $address(nick,ban-tipi)
Tek görmek için; //echo -a $address($me,N) buradaki N numarası: 0 ile 9 arasında bir rakam olmalıdır ve hepsinin ayrı görevi vardır.
Örneğin kendi adresimin ban-tip olarak 9 şeklini'de görmek istiyorum.
Hepsini birden görmek için basit bir kod yazalım;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias adreslerim { var %1 = 0,%2 = 9 while %1 <= 2 { echo -a Adres numarası: %1 - Adres mask: $address($me,%1) inc %1 } }

Gibi.
Veya #IF kanalına giren ve nick'i IF olan rumuzun host'unu banlıyalım;
on *:join:#IF: { if $nick == IF { mode # +b $address($nick,2) } }
Gibi.

mIRC.ini ve/ya mIRC dökümanın yazılı olduğu dosyadaki ana nick: $anick
Kullanımı: //echo -a $anick şeklindedir.
Tabi kullanım yeri ve verilecek görevi sizin hayal gücünüze kalmış.

Bir kullanıcının sizinle ortak kaç kanal'da bulunduğunu;
Bulunduğu kanalların isimlerini;
Bulunduğu kanallardaki yetkisi;
Vb bilgileri öğrenebilirsiniz.
Mesela kendinizin kaç kanal'da bulunduğunuzu öğrenmek istiyorsunuz;
//echo -a $comchan($me,0) : Kaç kanalda bulunduğunuzu "rakam" olarak gösterir.
//echo -a $comchan($me,1) : Bulunduğunuz 1 numaralı kanalın ismini vericektir.
//echo -a $comchan($me,1).voice : Bulunduğum 1 numaralı kanal'da voice'e sahipsem; $true olarak dönecektir.
//echo -a $comchan($me,2).op : Bulunduğum 2 numaralı kanal'da op'a sahipsem; $true olarak dönecektir.
//echo -a $comchan($me,3).help : Bulunduğum 3 numaralı kanal'da halfop'a sahipsem; $true olarak dönecektir.
Eğer girilen prop'lardan(op/voice/help) birine sahip değilseniz, $false olarak dönecektir.
Şimdi $comchan identifier'ı ile basit ve örnek bir kod yazalım.
Mesela; Bir kanal içerisindeki kullanıcıların benimle kaç adet ortak kanalda bulunduklarını öğrenelim.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias kontrol { var %1 = 1,%2 = $nick($active,0) while (%1 <= %2) { var %- = $nick($active,%1) if $me != $nick($active,%1) { echo -a Nick: %- - Bulunduğumuz ortak kanal sayısı: $comchan(%-,0) } inc %1 } }

Gibi.
Bu identifier çok kullanışlıdır.
Hayal gücünüze bağlı olarak, bayağı işinizi görecektir.

Bir kanal'daki veya bulunduğun sunucudaki tüm nickler'in adreslerini kontrol edebilme, aynı adres'de kaç tane var? Ve/ya Aynı adresi kaç kişi kullanıyor?
Bu tür bilgileri görmek için; $ial(nick/mask,N) identifier kullanırız.
IAL Komutları;
/ial on
yaptığınızda, komutu uyguladığınız saniyeden itibaren, ial aktif konuma geçicektir.
/ialclear <(nick)> Herhangi bir kişi ial listesinden silmek/çıkarmak için kullanılır.
/ialmark <(nick)> mesaj Herhangi bir nick'i işaretlemek için kullanılan komutdur.
IAL listesinde kaç adet kayıt olduğunu görmek için;
//echo -a $ial(*,0) komutunu uygulayınız.
Mesela "IFHelper" host'undan kaç kişinin ial listesinde olduğunu öğrenmek istiyoruz;
Bunun için; //echo -a $ial(*!*@*IFHelper*,0) yaptığımızda kaç adet kişinin olduğunu gösterecektir.
Prop: $ial(nick/mask,N).addr/nick/user/mark/host

Örneğin IF nick'ini ele alalım.
//echo -a $ial(IF,1).addr : IF nick'inin adresini, ident@host şeklinde verecektir.
//echo -a $ial(IF,1).host : IF nick'inin host kısmını verecektir/gösterecektir.
//echo -a $ial(IF,1).nick : IF nick'inin nick'ini gösterecektir. Bu genellikle nick yerine mask kullanıldığında kullanılır yani; //echo -a $ial(*!*@*IFHelper*,1).nick gibi.
//echo -a $ial(IF,1).user : IF nick'inin o anki ident ismini gösterecektir.
IAL identifier'ının içinde örnek olarak nick kullandık,
Bunu örnek olarak verdim, $ial(veri,N) burada veri dediğim yere host/ident/nick girebilir wildcard(s) kullanabilirsiniz.
Arama sonucu ona göre listenilecektir.

Belirli kanal'daki ial listesine işlev yapmak için; $ialchan(nick/mask,#,N)
Yani örneğin; #IF kanalında kaç adet kayıtlı veri var görmek için;
//echo -a $ialchan(*,#IF,0) komutunu kullanırsınız.
Yukarıda belirttiğim gibi, aranıcak veri'ye nick/ident/host girebilir ve wildcards kullanabilirsiniz.
Ayrıca $ialchan identifier'ın özel bir prop'u olan pnick vardır.
Mesela; //echo -a $ialchan(IF,#IF,1).pnick IF nick'inin IF kanalındaki durumunu gösterecktir. @&IF şeklinde ve/ya %IF vb gibi.
IAL hakkında anlatıcaklarım bu kadar.
Şimdi ial mantığından yola çıkarak bir klon uyarıcı yazalım;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:join:#: { if $nick == $me && !$ialchan(#) { .ial on | who # } | else { bak $nick } } alias bak { who $1 if $ialchan($+(*,$gettok($address($1,2),2,64),*),$active,0) < 2 { halt } else { var %% = 1,%& = $gettok($address($1,2),2,64),%&& = $ialchan($+(*,%&,*),$active,0) while %% <= %&& { var %%- = $addtok(%%-,$gettok($ialchan($+(*,%&,*),$active,%%),1,33),44) inc %% } echo -a $+($timestamp,$chr(45),$chr(32),Bilgi:,$chr(32),Klon:,$chr(32),$chr(40),$chr(32),$chr(2),$calc(%% -1),$chr(2),$chr(32),$chr(41),$chr(32),Adres:,$chr(32),$chr(40),$chr(2),$chr(32),%&,$chr(2),$chr(32),$chr(41),$chr(32),Nickler:,$chr(32),$chr(40),$chr(32),$chr(2),%%-,$chr(32),$chr(2),$chr(41)) } }

Girdiğiniz kanal için, ial açık değilse, ial aktif kılınır. Kanal'a who çekilir.
Kanal'a giren nick'lere who çeker, kanal'da aynı host'a sahip olan var ise onları eşleştiri ve aktif ekrana yansıtır.
Bu arada güzel bir kod vermiş olduk :)

Kanal ban listesi/invex listesi/koruma listesini listelemek ve hakkında bilgi almak için;
Ban(+b): $ibl(#,N)
Invex(+I): $iil(#,N)
Exception(+e): $iel(#,N)
Örneğin; #IF kanalında kaç adet var gibi bir sorunun cevabını;
//echo -a $ibl(#IF,0) komutu ile öğrenebiliriz.
Örneğin; #IF kanalında kaç adet invex(invite dışı) var gibi bir sorunun cevabını ise;
//echo -a $iil(#IF,0) komutu ile öğrenebiliriz.
Örneğin; #IF kanalında kaç adet koruma(+e) var gibi bir sorunun cevabını ise;
//echo -a $iel(#IF,0) komutu ile öğrenebiliriz.
0 yerine, rakam girdiğimiz'de, mesela;
//echo -a $ibl(#IF,1) #IF kanalındaki ilk sırada banlı olan veriyi bize verecektir.
Veri diyorum çünki, bu bir nick/host/ident ban veya extban(~q,c,n,r) olabilir.
Prop: by/date/ctime

Örneğin; //echo -a $ibl(#IF,1).by #IF kanalındaki son ban'ı uygulayan kullanıcıyı gösterir.
Örneğin; //echo -a $ibl(#IF,1).date #IF kanalındaki son atılan ban'ın atıldığı tarih hakkında bilgi verir.
Örneğin; //echo -a $ibl(#IF,1).ctime #IF kanaldaki son atılan ban'ı $ctime formatında tarhini verir.
Format $ctime identifier olduğu için; //echo -a $asctime($ibl(#IF,1).ctime) şeklinde daha sağlıklı öğrenebilirsiniz.
Şimdi 1/2 basit kod ile örnek verelim.
Mesela; Bir kanal'da kaç adet exception olduğunu, kim tarafından verildiğini ve verildiği tarihi öğrenelim.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias elist { mode # +e | var %1 = 1,%2 = $iel($active,0) while %1 <= %2 { echo -a Korunan: $iel($active,%1) - Koruyan: $iel($active,%1).by - Tarih: $iel($active,%1).date | inc %1 } }

Gibi.

Bir basit örnek daha verelim,
Mesela kanal'daki tüm banları açmak için;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias bantez { mode # +b | var %- = 1,%_ = $ibl($active,0) while %- <= %_ { mode $active -b $ibl(#,%-) | inc %- } }

Bağlı olduğunuz sunucuda, /links -n komutunu uyguladıktan sonra; çıkan sonuçlar hakkında detaylı bilgiler almak için; $link(N) identifier'ını kullanırız.
Örneğin; //echo -a $link(0) Bulunduğunuz sunucuya bağlı olan sunucuların sayısını vericektir.
Örneğin; //echo -a $link(1) Birinci linkli olan sunucunun ismini vericektir.
Prop: addr/ip/level/info

Örneğin; IFSohbet.net'e 3 sunucu bağlı.
//echo -a $link(1).addr : 1. bağlı olan sunucunun adresini verir.
//echo -a $link(2).ip : 2. bağlı olan sunucunun adresini verir.
//echo -a $link(1).level : 1. bağlı olan sunucunun level değerini verir.
//echo -a $link(3).info : 3. bağlı olan sunucu hakkında başlık bilgisi verir.
Şimdi bu mantıktan yola çıkarak kısa bir kod yazalım.
Mesela, sunucuya bağlı olan kaç adet link'li ağ var, isimleri neler, level değerleri kaç vb bilgileri öğrenelim.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias sinfo { .links -n | var %= = 1,%=_ = $link(0) while %= <= %=_ { echo -a Sunucu: $link(%=).addr - Level değeri: $link(%=).level - INFO: $link(%=).info | inc %= } echo -a Tarama tamamlandı. $calc(%= -1) adet veri sunucu bulundu. }

Gibi.


Sıradaki identifier; $mask(adres,döngü-tipi)
Aslında bu identifier tam olarak, içerisine yazılan adres'i girilen N(döngü-tipi) tipindeki değer'e atıyor.
Mantığı; Mesela IF nick'li kişinin 5(Nick!ident@host) numaralı adresini bir veriableye atıyoruz,
Yani; /var %: = $address(IF,5) şeklinde, ama IF nick'ini, #IF kanalında 5 numaralı tip ile banlamak istiyoruz.
İşte burada $mask kullanabiliriz.
Örnek verelim bir kod ile;
on *:join:#a: { if $nick == IF { var %- = $address($nick,5) | mode # +b $mask(%-,2) } }
Gibi.

Size kısa bir kod ile, 0'dan 9'a kadar olan ban tiplerini gösterelim.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias bantip { echo -a Tam adresiniz(nick!ident@host): $address($me,5) | var %1 = 0,%2 = 9 while %1 <= %2 { echo -a Ban tipi numarası: %1 - İşlevi: $address($me,%1) inc %1 } }

Bu kod sayesinde, 0'dan 9'a kadar olan karakterlerin ne işe yaradığını anlıyabilirsiniz.

Online nick'inizin ne olduğunu öğrenmek için; $me
//echo -a $me
Yaptığınızda bilgiye ulaşırsınız.

Ana nick'inizin ne olduğunu öğrenmek için; $mnick
//echo -a $mnick

Yaptığınızda bilgiye ulaşırsınız.

En çok kullanılan ve aşırı miktarda işe yarıyan bir identifier'a geldik; $nick(#,N/nick,aohvr,aohvr)
Prop:
color/pnick/idle
Parametreler;
a: Hepsi.
o: Op nick.
h: Halfop nick.
v: Voice nick.
r: Yetkisiz nick.

Örnekler;
//echo -a $nick(#IF,0) veya $nick(#,0,a) Aktif penceredeki, kullanıcı sayısının tamamını verir.
//echo -a $nick(#IF,0,o) #IF kanalındaki, op sayısını verir.
//echo -a $nick(#IF,0,v) #IF kanalındaki, voice sayısını verir.
//echo -a $nick(#IF,0,h) #IF kanalındaki, halfop sayısını verir.
//echo -a $nick(#IF,0,r) #IF kanalındaki, yetkisiz nick sayısını verir.
-
Örnekler 2;
//echo -a $nick(#IF,1)
#IF kanalında, nicklist'de bulunan en üsteki kullancının nick'ini vericektir.
//echo -a $nick(#IF,1).pnick #IF kanalında, nicklist'de bulunan en üsteki kullanıcının yetki kiplerini vericektir. Örnek:(@&+%Nick gibi)
//echo -a $nick(#IF,1).idle #IF kanalında, nicklist'de bulunan en üsteki kullanıcının idle süresini vericektir. Fakat bu idle süresini alma işlevi, siz kanal'a girdikten sonra sayılmaya başlıyacaktır. Yani /whois bilgisindeki idle süresi ile, buradaki idle süresi muhakkak farklı olucaktır.
//echo -a $nick(#IF,1).color #IF kanalında, nicklist'de bulunan en üsteki kullanıcının, nick renginin numarasını vericektir. Örnek: Kırmızı(4) gibi.
Şimdi bu örnekler yola çıkarak 1/2 kod deniyelim.
Mesela, kanaldaki yetkisiz nicklerin hepsine mesaj gönderelim.(Yani kullanıcı yetkili değilse, op/sop/hop/vb)

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias msk { var %1 = 1,%\ = $nick($active,0,r) while %1 <= %\ { privmsg $nick($active,%1,r) $1- inc %1 } }

Gibi.
Bir örnek daha verelim; mesela kanaldaki tüm kullanıcıların idle sürelerine bakalım.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias idlek { var %% = 1,%%% = $nick($active,0) while %% <= %%% { echo -a Nick: $nick($active,%%) - Idle süresi: $nick($active,%%).idle inc %% } }

Gibi basit kodlar ile, zor işler başarılabilir.


Sırada sayesinde, bir çok dialog'lar/snippet'lar ve arkadaş listesi vb add-on'lar yapılan; $notify(N/nick) identifier'ına geldik.
Notify kullanımı hakkında bilgi; /notify -shrl on/off/nickname note
Notify aktif kılmak için; /notify on
Notify deaktif etmek için; /notify off
/notify -l : Notify listesini gösterir.
/notify -s : Online olan kişileri, ayrı pencerede gösterir.
/notify -h : Hide(Gizli) modda ekleme yapar.
/notify -r : Belirtilen nick'i notify listesinden silecektir.
/notify : Online olan nick'leri mesajları ile beraber gösterecektir.

İdentifier kullanımları;
//echo -a $notify(0) Notify listesinde kaç kişi olduğunu gösterecektir.
//echo -a $notify(1) Notify listesinde'ki 1 numaralı nick'i vericektir.
Prop: ison/note/sound/whois/addr
//echo -a $notify(1).addr Notify listesinde'ki 1 numaralı nick'in, eğer online ise adresini vericektir.
//echo -a $notify(1).note Notify listesinde'ki 1 numaralı nick'e ait olan mesajı gösterecektir.
//echo -a $notify(1).whois Notify listesinde'ki 1 numaralı nick'e /whois eklentisinin eklenip/eklenmediğini kontrol edikcektir.($false: Eklenmemiş. / $true: Eklenmiş)
//echo -a $notify(2).ison Notify listesinde'ki 2 numaralı nick'in online olup olmadığını kontrol edicektir.($false: Offline. / $true: Online.)
//echo -a $notify(3).sound Notify listesinde'ki 3 numaralı nick'e sound(ses) dosyası eklenip/eklenmediğini kontrol edicektir.
Şimdi bu bilgilerden yola çıkarak basit bir kod yazalım.
Mesela; Notify listesindeki nickleri sıralayıp online olup olmadığını ve adres'lerini kontrol edelim.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias nlist { var %& = 1,%&& = $notify(0) while %& <= %&& { echo -a Nick: $notify(%&) - Durumu: $iif($notify(%&).ison == $false,Offline,Online) - Adresi: $iif(!$notify(%&).addr,Online olmadığı adres görüntülenemiyor.,$notify(%&).addr) inc %& } }

Gibi basit bir kod, işinizi görecektir.


Nicklist kutusun'da seçili olan nickleri yansıtabileceğinizi biliyormuydunuz?
İdentifier : $snicks
Listbox'da seçtiğiniz nickleri aralarından virgün bulunmak üzere görmek için;
//echo -a $snicks yapmanız yeterlidir.
Ve birde $snick identifier'ı vardır.
Bunun kullanım şekli: $snick(#,N)
Örneğin;

//echo -a $snick(#IF,0) #IF kanalında kaç adet nick'in, listbox'da seçili olduğunu gösterir.
//echo -a $snick(#IF,1) #IF kanalındaki seçili olan nick'lerden 1. nick'i gösterecektir.
Şimdi bu bilgilerden yola çıkarak basit bir kod yazalım.
Mesela; Aktif ekrandaki seçili nicklere mesaj göndermek için bir kod olabilir.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias smsg { if !$snick($active) { echo -a Seçili nick yok. | halt } var %+ = 1,%++ = $snick($active,0) while %+ <= %++ { privmsg $snick($active,%+) $1- inc %+ } }

Gibi basit bir kod yazılabilir. Kanal'daki tüm seçili nick'lere mesajınızı göndericektir.
-

Umarım birşeyler öğrenebilirsiniz.
Kolay gelsin.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 07 Ekim 2007, 02:04   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Nick ve adres "Identifier(s)" açıklamalı bilgi.




Faydalanmasini bilen icin guzel bilgiler.Tesekkurler.

 
Alıntı ile Cevapla

Alt 23 Eylül 2008, 02:14   #3
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Nick ve adres "Identifier(s)" açıklamalı bilgi.




ben baya bi bişey öğrenicem

 
Alıntı ile Cevapla

Alt 01 Aralık 2008, 13:40   #4
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Nick ve adres "Identifier(s)" açıklamalı bilgi.




Bu değer atama olayını değişkeni yani kod içerisinde kullanmayı anlamadıgımdan hiçbirşey öğrenemedim bu kaynaktan
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Güzel bilgiler var ama öğrenebilene

 
Alıntı ile Cevapla

Alt 01 Aralık 2008, 14:44   #5
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Nick ve adres "Identifier(s)" açıklamalı bilgi.




Sorduğun soruyu takip edersen, öğrenebilirsin.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Konu L4roXyL tarafından (30 Ağustos 2012 Saat 05:00 ) değiştirilmiştir.
 
Alıntı ile Cevapla

Cevapla

Etiketler
aciklamali, açıklamalı, adres, bilgi, identifiers, mirc, mirc download, mirc indir, nick, quotidentifiersquot, ve


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
Dosya ve klasör "Identifier(s)" açıklamalı bilgi. L4roXyL mIRC Scripting Dersleri 6 01 Aralık 2021 17:33