[[Sección para scripters]]
En esta sección pretendo poner todo lo que sea útil para los scripters o creadores de addons.
Aquí, pues, habrá funciones y ficheros de código que puedan ser útiles a mucha gente. Al contrario de mis addons, que no son para incluir en scripts, el código que pongo aquí está destinado a que cualquier creador de scripts pueda cogerlo y utilizarlo en el suyo.
También iré incluyendo cosas más simples que puedan ser útiles a la gente que está aprendiendo a scriptear.
Ah, y si alguien quiere mandar algo para ponerlo en esta sección, pues adelante.
(mIRC 5.5 y superiores)
Los arrays son variables indexadas que nos permiten guardar grandes cantidades de datos de forma ordenada. Por ejemplo, si en un determinado script quisieras guardar la media de lag de cada día del año que te conectas, sería un suicidio hacer 365 variables a mano, probablemente acabarías llegando a la conclusión de que lo mejor sería un bucle que fuera creando variables numeradas o que de alguna forma se identifiquen mediante un orden (índice). En muchos lenguajes de programación (C, Java...) el sistema de arrays viene implementado, los arrays tienen sus características y propiedades específicas. En mIRC, la única forma de crear arrays es de forma "artificial", con las variables ordenadas como se ha dicho.
Las funciones que incluyo en el arrays.mrc valen para crear arrays fácilmente y que la cosa sea un poco menos pesada. También ordenan arrays mediante el algoritmo de la burbuja, copian arrays, crean "hashes" o arrays multidimensionales (para tablas, etc.)
$ArrayAdd( nombre.del.array , valor) o /ArrayAdd nombre.del.array valor - Añade un nuevo elemento a un array con el valor (valor). Si el array no existe, lo crea (añade el elemento 1). Si se usa con $, devuelve el número del elemento que ha añadido.
$ArraySize( nombre.del.array ) - Devuelve el tamaño del array, es decir, el número del último elemento.
$ArrayElement( nombre.del.array , índice ) - Devuelve el elemento que ocupa ese índice en el array.
/ArraySet nombre.del.array índice valor - Cambia directamente el elemento del array que ocupa ese índice por el valor que le demos.
/ArrayCopy array.fuente array.objetivo - Copia un array. Si el array objetivo existe, lo sobreescribe.
/ArrayRearrange array.a.ordenar array.con.numeros.de.orden - Esta función no es muy útil para el que use este archivo, es más bien interna, pero por si acaso la describo también: ordena el primer array en función del segundo que contiene los números de orden, es decir, si el segundo contiene 3 1 2; pondría el primer elemento del primer array en el lugar 3, el segundo en el 1, el tercero en el 2.
/VarInterchange variable1 variable2 - Intercambia el valor de las dos variables.
/ArrayElementInterchange array índice.1 índice.2 - Intercambia el valor de los dos elementos indicados de un array.
/SortArray array - Ordena un array. Es una aplicación en scripting del algoritmo de la burbuja (bubble sort), que por cierto es lento, así que no intentéis grandes maravillas.
/SortArraysByArray array.en.funcion.de.la.que.se.ordenan array1 array2 array3... - Esto se usa para arrays multidimensionales o hashes. Lo explico con un ejemplo: si tenemos a varias personas organizadas con arrays llamados "nombre", "apellidos", "edad", "telefono" y los queremos ordenar por los apellidos, ponemos /SortArraysByArray apellidos nombre edad telefono y quedarán ordenados. Ordena por orden alfabético o numérico, eso sí, cuidado con las "ñ" y cosas de esas.
Eso sí, me tenéis que perdonar porque el fichero está en formato antiguo, las variables son globales y usa los bucles antiguos. La mayoría de las funciones ya las hice hace más de un año :)
Naturalmente, todos estos trozos de código son simples, no hay ninguna maravilla, son las típicas funciones que todo el mundo usa. Si estás aprendiendo a scriptear, mirar algunas puede ser útil. Con el tiempo iré añadiendo más.
Esto nos muestra una tabla con los caracteres y sus números ASCII.
Esto nos saca una lista de todos los *.mrc (addons)
que tenemos en el directorio del mIRC.