mIRC Scripting  


Geri dön   mIRC Scripting > mIRC Scripting > Tutorials - Dersler

Tutorials - Dersler mIRC Scripting hakkında yazılmış özel dersleri bulup, paylaşabileceğiniz bölüm.

Cevapla
 
LinkBack Seçenekler
  #1  
Alt 13 Temmuz 2009, 21:29
Avatar Yok
 DirtyCoder 

mS Puan: 1031
mS Derece: L4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisiL4roXyL Kod delisi
 
Üyelik tarihi: 10 Temmuz 2009
Yaş: 32
Mesajlar: 339
Konular: 100
Eklentiler: 3
Alınan Teşekkür: 40
Yapılan Teşekkür: 0
Standart Playing sounds.

Ders: Playing sounds
Tarih: 31 Ocak 2008 - 22:45
Yazan: L4roXyL - (Hasan AYDENİZ)

-

/splay komutu bildiğiniz veya bilmediğiniz üzere mIRC üzerinde mp3/mid/waw uzantılı dosyaları oynatabilmenize/çalabilmenize olanak sağlamaktadır.
Kullanımı(mIRC help dosyasında);
/splay -cwmpq [filename | stop | pause | resume | seek | skip] [pos]
Şeklinde yer almaktadır.

Parametreler;
-w(wave): Wav uzantılı dosyaları çalmak için kullanılır.
-m(midi): Mid uzantılı dosyaları çalmak için kullanılır.
-p(mp3): MP3 uzantılı dosyaları çalmak için kullanılır.
-q: Bu parametre ise, şarkı listesi yapmanızı sağlar. Yani şöyle açıklıyayım, mesela deneme.mp3 mp3'ü çalıyor. Ve siz /splay -q deneme2.mp3 yaptınız. Deneme.mp3 mp3'ü bitince, deneme2.mp3 mp3'ü otomatik olarak çalıcaktır.
-c: Bu parametre ise, "-q" parametresi ile oluşturduğunuz listeyi silicektir.

Çalan parçayı sonlandırmak için: /splay stop
Çalan parçayı durdurmak için: /splay pause
Durdurulan şarkıyı devam ettirmek için: /splay resume
Parçayı ilerletmek veya geriletmek için: /splay seek pos(aşşağıda açıklıyacağım)
Bir sonraki parçaya atlamak için: /splay skip
Komutlarını kullanıyoruz.

/vol -wmpvuN [volume]
Bu komut ise, çalan mp3/midi/wave dosyalarını veya bilgisayarın ana ses'ini açmak/kapatmak/kısmak için kullanılır.
Bu komut hakkında bir kaç açıklama yapıcağım;

Ses miktar'ı 0 ile 65535 arasında değişmektedir. Görüldüğü gibi, 0(ses sıfır'da demek) 65535 ise en yüksek ses seviyesi demek.
Bunun mantığını en son yazdığım kod'da anlıyacaksınız.

Parametreler;
-w: Wave dosyalarının seslerini kontrol etmek veya işlev yapmak için kullanılıyor.
-p: MP3 dosyalarının seslerini kontrol etmek veya işlev yapmak için kullanılıyor.
-m: Midi dosyalarının seslerini kontrol etmek veya işlev yapmak için kullanılıyor.
-v: Bilgisayarınızın ana sesi üzerinde işlem yapmanızı sağlar. Şöyleki; /vol -v 0-65535
-uN: Buradaki "N" yerine "1" ve "2" rakamları gelmek zorundadır. Bu parametre çalan mp3/midi/wave dosyasının veya pc ana sesini açmak ve kapatmak için kullanılır.
Bilgisayarın ana ses konsolunu sessiz(mute) hale getirmek için: /vol -vu1 komutunu kullanıcaksınız.
Yine bilgisayarınızın ana ses konsolunu sessiz(mute) mod'dan çıkarmak için: /vol -vu2 komutunu kullanıcaksınız.

NOT: Burada dikkat etmeniz gereken önemli nokta, parametrelerdir. Yani /vol -pu1 yaptığınız'da sadece mp3 dosyaları için, mute konumuna geçmiş olursunuz. Bu olay sesi kısma/açma olayların'dada aynıdır.


Identifier'lar;
1- $vol(wave | midi | song | master) - Prop: mute

Bu identifier, belirtilen dosya biçimi için veya pc ana(master) ses seviyesini belirtir.
Örneğin; //echo -ae $vol(midi) mid uzantılı ses dosyası için, ayarlanmış ses miktarını verir.
Properties: mute
Mute prop'u ise, belirtilen dosya biçimi veya bilgisayarın ana ses'inin açık olup olmaduğını "$true ve $false" yanıtları ile bize bildirir.
Örneğin; //echo -a $vol(master).mute bilgisayarın ana ses'inin açık olup olmadığını kontrol eder.
Eğer gelen cevap, $false ise ses açık, gelen cevap $true ise ses kapalı demektir.

2- $inwave(wav dosyası), $inmidi(mid dosyası), $insong(mp3 dosyası) - Prop: fname, pos, length, pause
Bu identifier'lar, mp3/wav/mid dosyalarının çalıp/çalmadığını kontrol etmek için kullanılır.
Tabiki properties'larla çalan veri hakkında detaylı bilgiler alabiliyorsunuz.
Örneğin: //echo -a $insong yaptığınız'da, eğer çalan bir "MP3" dosyası varsa $true olarak yanıt alırsınız.
Aynı sistem diğerleri($inwave, $inmidi) için'de geçerlidir.

Properties: fname, pos, length, pause

//echo -a $isnong.fname (Çalan MP3 dosyasının hangi klasör'de bulunduğunu gösterir)
//echo -a $insong.pos (Çalan MP3 dosyasının bulunduğu ilerlerme miktarını gösterir)
//echo -a $insong.length (Çalan MP3 dosyasının uzunluğunu verir)
//echo -a $insong.pause (Çalan MP3 dosyasının durdurulup/durdurulmadığını kontrol eder. Cevaplar yine $true, $false şeklinde gelmektedir.)
NOT: $insong ile $inmp3 aynıdır.

3- $sound(filename) - Prop: album, title, artist, year, comment, genre, track, length, version, bitrate, vbr, sample, mode, copyright, private, crc, .id3, .tag, .tags
Bu identifier en çok bilgiyi veren identifier'ımızdır.
Properties:
//echo -a $sound($insong.fname).album (Çalan MP3'ün albüm ismini gösterir.)
//echo -a $sound($insong.fname).title (Çalan MP3'ün başlık ismini gösterir.)
//echo -a $sound($insong.fname).artist (Çalan MP3'e girilmiş olan şarkıcı ismini gösterir.)
//echo -a $sound($insong.fname).year (Çalan MP3'ün yılını/senesini gösterir.)
//echo -a $sound($insong.fname).comment (Çalan MP3'e girilen yorum'u gösterir.)
//echo -a $sound($insong.fname).genre (Çalan MP3'ün ekolayzır'ını gösterir.)
//echo -a $sound($insong.fname).length (Çalan MP3'ün uzunluğunu gösterir.)
//echo -a $sound($insong.fname).version (Çalan MP3'ün versiyon bilgisini gösterir.)
//echo -a $sound($insong.fname).bitrate (Çalan MP3'ün kbps değerini gösterir.)
//echo -a $sound($insong.fname).sample (Çalan MP3'ün khz değerini gösterir.)
//echo -a $sound($insong.fname).mode (Çalan MP3'ün hangi şekilde çaldığını gösterir.)
//echo -a $sound($insong.fname).copyright (Çalan MP3'ün telif hakkı bilgisini gösterir.)
//echo -a $sound($insong.fname).private (Çalan MP3'ün özel olup/olmadığını gösterir.)
//echo -a $sound($insong.fname).crc (Çalan MP3'ün korumalı olup/olmadığını gösterir.)
//echo -a $sound($insong.fname).id3 (Çalan MP3'ü hakkında versiyon bilgisini gösterir.)
//echo -a $sound($insong.fname).tag (Çalan MP3'de kaç adet tag bulunduğunu gösterir.)
//echo -a $sound($insong.fname).tags (Çalan MP3'deki tüm tag'ları gösterir.)

NOT: Örnek olarak $insong kullandık, tabiki siz çaldığı taktirde $inwave/$inmidi kullanabilirsiniz. Yukarıdaki properties'ların hepsi bunlardada geçerlidir.

Birde, /sound komutu bulunmaktadır.
Kullanım şekli; /sound [on|off|nick/channel] <file.wav|file.mid|file.mp3> <message>Bu komut ise çalan parçayı belirlediğiniz nick'e veya kanal'a, messages kısmına eklediğiniz mesaj ile birlikte bildiri yapar.
Örneğin; /sound #kanal deneme.mp3 Deneme.mp3 dinliyorum.
ON/OFF ses isteklerini açıp kapatmanıza yarar.

Playing sounds hakkında event'ler;
1- on midiend
2- on waveend
3- on mp3end
Bu event'ler, mp3/mid/wav dosyaları sona erdikleri zaman aktif olan eventlerdir.
Event içerisin'de, $filename sona eren dosya ismini verir.
Örnek kullanım: on *:mp3end:/splay -p deneme.mp3


Dersimiz burada sona ermiştir.
Ne gibi bir kod yazılabilir ders sonunda?
Basit bir mp3 çalar yapalım;


Kod:
on ^*:close:@mp3:.timersr off | splay stop
alias sure var %sure = $time($int($calc($insong($insong).length / 1000)),nn:ss),%sure2 = $time($round($calc($insong.pos / 1000),0),nn:ss),%byt = $bytes($file($insong.fname).size,m),%khz = $iif($calc($sound($insong.fname).sample /1000),$calc($sound($insong.fname).sample /1000),YOK.),%kbps = $iif($sound($insong.fname).bitrate,$sound($insong.fname).bitrate,YOK.) | rline 4 @MP3 3 $str($chr(160),15) $+(%sure2,/,%sure) - Kbps: %kbps - Khz: %khz - Boyut: %byt 
alias mp3player $iif(!$window(@mp3),window -lCadk0 +l @MP3 0 0 370 300) | aline 5 @MP3 $str(-,38) MP3 Çalar $str(-,40)
menu @MP3 {
  dclick:splay -p $findfile(%q,$gettok($sline($active,1),1,9),1) | .timersr 0 1 sure 
  Liste yükle:set %q $sdir(C:\,MP3 klasörünü seçiniz.) | if (!%q) echo -aet Liste seçmediniz. | else aline 0 @mp3 - | aline 0 @mp3 - | aline 0 @mp3 - | return $findfile(%q,*.mp3,0,aline 2 @mp3 $nopath($1-) $+($chr(9),$chr(9)) $time($calc($sound($1-).length / 1000),nn:ss))
  -
  Ses ayarı:vol -p $calc(655.35 * $iif($input(1 ile 100 arasında ses limiti giriniz.,eo) == $null,100))
  -
  Durdur/Devam:$iif($insong.pause,splay resume,$iif($insong,splay pause))
  -
  Bitir:$iif($insong,splay stop)
  -
  Listeyi temizle:dline @mp3 $+(2,-,$line(@mp3,0)) | splay stop | .timersr off | $iif($input(Liste temizlendi.,o,Temizlendi) == $true,halt,halt)
  -
  Kapat:.timersr off | window -c @mp3 | if ($insong || $inwave || $inmidi) { splay stop } 
}

Kod'umuzu açıklıyalım;

/mp3player aliasımız;
alias mp3player $iif(!$window(@mp3),window -lCadk0 +l @MP3 0 0 370 300) | aline 5 @MP3 $str(-,38) MP3 Çalar $str(-,40)
;Eğer @mp3 isminde bir pencere yok ise, pencere açıyoruz.
;Parametreler;
;l: Listbox yüklüyoruz.
;C: Pencereyi ortada açıyoruz.
;a: Aktif ekranda açıyoruz.
;d: Masa üstünde açıyoruz.
;k0: @ karakterini pencereden ayıklıyoruz.
;+l: Tool yüklüyoruz.
;Devamında /aline ile pencerenin ilk satırına, MP3 Çalar yazdırıyoruz.
;Tabi $str identifier'ını kullanarak text'in hem başına 38, sonuna 40 adet "-" karakteri koyuyoruz.

Menümüz;
menu @MP3 {
;listbox'a yüklediğimiz mp3'lerden herhangi birisine "çift tıkladığımız'da" veriyi s/play -p(mp3) komutu ile çalıyoruz.
;tabi ilk önce veriyi $gettok identifier'ı ile ayırıyoruz. Bunu yapmamızın sebebi, satır'daki mp3'ü almak.
;devamında /timer komutu ile "sr" isminde bir timer açarak her saniye başı /sure alias'ını uygulatıyoruz
dclick:splay -p $findfile(%q,$gettok($sline($active,1),1,9),1) | .timersr 0 1 sure
;liste yükle isminde bir popup oluşturuyoruz. Bundan sonrasına dikkat;
;devamında, %q değerine seçilen klasör ismini atıyoruz. Eğer klasör seçilmez ise /echo komutu ile uyarı verdiriyoruz. Eğer liste seçilir ise;
;/aline komutu ile 3 satır "-" karakterini yazıdıyoruz.
;Devamında, %q değerine atanan klasör içindeki tüm .mp3 uzantılı dosyaları $findfile identifier'ının yardımı ile $nopath kullanarak pencere içine yüklüyoruz.
;Yalnız burada "$time($calc($sound($1-).length / 1000),nn:ss)" kısım önemli. Buradaki $1- $findfile identifier'ının bize verdiği tüm *mp3 uzantılı dosyalar.
;$sound($1-).length ile mp3 dosyasının, uzunluğunu alıyoruz. Ve 1000'e bölüyoruz. Son olarak $time identifier'ı ile, bu veriyi dakikaya(nn) ve saniyeye(ss) çeviriyoruz.
;Aradaki $+($chr(9),$chr(9)) kısmı ile 2 adet TAB koyuyoruz. Bunu yapmamızın sebebi, mp3'ler ile dakikaların bitişik olmamasıdır. Burada $str identifier'ıda kullanabilirdik. Niye kullanmadım yahu? Neyse devam edelim :)
Liste yükle:set %q $sdir(C:\,MP3 klasörünü seçiniz.) | if (!%q) echo -aet Liste seçmediniz. | else aline 0 @mp3 - | aline 0 @mp3 - | aline 0 @mp3 - | return $findfile(%q,*.mp3,0,aline 2 @mp3 $nopath($1-) $+($chr(9),$chr(9)) $time($calc($sound($1-).length / 1000),nn:ss))
-
;Burada yukarıda açıkladığım gibi ses limitini giriyoruz(istemiyen girmez)
;$input identifier'ındaki "e" parametresi editbox, "o" parametresi ise, ok butonu demektir.
;Neyse $input'dan aldığımız veri ile 655.35(en düşük ses limit) çarpıyoruz. Ve aldığımız veriyi "/vol -p" sadece mp3ler için işliyoruz.
;tabi siz gidipte "10000" veya "adsasd" sallamayn, zaten belirtmişim 1 ile 100 arasında bir rakam girin diye. He ben bunu yasaklarmıydım? Evet. Ama amac basit bir kod yazmak zaten kısa ve öz .)
Ses ayarı:vol -p $calc(655.35 * $iif($input(1 ile 100 arasında ses limiti giriniz.,eo) == $null,100))
-
;Durdur/devam adında bir popup daha ekliyoruz. Bu popup'a tıkladığınız'da;
;Eğer çalan mp3 durmuş ise, devam edicektir. Eğer pause modun'da değil ise, durdurulacaktır.
;gayet basit yani.
Durdur/Devam:$iif($insong.pause,splay resume,$iif($insong,splay pause))
-
;Burada eğer çalan bir mp3 dosyası var ise, "/splay stop" komutu ile mp3'ü sonlandırıyoruz.
;Buda gayet basit.
Bitir:$iif($insong,splay stop)
-
;Burada gördüğünüz gibi ama listeyi temizlemek.
;Popup'a tıkladığınız'da 2 ile son satır arasındaki tüm satırları /dline komutu ile temizliyoruz.
;Sonrada $input ile temizlendiğini belirtiyoruz. Bunu neden koydum :S Şimdi garip geldi. Sanırım şekil olsun diye koydum.
;Neyse idare edin .)
Listeyi temizle:dline @mp3 $+(2,-,$line(@mp3,0)) | splay stop | .timersr off | $iif($input(Liste temizlendi.,o,Temizlendi) == $true,halt,halt)
-
;Adı üstünde kapat popup'una tıkladığımız'da; sr isminde timer'ı kapatıyoruz.
;Devamında pencereyi kapatıyoruz. Ve son olarak çalan bir mp3 var ise sonlandırıyoruz.
Kapat:.timersr off | window -c @mp3 | $iif($insong,splay stop)
}

/sure aliasımız;
alias sure var %sure = $time($int($calc($insong($insong).length / 1000)),nn:ss),%sure2 = $time($round($calc($insong.pos / 1000),0),nn:ss),%byt = $bytes($file($insong.fname).size,m),%khz = $iif($calc($sound($insong.fname).sample /1000),$calc($sound($insong.fname).sample /1000),YOK.),%kbps = $iif($sound($insong.fname).bitrate,$sound($insong. fname).bitrate,YOK.) | rline 4 @MP3 3 $str($chr(160),15) $+(%sure2,/,%sure) - Kbps: %kbps - Khz: %khz - Boyut: %byt

;OO bu gerçekten önemli. Şimdi beni iyi dinlenemenizi istiyorum.
;İlk olarak %sure variablesine, yukarı'dada anlattığım gibi, çalan mp3'ün uzunluğunu alarak,
;ve bu uzunluğu 1000'e bölerek $time identifier'ı ile süreyi elde ediyoruz.
;Yani burada çalan şarkının süresini meydana çıkartıyoruz.
;%sure2 değerine ise $insong.pos(çalan mp3'ün ilerleme safası)'nı 1000'e bölüyoruz.
;$round ile yuvarlı*****, $time identifier'ı ile yine süreye çeviriyoruz.
;Ama buradaki fark ne? Bu süre devamlı değişiyor/yükseliyor. Biz'de bu süreyi pencereye yazırcaz ama az bekleyin oraya daha gelmedik.
;$bytes identifier'ı ile çalan mp3'ün boyutunu "m" anahtarını kullanarak MB'a uyarlıyoruz. Ki bundan anlamıyacak birşey yok, çok basit.
;Unutmadan bir'de bu veriyi %byt variablesine atıyoruz.
;Devamında, yukarıda söylemiştim ".sample" prop'u khz değerini veriyor diye.
;Ama tabiki cart diye vermiyor, biz bunu 1000'e bölüyoruz o zaman birşeye benziyor.
;Sonra bu khz değerini %khz variablesine atıyoruz. ve devam ediyoruz (sıkıldım bu arada :+)
;Devamında, yine yukarıda söylediğim gibi ".bitrate" prop'u kbps değerini alıyoruz.
;Bu değeri %kbps variablesine atıyoruz. He birde %khz ve %kbps variablelerine değer atarken, $iif kullandım.
;Bazen bu tanıtı alamıyoruz. O yüzde eğer yanıt gelmez ise, olmayan değer yerine "YOK." diye yazdırıyoruz.
;-
;VE son olarak /rline(replace line) komutu ile aldığımız tüm değer'leri 3. satır'a yazdırıyoruz.
;Şimdi diyeceksiniz'ki, "timer niye açtın kardeşim?
;Timer'ı açmasaydım, çalan mp3'ün ilerlemesini göremiyecektiniz. Boşuna açmadık yani.

on close event'imiz;
on ^*:close:@mp3:.timersr off | splay stop
;Gayet basit, @mp3 penceresi kapandığında, "sr" isminde timer'ı kapatıyoruz. Ve çalan mp3'ü sonlandırıyoruz.
;Bunu yapmazsak mp3 çalmaya devam eder. Ve timer'a atadığımız /sure komutu her saniye tekrarlar, kafayı yersiniz.

Dersimiz ve kod açıklamamız burada sona ermiştir.
Umarım birşeyler öğrenebilirsiniz.
Bu arada mp3 çalar'ı demek için; /mp3player yazınız.
__________________
C/co/cod/code^man.
Alıntı ile Cevapla
Sponsored Links
Cevapla

Seçenekler

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 Açık
Pingbacks are Açık
Refbacks are Açık



Yasal Uyarı

    5651 sayılı yasada belirtilen "Yer Sağlayıcı" olarak hizmet sunmaktadır. İlgili yasaya göre site yönetiminin tüm içerikleri kontrol etme yükümlülüğü yoktur. Bu sebep ile sitemiz, uyarıları dikkate alarak yasa dışı paylaşımlar hakkında gerekli işlemleri yapmaktadır. Oluşabilecek yasal sorumluluklar üyelerimize aittir. Gerekli şikayet bildirimleri yapabilmek için "burayı" tıklayarak gerekli alanları doldurup yapabilirsiniz.
mIRCScripting©
Powered by vBulletin®
Copyright © 2000-2015, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1

1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76