Foro IRcap
Septiembre 09, 2010, 07:51:30 *
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: Postea tus dudas sobre IRC o IRcap. Nosotros te ayudaremos.
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]   Ir Abajo
  Respuesta  |  Imprimir  
Autor Tema: Saber si un usuario está en el servidor  (Leído 764 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Ara
Novato
*

Karma: +0/-1
Desconectado Desconectado

Mensajes: 9


« en: Diciembre 30, 2009, 11:21:06 »
Responder con citaCitar

Hola,

Existe algún comando para saber si un usuario está conectado a un servidor? Por si depende del servidor, es el irc-hispano.

Puedo hacerlo con un whois y si dice

XXX no está en el IRC. Consultando información WhoWas...

Es que no está, pero para tardar menos

Muchas gracias!
En línea
Lokiyo
Administrador
Miembro Senior
*****

Karma: +5/-0
Desconectado Desconectado

Sexo: Masculino
Mensajes: 250



WWW
« Respuesta #1 en: Diciembre 30, 2009, 01:23:17 »
Responder con citaCitar

Ese comando es el más indicado para saber si un usuario concreto está en el servidor y es inmediato. No entiendo bien qué quieres decir con lo de tardar menos.

Si lo que quieres es tener en todo momento localizados determinados nicks, lo que puedes usar es el notify.
El notify es una lista en la que tu añades nicks, y es el servidor el que te indica en todo momento si el usuario está conectado o no. Además te muestra una notificación cada vez que el usuario se conecta o se desconecta.


PD: Muevo esto a otro foro ya que no está relacionado con scripting.
En línea
Ara
Novato
*

Karma: +0/-1
Desconectado Desconectado

Mensajes: 9


« Respuesta #2 en: Diciembre 30, 2009, 08:07:57 »
Responder con citaCitar

Bueno, es que tengo la lista de usuarios registrados en el canal, entonces los que no están los invito.

Lo de más rápido, digo al instante:

if ($nick !ison $chan) && ($nick ison $server) { .invite $nick $chan }

O algo parecido

Quiero eso para que no salga "XXX no está en el IRC. Consultando información WhoWas..." cuando le invite y no esté

Saludos
En línea
Lokiyo
Administrador
Miembro Senior
*****

Karma: +5/-0
Desconectado Desconectado

Sexo: Masculino
Mensajes: 250



WWW
« Respuesta #3 en: Diciembre 31, 2009, 11:36:48 »
Responder con citaCitar

El único otro comando que te puede servir para saber si alguien está conectado al servidor es /who. Prueba con ese.

Con el /whois, tendrías que interceptar el evento raw (numérico) de la respuesta del servidor y de esta manera evitar que mIRC/IRcap te muestren el mensaje. Pero realmente eso es una respuesta del servidor, así que rigurosamente hablando, no hay manera de evitarla. Como ya digo, sí se puede hacer que mirc no te la muestre, pero eso dejaré que otros con más tiempo y que les guste más el scripting te lo busquen.

Por aclarar lo de más rápido/al instante: no es posible, ya que por lógica hay que consultar al servidor si el usuario está o no, y es el servidor el que te da la respuesta, que tu ves en el IRcap como "XXX no está en el IRC. Consultando información WhoWas...". La única forma de estar informado en todo momento, es como te digo, usar el notify, en cuyo caso, el mIRC/IRcap sí que sabe internamente que el usuario está conectado.


Vuelvo a dejar esto en el scripting, Perdón por moverlo tanto.
« Última modificación: Diciembre 31, 2009, 11:42:02 por Lokiyo » En línea
Red_Erik
Moderador Global
Miembro de pleno derecho
****

Karma: +5/-0
Desconectado Desconectado

Sexo: Masculino
Mensajes: 220



« Respuesta #4 en: Enero 02, 2010, 05:31:50 »
Responder con citaCitar

Si tienes una lista de registrados del canal, deberías añadirlos tambien en tu lista de Notify, para aprovechar el evento ON NOTIFY. Como todos los de la lista "registrados" van a estar en la lista "notify", pero no necesariamente todos los de la lista "notify" tienen que estar en la lista "registrados" hay que crear las condiciones necesarias para que el evento se dispare adecuadamente. Algo asi:

on 1:NOTIFY: { if ( $nick isin $read(listaregistrados.txt, w, $nick)  ) {
;
;comandos_para_invitar_etc
;
;
    }
}


Puedes usar un timer para dar tiempo al nick a que entre voluntariamente al canal, antes de cursar la invitación.

En línea
Páginas: [1]   Ir Arriba
  Respuesta  |  Imprimir  
 
Ir a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap XHTML 1.0 válido! CSS válido!


Septiembre 06, 2010, 11:19:26