Autor Tema: opear deopear selectivo  (Leído 314 veces)

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

Desconectado ert0s

  • Novato
  • *
  • Mensajes: 21
  • Karma: +1/-0
opear deopear selectivo
« en: Noviembre 22, 2011, 06:59:12 pm »
Hola gente! tenia entendido que al poner $1 $2 seria como acceder al primer y segundo parametro entonces esto no me va:

Código: [Seleccionar]
on 77:TEXT:!op:#: { mode $chan +o $1 }
el resto de codigo por ejemplo un !meop haciendoselo a $nick si funciona pero un !op <nick_cualquiera> no, ¿que ocurre?

Desconectado Lokiyo

  • Administrador
  • Miembro Senior
  • *****
  • Mensajes: 491
  • Karma: +12/-0
  • Sexo: Masculino
    • El revoltijo de Lokiyo
Re:opear deopear selectivo
« Respuesta #1 en: Noviembre 23, 2011, 01:36:24 am »
Pues que el primer parámetro es !op y el segundo es <nick_cualquiera>, por lo que debes usar $2 o, mejor aún, $$2.

Conectado Red_Erik

  • Moderador Global
  • Miembro Senior
  • ****
  • Mensajes: 371
  • Karma: +10/-0
  • Sexo: Masculino
Re:opear deopear selectivo
« Respuesta #2 en: Noviembre 23, 2011, 01:46:12 am »
Supongo que lo que pretendes es que si alguien con level 77 en tu lista de usuarios escribe !op en el canal, tu sistema le da @ en ese canal. En ese caso $1 es la palabra !op por tanto debes usar { mode $chan +o $nick } ya que no existe $2 salvo que el propio usuario escriba su nick (o el de otro) tras la palabra !op .


Desconectado ert0s

  • Novato
  • *
  • Mensajes: 21
  • Karma: +1/-0
Re:opear deopear selectivo
« Respuesta #3 en: Noviembre 23, 2011, 03:06:44 am »
yo tengo el siguiente codigo:
Código: [Seleccionar]
on 77:TEXT:!meop:#: { mode $chan +o $nick }
on 77:TEXT:!medeop:#: { mode $chan -o $nick }
on 77:TEXT:!mevoic:#: { mode $chan +v $nick }
on 77:TEXT:!medevoic:#: { mode $chan -v $nick }
on 77:TEXT:!op:#: { mode $chan +o $1 }
on 77:TEXT:!deop:#: { mode $chan -o $2 }
las dos ultimas fallan, el resto al poner por ejemplo en un canal en la que esta mi bot, !meop inmediatamente me da op el bot, pero yo lo que quiero es que al escribir !op manolo, el bot le de op a manolo o cualquiera que ponga esa orden si esta en el nivel 77 de users (he puesto $1 y $2 como ejemplo porque ninguna de las dos me las acepta)

Conectado Red_Erik

  • Moderador Global
  • Miembro Senior
  • ****
  • Mensajes: 371
  • Karma: +10/-0
  • Sexo: Masculino
Re:opear deopear selectivo
« Respuesta #4 en: Noviembre 23, 2011, 11:13:16 am »
Cuando manolo rscribe !op, $2 no existe, y $1 vale !op. Por tanto el bot intenta poner +o al nick !op que no existe. Si manolo añade su nick ( u otro nick) a su !op entonces $2 tiene valor y si rs un nick level 77 serà opeado. Para que manolo sin parámetros reciba @ debe usar también la palabra !opme.
Perdón por la escritura, pero lo hago desde el movil. Si necesitas aclaración, ya sabes.

Desconectado ert0s

  • Novato
  • *
  • Mensajes: 21
  • Karma: +1/-0
Re:opear deopear selectivo
« Respuesta #5 en: Noviembre 23, 2011, 03:36:55 pm »
Cuando manolo rscribe !op, $2 no existe, y $1 vale !op. Por tanto el bot intenta poner +o al nick !op que no existe. Si manolo añade su nick ( u otro nick) a su !op entonces $2 tiene valor y si rs un nick level 77 serà opeado. Para que manolo sin parámetros reciba @ debe usar también la palabra !opme.
Perdón por la escritura, pero lo hago desde el movil. Si necesitas aclaración, ya sabes.
Si gracias Red_Erik te comento, el asunto es que yo quiero poner en el canal "!op manolo" para que mi bot le de OP a el, no el mirc desde la que pongo la orden sino que quiero que el bot(otro mirc) le de op a el gracias a mi orden.

En el Bot determinados usuarios tienen 77 de nivel por eso cuando ponen !meop el bot se lo da, pero yo quiero dar OP selectivo es decir a quien yo quiera aunque no este explicitamente con nivel 77 en el Bot con nivel 77. No se si lo explique bien, espero respuesta slaudos

Conectado Red_Erik

  • Moderador Global
  • Miembro Senior
  • ****
  • Mensajes: 371
  • Karma: +10/-0
  • Sexo: Masculino
Re:opear deopear selectivo
« Respuesta #6 en: Noviembre 23, 2011, 08:10:48 pm »
Vale, entendido. El problema lo tienes en que, en esta línea:

on 77:TEXT:!op:#: { mode $chan +o $2 }

El evento no se dispara porque TEXT no es !op nunca, sino que es !op manolo.  Te recomiendo el siguiente código.

on 77:TEXT:*:#: {
  if ( $1 == !meop ) { mode $chan +o $nick }
  if ( $1 == !medeop ) { mode $chan -o $nick }
  if ( $1 == !mevoic ) { mode $chan +v $nick }
  if ( $1 == !medevoic ) { mode $chan -v $nick }
  if ( $1 == !op ) { mode $chan +o $2 }
  if ($1 == !deop ) { mode $chan -o $2 }
}


Usa como truco en debug, insertar líneas que contengan echo, por ejemplo echo -s text1 para ver donde "casca". Algo así:

on 77:TEXT:!op:#: { echo -s prueba op | mode $chan +o $2 }

Si el echo no sale, puedes descartar un fallo en el código siguiente, y estar seguro que el evento no se ha disparado. Así puedes basar tu búsqueda en cual es la razón por la que el evento no se ejecuta. Evidentemente esos trozos de código debug se retiran cuando todo funciona adecuadamente.

Saludos.


Desconectado ert0s

  • Novato
  • *
  • Mensajes: 21
  • Karma: +1/-0
Re:opear deopear selectivo
« Respuesta #7 en: Noviembre 23, 2011, 11:18:02 pm »
Al poner de codigo en el bot
Código: [Seleccionar]
if ( $1 == !deop ) { echo -s prueba op | mode $chan -o $2 }
yo pongo la orden !deop manolo   (manolo tiene nivel 77 tambien igual que yo, por si aclara algo el tema)

la informacion que me pone en status del bot es :

prueba op
!deop No such nick - Nick no presente en IRC
Sigo sin entender, yo creia que el $1 se referia al primer argumento y $2 al segundo es decir !deop=1º argumento y manolo=2º argumento, donde esta el fallo?

Conectado Red_Erik

  • Moderador Global
  • Miembro Senior
  • ****
  • Mensajes: 371
  • Karma: +10/-0
  • Sexo: Masculino
Re:opear deopear selectivo
« Respuesta #8 en: Noviembre 24, 2011, 12:37:18 am »
He vuelto a probar el código y funciona perfectamente. Úsalo sobre un mIRC limpio o un IRcap y desactiva los colores en escritura, porque estos incluyen códigos que pueden ser interpretados como argumentos, variando el orden de estos.

Desconectado Lokiyo

  • Administrador
  • Miembro Senior
  • *****
  • Mensajes: 491
  • Karma: +12/-0
  • Sexo: Masculino
    • El revoltijo de Lokiyo
Re:opear deopear selectivo
« Respuesta #9 en: Noviembre 24, 2011, 11:45:24 am »
El fallo puede venir de otra línea que no sea la que nos muestras, si pones todo el código, te lo podremos decir.

BLaCk

  • Visitante
Re:opear deopear selectivo
« Respuesta #10 en: Noviembre 30, 2011, 09:29:42 am »
Para darte op a ti mismo utiliza el $me.. Para los demas, $2.

on 77:TEXT:*:#: {
  if ( $1 == !meop ) { mode $chan +o $me }

seria para ti.

on 77:TEXT:*:#: {
  if ( $1 == !op ) { mode $chan +o $2 }

Seria para la demas gente y seria ejemplo: !op MINICK

Conectado Red_Erik

  • Moderador Global
  • Miembro Senior
  • ****
  • Mensajes: 371
  • Karma: +10/-0
  • Sexo: Masculino
Re:opear deopear selectivo
« Respuesta #11 en: Noviembre 30, 2011, 03:41:50 pm »
Citar
on 77:TEXT:*:#: {
  if ( $1 == !meop ) { mode $chan +o $me }
} <-- (Todo lo que se abre, hay que cerrar, por lo que falta una llave)

Repito, los eventos ON TEXT no funcionan con el texto que uno mismo escribe. Este evento solo se disparará si es otro usuario quien escribe !meop en el canal.