Help mIRC Komutlarının IRC Komutlarına Entegrasyonu 2

[IF] Konu Bilgileri

Konu Hakkında Merhaba, tarihinde Client kategorisinde Php tarafından oluşturulan mIRC Komutlarının IRC Komutlarına Entegrasyonu 2 başlıklı konuyu okuyorsunuz. Bu konu şimdiye dek 135 kez görüntülenmiş, 0 yorum ve 0 tepki puanı almıştır...
Kategori Adı Client
Konu Başlığı mIRC Komutlarının IRC Komutlarına Entegrasyonu 2
Konbuyu başlatan Php
Başlangıç tarihi
Cevaplar
Görüntüleme
İlk mesaj tepki puanı
Son Mesaj Yazan Php
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Php

Onursal Üye
Katılım
7 Şub 2022
Mesajlar
74
Tepkime puanı
8
Puanları
8

İtibar:

Ders: mIRC Kodlarının IRC Kodlarına Entegrasyonu 2
Yazar: CesuryureK
Tarih: 05 Mart 2013
---


mIRC Kodlarının IRC Kodlarına Entegrasyonu 2

Daha önce temel seviye için gerekli anlatımı yapmıştım. Gerçi aradan 4-5 yıl geçti. Belki de bu anlatım biraz geç oldu ancak yine de bugüne kısmetmiş.

Dikkat: Öncelikle diğer dersi okuyamayanlar yeterince verim alamayabilirler. O yüzden temel seviye niteliğindeki konuyu okunmasını şiddetle öneriyorum.

Konu Linki:
https://www.ircforumlari.gen.tr/konu/mirc-komutlarinin-irc-komutlarina-entegrasyonu.6131/
-
Lafı uzatmadan identifier(tanım)'ları mIRC komutları halinde görmeye devam edelim. Bu şekilde bir anlatım tercih etmemin nedeni aslında komut bilgilerine daha rahat hakim olmaktan kaynaklanıyor. İleriki düzeyde komutlardan öğrenilen identifierlar sonradan kodlarda kullanımı kolaylaştıracaktır.

$calc : $calc identifier'i mirc üzerinden dört işlem yapmamızı sağlıyor. Bir nevi hesap makinesi. Ancak burda dört işlemin dışında bir sayısının kuvvetini de alabilmekteyiz.

Toplama: $calc(değer1 + değer2)

Soru: #Nuh Kanaldaki kişi sayısı ile nickimin karakter sayısını toplayıp o seviyede #Nuh kanalında CesuryureK nickine access eklemek istiyorum.

Cevap: //cs access #Nuh add CesuryureK $calc($nick(#Nuh,0) + $len($me))
---
Not: Burda + işleminde $calc($nick(#Nuh,0)+$len($me)) bitişik de olabilirdi ancak konuyu anlamlı kılmak için araya boşluk koyuyorum. İki yolla da aynı sonucu elde etmekteyiz.

Çıkarma: $calc(değer1 - değer2)
-
Bölme: $calc(Değer1 / değer 2)
-
Çaprma: $calc(Değer1 * Değer2)
-
Kuvvet Alma: $calc(Değer1^kuvvetderecesi)

Örneğin: 2'nin 3. kuvvetini almak için $calc(2^3) yaparız ki bu da 3 tane 2'nin yanyana çarpımıdır. Matematikteki üslü sayılar.

Şimdi bu bilgiler ışığında biraz entegrasyona başlayalım.

Soru: #Nuh kanalında CesuryureK nickine, toplam bulunduğum kanal sayısının karesi kadar access eklemek istiyorum.

Cevap: //cs access #Nuh add CesuryureK $calc($chan(0)^2)

Not: Karesi derken aynı sayıyı iki kere yanyana çarpmaktır. Matematikteki üslü sayılardaki işlemdir. Örneğin 13'ün karesi 13x13 demektir.
----

$Abs : $Abs identifier'i negatif bir değerin pozitif değere dönüştürmesini sağlayan bir tanımdır. Belli yerlerde işimize yarayabilir. Örneğin;
-
Soru: 50 kişilik bir kanalda, kanaldaki 7. kişiye, nickimin karakter sayısından kanaldaki kişi sayısını çıkarıp çıkan değerde access eklemek istiyorum. Şeklinde bir soru düşünelim. Bu durumda,
-
Cevap: //cs access #kanal add $abs($calc($nick($chan,0) - $len($me)))
-
olacaktır. Eğer ki $abs identifier'ini kullanmamış olsaydık dönen sonuç negatif olacağından eksili bir sayı ile access eklenecekti. Biz ise pozitif şekle çevirmiş olduk. Burda amaç değeri pozitife çevirmekti ve soruda yer alabilirdi.
---

$int: $int(sayısaldeger) şeklinde kullanılır ve parantez içine yazılacak değerin virgülden önceki kısımlarını yok sayıp tamsayı olarak bize vermektedir.

Soru: 52 kişinin bulunduğu #Nuh kanalında, kanaldaki 3. kişiye, kanaldaki kişi sayısının yetki ekleyeceğin kişinin kanaldaki sırasına bölümünden elde ettiğim değeri access seviyesi olarak eklemek istiyorum. Nasıl yapabilirim?

Cevap: //cs access #Nuh add $int($calc($nick(#Nuh,0) / $nick(#Nuh,3)))

Not: Burda amaç 52 sayısı 3'e bölünmez. Çünkü bir sayının üçe bölünüp bölünmediğini verilen sayının rakamları toplamı 3 ve 3'ün bir katı olmalıdır. Yani 52 sayısının rakamları toplamı 5+2 = 7'dir ve 3'te tam bölünmez bu yüzden virgüllü bir değer olan 17.333333 sayısını verecektir. Ancak biz $int ile sadece 17 kısmını almış oluyoruz. Bakınız //echo -a $calc(52/3) ve //echo -a $int($calc(52/3))
-
DipNot: Keza $int ile aynı işlevi gören $floor identifieri de vardır. Bakınız: //echo -a $floor($calc(52/3))
---


$mid: Herhangi bir değerin belirli karakter sayısını almamızı sağlamaktadır. Kullanımı $mid(değer,sıradeğeri,alınacakkaraktersayısı)

Örnek: CesuryureK nickinin ilk 5 karakterini almak istersem; //echo -a $mid(CesuryureK,1,5) yaparım. Eğer ki CesuryureK sözcüğünün son 5 karakterini almak istemiş olsaydım //echo -a $mid(CesuryureK,-5,5) yapardım. Burda değerin önüne eksi işareti geldiğini farketmişsiniz bu şekilde mircte önüne ve arkasına koyarak deneyip ne tür sonuçlar aldığınızı görebilirsiniz. Şimdi soru ile entegrasyona girelim.

Soru:#Nuh kanalındaki 3. sıradaki kişinin ilk 2 karakterini aynı kanaldaki 2. sıradaki kişi nickinin ilk 3 karakterini birleştirmek istiyorum. [Çok egzotik oldu farkındayım hele ki o karakterler değişik bir şey ortaya çıkarırlarsa : ) ]

Cevap: //echo -a $+($mid($nick(#nuh,3),1,2),$mid($nick(#nuh,2),1,3) )
---

$rand: Random yani rastgele sayı veya harfleri veren identifier'dir. Harfler konusuna pek değinmeyeceğiz çünkü komutlara uygulamamız adına daha çok rakamlarla ilgili sorular çözmemiz daha yerinde olacaktır. Tabi harflerle ilgili de bir iki bilgiye yer vereceğiz.
Kullanımı: $rand(birincideger,ikincideger) : Burda birinci değer ile ikinci değer arasında bize bir değer döndürür.

Örneğin;

* 0 ile 10 arasında her komutu uygulamamızda bir değerin dönmesi için; //echo -a $rand(0,10) [-ki hem sıfırı hem de 10 sayısını da verebilir-]
* a ile z arasında herhangi bir harf vermesi için //echo -a $rand(a,z) büyük harfler için: $rand(A,Z) kullanılabilir.

Soru:#Nuh kanalında CesuryureK nickine komutu uyguladığımda rastgele 100 ve 999 dahil 100 ile 999 arasında bir değerle access eklemek istiyorum. Nasıl yapabilirim?

Cevap: //cs access #Nuh add CesuryureK add $rand(100,999)
---

$str : Tekrar edilmek istenen kelime veya karakteri kaç kere peş peşe yazılacağını sağlayan identifier'dir. Örneğin, Cesur sözcüğünü 5 kere arka arkaya tekrar etmesini istiyorsak; //echo -a $str(Cesur,5) yaparız. Sonuç olarak "CesurCesurCesurCesurCesur" şeklinde veri dönecektir.

Soru:Random yani rast gele a ile z arasında herhangi bir harfi 5 haneli olarak ident yapmak istiyorum, nasıl yapabilirim?

Cevap: //emailaddr $str($rand(a,z),5) şeklinde yaptığımızda herhangi bir harfi arka arkaya 5 kere tekrar edecek ve identimiz yapacaktır. bbbbb gibi.

Not: $str bir çok yere amaca uygun işimize yaramakta ve bizi hem zamandan hem de kod çoğunluğundan tasarruf etmektedir. Yaptığım bir mircten str ile ilgili basit bir kod:

Kod:
mode $active $+(+,$str(b,$sline($active,0))) %nickler
Burada kodun devamı tabi ki var ancak görüntü kirliliği olmaması adına sadece $str'nin öneminden bahsedecem. Burdaki amaç, nick listesinde seçilen kaç nick varsa onlara +b eklemek için yapılmış bir küçük koddu. Yani nick listesinde 10 kişi seçildiğinde ($sline sayesinde) bir o kadar +b eklemek için $str ile çoğaltıyoruz +bbbbbbbbb vs gibi. Yani burda anlatılan her tanım ileride ihtiyaç doğrultusunda sık sık kullanacaksınız.

*** Bu anlatımın amacı sizi tanımlarla(identifier) tanıştırıp onlara aşina olmanızı ve komutlarda kullanabildiğiniz için kodlama bölümüne geçtiğinizde ne azından nasıl kullanacağınızı hatırlar ve rahatlıkla kod düzeneği yapmanızı sağlar. Tabi bu kişisel birikimle ilgii olacaktır illa ki.
---

$right: İngilizden bilindiği üzere right "sağ" demektir. Burda sağ sözcüğü tabi ki canlı anlamındaki sağ değil, sol'un zıttı demektir. Kelimenin sağına göre veri almamızı sağlayan identifier'dir.

Soru: CesuryureK nickinin sağdan 5 karakteri ile "biten" kişilere kanalda exception(+e) yani bandan etkilenmeme özelliğini vermek istiyorum. Nasıl yapabilirim?
Cevap: //mode #kanal +e $+(*,$right(CesuryureK,5))

Not: Bilindiği üzere biten kavramı için wildcard (* ve ?) özelliğini kullanıyoruz. *biten, baslayan*, *gecen*
---

$left : $right sağdan alırken $left de soldan veri almamızı sağlamaktadır. Kullanımı: $left(deger,alınacakverideğeri)

Not: Yukarıdaki right için geçerli olan kısmı left yaparsak yani; $+(*,$left(CesuryureK,5)) yaparsak sadece *Cesur olarak alacaktır.

Soru: 3 haneli bir kanalda CesuryureK nickine o kanaldaki kişi sayısının ilk iki hanesi kadar access eklemek istiyorum, nasıl yapabilirim?

Cevap: //cs access #kanal add CesuryureK $left($nick(#kanal,0),2)
Not: Eğer ki kanalda 718 kişi varsa CesuryureK nickine 718 sayısının sadece ilk iki hanesi olan 71 değerini access ekleyecektir.
---

$ceil: Alınan değerin kendinden büyük olan bir sonraki değere yuvarlar. Yuvarlama işlemi virgüllü sayılar için kullanılmaktadır. Mesela 3.14 sayısının bir sonraki sayıya yuvarlaması 4 olacak karşımıza gelecektir. Normalde //echo -a $pi yaptığımızda pi sayısının ilk 21 karakterli değerini verir. 3.14159265358979323846 gibi. Biz bunu virgülden önceki kısmı kendisinden bir büyük değere yuvarlarsak bunun için //echo -a $ceil($pi) yaptığımızda veriyi elde etmiş olacağız.
-

$snicks : Nick listesinde seçilen kaç kişi varsa araya virgül koymak şartı ile bize listeler. Bazı seslenme remoteleri için kullanılabilir. Nick listesinde kişiler seçmedikçe "Yetersiz veya eksik parametre" hatasını almanız muhtemeldir. Kullanımı: //echo -a $snicks

Soru: #Nuh kanalında seçtiğim nicklerden 2. sıradaki nicke kanalda +v vermek istiyorum.
Cevap: //mode #Nuh +v $gettok($snicks,2,44)
-

Not: $gettok kullanımı için bir sonraki ders diyeceğim ama bu son dersim olacak. Sadece bu makaleyi can sıkıntısına yazdım. mIRC Kodları ile herhalde son paylaşımım olacak. Eğer ki şartlar böyle olmasaydı bu 10 civarı ders olurdu. Sonra mIRC kodlarını yazma seviyesine geçebilirdik. Ancak belki ışık gördüğüm bir iki kişiye bildiklerimi aktarıp öyle ayrılmak isterim IRC aleminden. Kısmet..
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst Alt