Aula Macedonia


Curso de Programación de Scripts para mIRC


Artículo realizado por
David García "Gato".





Creación de menús en el Script (Popups)

El mIRC nos permite crear nuestros propios menús personalizados para facilitar el uso del script. Los menús popup son los que todo programa usa para poder seleccionar opciones. En tu navegador tienes que estar viéndolos ahora con los nombres:
Archivo Edición Ver Ir ...
Con estos menús podremos ejecutar alias, comandos, definir variables, etc, sin tener que hacer nada, solo seleccionar la opción desde el menú. Existen 5 menús que podremos crear y moldear a nuestro gusto. Para que surja el menú debemos pulsar con el botón derecho del ratón sobre cada una de las ventanas que nos muestra el mIRC, excepto en MENUBAR. Son:

MENUBAR: Es el cuarto menú de la barra principal de menús que se encuentra en la parte superior de la pantalla del mIRC.

CHANNEL: Es el menú emergente que aparece al pulsar con el botón derecho del ratón sobre la pantalla del canal.

NICKNAME LIST: Es el menú emergente de la lista de nicks del canal.

STATUS: Es el menú emergente de la ventana de Status del programa.

QUERY/CHAT: Es el menú emergente de la ventana de querys y de DCC chat.
 
En cada uno de ellos pondremos aquellas opciones, comandos, alias, identificadores, etc., que más nos interesen según la ventana que piquemos con el ratón. El único que sale por defecto es el MENUBAR. Éste será visible en cualquier momento.

Para llegar hasta la sección del mIRC que nos permite crearlos seguiremos los mismos pasos que para crear alias. Pulsaremos sobre "TOOLS", y después "POPUPS". En la ventana que nos aparece tenemos a su vez una barra superior de opciones, si pulsamos "VIEW" podremos elegir de entre los 5 menús anteriores y así editarlos a nuestro gusto.

Tenemos también la posibilidad de hacer una vista previa de cómo va quedando el menú. Pulsamos sobre "POPUP" y podremos ver el aspecto que tendrá, pero no es funcional, solo una vista previa.

Una vez terminadas nuestras modificaciones solo debemos pulsar "OK" y todos los cambios quedarán guardados y listos para usar. Yo prefiero usar antes la opción "FILE" y después "SAVE" para asegurarme. Nunca se sabe.

La creación de menús es muy sencilla y no precisa de ningún tipo de trabajo especial. Lo mejor es ver un ejemplo de un menú sencillito. Veamos un típico menú programado en MENUBAR:



GaTo Script
Conectar
.Conectar (Manual):/server $$?="Escribe el servidor y el puerto"
.IRC Hispano (Auto)
..Argo:/server gaia.irc-hispano.org 8247
..Arrakis:/server pleyades.irc-hispano.org 6666
..Catalunya Net:/server irc.catalunya.net 6666
..Redes TB:/server pulsar.irc-hispano.org 7000
Desconectar:/quit $$?="¿Mensaje de salida?"
-
Elejir canal: /join # $+ $$?="¿A qué canal quieren entrar?"
Cambiar nick: /nick $$?="¿Nuevo nick?"
-
Modos de Usuario
.Modo Invisible
..On:/mode $me +i
..Off:/mode $me -i
.Msj del Servidor
..On:/mode $me +s
..Off:/mode $me -s
.WallOps
..On:/mode $me +w
..Off:/mode $me -w
.Ver Kills
..On:/mode $me +k
..Off:/mode $me -k


Este, en principio, complicado menú, aparecerá de la siguiente manera en el mIRC:
.
.
Se puede ver que la primera línea es " GaTo Script ". En el menú MENUBAR la primera frase que pongamos es la que aparecerá en la barra de comandos del mIRC.

Como se puede observar cada línea describe en primer lugar el nombre de la opción de menú con la que aparecerá cuando se despliegue este. Como es sabido cada opción de menú puede tener a su vez otras subopciones, y estas a su vez otras tantas, y así sucesivamente; esto se especifica en el diseño del menú mediante los puntos que preceden a cada una de las líneas: las líneas sin puntos delante son opciones principales que aparecerán nada más desplegarse el menú; si, por el contrario, tienen un punto delante significará que son subopciones de las anteriores, y se desplegarán al pulsar sobre aquella inmediatamente anterior que no tenga punto; si tienen dos puntos serán una subopción de la inmediatamente anterior que solo tuviese uno... y así sucesivamente.

Opcionalmente podemos poner tan solo un guión ( - ) en lugar del nombre de una opción. Esto lo único que hará será insertar una línea de separación en la lista de opciones del menú, como las que ves en la imagen del ejemplo. Gracias a esto podremos dividir el menú según las funciones de cada opción. Los guiones se puden poner tanto en el menú principal como en los submenús.

Veamos paso a paso cada opción del menú:

Como podrás ver los popups nos permiten ejecutar una serie de complicados comandos con un solo click del ratón.
En este ejemplo he puesto los comandos, pero podemos usar alias también. Hay que recordar que no es bueno poner todos los comandos de nuestro menú en la sección POPUPS ya que todo archivo de un script del mIRC no puede superar los 30000 bytes, y un menú puede llegar a ser enorme. Los alias nos ayudarán con ello. Veamos un ejemplo:

Definimos una serie de alias:

/op /mode $chan +o $$1
/deop /mode $chan -o $$1
/patada /kick $chan $$1
/expulsar /ban $chan $1 9
/patada_expulsar /ban $chan $1 7 | /kick $chan $$1
/ctcp1 /ctcp $$1 $$?="Pon el mensaje?"
/ctcp2 /ctcp $$1 ping
/ctcp3 /ctcp $$1 finger
/ctcp4 /ctcp $$1 version
/ctcp5 /ctcp $$1 time
/ctcp6 /ctcp $$1 userinfo
/ctcp7 /ctcp $$1 clientinfo
/XDCC1 /msg $$1 XDCC HELP
/XDCC2 /msg $$1 XDCC LIST
/XDCC3 /msg $$1 XDCC SEND # $+ $$?="Número de paquete?"
/dcc1 /dcc send $$*
/dcc2 /dcc chat $$*

Ahora creamos nuestro menú NICKNAME LIST usando todos esos alias que hemos hecho antes y unos comandos normales al principio para que veas las diferencias:



Comandos al Nick
.¿Quién es?:/uwho $$1
.Invitarle a un canal:/invite $$1 $$?="¿Dónde invitas al nick señalado?"
.-
.Ignorarle: {
    /ignore $1 3
    /echo 3 GaTo SCript: Ignorando a $1
           }
.Dejar de ignorarle: {
    /ignore -r $address($1,3)
    /echo 3 GaTo SCript: Ya no ignoras a $1
           }
-
Dar Op:/op $$1
Quitar Op:/deop $$1
-
Kick:/patada $$1
Ban:/expulsar $$1
Ban + Kick:/patada_expulsar $$1
-
CTCP
.Mensaje:/ctcp1 $$1
.-
.Ping:/ctcp2 $$1
.Finger:/ctcp3 $$1
.Version:/ctcp4 $$1
.Time:/ctcp5 $$1
.Userinfo:/ctcp6 $$1
.Clientinfo:/ctcp7 $$1
XDCC
.XDCC Help:/XDCC1 $$1
.XDCC List:/XDCC2 $$1
.XDCC Send:/XDCC3 $$1
-
Mandarle un Archivo:/dcc1 $$*
Hacerle un Chat privado:/dcc2 $$*

El aspecto que tendrá este menú de la ventana NICKNAME LIST será el siguiente:
.

.
Solo la opción Comandos al Nick usa comandos en el popup. Todas las demas usan los alias que definimos antes. Observa que para que el alias sepa a quién, por ejemplo, dar "op" es necesario usar el identificador $$1 que ya expliqué.

También verás en Ignorarle y Dejar de ignorarle que uso el separador "|". Es igual que en los alias. Separa cada operación que queramos que se ejecute. Podemos programar en el menú exactamente lo mismo que en un alias.

También podemos usar variables como partes del menú. De este modo en el caso de que cambie, por ejemplo, nuestro nick, aparecerá en el menú siempre el correcto. Veámoslo con un ejemplo:



Cambiar nick: /nick $$?="¿Nuevo nick? | /set %nuevo-nick $me
-
%nuevo-nick
.Ver tu servidor: /echo $server
.Ver tu puerto: /echo $port
.Ver tu IP: /echo $ip


Como verás la primera opción cambia tu nick y define una variable con tu nick. En la segunda parte aparecerá nuestro nick, sea cual sea, y podremos ver varios parámetros de nuestra conexión.

Otra opción que podemos usar al definir un menú es hacer teclas de acceso rápido a una opción. Para que lo entiendas mejor mira la barra de opciones de tu navegador. La primera opción es Archivo. Como ves la A está subrayada. Esa es la tecla de acceso rápido al menú popup Archivo de tu navegador. Esto se hace poniendo el signo & delante de la opción del menú tal y como se ve a continuación:



&Cambiar nick: /nick $$?="¿Nuevo nick? | /set %nuevo-nick $me
-
%nuevo-nick
.Ver tu &Servidor: /echo $server
.Ver tu &Puerto: /echo $port
.Ver tu &IP: /echo $ip


Así de sencillo. No los uses con las variables o no funcionarán bien. Puedes ponerlos en cualquier posición del texto, como se ve en el ejemplo, incluso dentro de las palabras. El menú quedará así:
.
.
No creo que haya nada más que explicar ahora. A medida que explique más secciones del mIRC como los Números Raw, Eventos, etc., iré explicando un poco más cómo usarlos con los popups.

Si tienes cualquier duda ya sabes donde encontrarme. Te recomiendo que mires los popups de alguno de los cientos de scripts que existen para que veas diferentes ejemplos. Con un poco de práctica te será muy sencillo crear tus propios menús en tu script y añadir opciones que te sean necesarias..




AULA MACEDONIA
a
MACEDONIA Magazine