Hola buenas.
Navegando un poquito por el foro he visto una especie de tutorial, en el cual sólo se daban cuatro ejemplos sobre la programacion en mIRC Scripting y que realmente no te enseñaba a entender realmente la programación en este lenguaje tan peculiar. Puesto que hay tanta gente en esta comunidad que usa el IRC y que llevo muchísimo tiempo programando en este lenguaje (uno muy divertido, a mi parecer), he decidido que voy a escribir un manual cortito, por partes, y que te ayude a entender lo que haces y cómo lo haces.
Este tutorial será por partes como ya he dicho, iré editando este post para poner las nuevas partes.
En la primera parte explicaré lo básico del entorno de programación de mIRC, el mIRC Scripts Editor, al que se accede desde el menú Tools - Script Editor o presionando las teclas ALT + R, se abrirá una nueva ventana en la que hay unos menús, y unas pestañas, en concreto hay 5 que sirven para lo siguiente.
Aliases - Son una especie de macros, o comandos que creamos nosotros para hacer nuestra vida algo más sencilla
Con este ejemplo entraríamos a dos canales a la vez con solo poner /entrarcanales :
/entrarcanales /join #canal1,#canal2
Popups - Es el código referente a los menús programables de mIRC en el que puedes añadir elementos a gusto del consumidor, para ni siquiera tener que escribir /entrarcanales :
Mis Comandos
.Entrar Canales:/entrarcanales
.Salir:/quit
Esto crearía un apartado en el menú el cual tendría 2 sub-apartados, Entrar y Salir, que está claro lo que hace cada uno.
Remotes - Es lo que normalmente usaremos, es la parte fundamental de la edición de Scripts, donde se puede modificar todo lo que uno quiera, incluso los Aliases se pueden crear a partir de esta pestaña, cosa que veremos más adelante, en esta no pondré ningún ejemplo ya que es la pestaña que se profundizará de la programación de mIRC Scripting.
Users - Esto es para crear rangos especiales a usuarios conocidos, o siguiendo cualquier patrón, ya explicaré algo más adelante sobre esto, cuando veamos los eventos que tiene mIRC y su programación.
Variables - Aquí se guardan todas las variables que usa el programa en los scripts, nada más que decir.
Por el momento, nada más que decir, alguna duda siempre está el /help de mIRC lo único que pasa es que viene en inglés y suele ser un impedimento para algunos.
En este apartado daré un repaso por las variables, ya que son algo "diferentes" que en otros lenguajes de programación, en mIRC Scripting no existen variables de tipo entero, de tipo caracter, o tipo cadena, existen variables "globales" que pueden contener enteros, decimales, o texto, también existen variables binarias... pero esas no nos conciernen en este momento. Las variables en mIRC Scripting empiezan por el caracter %, es el distintivo que tiene sobre las demás cadenas de texto.
Creando una variable:
Existen dos formas de crear una variable, una que sólo se usará en la parte de código donde se crea la variable, llamada variable local, y otra que se guarda en la parte de Variables de la parte 1 de este mismo manual, y se llaman variables globales, así las tendremos para cuando las queramos usar más tarde.
Para crear una variable global se usa el comando /set %nombrevariable valor
Y para crear una local se usa: /var %nombrevariable valor
Un modificador de las variables muy usado es el que BORRA la variable después de N segundos, y se usa de la siguiente manera: /set -u6 %borrame enseissegundos
Se borrará la variable en 6 segundos.
(Para ver todos los modificadores de las variables podéis usar /help variables)
También se pueden borrar variables usando el comando: /unset
Las variables de mIRC Scripting, para nombrarlas también admiten variables.
Puede parecer algo lioso pero realmente no lo es, veamos un
;Esto es un comentario
;Creamos una variable y le damos el valor "hola"
/set %variableuno hola
;Ahora creamos una variable que se llamará: %saludo.hola (Donde hola es el valor de %variableuno creada anteriormente)
/set %saludo. [ $+ %variableuno ] hola que tal
;Ahora la variable %saludo.hola contiene la cadena de texto "hola que tal"
NOTA: La explicación de los [ ] y el $+ viene más adelante, podéis usar ese ejemplo como modelo y pronto entenderéis el porqué.
Los identificadores en mIRC Scripting se identifican (valga la redundancia) por el símbolo $, (al igual que las variables se hacía por %), y lo que hacen es devolver "algo" dependiendo de los parámetros que le pases (que puede ser ninguno), veamos unos
Fecha y hora: $time, devolvería la hora actual.
Hacer una simple cuenta: $calc(4*3), pues devolvería 12, tal cual.
Ahora si eso lo queremos en una variable.... /var %multiplicacion $calc(4*3)
Hay también, algunos identificadores "especiales", os diré algunas de los identificadores más importantes y que más se usan:
1- $+ este identificador es usado para ELIMINAR los espacios en el código, a su izquierda y a su derecha, veamos un ejemplo: /var %sinespacio sin $+ espacio (La variable %sinespacio tendría de valor "sinespacio" )
2- $N donde N es un número, por ejemplo $1, devuelve el primer parámetro de un $identificador o /comando, también puede ser $2, devolvería el segundo, y si le pones un guión, del tipo $1- devuelve todos los parámetros a partir del primero.
3- $calc mIRC no permite hacer cuentas directamente desde el código si no que se ha de usar este identificador donde como parámetro le pasas la cuenta y te devuelve el resultado
4- $right and $left(cadena, N) devuelve los N caracteres por la izquierda o por la derecha de "cadena"
5- $rand(n1,n2) devuelve un valor aleatorio entre n1 y n2, también es válido entre letras, ($rand(a,z) y $rand(A,Z))
Es una lista larguísima, si creéis que hace falta alguno más decírmelo y lo añadiré.
Bueno, si recordáis las 5 pestañas del primer apartado de este tutorial, pues los $identificadores se pueden crear en la pestaña Aliases, y los aliases se pueden crear en la pestaña Remote (algo confuso huh), veremos como funciona con este
Crearemos un identificador que nos devuelva la suma de 2 números, algo sencillito para empezar.
Nos vamos a la pestaña Remotes:
alias suma {
return $calc($1+$2)
}
;return es como en todos los lenguajes para devolver algo, como un método que devuelve un entero en la POO
;$1 devuelve el primer parámetro que se le pasa (en el ejemplo de más abajo seria 4)
;$2 devolvería el segundo (más abajo el 3)
( En el caso de la pestaña Aliases: suma { return $calc($1+$2) } )
Pues si queremos crear un Alias en la pestaña de Remotes sólo tenemos que poner alias delante del nombre del Alias, por eso en la pestaña de Aliases no lo tiene, se obvia.
Nos crearía un $identificador que se usaría de la manera: /var %ejemplosuma $suma(4,3)
En este apartado del tutorial aprenderemos como hacer condicionales y los bucles while, que son prácticamente los más usados en este lenguaje de programación.
Los condicionales, en primer lugar sirven para verificar si ALGO, lo que sea, se cumple, veamos algunos ejemplos de condicionales ya que lo único que hay que saber en esta parte es la sintaxis.
if (5<6) { entonces hago esto }
En este primer ejemplo vemos que 6 es mayor que 5 por lo tanto lo que venga después, la secuencia de órdenes se cumplirá.
Por el contrario, como 6 no es menor que 5, la siguiente secuencia de órdenes no se llevará a cabo ya que la condición no se cumple.
if (6<5) { y esto no lo hago }
Sintaxis general: if(X condicion Y) { entonces hago esto }
Como ejemplos de condiciones tenemos:
1- X == Y : Si X es igual a Y
2- X > Y : Si X es mayor que Y
3- X <= Y : Si X es menor o igual que Y
4- X != Y : Si X es distinto de Y
Y generalmente estas son las más usadas, aunque recordad que en la ayuda del propio mIRC lo tenéis todo, /help if
Para los bucles, generalmente se va necesitar un tipo de condición para los bucles, la condición de que X es menor o igual que Y, para los contadores y hacer las cosas Y veces, veamos un ejemplo;
Sintaxis: while (x condicion y) { acciones } Prácticamente igual que con el condicional if.
Código:
var x = 1
while (x <= 5) {
echo -a Voy por la iteración %x
inc %x
}
Explicación:
En la primera línea ponemos la variable x a 1.
En la segunda ponemos la condición del bucle que mientras que X sea menor o igual que 5 entonces ejecutará la serie de acciones que hay entre llaves que son las que incumben al bucle while.
En la tercera es para imprimir por pantalla, como un depurador, sólo lo verás tú.
En la cuarta línea usamos el comando /inc %variable para incrementar en 1 el valor de la variable.
Salida:
Voy por la iteración 1
Voy por la iteración 2
Voy por la iteración 3
Voy por la iteración 4
Voy por la iteración 5
Y hasta aquí el fin de los bucles y de los condicionales if, por lo que veis son bastante facilitos aunque luego la cosa se puede complicar, cosa que se verá más adelante conforme vaya avanzando este tutorial se verán otros ejemplos de condiciones de bucles etc....