Foro IRcap

Ayuda IRcap => Ayuda scripting IRcap => Mensaje iniciado por: Novatisima en Abril 01, 2020, 09:17:43 am

Título: no me funciona este codigo
Publicado por: Novatisima 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


Título: Re:no me funciona este codigo
Publicado por: Cadaver 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. 
Título: Re:no me funciona este codigo
Publicado por: Cadaver 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.
Título: Re:no me funciona este codigo
Publicado por: Cadaver 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.
Título: Re:no me funciona este codigo
Publicado por: Novatisima 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


(https://i.ibb.co/thqdSrg/bandicam-2020-04-02-10-43-27-206.jpg) (https://ibb.co/hMBqkzb)


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


(https://i.ibb.co/XFh6xV6/bandicam-2020-04-02-10-44-30-584.jpg) (https://ibb.co/Jrf8jC8)

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

(https://i.ibb.co/mcKtKWN/bandicam-2020-04-02-10-45-30-171.jpg) (https://ibb.co/XCPpPRY)

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
Título: Re:no me funciona este codigo
Publicado por: Cadaver 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.
Título: Re:no me funciona este codigo
Publicado por: Novatisima 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


(https://i.ibb.co/TLhm3Tb/bandicam-2020-04-03-15-55-54-423.jpg) (https://imgbb.com/)(https://i.ibb.co/4fwc5S9/bandicam-2020-04-03-15-56-11-388.jpg) (https://imgbb.com/)(https://i.ibb.co/1srBSLd/bandicam-2020-04-03-15-58-23-310.jpg) (https://imgbb.com/)(https://i.ibb.co/ZLYGLCP/bandicam-2020-04-03-16-12-22-234.jpg) (https://ibb.co/VjQJj8Z)
(https://i.ibb.co/z2r9FfS/bandicam-2020-04-03-15-58-56-546.jpg) (https://ibb.co/7pXMQyG)(https://i.ibb.co/9275Cm0/bandicam-2020-04-03-16-19-03-486.jpg) (https://ibb.co/GkqSbfD)

Muchas gracias por tu atencion, y perdona por las molestias
Título: Re:no me funciona este codigo
Publicado por: Cadaver 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:

(https://i.ibb.co/TLhm3Tb/bandicam-2020-04-03-15-55-54-423.jpg)


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

(https://i.ibb.co/N2vRNCv/Captura-de-pantalla-de-2020-04-03-11-17-43-1.png)
(https://i.ibb.co/jw734sK/Captura-de-pantalla-de-2020-04-03-11-16-35-1.png)
(https://i.ibb.co/MsX2njS/Captura-de-pantalla-de-2020-04-03-11-16-19-1.png)

Título: Re:no me funciona este codigo
Publicado por: Cadaver 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.
Título: Re:no me funciona este codigo
Publicado por: Novatisima 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

(https://i.ibb.co/g7VMXQc/bandicam-2020-04-04-13-40-29-727.jpg) (https://ibb.co/1n6fpB4)

(https://i.ibb.co/rGjbLw8/bandicam-2020-04-04-14-57-32-604.jpg) (https://imgbb.com/)(https://i.ibb.co/dtD1zvs/bandicam-2020-04-04-13-42-38-118.jpg) (https://imgbb.com/)

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

(https://i.ibb.co/bgm9BZg/bandicam-2020-04-04-13-49-06-064.jpg) (https://imgbb.com/)

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

(https://i.ibb.co/NNFz716/bandicam-2020-04-04-13-49-31-714.jpg) (https://ibb.co/c8ydxbc)(https://i.ibb.co/WxLJSXp/bandicam-2020-04-04-13-50-33-501.jpg) (https://ibb.co/4mHrBLg)

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)  )
-

(https://i.ibb.co/k284nKw/bandicam-2020-04-04-13-56-00-336.jpg) (https://ibb.co/CK7bdBY)


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


Título: Re:no me funciona este codigo
Publicado por: Cadaver 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
    }
  }
}
Título: Re:no me funciona este codigo
Publicado por: Cadaver 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
    }
  }
}
Título: Re:no me funciona este codigo
Publicado por: Gyk 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.
Título: Re:no me funciona este codigo
Publicado por: Novatisima 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
Título: Re:no me funciona este codigo
Publicado por: Novatisima 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
Título: Re:no me funciona este codigo
Publicado por: Cadaver en Abril 06, 2020, 11:40:54 pm
Prueba con este código en las versiones que no te funcionaba (incluida en la que si te funciona) ya no te debe de dar problemas:

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
    }
  }
}
Título: Re:no me funciona este codigo
Publicado por: Novatisima en Abril 07, 2020, 07:31:34 am
Buenas Cadaver

Lo he probado con,  mIRC 6.2 / IRcap 8.72  * Invalid format: $wildtok (line 5,  PALABRAS PROHIBIDAS.MRC)
 con mIRC 7.57 / IRcap 8.72  funciona bien
 con mIRC 7.29 / IRcap 8.72  funciona bien

Asi que, me seguire quedando, con el Mirc 7.29, y en reserva el Mirc 7.57, por los problemas de dialogos, que  el 7.29 no me los da

Bueno comentarte, lo tengo para subir completo, con sus explicaciones  y los creditos a tu nobre, que eres quien los merece
Le he añadido un  popups, para poder usar unos alias, que guardan  las palabras, las borran o las listan, asi como con las excepciones

Si tu me dices  "adelante" lo subire sino se quedara para mi uso

Muchas  gracias 
Título: Re:no me funciona este codigo
Publicado por: Hanna en Abril 08, 2020, 02:32:00 pm
Hola.

Muy buen código el único pero... es que solo puedes ponerlo una vez, o sea me explico

*puta* y si quieres poner *busco*sexo*oral* (no hace nada)

¿Se podría modificar eso?

PD: Por alguna razón no lo pilla en mirc 6.2 (Lo probé también)

Un saludo.
Título: Re:no me funciona este codigo
Publicado por: Cadaver en Abril 08, 2020, 05:28:08 pm
Este código funciona para buscar palabra por palabra, me supongo que estas agregando *busco*sexo*oral* en el archivo es por eso que no funciona, te recomiendo agregar palabra por palabra y no frases compuestas.
Título: Re:no me funciona este codigo
Publicado por: Hanna en Abril 08, 2020, 06:29:03 pm
Buenas Cadaver

Pensaba que podría añadir más frases compuestas, hubiera sido una opción muy buena al poder ponerse palabras entre comillas, pero si no puede ser no puede ser.

Gracias.