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

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

Desconectado Dino

  • Novato
  • *
  • Mensajes: 32
  • Karma: +0/-35
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 de pleno derecho
  • ***
  • Mensajes: 160
  • Karma: +226/-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: 32
  • Karma: +0/-35
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 de pleno derecho
  • ***
  • Mensajes: 160
  • Karma: +226/-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: 32
  • Karma: +0/-35
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 de pleno derecho
  • ***
  • Mensajes: 160
  • Karma: +226/-2
  • HipercomputoHipermegared
    • elchatirc
Re:antiMayusuculas con advertencia
« Respuesta #5 en: Febrero 01, 2020, 05:59:51 am »


Que bien que te funcionara ;)

Desconectado Dino

  • Novato
  • *
  • Mensajes: 32
  • Karma: +0/-35
Re:antiMayusuculas con advertencia
« Respuesta #6 en: Julio 04, 2020, 06:50:46 am »
Quetzalcoatl disculpa que sea pregunton pero como haria para ignorar frases y no las kikee

ejemplo :
xD xD xD
o tambien Xd Xd Xd

trate de agregarla en esta ruta pero no me funciono

If ( $text =="xD xD xD" ) && ( $text =="Xd Xd Xd" ) && ( $me isop # ) && ( $nick !isop # ) && ( %lon_frase >= 4 )
y no me funciono por fa ayudame para que agregue palabras y las omita!! gracias

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 160
  • Karma: +226/-2
  • HipercomputoHipermegared
    • elchatirc
Re:antiMayusuculas con advertencia
« Respuesta #7 en: Julio 04, 2020, 07:49:37 am »
es que en realidad no tiene ningún identificador llamado $text pero si solo son xd xd xd entonces lo mas fácil seria poner un seguro para ello

Código: [Seleccionar]
if ($strip($1-) == xd xd xd) { halt }esto va de preferencia al inicio de la declaración de variables.

Desconectado Dino

  • Novato
  • *
  • Mensajes: 32
  • Karma: +0/-35
Re:antiMayusuculas con advertencia
« Respuesta #8 en: Julio 04, 2020, 08:14:00 am »
La pregunta es como solo la variable era un ejemplo

Desconectado Dino

  • Novato
  • *
  • Mensajes: 32
  • Karma: +0/-35
Re:antiMayusuculas con advertencia
« Respuesta #9 en: Julio 05, 2020, 01:44:08 am »
oki gracias provare

Desconectado Dino

  • Novato
  • *
  • Mensajes: 32
  • Karma: +0/-35
Re:antiMayusuculas con advertencia
« Respuesta #10 en: Julio 10, 2020, 05:17:33 am »
encontre otro detalle, no omite los nicks presente que esten en el canal y que esos nicks usen mayusculas ejemplo DINO:

hola DINO
DINO como estas
ahi te vez DINO
<mi-bot> Por favor DINO Desactiva tus Mayusculas (Primer aviso)

cuando digo esas variantes el script igual me advierte, como seria para que omita los nicks en mayusculas presente en el canal
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 ] ] }
} }
« última modificación: Julio 10, 2020, 05:23:13 am por Dino »

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 160
  • Karma: +226/-2
  • HipercomputoHipermegared
    • elchatirc
Re:antiMayusuculas con advertencia
« Respuesta #11 en: Julio 10, 2020, 05:41:21 am »
por lo que veo tienes el NC en toda la palabra, es por eso que no lo detecta como nick por los colores/bold/italicas, etc.

seria modificar
Código: [Seleccionar]
if ( %c ison # ) { inc %b | goto bucle }por
Código: [Seleccionar]
if ( $strip(%c) ison # ) { inc %b | goto bucle }
pero toma en cuenta que solo quitara los colores(underline/bold/colores/italicas), si el nick nombrado usa cosas como:

Hola [DINO] no funcionara por que habrá que remover los [], hay un post donde se trato ese tema de los NC, tema abierto con respecto a ANTICOLORES iniciado por Diablo donde se da una solucion a los caracteres especiales en los nicks con Completion.

Saludos.

Desconectado Dino

  • Novato
  • *
  • Mensajes: 32
  • Karma: +0/-35
Re:antiMayusuculas con advertencia
« Respuesta #12 en: Julio 10, 2020, 06:22:07 am »
probe tu depuradorde caracteres como ser [ ]  y no me funciona uso solo mirc

alias -l sinNC { var %a 1, %b | tokenize 32 $remove($1,$chr(91),$chr(92),$chr(45)) | while ($mid($strip($1),%a,1)) { if (($v1 isalnum) || ($v1 isin -_)) { %b =  $+(%b,$v1) } | inc %a } | return %b }

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 160
  • Karma: +226/-2
  • HipercomputoHipermegared
    • elchatirc
Re:antiMayusuculas con advertencia
« Respuesta #13 en: Julio 10, 2020, 06:18:14 pm »
pues lo acabo de probar y me funciona

//echo -s $sinnc(-[nick04])

Código: [Seleccionar]
alias sinNC { var %a 1, %b | tokenize 32 $remove($1,$chr(91),$chr(92),$chr(45)) | while ($mid($strip($1),%a,1)) { if (($v1 isalnum) || ($v1 isin -_)) { %b =  $+(%b,$v1) } | inc %a } | return %b }

solo quite el -l para usarlo normalmente ya que es un alias local. Algo estas haciendo mal.

pd:Un alias local es igual que cualquier alias en remotes, solo que debe estar en el mismo script donde es llamado para que funcione, por lo tanto si se llama desde una editbox no sera llamado al igual si es llamado desde otro proceso donde no este donde esta escrito.

Desconectado Dino

  • Novato
  • *
  • Mensajes: 32
  • Karma: +0/-35
Re:antiMayusuculas con advertencia
« Respuesta #14 en: Julio 10, 2020, 06:42:08 pm »
me funciono de maravilla gracias :D