¿Qué son Popups?
Los Popups son menús configurables que el mIRC te permite crear menús que brotan haciendo un click con el botón derecho del mouse (popups) para la ventana de status, para la ventana de query/chat (privados), para la ventana del canal, para la lista de nombres (nicknames list), y para la barra principal de menús. A cada uno de estos se accede desde el sitio determinado. Abre el ícono de Popups pulsando Alt + P, selecciona en la Opción View del menú y comprueba.
Para crear éstos debes saber como usar los comandos básicos del mIRC, como crear aliases, como usar identificadores y variables.
Ejemplos: Los Popups usan este formato:
<menúitem>:<comandos>
Buscar ayuda:join #ayuda
Las palabras antes de los dos puntos ":" son el nombre del item del menú. Las palabras después de los dos puntos ":" son los comandos que se ejecutarán. En este caso, en el menú verías "Buscar ayuda". El comando que se ejecutaría si presionas ese item sería /join #ayuda.
El formato de los comandos sigue exactamente el de los aliases. Mira la sección Aliases para entender como se escribe un alias.
Para crear un submenú, usa un punto "."
Entre a un Canal
.Buscar ayuda:join #ayuda
.Visitar a los amigos en #mexico:/join #mexico
.En que canal entramos?:/join $?
En este caso el nombre del submenú es "Entre a un Canal" Todos los comandos que lo siguen, comenzando con un "." son parte de su submenú.
Para crear menús dentro de menús, solo agrega mas puntos:
Canales
.Ayuda
..ayuda-class:/join #ayuda-class
..mIRC:/join #mirc
..ayuda-scripting:/join #ayuda-scripting
.Otros Canales
..Visita #cservice:/join #cservice
..Computer-help:/join #Computer-help
.Canal a Entrar:/join #$$?="Ingresa al nombre del canal:"
Para separar items de menús, puedes usar un guión "-"en la línea siguiente de escritura.
Por ejemplo:
Quién es?:/whois $?
-
Misceláneas
.Editar Temporales:/run notepad.exe temp.txt
.Decir algo: /say $?
.Acción:/me $?
Usuarios en
.#30ypico:/names #30ypico
.#ayuda: /names #ayuda
.Nombres en?:/names $?
-
Listar Canales:/list
-
Para usar el menú de la lista de usuarios (nicks), debes escoger un usuario (nick) antes de activar el menú con el botón derecho. Aquí hay un ejemplo simple de menú de la lista de nicknames o usuarios:
Quién es?:/whois $1
-
Modos
.Op:/mode # +o $1
.Deop:/mode # -o $1
.Kick, Ban:/kick # $1 | /ban $1
-
DCC Send:/dcc send $1
DCC Chat:/dcc chat $1
-
Golpe:/me Golpea $1 con una silla en la nuca
Privado (query):/query $1 Hola! Estas ahí...?
Si quieres que un item de menú realice varios comandos, puedes usar los paréntesis de llave { }.
Estudia la sección de Aliases para mas información sobre como usarlos.
Galleta {
if ($1 == $me) echo Me regalo una galleta!
else echo Le doy una galleta a $1 !
}
El menú anterior puede ser utilizado en la lista de nicknames. El $1 se refiere al nickname del usuario que has elegido de la lista. En este caso, el mira a ver si he escogido mi propio nickname; si es así, manda el primer mensaje, si no, manda el segundo.
Los popups para los Query/Chat(privados) y la barra de menús(Menubar) funcionan igual.
Identificadores y Variables
Si hay variables o identificadores en el título de un menú, este se evaluará cada vez que el menú aparece. Esto te permite crear un menú que varía en apariencia.
Si el menú entero es evaluado a $null el menú no aparece.
Scripts remotos
Puedes poner definiciones de menús en tu remotes usando el prefijo menú.
menu status {
Server
.Links:/links
.Lusers:/lusers
.Motd:/motd
.Time:/time
}
Con esta definición agregarías un submenú a tu ventana de estado(status). La cual no aparecerá en la lista de Popups programados en la ventana de estado.
Además puedes especificar channel(canal), query/chat, nicklist(lista de nicks) y menubar como el nombre del menú y te sale en esas ventana, de la misma forma que en el ejemplo anterior de la ventana de status.
menu nicklist {
Slap
.Haddock:/me prods $1 with a haddock
}
Esto te agregaría un submenú a el menú de la lista de nombres.
Puedes también especificar menús para ventanas especiales especificando el nombre de la ventana.
menu @test {
dclick /command
<menuitems>
}
El "dclick" te permite especificar un comando que se activara cuando hagas doble clic en la ventana especial (en la lista de nombres) También puedes poner $1 para referirte a un nick en especial.
También puedes especificar múltiples nombres de ventana para un solo menú, por ejemplo:
menu @dogs,@cats,@goats {
<menuitems>
}
El mIRC permite también la creación de popups o menús personalizados; cada opción que diseñamos para estos menús ejecutará las órdenes, alias, comandos,...etc. que les introduzcamos, y podrá así mismo hacer uso de identificadores, variables,...etc. Disponemos inicialmente de 5 menús que podemos diseñar a muestro gusto con las opciones que deseemos:
MENUBAR: Es el cuarto(4) 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(mouse) sobre la pantalla del canal en que te encuentras activo.
NICKNAME LIST: Es el menú emergente de la lista de nicks del canal.
STATUS: Es el menú emergente de la ventana de Status(Estado) del mIRC.
QUERY/CHAT Es el menú emergente de la ventana de querys y de DCC chat.
Podemos acceder al código que genera los popups desde el menú Herramientas opción "popups". En la ventana que nos aparece tenemos a su vez una barra superior de opciones, si pulsamos "ver" podremos elegir, de entre los 5 anteriores aquel popup del que queremos ver su programación. Ahí podremos crearlos, modificarlos o eliminarlos. Terminado el trabajo pulsaremos OK, y desde ese momento ya podremos hacer uso de las modificaciones introducidas, ya que éstas quedarán grabadas.
Una de las mejores formas de comprender los popups es observando el código de los ya existentes, cada línea de este código suele corresponder con una opción del menú, veamos un ejemplo:
Canales
.Entrar a #ayuda: /join #ayuda
.Entrar a #Panama: /join #Panama
.-
.Elegir canal: /join #$$?="Ingresa el nombre del canal"
.Cambiar modos de canal.
.Solo op’s cambian topic: /mode # +t.
.No mensajes externos: /mode # +n.
.Cambiar el Topic: /topic # $$?="Introduce nuevo topic"
Nicks: /nick $$?="Introduce nuevo nick"
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 al desplegarse el menú. Si 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.
En virtud de lo anterior una línea de opción de un popup deberá de tener su nombre (el que queramos) seguido de dos puntos ":" seguido de la acción o comando que se ejecutará al hacer clic sobre esta opción.
Si solo está el nombre, no hay dos puntos y luego un comando, es porque al seleccionarla se desplegará un submenú, así pues deberá de estar seguida de otras líneas de opciones de rango inferior, es decir, con más puntos que ella por delante, que serán las que se desplieguen al seleccionarla.
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ú.
Así pues, en el ejemplo anterior, al desplegar el popup observaremos tan solo dos opciones: Canales y Nicks. Si pulsamos la segunda podremos cambiar nuestro nick introduciendo uno nuevo en la ventana que se nos presentará; en cambio, al pulsar la primera se desplegarán a su vez otras cuatro opciones, separadas las dos primeras, por una línea horizontal, de las dos últimas. De estas cuatro las tres primeras ejecutarán ya una acción cada una, sin embargo la cuarta desplegará otras tres nuevas opciones.
Este razonamiento quizás pueda parecer complejo en principio, pero con un mínimo de práctica y observación descubrirá que domina las sutilezas de los popups mucho antes que cualquiera de las otras áreas de creación de script para el mIRC. Todo lo dicho para la definición de alias es también válido para construir la definición de opciones de menús, incluido el uso de identificadores.
Algunos identificadores (palabras especiales con el símbolo $ delante) cobran un valor especial cuando se usan en un determinado popup; por ejemplo, el identificador posicional $1, cuando se usa en una opción del popups de QUERY/CHAT, se cargará automáticamente con el nick del la persona con la que tenemos abierto el query o DCC Chat; y en el menú NICKNAME LIST con el primer nick que tengamos seleccionado en la lista.
Recuerde, para dominar los popups lo mejor es un mínimo de práctica y observar otros que ya están hechos, el mIRC dispone de algunos, y además son muchos los scripts en circulación que nos proporcionarán excelentes ejemplos de la creación y ordenación de esta excelente herramienta.
Por ultimo, recuerde que es muy importante, debido a la similitud e interrelación que tienen, que usted haya leído y estudiado los Alias y sus comandos. Esto le ahorrará muchísimo tiempo y podrá entender mucho mejor lo que esta ocurriendo, sin llegar a sentir la sensación de frustración que provoca el nulo entendimiento de los protocolos de programación.