Autor Tema: Poner modo cuando entre una ident especifica  (Leído 207 veces)

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

Desconectado hank

  • Novato
  • *
  • Mensajes: 18
  • Karma: +0/-7
Poner modo cuando entre una ident especifica
« en: Febrero 06, 2021, 08:48:51 am »
Buenos días.

Me gustaría hacer que cuando entre una ident especifica en el canal el  bot ponga el modo W, he visto que aquí hicieron algo parecido pero a un trozo de la ipvirtual, se podría hacer lo mismo, pero en vez de un trozo de ipvirtual a una ident en concreto?

Código: [Seleccionar]
on *:JOIN:#canal:{
  if ((DH4B1R isin $address($nick,2)) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode)) {
    mode $chan +W | msg #canaldebug 1[3AVISO1]4 Se ha activado el 1+W.
    timeramiwito 0 900 mode $chan -W | timeropsoff 1 900 msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:PART:#canal:{
  if ((DH4B1R  isin $address($nick,2)) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode)) {
    mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:QUIT:{
  if ((DH4B1R  isin $address($nick,2)) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode) && ($nick ison #canal)) {
    mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

Muchas gracias  :)

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 182
  • Karma: +235/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Poner modo cuando entre una ident especifica
« Respuesta #1 en: Febrero 06, 2021, 01:49:03 pm »
En el if en lugar de usar el parámetro de $address($nick,2) se puede usar cualquiera de los dos siguiente:

1.- $ial($nick).user
2.- $gettok($gettok($address($nick,5),1,64),2,33)

obviamente dará exacto la ident por lo cual sea recomendable quitar el isin y reemplazarlo por = o quizás ==

Saludos

Desconectado hank

  • Novato
  • *
  • Mensajes: 18
  • Karma: +0/-7
Re:Poner modo cuando entre una ident especifica
« Respuesta #2 en: Febrero 06, 2021, 05:58:57 pm »
Buenas tardes.

Muchas gracias por responder.

Pues me sale este error: * /if: invalid format (line 3, BlockIdent.mrc)


Código: [Seleccionar]
on *:JOIN:#canal:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode)) {
    mode $chan +W | msg #canaldebug 1[3AVISO1]4 Se ha activado el 1+W.
    timeramiwito 0 900 mode $chan -W | timeropsoff 1 900 msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:PART:#canal:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode)) {
    mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:QUIT:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33) && ($chr(87) !isin $chan(#).mode) && ($nick ison #canal)) {
    mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

Muchas gracias!



Desconectado hank

  • Novato
  • *
  • Mensajes: 18
  • Karma: +0/-7
Re:Poner modo cuando entre una ident especifica
« Respuesta #3 en: Febrero 06, 2021, 06:03:18 pm »
Hola.

Era error mío, se me olvido cerrarlo con un ) al final de $gettok($gettok($address($nick,5),1,64),2,33) && ($me isop $chan)

Gracias!

Desconectado hank

  • Novato
  • *
  • Mensajes: 18
  • Karma: +0/-7
Re:Poner modo cuando entre una ident especifica
« Respuesta #4 en: Febrero 06, 2021, 06:38:00 pm »
Buenas tardes.

Estoy intentando que cuando se salga un usuario con esa ident el mismo bot quite el W, pero no lo hace..., estoy intentando hacerlo con un timer pero no hace nada.

Código: [Seleccionar]
on *:JOIN:#canal:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode)) {
    mode $chan +W | msg #canaldebug 1[3AVISO1]4 Se ha activado el 1+W.
    timeramiwito 0 900 mode $chan -W | timeropsoff 1 900 msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:PART:#canal:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode)) {
    timerkit 1 5 mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:QUIT:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($chr(87) !isin $chan(#).mode) && ($nick ison #canal)) {
    timerkit 1 5 mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

¡Gracias!

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 182
  • Karma: +235/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Poner modo cuando entre una ident especifica
« Respuesta #5 en: Febrero 06, 2021, 07:10:31 pm »
es un error en el if

if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($chr(87) !isin $chan(#).mode) && ($nick ison #canal)) { codigo }

se supone que si esta el modo W(87) insertado lo quitara, pero esta comparando que no esta entonces que lo quite, por lo tanto ! sobra

Desconectado hank

  • Novato
  • *
  • Mensajes: 18
  • Karma: +0/-7
Re:Poner modo cuando entre una ident especifica
« Respuesta #6 en: Febrero 07, 2021, 02:23:38 am »
Buenas noches.

Pues va perfecto, cuando sale del canal si quita el modo W, pero por ejemplo si desconecta de la red deja el modo puesto.

así lo tengo ahora:

Código: [Seleccionar]
on *:JOIN:#canal:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($me isop $chan) && ($chr(87) !isin $chan(#).mode)) {
    mode $chan +W | msg #canaldebug 1[3AVISO1]4 Se ha activado el 1+W.
    timeramiwito 0 900 mode $chan -W | timeropsoff 1 900 msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:PART:#canal:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($me isop $chan) && ($chr(87) isin $chan(#).mode)) {
    timerkit 1 5 mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

on *:QUIT:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($chr(87) isin $chan(#).mode) && ($nick ison #canal)) {
    timerkit 1 5 mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}

¡Muchas gracias!

Desconectado Hanna

  • Miembro Junior
  • **
  • Mensajes: 71
  • Karma: +13/-5
Re:Poner modo cuando entre una ident especifica
« Respuesta #7 en: Febrero 10, 2021, 12:40:45 pm »
Holitas

Si yo lo he intentado, porque me parece un buenisimo codigo, pero si el usuario con esa ident desconecta se mantiene el W hasta que termine el tiempo, no hay manera de hacerlo como cuando hace part?

Gracias

Desconectado Cadaver

  • Miembro de pleno derecho
  • ***
  • Mensajes: 113
  • Karma: +147/-3
  • Sexo: Masculino
    • ElChatIRC.com
Re:Poner modo cuando entre una ident especifica
« Respuesta #8 en: Febrero 10, 2021, 07:07:21 pm »
No lo va a quitar por esto && ($nick ison #canal), en un QUIT nunca funcionara ese ISON ya que el usuario ya se fue, remueve esa parte:

Código: [Seleccionar]
on *:QUIT:{
  if ((Julio == $gettok($gettok($address($nick,5),1,64),2,33)) && ($chr(87) isin $chan(#).mode)) {
    timerkit 1 5 mode $chan -W | msg #canaldebug 1[4AVISO1]3 Se ha desactivado el 1+W.
  }
}
« última modificación: Febrero 10, 2021, 07:24:21 pm por Cadaver »

Desconectado Hanna

  • Miembro Junior
  • **
  • Mensajes: 71
  • Karma: +13/-5
Re:Poner modo cuando entre una ident especifica
« Respuesta #9 en: Febrero 11, 2021, 08:31:26 am »
Hola.

Muchas gracias por la explicación y por el código.

 ;D ;D

Desconectado hank

  • Novato
  • *
  • Mensajes: 18
  • Karma: +0/-7
Re:Poner modo cuando entre una ident especifica
« Respuesta #10 en: Febrero 11, 2021, 09:30:24 am »
Buenos días

Muchas gracias por responder, ahora si lo hace perfectamente

Un voto para ti  :P :P