Autor Tema: antiMayusuculas con advertencia  (Leído 127 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Dino

  • Novato
  • *
  • Mensajes: 16
  • Karma: +0/-24
antiMayusuculas con advertencia
« en: Enero 30, 2020, 10:05:14 pm »
tengo un antimayuscula con advertencia funciona bien pero cuando digito minusculas mezclado con mayuscula no las reconoce, alguien me puede ayudar por favor:
Código: [Seleccionar]
on *:text:*:#: {
  var %a = $numtok($1-,32)
  var %b = 1
  :bucle
  var %c = $gettok($1-,%b,32)
  if ( %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 ] ] }
} }
hise pruebas y las dejo para que vean que en variantes no funciona
Código: [Seleccionar]
[16:52] «mincht» HLLL
[16:52] <@JetLee> Por favor mincht Desactiva tus Mayusculas..Es como si Gritaras, Gracias! (Primer aviso)
[16:55] «mincht» oK EsTa bIEn
[16:55] «mincht» oK EsTa bIEN
[16:55] «mincht» oK EsTa bIEn mAlO
« última modificación: Enero 30, 2020, 10:31:45 pm por Dino »

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:antiMayusuculas con advertencia
« Respuesta #1 en: Enero 30, 2020, 10:55:38 pm »
eso es debido a lo que tu mencionas un ANTIMAYUSCULAS, obviamente si agregan alternando mayúsculas y minúsculas, por lo tanto solo reaccionara a las mayúsculas comparando en porcentaje en la frase.
parte de la condición del código esta al 90% que se usen las mayúsculas por lo tanto la condición es
$calc(((%lon_frase - %lon_frase_sin_may) * 100 ) / %lon_frase ) > 90

segun tu ejemplo es
Citar
[16:55] «mincht» oK EsTa bIEn
entonces tenemos que :
%lon_frase = 10  ; %lon_frase_sin_may = 5
con esos datos facilmente podemos ver que 5/10 = 1/2 = 50% pero hagamos el proceso ;)
por lo tanto
((10-5)*100)/10 = ((5)*100)/10 = 500/10 = 50
50 > 90 = falso
 y en la frase de:
Citar
[16:55] «mincht» oK EsTa bIEn mAlO
%lon_frase = 14  ; %lon_frase_sin_may = 7
lo mismo que en el ejemplo anterior 7/14 = 1/2 =0.5 = 50% y haciendo el proceso de la condicion:
((14-7)*100)/14 = ((7)*100)/14 = 700/14 = 50
50 > 90 = falso

No hay ningún error en el código, aunque yo mejoraría el bucle para hacerlo mas rápido, pero aun así cumple su cometido, tal como esta, si reconoce las mayúsculas pero si alternas las compara en proporción a las mayúsculas, lo único que se podría hacer es modificar el 90 que es el 90% de la frase, el IRCap ya trae esa protección en la configuración de canales asi como el ajuste del porcentaje desde el menu de configuración de protecciones de canales.
« última modificación: Enero 30, 2020, 11:04:18 pm por Quetzalcoatl »

Desconectado Dino

  • Novato
  • *
  • Mensajes: 16
  • Karma: +0/-24
Re:antiMayusuculas con advertencia
« Respuesta #2 en: Enero 30, 2020, 11:34:40 pm »
Bien lo deje en 40 en vez de 90 y reconoce perfecto...
Ahora detecte otro detalle si digito MAYUSCULAS en otro canal me lanza directo la segunda advertencia.. si es otro canal no deberia primero lanzar la primera advertencia????
Ejemplo:
Canal #mix
HOlAS
Baja las mayuscula primera advertencia
Digo la misma frase en el canal #tom
Me dice ultima advertencia ... ahi deberia de lanzar la primera
Advertencia ya que es otro canal..  saludos y gracias si se puede dar una solucion...

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:antiMayusuculas con advertencia
« Respuesta #3 en: Enero 31, 2020, 12:38:58 am »
eso es debido a la variable %_cuenta. [ $+ [ $nick ] ]
debido a que solo esta en función del nick y no existe un parametro de canal, mas que la comparación si es op, entonces solo habría que añadirla al if para que actué en el canal o modificar la variable para que la incluya por ejemplo que use

%_cuenta. [ $+ [ $nick $+ . $+ $chan ] ]
o con
%_cuenta. [ $+ [ $+($nick,.,$chan) ] ]

espero que te sea util

Desconectado Dino

  • Novato
  • *
  • Mensajes: 16
  • Karma: +0/-24
Re:antiMayusuculas con advertencia
« Respuesta #4 en: Febrero 01, 2020, 05:38:12 am »
gracias me funciono a la perfeccion con la segunda opcion
%_cuenta. [ $+ [ $+($nick,.,$chan) ] ]

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:antiMayusuculas con advertencia
« Respuesta #5 en: Febrero 01, 2020, 05:59:51 am »


Que bien que te funcionara ;)

 

anything