Böylesi bir fikrin oluşması adına sevindiğimi belirtmeliyim,ilginize teşekkür ederim.Güzel bir istekle karşı karşıyayız, /list komutunun karşılığını farklı bir bakış açısıyla görmek adına ben kısa bir çalışma hazırladım.Kod içerinde hangi argümanları kullanmamız gerektiğini açıklayıcı bir şekilde anlattım.Dilerim yeni fikirler oluşturmamıza vesile olur.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias liste {
;Liste isminde bir kısayol (alias) oluşturdum.
;Önce varolan belgeleri her ihtimale karşı siliyorum.
.remove kanallar.txt
.remove kanalbilgi.txt
;Bir değişken lazım olacak ola ki normal /list çektiğimde bu kodla karışmasın
;bu değişkeni atamazsam /list komutunu kendi başına kullanmamda birtakım sıkıntılar meydana gelebilir.
set -e %dfzyn open
;/list komutunu uygula.
list
}
raw 321:*:{
;/list komutu ile alakalı 321 rawı
;Eğer değişkenimiz varsa gelen 321 rawında "Kanallar listeleniyor..." yazısını durdur
if %dfzyn {
haltdef
}
}
raw 322:*:{
;/list komutu ile alakalı 322 rawı
;Eğer değişken mevcutsa
if %dfzyn {
;"Channels List'e aktarımı durdur.
haltdef
; $2 burda #kanal oluyor.Bunu rastgele bir renk seçerek belgeye yazdırıyoruz.
write kanallar.txt $+(,$r(1,14),$2)
;Listbox'ta #kanal tıkladığımızda bize lazım olacak $2 değerini yine yazdırıyoruz ki çağrışımı burdan alacak.
;Aralardaki $lf ile her bilgiyi yeni satıra aktarıyorum. $3 Kullanıcı sayısı , $4 Mode , $5 ve sonrası topic kısmı.
write kanalbilgi.txt Kanal: $2 $lf Kullanıcı Sayısı: $3 $lf Kanal Modeleri: $4 $lf Kanal Topici: $5-
}
}
raw 323:*:{
;/list komutu ile alakalı 323 rawı
;Eğer değişken mevcutsa
if %dfzyn {
;"Kanallar listelendi" yazısını durdur.
haltdef
;"Channels List" penceresini kapa
window -c "Channels List"
; 28 haneli Listbox'u olan ve Tahoma 12 font karakterinde olan @Kanallar isimli pencereyi oluştur
window -al18 @Kanallar Tahoma 12
; Kanallar.txt'ye rastgele renklerle aktarılan kanal isimlerini Listbox'a dök.
loadbuf -l @Kanallar kanallar.txt
;Belirtilen metinleri @Kanallar penceresine metin olarak sun,bilgilendirme mahiyetinde.
aline @Kanallar 4*1 Tüm kanallar listelendi.
aline @Kanallar 4*1 Kanallar hakkında bilgi almak için listeden kanal seçiniz...
;Değişkeni artık siliyoruz.İşlemimiz bitti.
unset %dfzyn
}
}
menu @Kanallar {
;@Kanallar penceresinin Listbox'unda sol click yapıldığı takdirde
lbclick:{
;Renkli #kanal ismini renklerinden arındırıp yeni bir değişkene #kanal ismini yalın haliyle atıyorum.
set -e %dify $strip($fline(@Kanallar,*,$sline(@Kanallar,1).ln,1).text)
;Her satır için bir ayıraç kullanalım.
aline @Kanallar $str(_,40)
;Eğer Listbox'ta sol click ile tıkladığım #kanal ismi biraz önce kanalbilgi.txt belgesine aktardığım ($2,$3,$4,$5-)
;verilerden #kanal ile uyuşuyorsa
if $read(kanalbilgi.txt,r,$+(\x2Kanal.\x2\s,%dify,\s)) {
;Uyuşan veri satırından başla ve 3 satır daha bilgi ($3,$4,$5-) içeren kısmını uzun satırları sığdırarak @Kanallar penceresine dök.
loadbuf $+($readn,-,$calc($readn +3)) -pi @Kanallar Kanalbilgi.txt
}
}
}
on *:close:@Kanallar:{
;Eğer @Kanallar penceresini kapatırsam ilgili belgeleri ve atadığım değişkeni sil.
.remove kanallar.txt | .remove kanalbilgi.txt | unset %dify
}
Kodu scriptinizin remote bölümüne olduğu gibi ekliyebilirsiniz,herhangi bir yeri silmenize gerek yoktur.
Kullanım:
/liste
Görünüm:
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.