FullMetalAlchemist, it won't work for repeated punctuation characters. (If you mean that they enter them as !!!!!!!! or ........ repeatedly) The script aims for CAPS abuse. But with some modification of my code example, it will do what you want:
on @*:text:*:#:$iif($check($1-).caps,$v1,$check($1-).reps)
on @*:action:*:#:$iif($check($1-).caps,$v1,$check($1-).reps)
on @*:notice:*:#:$iif($check($1-).caps,$v1,$check($1-).reps)
alias -l check {
var %. ,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,%; $len($remove($1- [ %. ] )),%: $len($1-) - %;
if ($nick !isop #) {
if ($calc(100*($len($removecs($1- [ %. ] ))-%;)/%:) > 50) && (%: > 5) {
set -u2 $+(%,c,$chr(32),$int($v1)) | if ($prop = caps) { inc $+(%,$nick)
if ($($+(%,$nick),2) > 2) {
ban -ku600 # $nick 2 You've used $+(%c,%) of CAPS, and you were warned twice!
unset $($+(%,$nick),1)
}
elseif ($($+(%,$nick),2) = 2) { .msg # You've used $+(%c,%) of CAPS, and this is your $ord($($+(%,$nick),2)) warning! }
else { .msg # You've used $+(%c,%) of CAPS, and this is your first warning! }
}
}
elseif ($prop = reps) && ($regex($1-,/(.)(\1{6,})/)) { inc $+(%,$nick,reps)
if ($($+(%,$nick,reps),2) > 2) {
ban -ku600 # $nick 2 You've used $len($regml(2)) repeated punctuation characters, and you were warned twice!
unset $($+(%,$nick,reps),1)
}
elseif ($($+(%,$nick,reps),2) = 2) {
.msg # You've used $len($regml(2)) repeated punctuation characters, and this is your $ord($($+(%,$nick,reps),2)) warning!
}
else { .msg # You've used $len($regml(2)) repeated punctuation characters, and this is your first warning! }
}
}
}
The script will now look for repeated punctuation characters if he or she exceeds 6 or more. You can adjust this bit {6,} to a higher number. The smaller the number, the stricter the script becomes.