Coded/Yazar: L4roXyL
Bu tür işlemler için en iyisi
hash table kullanmaktır. Karmaşık veri yazdırma ve üzerinde işlem yapmada hash table-dan daha iyi bir seçenek olamaz.
Şimdi kısacası senin istediğini görecek bir kod yazdım. Sana gerekli açıklamalarda bulunacağım. Dolayısıyla sende kodu istediğin gibi editleyip kendine göre düzenleyebileceksin. Ek olarak birazda bilgin olmuş olur.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
alias _ban var %. 1 | while $hmatch($1,$2,%.) { ban -k $1 $v1 ban sebebi. | hdel $1 $v1 | inc %. }
on !*:join:#: {
if ($regex($nick,/(.{3,})-(.{1,})/i)) {
var %n = $token($nick,1,45) $+ -*
hadd -mu5 # $nick _
if ($hmatch(#,%n,0) >= 4) {
mode # +b %n
}
}
}
Açıklamalar: Kod: Kodu kopyalamak için üzerine çift tıklayın!
on !*:join:#:
Herhangi bir kanala(# - tabi senin içerisinde bulunduğun kanal olması lazım) senin haricinde(!) bir kullanıcı girdiği anda,
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ($regex($nick,/(.{3,})-(.{1,})/i))
Kanala giren rumuz
"-" karakterinden öncesinde
en az üç ve fazlası((.{3,})),
"-" karakterinden sonrası
en az bir ve fazlası((.{1,})) herhangi bir karakter varsa(yani kısacası senin istediğin şekildeyse /
"nick-karakter"),
Kod: Kodu kopyalamak için üzerine çift tıklayın!
var %n = $token($nick,1,45) $+ -*
%n değişkenine rumuzun
"-" karakterinden
önceki verisini($token($nick,1,45)) -* karakterleri ile birleştirerek
($+) atama yapıyoruz(temp), (
-* eklememizin sebebi sonraki satırda sorgulama yapacağımız yerde
wildcard-lı arama yapmaktır)
Kod: Kodu kopyalamak için üzerine çift tıklayın!
hadd -mu5 # $nick _
/hadd komutu ile (/help /hadd bakabilirsin)
kanal tablosuna(#) giriş yapan
rumuzu($nick) 5 saniye sonra silinme kaydıysa
(-u5) ekliyoruz,
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if ($hmatch(#,%n,0) >= 4)
Eğer(
if) kanal tablosunda(
#)
%n verisinden(
rumuz-*) kelimesinden
4 veya fazlası varsa(
>= 4),
Not: $hmatch tanımı mIRC Help dosyasında olmayıp, mIRC içerisinde gizli olan bir search tanımıdır.
Kod: Kodu kopyalamak için üzerine çift tıklayın!
mode # +b %n
Kanalda(
#)
%n verisini (
rumuz-*) şeklinde banlıyoruz.
Sanırım buraya kadar anlamadığın birşey yok.
Gelelim
_ban aliasına.
Eğer sen son giren nick ile beraber öncesinde giren ve korumaya yakalanan tüm nickleri banlamak istiyorsan,
mode # +b %n satırının altına;
Kod: Kodu kopyalamak için üzerine çift tıklayın!
_ban # %n
Komutunu ekleyebilirsin. Bu şekilde son giren ve korumaya yakalanan nick dahil onunla aynı rumuzla başlayan tüm nickler kanaldan adres ban şeklinde uzaklaştırılır.