Dikkatimden kaçarak yazdığım kodda hata yapmışım..
sopları muaf tutabilmek için if $nick issop $chan kullanılmaz. Çünkü text eventinde kanala yazı yazan nick konumları (
&, ~ , . ) prefixlerini görmesi için regex ile yazılması gerekiyor.
soplar unrealde
& olarak prefix alıyor o yüzden
if $regex($nick($chan,$nick).pnick,/^(&)/) { halt }
olarak gösterip işlemi durdurman gerekior.
Fakat Unreal kurulurken (
&, ~ , . ) bu prefix özellikleri kurulmadı ise direk
if ( $nick isop $chan ) { işlem } şeklinde onları muaf tutabilirsin.
Ayrı ayrı nickleri muaf tutmak istersen ( özel nickler )
var %muaf =
1
var %muafnicks =
nick1,
nick2,
nick3,
nick4,
nick5
if %muaf && $istok(%muafnicks,$nick,44) { halt }
kullanmalısın.
1 yazan yeri
0 yaparsan kod çalışmaz.
Yani 1 özel nick korumasını açar 0 kapatır.
Anladığım kadarı ile sen kanalda belirttiğin harf sınırını aşanı kanaldan banlamak istiyorsun. Opları ve sopları bunun yanında belirttiğin nickleri muaf tutup bu kurala uymayan nickleri banlamak istiyorsun istediğin koda gelince.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
on @1:TEXT:*:#zurna: {
var %muaf = 1
var %muafnicks = nick1,nick2,nick3,nick4,nick5
if %muaf && $istok(%muafnicks,$nick,44) { halt }
if ( $nick isop $chan ) { halt }
if $regex($nick($chan,$nick).pnick,/^(&)/) { halt }
if $nick != $me {
if $len($1) >= 150 {
ban -k $chan $nick ban sebebin
privmsg $chan .temizle
return
}
}
}
Bu şekilde dene çalışır.
150 olarak belirttiğim yer kişinin kanalda yazacağı maksimum harf sayısını belirtir. Oynama yapabilirsin.. Fakat bu koruma harf sınırı korumasıdır. Uzun harf koruması değildir.
uzun harf koruması istiyorsan
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if $len($1) >= 150 {
olan yeri
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if $regex($1-,/([[:print:]])\1\1/gi) >= 10 {
olarak değiştir umarım açık olarak anlatabilmişimdir.