Tekil Mesaj gösterimi
Alt 05 Şubat 2017, 15:16   #5
Çevrimdışı
Alper
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: küfür koruması regex|wildcard gelişmiş




CoCoRiCo Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
[Güncelleme]
Bir öncekinin geliştirilmiş hali..
Dialog pencere vs. yapmaya zaman bulamadım bulursam yaparım..

Kullanımı:
REGEX eklemek için
/Bw +r (g[o0]g*[Il][e3]\sy[a4]z) zline
silmek için
/Bw -r (g[o0]g*[Il][e3]\sy[a4]z)

WILDCARD eklemek için
/Bw +w *g??gle* kickban
silmek için
/Bw -w *g??gle*

ekleyeceğiniz kelimenin eşleşebileceği bir kayıt varmı kontrol için
/bw ? google
şeklinde kontrol edebilirsiniz.


yasaklayacagınız kelimenin tipini ve uygulanacak cezayı opsiyonel ekleyebilirsiniz
"google" kelimesini zline atmak isteyebilir ancak "denyo" kelimesini yalnızca banlamak isteyebilirsiniz.
her kelime için aynı ceza yerine kelimelerin tipine göre ceza uygulayabilirsiniz bununla ilgili kısaltmalar
yada tek kelimelik özel kambinasyonlar yapababilirsiniz (Kickban yerine KB gibi) ancak entegre ederken
bu kelimeyi dikkate almalısınız (uygulama kodundaki mavi satırlar)
mesela eklediginiz kelimede hem kickban hem kline hemde nick yasaklayacaksınız.. buna göre ExData için bir kelime
belirlediniz. KB_K_Q
buna göre koşullandırabilirsiniz.
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
if %p` == KB_K_Q { ban -k # $nick sebep! kline $nick sebep! qline $nick sebep! }

eğer hangi eşleşme sebebiyle atıldığını görmek isterseniz de

"echo # $nick %p~ kelimesinden dolayı atıldı"
gibi %p~ ile görüntüleyebilir yada sebeplere ekleyebilirsiniz..

geçerli ExData KickBan'dır b:def fonksiyonundan değiştirilebilir.

diyelimki herhangi bir uygulama tipi kullanmayacaksınız..
standart bir ceza yönteminiz var..
bu durumda da
if ($bw($1-).?) { ban -ku600 # $nick 2 küfür yasaktır! }
kodu yeterli olacaktır..

Uygulama örnegi;
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:TEXT:*:#: { if $me isop $chan { if ($bw($1-).?) { var %p~ $gettok($v1,-1,32),%p` $gettok($v1,1,32) ban -ku600 # $nick 2 küfür yasaktır! $v1 if %p` == kickban { ban -ku600 # $nick 2 küfür yaraktır! echo 4 # $nick $qt(%p`) yasaklı kelimeyi kullandı! } } } }

Badword Kodu:
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
on *:start: b:load alias b:def return $iif($1,$1,KickBan) alias b:save hsave br~ -i badword.db | hsave bw~ -i badword.db alias b:load { if !$hget(bw~,0) || !$hget(br~,0) { hmake bw~ 10000 | hload bw~ -i badword.db hmake br~ 10000 | hload br~ -i badword.db } } alias bw { if $regex($1,/([-+][wr])/) && $2 && $b:def($3) { if $1 == +r { if $hget(br~,$2) { echo 4 *** Bu Kelime ekli | return } else hadd -m br~ $2 $b:def($3) | echo 3 ** Kelime eklendi | return } if $1 == -r { if $hget(br~,$2) { hdel br~ $2 | echo 4 ** Kelime silindi | return } else echo 4 ** Kelime bulunamadı | return } if $1 == +w { if $hget(bw~,$2) { echo 4 *** Bu Kelime ekli | return } else hadd -m bw~ $2 $b:def($3) | echo 3 ** Kelime eklendi | return } if $1 == -w { if $hget(bw~,$2) { hdel bw~ $2 | echo 4 ** Kelime silindi | return } else echo 4 ** Kelime bulunamadı | return } b:save } if $1 == ? { noop $hfind(br~,$2,0,R,echo -a Regex: $1-) | noop $hfind(bw~,$2,0,W,echo -a WildCard: $1-) } elseif $prop == ? { var %r~ = $gettok($1-,0,32) while %r~ { if ($hfind(br~,$gettok($1-,%r~,32),0,R,var %i $1)) return $hget(br~,%i) %i | dec %r~ } var %w~ $gettok($1-,0,32) while (%w~) { if ($hfind(bw~,$gettok($1-,%w~,32),0,W,var %i $1)) return $hget(bw~,%i) %i | dec %w~ } } else { echo 5 *** hatalı ve eksik parametre echo 5 * /bw [+|-][W|R]? (wildcard|regex|kontrol) [wildcard|regex|text] <opsiyonel ExData: [Kick|kickban|zline|glizne|sqline..]> echo 5 * orn: /bw +r ([pb][i!İı1][cç\[]) echo 5 * orn: /bw +r (\b[pb][i!I1İü][çc]\b) ban echo 5 * orn: /bw +w *bitch* kickBan echo 5 * orn: /bw +w *g0ogle* kill echo 5 * orn: /bw ? bitch } }


Merhaba,

korumayı denediğimde açılışta; ..ScRipT\-i' (line 21, KufurZline) hatası alıyorum açtıktan sonra yani sunucuya girdikten sonrada; * Invalid parameters: $hfind (line 49, KufurZline)

line 21 : hmake bw~ 10000 | hload bw~ -i badword.db
line 49 : while %r~ { if ($hfind(br~,$gettok($1-,%r~,32),0,R,var %i $1)) return $hget(br~,%i) %i | dec %r~ }

dosya oluşturamıyor diye düşündüm dosya oluşturdum attım scriptin klasörünü yine olmadı nerde eksiklik var çözemedim.

Teşekkürler

 
Alıntı ile Cevapla

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