|
|
LinkBack | Seçenekler | Stil |
#1
|
|||
|
|||
$prot() Kanal için koruma identiferı (tekrar,flood,caps,uzun yazı,küfür,reklam vs.)
Evet aşağıdaki $prot() identiferı kanalınız için bir koruma identifierıdır. Kullanımı çok basit.
İçinde olan korumalar;
Örnek: $prot(repeat,#ircforumlari,el33t,selam naber,2,5) bu identifierı on TEXT eventi içinde kullandığımızda 5 saniye içinde 2 kez selam naber yazısını tekrar edersem bu identifier $true olacaktır, yani şöyle kullanabiliriz: on @*:text:*:#:if $prot(repeat,#,$nick,$1-,2,5) { kick # $nick Tekrar etme! }
Örnek: on @*:text:*:#:if $prot(flood,#,$nick,3,4) { kick # $nick Flood yapma } Yukardaki kod 4 saniye içinde 3 satır yazı yazanı kanaldan kickler.
$prot(caps,mesaj,oran) Örnek: on @*:text:*:#:if $prot(caps,$1-,80) { kick # $nick Büyük harf kullanma! } Yazdığı yazının %80'inden fazlası büyük harf olan kişi kanaldan atılır.
Örnek: on @*:text:*:#:if $prot(long,$1-,150) { kick # $nick Uzun yazı yazma! } 150 karakterden fazla karakter içeren mesaj yazarsa kanaldan atılır
Örnek: on @*:text:*:#:if $prot(ctrlcode,$1-,15) { kick # $nick 15den fazla kontrol kodu kullanma! } 15'den fazla kontrol kodu kullanan kanaldan atılır.
Örnek: on @*:text:*:#:if $prot(bword,$1-,küfürler.txt) { kick # $nick Küfür etme! } mIRC'de küfürler.txt dosyası oluşturup alt alta wildcardda kullanarak istediğin küfürleri eklediğinde eğer kişinin yazdığı yazıda bunlardan biri varsa kanaldan atılır. Küfürler.txt dosyasına ekleme şekli şöyle olmalı: *sex* *fuck* *anan?* gibi..
Aynı küfür koruması gibi çalışır. on @*:text:*:#:if $prot(spam,$1-,spam.txt) { kick # $nick Reklam yapma! } spam.txt dosyasına wildcard kullanarak eklenen kelimeleri içeren mesaj yazan kanalan atılır.
Belirlenen sayıdan fazla noktalama işaretlerini kullananları kontrol etmek için identifierın punc özelliğini kullanabilirsiniz. Noktalama işaretleri: ?!:;,. on @*:text:*:#:if $prot(punc,$1-,20) { kick # $nick Bu kadar fazla noktalama işareti kullanma! } Yukardaki örnekte op olduğunuz kanalda 20'den fazla noktalama işareti kullananlar kanaldan atılır. Ve işte kod: (Remote'a (ALT+R) koyuyoruz.) alias prot { if !$istok(repeat flood caps long ctrlcode bword spam punc,$1,32) { return $false } goto $1 :repeat var %÷ = $+(%,repeat.,$2,.,$3,.,$encode($4,m)) inc $(%÷,1) if (!$timer($gettok(%÷,1,37))) { $+(.timer,$gettok(%÷,1,37)) 1 $6 unset $(%÷,1) } if ($(%÷,2) >= $5) { unset $(%÷,1) | return $true } else { return $false } :flood var %µ = $+(%,flood.,$2,.,$3) inc $(%µ,1) if (!$timer($gettok(%µ,1,37))) { $+(.timer,$gettok(%µ,1,37)) 1 $5 unset $(%µ,1) } if ($(%µ,2) >= $4) { unset $(%µ,1) | return $true } else { return $false } :caps var %e = $remove($strip($2),$chr(32)) return $iif($iif($len(%e) >= 10,$calc($regex(%e,/[A-ZÄÖÜĞÇİ]/g)/$len(%e)*100),0) >= $3,$true,$false) :long return $iif($len($strip($2)) >= $3,$true,$false) :ctrlcode return $iif($regex($2,/[[:cntrl:]]/g) >= $3,$true,$false) :bword var %· = 1 | while $read($3,%·) { if $v1 iswm $2 { return $true } | inc %· } | return $false :spam var %º = 1 | while $read($3,%º) { if $v1 iswm $2 { return $true } | inc %º } | return $false unc return $iif($regex($2,/([?!:;,\.])/g) >= $3,$true,$false) } Umarım işinize yarar, istediğiniz gibi değiştirip, kullanmakta özgürsünüz. İsteyen ben yazdım diyebilir. NOT: Şimdilik aklıma gelen korumalar bunlar, önerileriniz ve isteklerinizi belirtiniz. Eğer hepsini bir on TEXT eventi içinde kullanmak isterseniz bir örnek: (küfürler.txt ve reklamlar.txt'i oluşturmayı unutmayın.) ;Op olduğum kanalda çalışması için on @*:text:*:#:{ ;Eğer kanala yazı yazan nick op/voice/halfop değilseif ($nick isreg #) { ;150 karakterden fazla karakter kullanan kicklenirif $prot(long,$1-,150) { kick # $nick uzunyazı(>150) } ;15'den fazla kontrol kodu kullanan kicklenirelseif $prot(ctrlcode,$1-,15) { kick # $nick controlcode(>15) } ;%80 oranından fazla caps kullanan kicklenirelseif $prot(caps,$1-,80) { kick # $nick caps(>%80) } ;5 saniye içinde 2 tekrar yapan kicklenir.elseif $prot(repeat,#,$nick,$strip($1-),2,5) { kick # $nick tekrar(5sn:2) } ;1 saniye içinde 3 satır yazan kicklenir. elseif $prot(flood,#,$nick,3,1) { kick # $nick flood(1sn:3) } ;küfürler.txt'den herhangi bir kelimeyi kullanan kicklenir elseif $prot(bword,$1-,küfürler.txt) { kick # $nick küfür } ;reklamlar.txt'den herhangi bir kelime kullanan kicklenir elseif $prot(spam,$1-,reklamlar.txt) { kick # $nick reklam } ;30'dan fazla noktalama işareti kullanan kicklenir elseif $prot(punc,$1-,30) { kick # $nick noktalamaişareti(>30) } } } Alintidir.. |