<

   
 
  NuMeRoS y EvEnToS RaW
 

Los Números y Eventos Raw

 

Los Números y Eventos Raw constituyen en el miRC uno de los apartados con más fama de escabrosos y difíciles para los aficionados a los scripts; la verdad es que no es para tanto, el programa permite trabajar con este recurso de una manera bastante sencilla, y presentar resultados de configuración muy espectaculares y potentes. Vamos a analizar el tema paso a paso y veremos porqué no es tan fiero el león como lo pintan.

 

Las características del trabajo con los números raw en el mIRC requiere unos mínimos conocimientos sobre los eventos, los comandos, y los demás apartados de la creación de scripts; no me refiero a un dominio absoluto, pues en caso de necesidad puede hacer una consulta rápida en los capítulos correspondientes, pero sí, cuando menos, una cierta familiaridad con el significado de los conceptos que en ellos se manejan. Superada esta etapa verá que no se trata más que un poco de lo mismo, pero con nuevas capacidades que le sorprenderán.

 

Vamos en primer lugar a centrar los conceptos. Cuando leyó la información relativa a los comandos del mIRC descubrió una serie de ordenes que puede dar a su programa. Estas órdenes o acciones digamos que pueden ser de tres tipos:

 

·    En primer lugar hay algunos comandos que le afectan solo a usted y a su sesión de trabajo con el mIRC presentar mensajes con /echo, cambios de colores y fuentes, creación de ventanas personalizadas, ...etc. Estas acciones no tienen  influencia ninguna en los demás usuarios ni en los servidores de IRC.

 

·    Existen por otra parte comandos que implican acciones sobre, o referidas, a los demás usuarios sin pasar nunca por los servidores, hasta el punto de que, si en el transcurso de algunas de ellas pierde su conexión con el server, no perderá en cambio el contacto con el otro usuario, ejemplos de este tipo de acciones son: envío y recepción de ficheros y chats privados, acciones remotas, ping, version, finger, sound,...; son en general las acciones CTCP (client to client protocol) que suelen dar lugar a los eventos CTCP que explicaré en su correspondiente apartado, no son estas tampoco las que nos ocuparán primordialmente en este capítulo.

 

·    En tercer lugar están las acciones referidas directamente a su conexión con un servidor de IRC, en su mayoría son órdenes o requerimientos de usted hacia el server, y a las cuales este responde de una determinada manera, y, a menudo, con un mensaje concreto indicando el resultado de la acción. Pensemos por ejemplo en los comandos /who, /whois, /names, /lusers, /list, /links, ...etc. En virtud de cualquiera de estos usted recibe una respuesta del server, bien sea un mensaje de error, o bien la información correspondiente. Existen dos maneras de enviar estos comandos, bien por el método habitual, es decir, empleando el comando del miRC correspondiente, o bien mediante el comando: /raw <orden>. Básicamente la mayor diferencia de este último con el anterior es que usted no deja el trabajo a su programa, sino que envía la orden directamente de una forma similar a un "notice" hacia el server. Muchas de las órdenes válidas para el comando /raw (comandos del server) son idénticas a los comandos clásicos de su cliente que tienen el mismo fin, pero otras tienen variaciones, por tanto es necesario conocer la sintaxis exacta de la orden raw que enviamos para que esta funcione como deseamos. El mIRC utiliza el comando /raw en forma similar que otros clientes usan el comando /quote, aunque este también es válido en mIRC. Por ejemplo, para obtener una lista de los comandos disponibles en el server puede teclear: /quote help.

 

Como ejemplo curioso no me resistiré a comentar una de las bromas favoritas de los supuestos "expertos" hacia algún pobre "Giles" que encuentran desprevenido y preguntando alguna cosa como por ejemplo:

 

            <Bj0rn> Hola, ¿cómo puedo conseguir OP?:-)

 

<Jparm> Es facil escribe: /raw server Opme

 

Y a los pocos segundos nuestro pobre amigo Bj0rn se encuentra mirando confuso su ventana de estatus leyendo algo así como que se ha desconectado del server y el programa no puede reconectar. ¿Qué ha sucedido?.

 

Muy sencillo, Bj0rn a lo mejor incluso sabía que el comando:

 

   /server <servidor_de_IRC> [puerto] - Sirve para desconectar del server actual y establecer inmediata conexión con otro server indicado, pero ignoraba que: /raw 

 

    server <servidor_de_IRC> [puerto] - hace exactamente lo mismo, con la única salvedad, en este caso, de que no existe ningún server de IRC que se llame Opme, y por lo tanto los intentos de su programa serán infructuosos.

 

Muchos de los comandos raw son repeticiones de lo que hacen los comandos de cualquier buen cliente de IRC actual y otros comandos exigen el estatus de IRCop. Pero lo que sí nos interesa aquí son las respuestas del server a nuestros comandos, a nuestra orden el server responderá casi siempre con una o más líneas de mensaje, estas líneas tienen siempre la misma estructura y, aunque no lo veamos, se identifican cada una con un número. Estos son los números raw. Si usted solo tenía curiosidad en el tema confío en que esta explicación se la haya aclarado; si su interés es saber como aprovechar esta circunstancia para la creación de sus propios scripts, continúa.

 

PRIMER CONTACTO CON LOS NÚMEROS RAW  

 

Vamos a empezar analizando un ejemplo clásico. Como sabemos el comando /whois <nick> hace que el server nos facilite cierta información acerca del nick de usuario que hemos introducido. Por ejemplo, imaginemos que tecleamos: /join Bj0rn y obtenemos esta respuesta:

 

Bj0rn  bj0rn@ahora.net * Qué miras?  

Bj0rn   #pajuatos @#jurutungo  

Bj0rn  se encuentra en conectados ahora.net   IRC Server  

End of /WHOIS list.

 

Este es el formato básico habitual de la respuesta de un server ante un Whois de un nick que se encuentra en línea. Si el resultado que usted obtiene es distinto se debe probablemente a que usa un script que modifica este mensaje mediante el uso de los números raw, por tanto aquí debemos de partir de esta respuesta en formato estándar, tal y como llega desde el servidor.

 

Lo que en realidad hemos recibido han sido cuatro mensajes (cuatro líneas), estas tienen siempre la misma estructura, aunque varíe su información, y cada una tiene asignada un número identificativo, es su número raw.

   

·        La primera línea comienza siempre por el nick del usuario del que hemos pedido la información, y a continuación su User ID (el que especificó en la ventana IDENTD del setup), separado por una @ de la identificación de su conexión a Internet (ahora.net por ejemplo). Termina la línea con un asterisco y su Full Name, el que escribió en el Setup. Esta línea tiene siempre el número raw 311 y se conoce como: RPL_WHOISUSER.

 

·        La segunda línea es la respuesta raw número 319 (RPL_WHOISCHANNELS). Esta comienza por el nick y detalla todos los canales en los que este se encuentra; incluso muestra el símbolo @ delante de aquellos nombres de canal en los que el usuario tiene estatus de OP.

 

·        La tercera línea comienza también con el nick, e identifica el servidor de IRC que está usando. Es la respuesta raw número 312 (RPL_WHOISSERVER).

 

·        La última línea no es más el mensaje estándar de final del envío de información para ese comando, y es siempre igual. Tiene el número raw 318 (RPL_ENDOFWHOIS).

 

Otra posibilidad es que el nick del cual hemos solicitado la información no se encuentre en la red de IRC, en este caso la respuesta sería:        

       Bj0rn No such nick/channel    

       Bj0rn No such nick/channel

 End of /WHOIS list.

 

La primera línea es un mensaje indicándonos la ausencia del usuario, es el número raw 401 (ERR_NOSUCHNICK), la segunda es el raw 318 ya visto antes, que indica el final del mensaje.

 

Lógicamente, llegados a este punto nos podemos hacer dos preguntas: ¿Cómo puedo usar esto para que la respuesta al comando /whois tenga el formato que yo quiera? y ¿Cómo puedo saber los números raw de cada respuesta del server a un comando?. La primera la resolveremos de inmediato, la segunda un poco más adelante.

 

LOS EVENTOS RAW 

   

Una vez que nuestro programa recibe la respuesta del server a un comando o requerimiento por nuestra parte, si conocemos el número raw (paciencia, los conocerá ), es posible configurar el mIRC que inhiba la respuesta normal, y nos presente el formato que nosotros queramos diseñarle.

 

Cuando recibimos un mensaje catalogado con un número raw se produce un suceso o evento que nosotros podemos interceptar; es decir, podemos crear una instrucción que le diga a nuestro programa algo así: "Cuando recibas una respuesta raw con este número haz lo siguiente..." asociándole el código correspondiente mediante una rutina de script, igual que se hace con los eventos convencionales. (ver el capítulo de Eventos del mIRC)

 

La sintaxis para esto es una línea que especifica el número raw del evento que se espera, y la acción o acciones que han de realizarse en es momento:

 

    raw <número>:*:<acción>

 

Vemos que la línea consta de tres campos, el primero es simplemente el número raw ante el que se desea actuar; el último es una o más acciones (comandos o alias) que se desea que se ejecuten en ese momento; el segundo es normalmente un asterisco que indica que se realice la acción sea cual sea el texto del mensaje que recibamos, es decir, que se haga siempre lo mismo ante este raw concreto, independientemente del nick, o cualquier otra información que nos devuelva es server.

 

Si describimos más de una acción asociadas al evento debemos de separar cada una de las órdenes con el símbolo entubador: "|", teniendo buen cuidado de que este símbolo tenga espacios en blanco a ambos lados. Por ejemplo:

 

    raw 312:*: echo -s $1 está conectado por: $3- | halt

 

El raw 312 es la respuesta RPL_WHOISSERVER, es decir, la línea del /whois que informa sobre el server de IRC por el que está conectado el nick. Con la sentencia anterior estamos diciendo a nuestro mIRC que cuando reciba esta respuesta debe de imprimir en status (de ahí el echo -s) una frase que comience por la primera palabra de la que hemos recibido del server, sea cual sea (representada por $1), que en el raw 312 es siempre el nick como hemos visto), a continuación la cadena: "está conectado por:", y a seguidamente la tercera palabra recibida más todo lo que viene a continuación (por eso el signo detrás de $3). Recordemos que una palabra se considera a cualquier cadena de caracteres que no contiene espacios en blanco en su interior, así "andesmedia.irc.com" se toma como una sola palabra ($3 en el ejemplo, puesto que es la tercera palabra). Hay una segunda orden en este evento: halt; este comando interrumpe cualquier acción posterior relacionada con el mismo, esté especificada por nosotros o no, el efecto en este ejemplo es el de inhibir la impresión de la respuesta del server, así se consigue que en caso de hacer un /whois nos aparezca solo la frase configurada por nosotros, y no la del server (si no ponemos halt se imprimirían las dos).

 

Es así como podemos sustituir limpiamente las respuestas normales de los comandos que enviamos al servidor por otras con la sintaxis que deseamos, incluso con la posibilidad de añadir colores ... etc; es más, podemos también iniciar acciones automáticamente con solo incluir alias previamente creados, u otros comandos.

 

Lógicamente las líneas de configuración de los eventos raw no podemos insertarlas en cualquier lugar a nuestro gusto, es necesario que estén allá donde el mIRC las puede encontrar, este lugar es la sección de remote de nuestro programa.

 

Recordemos que en esta ventana se nos presenta el contenido de todos nuestros ficheros de script para events, ctcp's y remotes. Es buena costumbre tener los eventos raw agrupados en un fichero especifico para ellos, para conseguirlo un sistema puede ser seguir estos pasos:

 

·        Desde el Explorador del Windows (por ejemplo), vaya al directorio donde tiene los archivos .INI del mIRC, que normalmente será el propio directorio del programa o un subdirectorio de este. En este lugar cree un nuevo fichero de texto y nombrelo "raw.ini", de momento déjelo en blanco.

 

·        Entre en mIRC y luego Herramientas/Remote. En el diálogo que aparece abra el menú Archivo selecciones la opción Cargar, y a continuación la sub-opción Script (herramientas/remote/archivo/cargar/script). Verá otro diálogo de navegación en el que deberá de localizar y seleccionar el archivo creado: "raw.ini", ahora pulse el botón Ok. Todo esto se logra de igual manera tecleando la orden: /load -rs raw.ini

 

·        Ya está, el nuevo archivo se ha cargado en la memoria RAM correspondiente a mIRC como fichero de script, ahora podrá observarlo en la ventana de Remote, si ha seguido los pasos anteriores evidentemente estará vacío, pero a la espera de que usted inserte ahí el código que desee. Si quiere volver a visualizar cualquier otro de sus ficheros de script no tiene más que abrir el menú Ver de esta ventana y seleccionarlo.

 

Sobra decir que estos mismos pasos los puede realizar para crear archivos (específicos para su comodidad) para eventos convencionales, CTCP's, ... etc. Puede tener tantos como desee. Así mismo también puede crear grupos de código raw igual que de cualquier otro tipo de código de script, es decir, encerrándolos entre líneas de activación, de tal modo que solo operarán cuando usted lo desee:

 

#nombre_grupo [on/off]

Líneas de código...

#nombre_grupo end  

 

De este modo puede tenerlo activo (on) o inactivo (off) a su gusto con el uso de las órdenes: .enable #nombre_grupo o .disable #nombre_grupo desde un alias o una opción de popups (para más información al respecto repase los primeros apartados del capítulo Los Eventos del mIRC, que se refiere a los eventos convencionales).

 

 REFERENCIA DE LOS NÚMEROS RAW

Solo un dato nos falta para poder comenzar a crear código de script para configurar nuestro programa ante las respuestas raw y es, evidentemente, conocer los números asociados a cada una de ellas.

 

Desgraciadamente para nuestra capacidad retentiva, y afortunadamente para lo que podemos llegar ha hacer con ellos, son una enorme cantidad, por lo que mi primera recomendación debe de ser que dedique algún tiempo a examinar los que se encuentran en los muchos scripts para mIRC de uso gratuito que puede obtener en la w.w.w. De este modo no solo descubrirá el número de cada uno de ellos, sino que tendrá también ocasión de analizar algunas buenas ideas de lo que se puede conseguir. "Destripar" scripts es la mejor manera de aprender a hacerlo, estas páginas solo pretenden que usted pueda llegar a tener una comprensión mas o menos clara de lo que está viendo cuando entre en el código de alguno.

 

Para facilitarle todas las herramientas que necesita para poder trabajar con provecho con esta faceta del mIRC, le recomendamos dos ficheros muy útiles como referencia de los números raw:

 

Por un lado el archivo "numeric.hlp" es una completa referencia de los números raw, se trata del "Jeepster's numeric reference". Incluye una completa lista en formato .help para Windows y alguna información más de interés. Puedes bajarlo pulsando aquí.

 

Cómo averiguamos estos números especiales de la respuesta del servidor? . mIRC los oculta normalmente . Para verlos tienes que incluir una pequeña línea en tus remotes:
 

    raw *:*: echo -a $numeric $1-

 

Es de muy importancia la observación y la práctica para llegar a crear buenos scripts, esperamos que los conceptos que ha aprendido aquí le sirvan como base para esta labor.

 


 
  Hoy habia 10 visitantes (21 clics a subpáginas) ¡Aqui en esta página!  
 
-----------------------------------------------------------------------
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis