Belirttiğin şekilde bir sonuç aldıysan muhtemenelen hedef olarak belirttiğimiz dosyanda sadece nickler yok ya da düzgün şekilde ekleme yapmadın.
öneririm. Zira hazırladığım yeni kod senin istediğin dosya yolunda badnick.txt oluşturarak oradan okuyacak.
Diyalogu açıklamakla başlayayım; üç sütun var. İlki badnick olarak ekleyeceğin kelimeler. Bu kelimeler mutlaka düz ve eksiz olmalı. Mesela nickinin içinde
yazmalısın. *ist* gibi yazarsan kod çalışmaz. Ama *ist* yazdığındaki gibi hem direk olarak nicki
geçen kullanıcıyı etkiler. Tek dikkat etmen gereken husus bu. Gerçi dalgınlığına gelir de unutursun diye diyalogda ekleme yaparken * karakterini silmeyi de ayarladım.
İkinci sütuna ekleyeceğin kanallar taramanın aktif olacağı kanallardır. (Ama tabii ki hala manuel olarak herhangi başka bir kanala
Üçüncü sütuna ekleyeceğin kanallar da sajoin yapmayı istediğin cinsellik kanalların olacak. Bu sütuna eklediğin kanallar kanaldan akick ya da mode/kick ile atılan kişilerin çekileceği kanallar olacak.
Diyalog üzerinden ban sebebini ve operken sajoin seçeneğini ayarladıktan sonra taraman kullanıma hazır olacak.
Kolay ulaşım için kanal genelinde sağ klik menüsüne tarama ve tarama ayarları menüsünün kısayolunu ekledim. Oradan ulaşabilirsin diyaloga ya da tarama yaptırabilirsin bulunduğun kanala.
Kanala girişinden 3 sn. sonra taramayı başlatmasını ayarladım. Bazen 1-2 saniyeyi alabiliyor CS'den OP almak. Bu süreyi kendin de değiştirebilirsin. Kod içerisinde yeşil olarak işaretledim.
Umarım bu sefer istediğin gibidir. ;
Kolay gelsin.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
dialog badnick {
title "BadNick Tarama"
size -1 -1 237 150
option dbu
edit "", 1, 10 15 50 10
list 2, 10 25 50 85, size extsel
box "BadNick", 3, 5 5 73 110
button "+", 4, 63 15 10 10
button "-", 5, 63 30 10 10
box "Tarama Kanalları", 6, 82 5 73 110
list 7, 87 25 50 85, size extsel
edit "", 8, 87 15 50 10
button "+", 9, 140 15 10 10
button "-", 10, 140 30 10 10
box "Cinsellik Kanalları", 11, 159 5 73 110
list 12, 164 25 50 85, size extsel
button "+", 13, 217 15 10 10
button "-", 14, 217 30 10 10
edit "", 15, 164 15 50 10
check "Opersem tarama kanallarında DEOP durumumda akick yerine 'mode/kick' ile ban atılsın.", 16, 5 135 225 10
text "Ban Sebebi:", 17, 5 121 30 8
edit "", 18, 35 120 197 10
}
on *:dialog:badnick:init:*:{
if $file(system\badnick.txt) {
var %x = 1 | while %x <= $lines(system\badnick.txt) {
didtok $dname 2 32 $read(system\badnick.txt),%x) | inc %x
}
}
$iif(%bn_kanal,didtok $dname 7 44 %bn_kanal)
$iif(%bn_cinsellik,didtok $dname 12 44 %bn_cinsellik)
$iif(%bn_oper,did -c $dname 16)
$iif(%bn_sebep,did -a $dname 18 %bn_sebep)
}
on *:dialog:badnick:sclick:4,5:{
set %bn_list 1
if $did == 4 { did -a $dname 2 $remove($did(1),*) | did -r $dname 1 }
if $did == 5 {
if $did(2,0).sel > 1 { var %y = $did(2,0).sel | while %y { did -d $dname 2 $did(2,%y).sel | dec %y } }
else { did -d $dname 2 $did(2).sel }
}
}
on *:dialog:badnick:sclick:9,10,13,14:{
if $did == 9 { did -a $dname 7 $iif($left($did(8),1) != $chr(35),$+($chr(35),$did(8)),$did(8)) | did -r $dname 8 }
if $did == 10 {
if $did(7,0).sel > 1 { var %y = $did(7,0).sel | while %y { did -d $dname 7 $did(7,%y).sel | dec %y } }
else { did -d $dname 7 $did(7).sel }
}
if $did == 13 { did -a $dname 12 $iif($left($did(15),1) != $chr(35),$+($chr(35),$did(15)),$did(15)) | did -r $dname 15 }
if $did == 14 {
if $did(12,0).sel > 1 { var %y = $did(12,0).sel | while %y { did -d $dname 12 $did(12,%y).sel | dec %y } }
else { did -d $dname 12 $did(7).sel }
}
}
on *:dialog:badnick:sclick:16:{ if %bn_oper { unset %bn_oper | did -u $dname 16 } | else { set %bn_oper 1 | did -c $dname 16 } }
on *:dialog:badnick:close:*:{
if %bn_list {
write -c system\badnick.txt
var %u = 1 | while %u <= $did(2).lines {
write system\badnick.txt $did(2,%u) $did(2,$calc(%u + 1)) $did(2,$calc(%u + 2)) $did(2,$calc(%u + 3)) | inc %u 4
}
unset %bn_list
}
unset %bn_kanal | unset %bn_cinsellik
var %ı = 1 | while %ı <= $did(7).lines { set %bn_kanal $addtok(%bn_kanal,$did(7,%ı),44) | inc %ı }
var %o = 1 | while %o <= $did(12).lines { set %bn_cinsellik $addtok(%bn_cinsellik,$did(12,%o),44) | inc %o }
set %bn_sebep $did(18)
}
alias tara {
var %bn_liste = system\badnick.txt
if !$2 {
var %x = 1 | while $read(%bn_liste,%x) {
set -u5 %bad $+(/,$chr(40),$replace($read(%bn_liste,%x),$chr(32),$chr(124)),$chr(41),/i)
var %y = 1 | while $nick($1,%y) {
if ($regex($nick($1,%y),%bad)) {
if ($me isop $1) || ($me ishop $1) {
mode $1 +b $+(*,$regml(1),*) | kick $1 $nick($1,%y) %bn_sebep
$iif(%bn_oper && o isincs $usermode,sajoin $nick($1,%y) $+(0,%bn_cinsellik))
}
else {
.cs akick $1 add $+(*,$regml(1),*!*@*) %bn_sebep
set %bn_akick $addtok(%bn_akick,$+(*,$regml(1),*!*@*),44)
$iif(%bn_oper && o isincs $usermode,sajoin $nick($1,%y) $+(0,%bn_cinsellik))
}
}
inc %y
}
inc %x
if %x > $lines(%bn_liste) && %bn_akick { var %k = $1 | .cs akick $1 enforce
tokenize 44 %bn_akick | .cs akick %k del $* | unset %bn_akick }
}
}
else {
var %z = 1 | while $read(%bn_liste,%z) {
set -u5 %bad $+(/,$chr(40),$replace($read(%bn_liste,%z),$chr(32),$chr(124)),$chr(41),/i)
if ($regex($2,%bad)) {
if ($me isop $1) || ($me ishop $1) {
mode $1 +b $+(*,$regml(1),*) | kick $1 $2 %bn_sebep
$iif(%bn_oper && o isincs $usermode,sajoin $nick($1,%y) $+(0,%bn_cinsellik))
}
else {
.cs akick $1 add $+(*,$regml(1),*!*@*) %bn_sebep
.cs akick $1 enforce | .cs akick $1 del $+(*,$regml(1),*!*@*)
$iif(%bn_oper && o isincs $usermode,sajoin $nick($1,%y) $+(0,%bn_cinsellik))
}
}
inc %z
}
}
}
on *:join:%bn_kanal:{ if $nick == $me { .timer 1 3 tara $chan } | else { tara $chan $nick } }
menu channel {
-
BadNick Taraması Yap ( $+ $active $+ ): tara $chan
BadNick Tarama Ayarları: dialog $iif(!$dialog(badnick),-m badnick,-v) badnick
-
}