Autor Tema: no me funciona este codigo  (Leído 1347 veces)

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

Desconectado Novatisima

  • Novato
  • *
  • Mensajes: 19
  • Karma: +6/-9
  • Sexo: Femenino
no me funciona este codigo
« en: Abril 01, 2020, 09:17:43 am »
Hola,  como digo arriba,no me funciona este codigo
Como dice mi nombre, soy muy novata, por eso requiero de vuestra ayuda

on 1:text:*:#: {
  if ( ($me isop $chan) && ($nick !isop $chan) ) {
  var %votor 1, %c $1- | while %votor <= $lines(excepciones.txt) {
  if ( $read(excepciones.txt,%votor) isin %c ) { return }
  inc %votor
  var %palb 1, %c $1- | while %palb <= $lines(palabras.txt) {
  if ( $read(palabras.txt,%palb) isin %c ) { mode # +b *!*@ $+ $gettok($address,2,64) | kick # $nick Por educacion no estan permitidas ciertas palabras en $chan }
  inc %palb
    }
   halt
 }
}

Es para banear, a los que digan ciertas palabras
Por supuesto hay dos archivos " excepciones.txt " y " palabras.txt " que estan en el directorio de Mirc/Ircap
las palabras  las localiza y banea bien , pero las excepciones, siempre coge la  primera excepcion, como si nu hubiera otras

En los archivos van una palabra encima de otra , aqui lo pongo con comas

Ejemplo palabras : en palabras.txt  puta  (ya se que suena fatal) si se pone le banea
Ejemplo excepcion :diputacion , disputa , reputacion , etc  pues con diputacion que es la  primera , no banea , pero con reputacion si  banea

Haber si me podeis ayudar, que me vendria muy bien este codigo
 He probado uno que pone " malas palabras  de Principe Azul " y o soy demasiado torpe y no se manejarlo o hago alguna cosa mal

Muchas gracias a todos por anticipado


Que mas quisiera yo que ser como ella

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #1 en: Abril 01, 2020, 08:01:38 pm »
Yo haría lo siguiente:

1. Como no vas a leer lineas, vas a leer palabra por palabra por lo cual hay que usar el identificador $tokenize 32 para %c.
2. Usar el $while para leer con $read(archivo.txt, s, $gettok(%c,%votor,32)) reemplazaria archivo.txt por palabras.txt y exepciones.txt y usar en un if comparativo (&&) de la lecutra de los dos archivos para la ejecución del ban & kick. 

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #2 en: Abril 01, 2020, 08:25:36 pm »
Me imagino que vas a querer el código ya hecho pues aquí está:

Código: [Seleccionar]
on 1:text:*:#: {
  if ($me isop $chan) && ($nick !isop $chan) {
  var %votor 1, %c $1- | tokenize 32 %c
  while %votor <= $numtok(%c,32) {
    if ($read(palabras.txt, s, $gettok(%c,%votor,32)) != $null) && ($read(excepciones.txt, s, $gettok(%c,%votor,32)) == $null) {
      ;; Aqui no se porque usaste $gettok para sacar *!*@host el mIRC tiene un archivo de ayuda con todos los comandos e identificadores hay que leerlo
      mode # +b $address($nick,2) | kick # $nick Por educacion no estan permitidas ciertas palabras en $chan
      inc %votor
  }
}

Puedes reemplazar en $read s por w para buscar *wildcard*

NOTA: No lo probe pero debe de funcionar, si no es así, avisas.

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #3 en: Abril 01, 2020, 08:31:49 pm »
Pon las listas como las tienes agregadas para revisar el uso de los wildcars porque asi como esta arriba no son ni necesarias las lecturas del archivo exepciones.txt.
« última modificación: Abril 01, 2020, 08:37:02 pm por Cadaver »

Desconectado Novatisima

  • Novato
  • *
  • Mensajes: 19
  • Karma: +6/-9
  • Sexo: Femenino
Re:no me funciona este codigo
« Respuesta #4 en: Abril 02, 2020, 11:14:29 am »
Buenos dias,  Cadaver lo primero y con bien educada  que suelo ser, muchas gracias por tu interes

He probado el codigo que me has puesto, debo decirte que tiene fallos o al menos ami me los da
Adjunto imagenes de pantalla





Como se  aprecia ahi no hace nada, ni con la palabra "puta " (con perdon ) ni con la palabra reputacion con la cual logicamente no deberia hacer nada

Con las dos. me ha hecho lo mismo, blokearse y he tenido que dar  ctrl + break, me salia esto en status




No entiendo, ni se demasiado de scirpting, y claro me interesa, por eso tras las primera  pruebas, en el codigo que me has mandado, con el note10 he visto que faltaban dos  }   y como veras en la foto adjunta los he puesto, pero sigue haciendo lo mismo



Te agradezco que me lo des hecho, por que soy mas que torpe, no se ingles, me tengo que regir, por lo que encuentro, en castellano,tengo los pdf de, Tornamen, Jamon, Sarrio, y leo mucho, el foro, de todas esas cosas, es de donde habia sacado, el codigo que puse, por que yo no se mas, por eso agradezco tu inapreciable, ayuda , y las explicaciones que  me pones, por que en ningun sitio, en castellano habia visto, para que es  tokenice y ahora ya lo se, por eso las explicaciones, me viene super bien

Un saludo y un gran abrazo, no se si se terminara aqui, o mas adelante por eso mi voto, lo tienes desde ya
Que mas quisiera yo que ser como ella

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #5 en: Abril 02, 2020, 08:25:25 pm »
En el archivo palabras.txt vas a agregar de la siguiente manera linea por linea ejemplo *puta* (si con los * para trabajar con comodines) y en el archivo excepciones.txt agregaras linea por linea las palabras ejemplo computadora (sin los *), el código ya esta probado y es funcional.

Código: [Seleccionar]
on *:TEXT:*:#:{
  if ($me isop $chan) && ($nick !isop $chan) {
    var %x 1, %t $1-
    while %x <= $lines(palabras.txt) {
      var %p $wildtok(%t,$read(palabras.txt,%x),1,32)
      if  (%p != $null) && ($read(excepciones.txt, w, %p) == $null) { mode # +b $address($nick,2) | kick # $nick Por educacion no estan permitidas ciertas palabras en $chan }
      inc %x
    }
  }
}

Los comodines que puedes usar son:

? para un carácter simple * todos los caracteres & para una palabra completa.
« última modificación: Abril 02, 2020, 08:51:24 pm por Cadaver »

Desconectado Novatisima

  • Novato
  • *
  • Mensajes: 19
  • Karma: +6/-9
  • Sexo: Femenino
Re:no me funciona este codigo
« Respuesta #6 en: Abril 03, 2020, 04:26:44 pm »
Buenas Cadaver , debo de ser  muy gafe, (en España que todo me sale mal )  por que no entiendo , hago todo como me has dicho, incluso mas por que he probado con *subnormal*, *subnormal, subnormal*,  &subnormal&, &subnormal, subnormal & y con ? y con todos me dice lo mismo

Incluso como ves todos en una linea  con dos asteriscos con uno solo delante y detras  sin espacios y con espacios
Mas no se que hacer, estoy totalmente perdida ya que hasta he probados con dos  IRcap diferentes

Lo de linea 6  es por que la primera es esa de  ;IRcap8 e527c77c74d6 y todo lo demas

mIRC 6.2 / IRcap 8.72    * Invalid format: $wildtok (line 6, - ban MALAS PALABRAS.mrc)
mIRC 7.57 / IRcap 8.72   * Too few parameters: $wildtok (line 6, - ban MALAS PALABRAS.mrc)

Con lo   poco que entiendo ( 0 patatero ) es que ni me lo creo que me pase





Muchas gracias por tu atencion, y perdona por las molestias
Que mas quisiera yo que ser como ella

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #7 en: Abril 03, 2020, 07:10:23 pm »
Te has dado cuenta que tienes el archivo como *palabras.txt? Revisa también que los archivos estén en la ruta correcta escribe //echo -s $mircdir y ambos archivos debes colocarlos ahí o bien especificar la ruta completa en el script, por ejemplo:

Código: [Seleccionar]
on *:TEXT:*:#:{
  if ($me isop $chan) && ($nick !isop $chan) {
    var %x 1, %t $1-
    while %x <= $lines(palabras.txt) {
      var %p $wildtok(%t,$read(c:\mi\directorio\mirc\palabras.txt,%x),1,32)
      if  (%p != $null) && ($read(c:\mi\directorio\mirc\excepciones.txt, w, %p) == $null) { mode # +b $address($nick,2) | kick # $nick Por educacion no estan permitidas ciertas palabras en $chan }
      inc %x
    }
  }
}

Las palabras van como en esta imagen:




Aquí están unas capturas donde se muestra que no hay ningún problema:





« última modificación: Abril 03, 2020, 07:41:18 pm por Cadaver »

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #8 en: Abril 03, 2020, 10:43:22 pm »
Creo que tampoco entendiste los comodines, si agregas a la lista *subnormal* no es necesario agregar *subnormales* ya que subnormales las ultimas dos letras están cubiertas por el * después de subnormal*, sobre todo cuando son plurales, otros ejemplos serian *maricon* no es necesario agregar *maricones* ya que es el mismo caso.

Desconectado Novatisima

  • Novato
  • *
  • Mensajes: 19
  • Karma: +6/-9
  • Sexo: Femenino
Re:no me funciona este codigo
« Respuesta #9 en: Abril 04, 2020, 03:10:55 pm »
Hola Cadaver, puede parecer increible, pero  no me funciona , he estado apunto de llorar al ver el resultado, por que no entiendo ya nada de nada

Te digo los pasos que he dado, nunca he tenido el IRcap  en la carpeta  ( C: )   siempre en un pen drive y me ha funcionado bien, ante esa duda, he instalado un nuevo mICR/IRcap, en  ( C: ) y he seguido, creo que todas tus indicaciones, lo he dejado tal cual viene , sin ningun addons mas ni ninguna cosa mas

//echo -s $mircdir   contesta  C:\mIRC\   

Veras por la capturas, que esta tal y como te digo, que los archivos de  palabras.txt y excepciones.txt , tienen bien su nombre y estan en el directorio mIRC





En los modulos, he quitados todos los addons que vienen cuando pones uno nuevo y he dejado solo malas  palabras.mrc y hasta lo he renombrado como malas_palabras.mrc



He abierto el codigo con  block de notas y con notepad++ y no aprecio diferencias



El codigo lo he copiado directamente de aqui, tengo un addons que con un dialogo capturo los nicks, tengo puesto write botijos.txt  $$snick($active,1), para  borrar los nicks, write -dl $+ $readn $mircdirbotijos.txt y hasta ahora me funciona bien,por eso mi estrañeza de tener que poner toda la direccion de la carpeta del c:\mirc\palabras.txt  y c:\mirc\excepciones.txt

La conclusion es que ami, por la razon que sea, no me funciona, como veras me da el error (  * Invalid format: $wildtok (line 5, malas palabras .mrc)  )
-




La unica duda que me queda, es que en la red  Zonachat por alguna razon no funcione, por que me paso igual,  con otro scrip que me ayudo  Quetzalcoatl,  no le he comentado nada mas, pero tampoco me funciona, como debiera y eso que segui todas sus instrucciones a pie de letra, por eso pienso que pueda ser algo de la red

Cadaver, siento las molestias causadas, pero si te funciona (que no lo dudo) y a mi haciendo todo eso no me funciona , te juro que no me queda mas que agradecerte,  todas las molestias,mandarte un besito virtual y quedarme si nada

Gracias Novatisima


Que mas quisiera yo que ser como ella

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #10 en: Abril 04, 2020, 07:40:03 pm »
La red no tiene nada que ver, prueba con mIRC7.32 ó superior, otra cosa la linea 6 y 7 deben de ir juntas cuando copias el código aquí lo corta por el tamaño de la línea, lo voy a poner linea por linea, pegalo directamente en mIRC escribiendo ALT+R en la pestaña de REMOTES, a mi me funciona bien incluso ya le hice otro ajuste para que trabaje mejor, dejo el código y doy por terminada mi ayuda en este tema.

Código: [Seleccionar]
on *:TEXT:*:#:{
  if ($me isop $chan) && ($nick !isop $chan) {
    var %x 1, %t $1-
    while %x <= $lines(palabras.txt) {
      var %z 1, %y $wildtok(%t,$read(palabras.txt,%x),0,32)
      while %z <= %y {
        var %p $wildtok(%t,$read(palabras.txt,%x),%z,32)
        if  (%p != $null) && ($read(excepciones.txt, w, %p) == $null) {
          mode $chan +b $address($nick,2)
          kick $chan $nick Por educación no esta permitido decir $+(,%p,) en $+(,$chan,.)
          halt
        }
        inc %z
      }
      inc %x
    }
  }
}

Desconectado Cadaver

  • Miembro Junior
  • **
  • Mensajes: 98
  • Karma: +136/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:no me funciona este codigo
« Respuesta #11 en: Abril 04, 2020, 08:42:21 pm »
Faltaba remover el uso de colores,

Código: [Seleccionar]
on *:TEXT:*:#:{
  if ($me isop $chan) && ($nick !isop $chan) {
    var %x 1, %t $strip($1-)
    while %x <= $lines(palabras.txt) {
      var %z 1, %y $wildtok(%t,$read(palabras.txt,%x),0,32)
      while %z <= %y {
        var %p $wildtok(%t,$read(palabras.txt,%x),%z,32)
        if  (%p != $null) && ($read(excepciones.txt, w, %p) == $null) {
          mode $chan +b $address($nick,2)
          kick $chan $nick Por educación no esta permitido decir $+(,%p,) en $+(,$chan,.)
          halt
        }
        inc %z
      }
      inc %x
    }
  }
}

Desconectado Gyk

  • Novato
  • *
  • Mensajes: 29
  • Karma: +1/-5
Re:no me funciona este codigo
« Respuesta #12 en: Abril 04, 2020, 10:28:00 pm »
Hola.

Tengo una pregunta a todo esto, no se si se puede hacer.

Se podría añadir al código que has hecho que se pueda agregar por comandos ?

Código: [Seleccionar]
on *:TEXT:*:#:{
  if ($me isop $chan) && ($nick !isop $chan) {
    var %x 1, %t $1-
    while %x <= $lines(palabras.txt) {
      var %z 1, %y $wildtok(%t,$read(palabras.txt,%x),0,32)
      while %z <= %y {
        var %p $wildtok(%t,$read(palabras.txt,%x),%z,32)
        if  (%p != $null) && ($read(excepciones.txt, w, %p) == $null) {
          mode $chan +b $address($nick,2)
          kick $chan $nick Por educación no esta permitido decir $+(,%p,) en $+(,$chan,.)
          halt
        }
        inc %z
      }
      inc %x
    }
  }
}

on 1000:TEXT:*:#cdebug: {
  tokenize 32 $strip($1-)
  if (!addpal == $1) {
    msg $chan Palabra añadida en la lista
    write palabras.txt
  }
  else if (!delpal == $1) {
    msg $chan Palabra borrada de la lista
    write -ds $+ $2 palabras.txt
  }
  else if (!exadd == $1) {
    msg $chan Palabra añadida en excepción
    write excepciones.txt
  }
  else if (!delex == $1) {
    msg $chan Borrada palabra de excepción
    write -ds $+ excepciones.txt
  }
}

Un saludo.

Desconectado Novatisima

  • Novato
  • *
  • Mensajes: 19
  • Karma: +6/-9
  • Sexo: Femenino
Re:no me funciona este codigo
« Respuesta #13 en: Abril 06, 2020, 03:23:06 am »
Hola Cadaver, muchas gracias  por  ayudarme   ( mas bien hacerlo )

Decirte, que no me funciona, en    mIRC 6.2 / IRcap 8.72    * Invalid format: $wildtok (line 6, - ban MALAS PALABRAS.mrc)

Pero en mIRC 7.57 / IRcap 8.72  si me funciona y eso que al abrir  pone :      VERSIÓN INCORRECTA de mIRC. IRcap 8.72 necesita mIRC 6.2 / 7.25 / 7.27 / 7.32. Con esta versión ( 7.57 ) puede no funcionar correctamente.

He intentado buscar el mIRC7.32, y cual es mi sorpresa, que no lo encuentro por ningun lado, sin que tenga virus claro

Tambien, ya es pregunta, si puede haber algun problema, con los dialogos en esta version, por que todos los addons me funcionan,  menos los dialogos  y con un dialogo tenia para poner palabras y excepciones, dandole a los botones,trabajaba  con alias y si no hay solucion, tendre que reconfigurar esa parte

Si sabes algo o alguien, bien donde encontrar el 7.32, o bien sobre los dialogos, seguire visitando el foro,por si encuentro una respuesta

De nuevo, agradecerte la paciencia que has tenido, conmigo 

Un besito (virtual) y agradecida
Que mas quisiera yo que ser como ella

Desconectado Novatisima

  • Novato
  • *
  • Mensajes: 19
  • Karma: +6/-9
  • Sexo: Femenino
Re:no me funciona este codigo
« Respuesta #14 en: Abril 06, 2020, 04:09:44 pm »
Hola Cadaver, ya esta solucionado, me funciona con Mirc 7.29

Asi, que un placer por tu ayuda (bueno como antes he dicho mas que ayuda  tu lo has realizado)y si me permites, me  gustaria ponerlo de nuevo entero, pero con los creditos, a tu nick
Que mas quisiera yo que ser como ella