Tarih: 06-01-2008, 19:44
Kanal belirlediğiniz flood saldırısında, kanalı belirlediğiniz süre ile
+m moduna alıp,
temizle.mrc dosyasındaki verilerle kanalı temizleyip tekrar kanalaı açmak için yazmış olduğum bir kod.
Kod:
alias -l fld {
hinc $+(-mu,$1) fld $+($3,½,$4,$encode($5)) 1
if ($hget(fld,$+($3,½,$4,$encode($5))) >= $2) return $true
else return $false
}
alias temizle {
var %t 1
while %t <= $lines(temizle.mrc) {
msg $1 $read(temizle.mrc,%t)
inc %t
}
}
on @*:text:*:#: {
if $nick isreg # && $fld(10,3,#,$nick,$1-) {
ban -k # $nick 2 sebeb.
mode # +m
temizle #
msg # Kanal güvenlik amaçlı 20 sn vs.
if !$timer($+(#,½,fld)) {
$+(.timer,½,#) 1 20 mode # -m
.timer 1 21 msg # Kanal açıldı.
}
}
} /fld alias'ının kullanımı; $fld(saniye,limit,#kanal,text-own,mesaj)
Ben örnek olarak; 10 saniye içerisin'de, aynı text 3 defa tekrar edilirse, gördüğünüz işlevleri sırası ile gerçekleştirir.
Eğer aynı yazının tekrar'ı değilde, belirlediğim saniye içerisin'de belirlediğim satır limit'i aşılırsa(hızlı text) işlev yapmak istiyorum diyorsan;
/fld alias'ını aşşağıdaki şekilde değiştir;
Kod:
alias -l fld {
hinc $+(-mu,$1) fld $+($3,½,$4) 1
if ($hget(fld,$+($3,½,$4)) >= $2) return $true
else return $false
}
Ve kullanım şeklini verdiğim şekilde yap; $fld(saniye,limit,#kanal,text-own)
Örneğin; $fld(10,5,#,$nick)
10 saniye içerisinde, 5 satır text gönderen'e işlev yapar. Kanal'ı temizler vs.