me sigue fallando el script... y agregue los caracteres nuevos como me enseñaste
//echo -a $asc(:) =58 //echo -a $asc(;) =59
y como sugeriste añadi if ( $sinNC($strip(%c)) ison # ) { inc %b | goto bucle }
pero pese a todo eso cuando alguien menciona un nick en mayusculas en el canal
como por ejemplo :BUZA_KAPERUZA o BUZA_KAPERUZA: lanza el mensaje de advertencia
y pese a que esos caracteres ya estan agregados en el alias sinNC
no se mucho de scripting pero mi opinion el detalle esta en esta ruta
if ( $sinNC($strip(%c)) ison # ) { inc %b | goto bucle }
que sigue mal y no omite los caracteres como : o ; como por ejemplo :BUZA_KAPERUZA o BUZA_KAPERUZA:
on *:text:*:#: {
var %a = $numtok($1-,32)
var %b = 1
:bucle
var %c = $gettok($1-,%b,32)
if ( $sinNC($strip(%c)) ison # ) { inc %b | goto bucle }
var %d = %d %c
if ( %b > %a ) { goto continua }
inc %b
goto bucle
:continua
var %lon_frase = $len(%d)
var %lon_frase_sin_may = $len($removecs(%d,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))
If ( $me isop # ) && ( $nick !isop # ) && ( %lon_frase >= 4 ) && ( $calc(((%lon_frase - %lon_frase_sin_may) * 100 ) / %lon_frase ) > 90 ) {
inc %_cuenta. [ $+ [ $nick ] ]
if (%_cuenta. [ $+ [ $nick ] ] == 1) { msg # Por favor $nick Desactiva tus Mayusculas (Primer aviso) }
if (%_cuenta. [ $+ [ $nick ] ] == 2) { msg # $nick Desactiva (Ultimo aviso) }
if (%_cuenta. [ $+ [ $nick ] ] == 3) { ban -u120 $chan $address($nick,2) | kick $chan $nick No Mayusculas (Ya te avise) Baneado por 2 minutos. | unset %_cuenta. [ $+ [ $nick ] ] }
} }
alias sinNC { var %a 1, %b | tokenize 32 $remove($1,$chr(91),$chr(92),$chr(95),$chr(59),$chr(58),$chr(45)) | while ($mid($strip($1),%a,1)) { if (($v1 isalnum) || ($v1 isin -_)) { %b = $+(%b,$v1) } | inc %a } | return %b }
puedes revisarlo el codigo completo por favor para ver en que falla

en el alias sinNC ya agregue esos caracteres a omitir y solo la el detalle es el
if ( $sinNC($strip(%c)) ison # ) { inc %b | goto bucle }