![]() |
![]() |
Los números raw
Los números raw.-
Constituye
esta parte del 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 e tema paso a paso y veremos
que no es el león tan fiero como lo pintan.
Las
características del trabajo con los números raw en el mIRC requiere de 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 relativo 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, …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 alguna de ellas pierde su conexión con el Server, no perderá en
cambio el contacto con el otro usuario, ejemplos de ese tipo de acciones son:
envío y recepción de ficheros y chats privados, acciones remotas, ping,
version, finger, sound,…; son en general acciones ctcp (client to client
protocol) que suelen dar lugar a los eventos ctcp .
·
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
servidor, bien sea una 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 de 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 servidor. 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 para mIRC. Por ejemplo, para obtener una lista de los comandos
disponibles en el server puede teclear: /quote help.
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: /whois
ViK, y obtenemos esta respuesta:
ViK is
VIC@id-92.arrakis.es * Victor
ViK #ayuda_irc @#Salamanca
ViK using
orion.irc-hispano.org Arrakis 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 ese mensaje mediante el uso
de los número 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 comienza siempre por el nick de usuario del que hemos pedido la
información, después la palabra “is” 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 (id-92.arrakis.es en este ejemplo),
termina la línea con un * y su Full Name, el que escribió en el setup. Esta
línea tiene siempre el número raw 331 y se conoce como: RPL_WHOISUSER.
·
La
segunda línea es la respuesta número raw 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 este
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 que el mensaje estándar de final de envío de información
para ese comando, y es siempre igual. Tiene el número 318 (RPL_ENDOFWHOIS).
Otra
posibilidad es que el nick del cual hemos pedido información no se encuentre en
la red de IRC, en este caso la respuesta sería:
ViK No Duch
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 del comando /whois tenga el formato que yo quiera? y
¿Cómo puede saber los números raw de cada respuesta del servidor a un comando?.
Intentaremos aclarar en lo posible estas dos cuestiones.
Los eventos raw.-
Una vez
que nuestro programa recibe la respuesta del servidor a un comando o
requerimiento por nuestra parte, si conocemos el número raw, es posible
configurar mIRC para que inhiba la respuesta normal, y nos presente el formato
que nosotros queramos diseñarle.
Cuando
recibimos una 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 asi: “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.
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 ha de realizarse en ese momento:
raw <numero>:*:<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 ese raw concreto,
independientemente del nick, o cualquier otra información que nos devuelva el
servidor.
Si
describimos más de una acción asociadas al evento debemos de separar cada una
de las ordenes con el símbolo entubador: “|” (normalmente AltGr
+1), teniendo buen cuidado de que este símbolo tengo 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 estatus (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 siempre es el nick, a continuación la cadena “está conectado por:”, y
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 asi “orion.irc-hispano.org” se toma como
una sola palabra ($3 por 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 o no por nosotros, el
efecto en este ejemplo es el de inhibir la impresión de la respuesta del
servidor, así se consigue que en caso de hacer un /whois nos aparezca la frase
configurada por nosotros, y no la del servidor (si no ponemos halt se
imprimirán las dos).
Es así
como podemos sustituir limpiamente las respuestas normales de los comandos que
eviamos al servidor por otras con la sintaxis que deseemos, 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, y 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
pueda encontrar, este lugar es la sección remote de nuestro programa (menú
tools opción remote, o bien directamente con Alt + R). Recordemos que en esta
ventana se nos presentará el contenido de todos los ficheros de script para
eventos, ctcp’s y remotes. Es buena costumbre tener los eventos raw
agrupados en un fichero especificado para ellos, para conseguirlo un sistema
puede ser seguir estos pasos:
·
Desde
el explorador de Windows (por ejemplo), vaya al directorio done tiene los
ficheros .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 pulse Alt + R, o bien en tools/scripts/remote, en el dialogo que
aparece abre el menú file opción load, a continuación verá otro dialogo de
navegación en el que deberá localizar y seleccionar el fichero creado
“raw.ini” puse el botón Ok. Todo esto se logra de igual manera
tecleando la orden: /load –rs raw.ini.
·
Ya
está, el nuevo fichero se ha cargado en la memoria RAM correspondiente a mIRC
como fichero de script, ahora podrá observarlo en la ventana de Remote (repito,
Alt + R), si ha seguido los pasos anteriores evidentemente estará vacio, 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ú Wiew de esta ventana y seleccionarlo.
Sobra
decir que estos mismos pasos los puede realizar para crear ficheros
(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 ese
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.
Referencia de los números raw.-
Solo un
dato nos falta para poder comenzar a crear códigos de script para configurar
nuestro programa ante las respuestas raw y es, evidentemente, conocer los
números raw asociados a cada una de ellas.
Podemos
conseguir esto usando la siguiente orden:
raw
*:*:echo –s $numeric $1-
Esto nos
presentará en la ventana de estatus los números correspondientes a las
respuestas raw que recibamos. Podemos asimismo crear en nuestra sección de
remotos un alias y un evento que nos permitan activar está instrucción o no a
nuestro gusto, para ello basta con crearnos en nuestra sección de remotos un
nuevo archivo (Alt + R nos presentará la ventana de remotos, y en el menú sobre
Archivo (File) opción Nuevo (New)) copiar lo siguiente:
menu
menubar {
Visor raws
.$iif($group(#raws).status
== on,desactivar,activar) : {
if
($group(#raws).status == on) { .disable #raws }
else {
.enable #raws }
}
}
#raws on
on
1:start:{
if
($window(@raws).state == $null) { window –ks @raws 396 322 402 61 Arial
10 }
echo @raws Visor de Números Raw
}
raw *:*:echo @raws $numeric $1-
menu @raws {
Desactivar raws:{
window
–c @raws
.disable
#raws
echo –s Para activar de nuevo la ventana de raws:
menú Visor raws.
}
}
#raws end
Una vez
esto, vamos al menu Archivo (File) opción Guardar como (Save as) nos aseguramos
que estamos guardando dentro del directorio del programa y le ponemos de nombre
por ejemplo: raws. Tendremos así en nuestro menú del programa la opciión para
activarlo, lo podremos desactivar desde el menú de la ventana que se nos abrirá
con el nombre de @raws en la que iremos recibiendo los números raw
correspondientes a las respuestas del servidor.
Puedes descargar
el addon también desde aquí. (descargar)