Tekil Mesaj gösterimi
Alt 05 Ocak 2008, 21:21   #2
Çevrimdışı
L4roXyL
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Dosyadan okutmalı bazı korumalar




1- Madem atmak için, mIRC tabanlı olan /ban komutunu kullanıyorsun, tekrar /kick kullanmak gereksiz.
Örnk: /ban -k # $nick (0-9) sebeb.

2-
on @*:text:*:#:{ if $nick !isop # { if $read(kufur.txt,w,$1-) { ban # $nick 2 | kick # $nick Kötü söz sahibine aittir. } } }

Bu kullanım yanlış ve kesinlikle çalışmaz.
Bunu defalarca anlattım; $read'ın w parametresi, matchtext kısmına yazılan text'i, belirtilen dosyadaki tüm satırlarda arar. Senin yapman gereken ise, dosya'daki tüm satırları yazılan text bütününde aramak.
Yani mesela diyelim;
Kufur.txt dosyasında "********" kelimesi var.
Kullanıcı kanal'da, "ne haber lan ********ler sizi" yazdığını varsayalım.
Direk bu şekilde dönecektir; $read(kufur.txt,w,ne haber lan ********ler sizi)
E dolayısı ile işlev yapmıyacaktır. Eğer yazılan ilk ve tek kelime "********" ise işlev yapar.
Önceden bende senin kullandığın gibi kullanıyordum. Hatalı olduğumu ve $read identifier'ının mantığını tam olarak anlayınca /while kullanmaya karar verdim.

Mesela bir alias oluşturabilirsin;
alias kfr var %o = 1 | while %o <= $lines(dosya.txt) { $iif($regex($1-,$read(dosya.txt,%o)),return $true) | inc %o } | return $false
on @*:text:*:#:if $nick isreg # && $kfr($1-) { ban -k # $nick 2 Sebeb. }

Veya alias kullanmadan direnk event içerisin'de işlev yaparsın;
on @*:text:*:#:if $nick isreg # { var %k = 1,%kk = $lines(dosya.txt) | while %k <= %kk { echo -a $read(dosya.txt,%k) | if $+(*,$read(dosya.txt,%k),*) iswm $1- { ban -k # $nick 2 Sebeb. | return $true } | inc %k } | return $false }

Bayağı bu bölümde takılıyorsun, senden daha iyi şeyler bekleniyor.


Konu L4roXyL tarafından (06 Ocak 2008 Saat 17:21 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet