Paylaşılan kodlarda ki mantık hatası ve teknik hatalar dikkatimi çektiği için yazma gereği duydum.
Mantık hatası:
1-)
Kod: Kodu kopyalamak için üzerine çift tıklayın!
on *:text:*:?:{
if !$istok(#muaf1 #muaf2 #muaf3,$chan,32) {
Özelde yazılan herhangi bir yazıyı algılayacak olan event için
muaf kanal belirlemek.
Teknik hata:
1-)
Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (*selam* iswm $1-) || if (*selamlar* iswm $1-) || if(*s.a* iswm $1-) {
Hatalı if koşulu.
Olması gereken kalıp: Kod: Kodu kopyalamak için üzerine çift tıklayın!
if (koşul) || (koşul) || (koşul) { kodlar }
Bknz:
/help if then else ve Bknz:
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
2-)
Kod: Kodu kopyalamak için üzerine çift tıklayın!
*Selam*
Verilen wildcard aralıkları hatası. *Selam* şeklinde kullandığınızda kişi a.selam yazsa bile selam alacaktır. Bknz:
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
3-)
Kod: Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:/(selam|s\.\a\.|slm)/i:?: {
(selam|s\.
\a\.|slm) a harfinin başındaki \ ters slash ile, a harfi operatöre dönüştürülmüş. Bu şekilde a harfini algılamayacak ve s.a. filtresi işlev görmeyecektir.
\a operatörü regex mantığında
Bell character($chr(7)) ile eşleşir.
Örnek:
//echo -a $regex($chr(7),(\a)) :- $regml(1)
hexadecimal: //echo -a $regex($chr(7),(\x7)) :- $regml(1)
octal: //echo -a $regex($chr(7),(\07)) :- $regml(1)
gibi.
Özelde algılanacak text için şöyle bir örnek yapılabilir (ve geliştirilebilir..) Kod: Kodu kopyalamak için üzerine çift tıklayın!
on $*:text:/^s(\.a(\.|leyk[uüÜ]m)?|lm|elam(s|lar|[uÜü]n\saleyk[uÜü]m)?)$/Si:?:msg $nick a.s $nick h.g
Kodun cevap verdiği metinler: Kod: Kodu kopyalamak için üzerine çift tıklayın!
[22:33] <deneme> s.a
[22:33] <Feragat> a.s deneme h.g
[22:33] <deneme> s.a.
[22:33] <Feragat> a.s deneme h.g
[22:33] <deneme> selam
[22:33] <Feragat> a.s deneme h.g
[22:33] <deneme> selams
[22:33] <Feragat> a.s deneme h.g
[22:34] <deneme> slm
[22:34] <Feragat> a.s deneme h.g
[22:34] <deneme> s.aleyküm
[22:34] <Feragat> a.s deneme h.g
[22:34] <deneme> selamun aleyküm
[22:34] <Feragat> a.s deneme h.g