![]() |
Tekrar Korumasında bir Sorun!.. alias sequuummm { if %KanalaTekrar == kick { .kick $chan $nick $tipz(Tekrar Koruması -!- Lütfen Tekrar Etmeyiniz!..) %Iconi } if %KanalaTekrar == Sureli { .ban -ku $+ %KanalaTekrar.sure $chan $nick 2 $tipz(Tekrar Koruması -!-2 %KanalaTekrar.max.sure 4sn. içinde2 %KanalaTekrar.max.mesaj 4 adetten fazla 2(Text/Notice/Action)4 iletildi -!-2 %KanalaTekrar.sure 4sn. Banlandınız!!!) %Iconi } if %KanalaTekrar == kickban { .ban -k $chan $nick 2 $tipz(Tekrar Koruması -!-2 %KanalaTekrar.max.sure 4sn. içinde2 %KanalaTekrar.max.mesaj 4 adetten fazla 2(Text/Notice/Action)4 iletildi -!- Banlandınız!!!) %Iconi } .echo -s $timestamp 4***2 $nick 1 $+ $chan 4kanalında Tekrar yaptığı için $ktkrr | .linesep -s } alias ktkrr { if %KanalaTekrar == kickban { .return kanaldan banlandı!.. %Iconi } if %KanalaTekrar == Sureli { .return kanaldan2 %KanalaTekrar.sure 4saniye uzaklaştırıldı!.. %Iconi } if %KanalaTekrar == kick { .return kanaldan atıldı!.. %Iconi } } on @*:text:*:#:{ .inc -u [ $+ [ %KanalaTekrar.max.sure ] ] %Kanalatekrar.text. [ $+ [ $nick ] ] [ $+ [ $1- ] ] 1 if (%KanalaTekrar.text. [ $+ [ $nick ] ] [ $+ [ $1- ] ] >= %KanalaTekrar.max.mesaj) { .sequuummm .unset %KanalaTekrar.text. [ $+ [ $nick ] ] [ $+ [ $1- ] ] } } Şimdi bu kodda anlayamadığım birşey var bazen sorunsuz çalışıyor bazende; * /inc: Geçersiz parametre hatası veriyor. Bunun sebebi ne olabilir? Ek bilgi olarakda variables da şu şekilde setlenmiş değerler olduğunu göz önüne alalım; %KanalaTekrar kickban %KanalaTekrar.max.sure 30 %KanalaTekrar.max.mesaj 3 %KanalaTekrar.sure 60 |
on @*:text:*:#:{ .inc -u [ $+ [ %KanalaTekrar.max.sure ] ] %Kanalatekrar.text. [ $+ [ $nick ] ] [ $+ [ $1- ] ] 1 hatası burada ya [ $+ [ %KanalaTekrar.max.sure ] ] yada %Kanalatekrar.text. [ $+ [ $nick ] ] [ $+ [ $1- ] ] değerleri null olarak donuyor! |
Hatanın o satırda olduğunu anladım zaten. Benim anlamadığım neden bazen null olarak dönmesi bazen de sorunsuz çalışması? |
PHP- Kodu: |
Burada 3 saniye 5 kez demiştim:) ayarlar için /flood sure <saniye> /flood izin <izin verilen flood> |
goXXip çok teşekkür ederim yazdığın kod için. Fakat ben yukarıdaki kodun neden çalışmadığını anlamak istiyorum. Bu konuda birşeyler söyleyebilirsen memnun olurum. Bu, tabii ki diğer arkadaşlar için de geçerli... Sevgiler... Saygılar... |
[ $+ [ $1- ] ] yi yazmışsın oraya oda genellikle space character içerir ve inc fonksiyonuda doğal olarak onları yeni parametre zanedeceği için inc bu şekilde kullanılmaz diye uyarı verir. dikkat edersen selam, naber gibi tek kelime içerenlerde bir halt uyarı vermez selam nasılsın gibi boşluklularda verir. |
inc $+(-u,%KanalaTekrar.max.sure) ... diye değiştir o satırı. [ kullanmana gerek yok ilk kısımda. |
DMS haklısın... sorunu anladım. kayıt yaparken mesela mesaj şöyle ise: <Nick> merhaba ;;;; inc -uN %Kanalatekrar.text.NickMeraba 1 diye setleniyor. sorun yok ama mesaj şöyle ise; <Nick> Merhaba nasılsın ;;;; inc -uN %Kanalatekrar.text.NickMerhaba nasılsın diye setlenmeye çalışıyor ki burda sayı olması lazım sayı şeklinde setlenemediği için de hata veriyor. o halde $1- yerine $remove($1-,$chr(32)) kullanayım dedim ve oldu. Bana fikir verdiğin için saol. ;) Sevgiler... saygılar... |
birşey değil biz 6 yıldır herkeze birşeyler diyoruz ama nedense bizi hiç ipleyen olmuyor :D. |
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 ;) |
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 { //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:*:#: { |
CMaster sanırım bu en kısa ve en hızlı olanıydı... teşekkürler... |
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. } } } |
* /hsave: invalid parameters (line 20, fllood korumasi.txt) - ALla |
Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 05:31. |
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