Konu: Şiir Botu
Tekil Mesaj gösterimi
Alt 13 Temmuz 2011, 23:36   #23
Çevrimdışı
Difuzyon
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Şiir Botu




hasan86 Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:!şiir*:#:{ var %: = $findfile($qt($mircdirşiirler),*.txt,0) if !$2 { msg # Toplam $+(,%:,) tane şiir mevcut, rasgele bir şiir için !şiir random yazınız, %: şiirden herhangi biri için !şiir <şiir no> yazınız. } elseif $2 == random { play -n $nick $qt($findfile($qt($mircdirşiirler),*.txt,$r(1,%:)) ) 1500 } elseif $2 isnum $+(1-,%:) { play -n $nick $qt($+($mircdirşiirler,\,$2,.txt)) 1500 } | else { msg # Üzgünüm, toplam $+(,%:,) tane şiir var. } }

Teşekkürler kodda sorun yok fakat şöyle bir problem var Aynı anda iki kişi şiir isteğinde bulundumu mirc.exe hata veriyor bunu onleye bilirmiyiz ? Difuzyon ?

orneğin iki kişi aynı anda !şiir 5 !şiir 10 yazdımı mirc.exe hata veriyor. zamanlama ile alakalımıdır çözümü varmıdır teşekkürler şimdiden ilgilendiğin için.

mirc.exe'nin vermiş olduğu hatayı düzeltemem ancak aynı anda ikinci bir şiir isteğinin önüne geçmek için :

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:text:!şiir*:#:{ if $play(1) { notice $nick Sırada okunan şiirin bitmesini bekleyin | return } var %: = $findfile($qt($mircdirşiirler),*.txt,0) if !$2 { msg # Toplam $+(,%:,) tane şiir mevcut, rasgele bir şiir için !şiir random yazınız, %: şiirden herhangi biri için !şiir <şiir no> yazınız. } elseif $2 == random { play -n $nick $qt($findfile($qt($mircdirşiirler),*.txt,$r(1,%:)) ) 1500 } elseif $2 isnum $+(1-,%:) { play -n $nick $qt($+($mircdirşiirler,\,$2,.txt)) 1500 } | else { msg # Üzgünüm, toplam $+(,%:,) tane şiir var. } }



----------

Heartbroken Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Selamlar.

belge numarası yerine belge adı çağırtmayı hangi komut yerine getirir .sanırım burda isnum komutu belge nosunu yakalama işlevi görüyor. belgeyi ismiyle çağırtmak için-seçmek için bir komut var mı?

şöyleki ben bunu şiir vs okutmak için değil Kur'an sureleri-meallerini satır satır belli aralıkla kanala postalayacak şekile getirmek-düzenlemek niyetiyle ilgileniyorum..

Kur'an meal txt.dosyamı hazırladım.ancak burdaki sureleri sure adıyla çağırtmam gerek nosuyla olmaz. yani komut !dua Bakara gibi bir komutla her bir dua için ayrı ayrı oluşturup mircdir'e attığım klasör içindeki ayrı ayrı Surelri tanımlayıp bulup istenen dua.txt ini satır satır belli aralıklarla kanala okutabilmek amacım..

satırların belli zaman aralıklarıyla postalanması konusuda önemli Bakara gibi oldukça uzun surelerin aktarımı sorun olmaması açısından bu gerekli sanırım.. tcl kodu bulup düzenledim buna göre dualar txt ini bunun okuyabileceği şekle göre düzenlemeyi bitirmeye uğraşıyorum .ancak işleyiş bu anlayıştan daha farklı olacak..

bunu mirc script kodu olarak yapabilmek için txt belge nosundan değil txt isminden buldurmanın -çağıtmanın yolu nedir ? yada öyle bir yol var mı?

Evet böyle bir yol var.Burda kullanılacak materyal sorgusu $isfile identifier'idir.Anlaşılacağı üzere "Bu dosya mıdır?" ibaresine denk gelir.
Örnek kullanım: //echo -a $isfile(Alfabe.txt) veya //echo -a $isfile(Hece\Alfabe.txt)
En alt satırda ki if sorgusundaki isnum operatörü yerine kullanılması gereken :
if $isfile(Sureler\Bakara.txt) { ...

identifier'in karşılığı var mı ($true) yok mu ($false) şeklinde direkt bir sorgu alabiliriz.Text olayı esnasında "!dua Bakara" $2 kısmının Bakara kelimesine denk gelecek şekilde kullanılması ve $isfile identifieri içerisinde (klasör içinde metin belgelerini toparlayacağını belirtmişsin) Klasör\Belge.txt şeklinde olması gerektiğini ayrıca $2'den $isfile içerisinde sorgulatırken "$isfile(Klasör\,$+($2,.txt))" $+(...) birleştiricisinden faydalanılmasının önemini belirtmeme sanırım gerek kalmadı : )

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver