Konu: koruma
Tekil Mesaj gösterimi
Alt 10 Ekim 2007, 23:02   #3
Çevrimdışı
L4roXyL
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: koruma




İlk defa çok basit bir koruma için bu kadar kasılmış bir kod görüyorum, alias içinde alias kullanılmış.
İşte buyur büyük harf koruman ve açıklaması;

Bu büyük harf koruması(seninki);
alias capskoruma {
var %text = $strip($remove($1-,$chr(32)))
set %buyukler $len($removecs(%text,a,b,c,ç,d,e,f,g,ğ,h,ı,i,j,k,l ,m,n,o,ö,p,q,r,s,ş,t,u,ü,v,w,x,y,z,:,1,2,3,4,5,6,7 ,8,9))
var %full.line = $len($strip($remove(%text,$chr(32))))
var %percent = $calc(%buyukler / %full.line)
if (%buyukler >= %buyukno) && (%buyukler >= 10) { set %kaps [ $+ %buyukler Büyük Harf $+ ] | capsceza | unset %text | halt }
if (%percent >= $calc(%capsoran /100)) && (%buyukler >= 10) { set %kaps [ $+ %percent CAPS Oranı $+ ] | capsceza | unset %text }
}

Bu uyarı için yazılan kod(seninki);
alias capsceza {
if ($group(#capsuyar).status != on ) { capskick }
set %uyarilacak.nick $nick
set %i 0
:check
inc %i 1
set %dnick nick $+ %i
set %incelenen.nick $readini system/ini/uyarilar.ini caps %dnick
if (%incelenen.nick == $null) { writeini system/ini/uyarilar.ini caps %dnick %uyarilacak.nick | capsuyar | goto son }
if (%incelenen.nick == %uyarilacak.nick) { remini system/ini/uyarilar.ini caps %dnick | uyarildi | goto son }
else { goto check }
:son
set %i 0 | unset %incelenen.nick | unset %uyarilacak.nick | unset %dnick
}
Bu işlev alias'ı(seninki);
alias capskick { kb $nick %capskick }
Buda uyarı yapması gereken alias(seninki);
alias capsuyar { msg # [UYARI:] $nick $+ , %capsuyar }
Buda uyarı sebebi(seninki);
/set %capsuyar Lütfen BÜYÜK harf kullanmayınız, Aksi Taktirde Kanaldan Uzaklaştırılacaksınız!.


Bu kadar uzun ve saçma bir kod kullanmak yerine şöyle birşey yazılabilir.
Bir alias(bkrm) oluşturdum, işini fazlası ile görecektir.

alias bkrm {
if $len($1) >= $2 && $int($calc($regex($1,/[A-ZÁ-ÙÄ]/g)/$len($1)*100)) >= $3 {
inc $+(-eu,$4) $+(%,bk,#,½,$nick)
if $($+(%,bk,#,½,$nick),2) <= $5 { inc $+(-eu,$4) %1 | msg # $+($nick,:) $len($1-) karakterlik yazıda $3 büyük harf miktarını aştınız. Uyarı %1 }
if $($+(%,bk,#,½,$nick),2) >= $6 { return $true }
else { return $false }
}
}

Kullanımını açıklıyorum:
Alias kullanımı;
$bkrm(yazı,yazı-miktarı,yüzde-miktarı,tekrar-süresi,uyarı-miktarı,toplam-limit)
Yani şöyle açıklıyayım sana;
Yazı: $1-
Yazı miktarı ve yüzde miktarı: Yani mesela 100 karakterlik bir cümlenin içerisinde işlev yapması için, 100 yazıcaksın. Bunun mantığı şudur; 100 yazdın diyelim, yüzdelik miktarını'da 50 olarak belirledin. 100 karakter ve fazlası bir yazı algılandığında eğer içerisinde % 50 büyük harf varsa işlev yapacaktır.
Tekrar süresi: Belirlenen büyük harf kaç saniye içerisinde kullanılırsa uyarı ve işlev yapsın.
Uyarı miktarı: Bak bu özelliği yeni düşündüm. Yazdığın miktar kadar mesela diyelim, 5 yazdık. Belirlenen saniye içerisinde büyük harf tekrar sayısı belirlediğin limiti eşdeğer veya aşarsa, 5'e gelene kadar uyarı yapacaktır.
Toplam limit: Buraya yazıcağın limit tekrar limitine yazıcağın limit'den 1 adet fazla olcak. Yani tekrar limitine 3 yazdın diyelim, kullanıcı 3 defa uyarılacak. Toplam limit'e 4 yazıcaksınki 4. seferde kullanıcı kanaldan banlansın/kicklensin vs.

Kullanım olarak örnek vereyim.
on *:text:*:#: { if $bkrm($1-,25,60,15,2,3) { ban -k # $nick 2 sebebin. } }
Yani açılımı; $1-(yazılan text) 25(25 karakter veya fazlası ise) 60(ve bu yazıda % 60 oranında büyük harf var ise ve) 15(15 saniye içerisinde tekrar yaparsa) 2(2 defa uyar) 3(3. defa'da kanaldan banla)

Umarım anlamışsındır.
Bu arada güzel bir kod oldu, işini görecektir.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet bizimmekan sohbet odaları