IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Tekrar Korumasında bir Sorun!.. (https://www.ircforumlari.net/mirc-scripting-sorunlari/7337-tekrar-korumasinda-bir-sorun.html)

Cappystarjoe 29 Ağustos 2005 17:58

Ayıp etmişler o zaman :)

Aslında bende senin gibi düşünüyorum ama boşver takma kafana...

Sen yinede bişeyler demeye devam et.. Birgün gelir anlaşılırsın ;)

CMaster 29 Ağustos 2005 18:23

Cok klasik korumalar yapiyorsunuz :) Ornegin;

selaaaaaaaaaaaaaaaam
selaaaaaaaaaam
selaaaaaaam

bu uc yaziyi birbirinin tekrari olarak algilamasini saglamalisiniz. Ya da bu uc yaziyi;

selammm
selammmm
selammmmmmmmm
-
Kendi yazdigim bir kodu vereyim;
Kod:

alias ayikla {
  var %i 1 , %r
  while %i <= $len($1-) {
        %f = $mid($1-,%i,1)
        if %f != $right(%r,1) {
          %r = $+(%r,$mid($1-,%i,1))
        }
        inc %i
  }
  return %r
}

//echo $ayikla(selam)
//echo $ayikla(selammmm)
//echo $ayikla(seeeelaaaaaam)

hepsi selam seklinde return olur :)

return %r yerine, return $hash(%r,32) yazarak hashini return ettirebilir, timeout olacak variablea hash degerini atayabilirsiniz.

Ornek:
Kod:

on *:text:*:#: {
  if $nick isreg # {
        inc -u60 %t. [ $+ [ $+($nick,#,$ayikla($strip($1-))) ] ] 1
        if %t. [ $+ [ $+($nick,#,$ayikla($strip($1-))) ] ] == 3 {
          kick # $nick tekrar korumasi
        }
  }
}

iste size en baba tekrar korumasi :)

Cappystarjoe 29 Ağustos 2005 19:20

CMaster sanırım bu en kısa ve en hızlı olanıydı... teşekkürler...

el33t 30 Ağustos 2005 09:52

While loop kullanmaktansa Regex kullanabiliriz. Ben $regsub() kullanmayı uygun gördüm çünkü $regsub() önce regex eşleşmesi yapıyor yani aynı $regex() gibi, daha sonra yardımcı bi text kullanarak önceden aldığımız texti değiştiriyor. Benzetmek gerekirse $replace() mantığı da diyebiliriz.

alias hmm { var %text = $1-, %done, %o = $regsub(%text, /(.)\1+/g, \1, %done) | return %done }

Yukardaki kodu remote'a (ALT+R) koyup $hmm(istediğiniz cümleee) yi yazdığınızda aynı CMaster'ın yazdığı gibi yanyana olan harfleri teke indirgiyor, onunkinden tek farkı daha hızlı olması.

Parametreleri anlatmak gerekirse;

() - ayırma parantezleri, parametreleri birbirinden ayırmaya yarıyor.
\1 - ilk saklanan eşitlik
+ - bir ya da daha fazla
g - birden çok kez karşılaştır.
// gerçek regexin içeriğini kuşatıyor, çeviriyor.

$regsub()'ın kullanımı ise,
$regsub(istediğimiz bi text,kullanacağımız regex içeriği,daha sonra yeri değiştirilecek text)

on @*:text:*:#arslan:{ if ($nick isreg #) { inc -u60 $+(%,repeat.,$chan,.,$nick,.,$hmm($replace($strip( $1-),$chr(32),$chr(46)))) | if ($($+(%,repeat.,$chan,.,$nick,.,$hmm($replace($str ip($1-),$chr(32),$chr(46)))),2) >= 3) { kick # $nick tekrar etme. } } }

Nurullahoruc 27 Şubat 2006 16:32

* /hsave: invalid parameters (line 20, fllood korumasi.txt)
-
ALla


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 08:58.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk