MIRC Scripting - Complicando los Alias con programación

3 - Complicando los Alias con programación

[editar]
Tutorial creado por t0m|ta. Extraido de: http://www.tomatoma.ws/subsecciones.php?forum_id=18&catid=20&todos=1
08 de Marzo de 2006
Este es un tema bastante avanzado recomendamos leer primero la sección introductora de Alias
Las llaves de evaluación[ ]
Si quieres tener un mayor control sobre el orden en que se ejecutan tus órdenes (valga la redundancia), puedes usar los [], puedes usarlos también en los popups y en los remotes. Los identificadores situado dentro de estos paréntesis se evaluarán primero de izquierda a derecha, lo cual te puede dar mucho juego. Ejemplo:

|| Código: ||
|| /note /notice $1 " $+ [ $read [ -s + [ $2 ] ] c:\text\note.txt ] $+
/sayvar /say % [ $+ [ $1 ] ] ||


Las llaves {} agrupadoras
Puedes usar estos paréntesis para agrupar alias con múltiples órdenes en diferentes líneas, poer ejemplo:

|| Código: ||
|| /insultos {
/msg $1 Eres un tonto
/msg $1 Pero además eres idiota
/msg $2 y por si no te queda claro, Te odio
} ||


Este es un alias bastante tonto pero creo que deja claro lo que quería decir.
If then else
Puedes utilizar el if-then-else para decidir qué partes de tu script quieres ejecutar, basándote en la evaluación de una comparación:
/
|| Código: ||
|| insultos {
if ($1
enemigo) notice $2 ¡¡¡Eres un imbécil!!!!
elseif ($1
amigo) notice $2 ¡¡¡¡Cómo te quiero!!!
else echo -a A ver si te aclaras bonita!!!!!!!!!!!!!
} ||

Este es otro script bastante tonto, pero también deja claro lo que quiero decir si tecleas /insultos enemigo juan le mandará un notice a juan llamándole imbécil. Su tecleas /insultos amigo juan le mandará un notice dicéndole cuánto le quieres. Y si tecleas /insultos seguido de cualquier cosa que no sea amigo o enemigo te mandará un echo a la ventana que tengas activa pidiendote que te aclares :)))
La orden goto
La orden /goto te permite saltar de una parte a otra del script, es decir se trata ya de programación orientada a eventos, en vez de un script secuencial (qué cosas digo si no tengo ni idea de programar, es muy probable que lo que acabo de decir sobre los eventos sea completamente mentira)

|| Código: ||
|| /insultos {
if ($1
enemigo) goto uno
elseif ($1
amigo) goto dos
else goto tres
:uno
notice $2 ¡¡¡Eres un imbécil!!!!
halt
:dos
notice $2 ¡¡¡¡Cómo te quiero!!!
halt
:tres
echo -a A ver si te aclaras bonita!!!!!!!!!!!!!
halt
} ||

Es importante el halt, si no lo pones, ejecutará todas las secuencias seguidas, en vez de sólo la que tu quieres. Cómo has visto he utilizado goto sin el /, porque dentro de los alias no hace falta, se presupne que las palabras clave son órdenes.
Hay que tener cuidado con el goto te puede llevar a meterte en un bucle infinito si te pasa eso puedes salir del marrón pulsando simultámeente Control+Break (pause break, de las 3 que hay después de las teclas de función, la 3ª)
La orden Return
Para el script que se está ejecutando en ese momento y deja que continúe ejecutándose la rutina que había llamado a ese script en concreto. También puedes especificar un valor para /return que se almacenaría en el identificador $return, y luego puedes usar ese valor en tus rutinas. /return valor
La orden halt
Para un script y no deja que siga ejecutándose. Puedes usarlo en los remotes, para impedir que el mIRC responda a los ctcps por ejemplo, o en los aliases cómo hemos hecho hace un momento.
Identificadores y variables
Tanto identificadores cómo variables guardan información para que luego la utlicemos, tienen la ventaja de ser nombres cortos fáciles de recordar, por ejemplo, supongamos que tenemos una variable % tonto (ya veremos luego cómo se le asignan valores) cuyo valor sea: Te he dicho mil veces que eres un irremediable tonto. Pues sería más fácil hacernos un alias:

|| Código: ||
|| /tonto /say %tonto que
/tonto /say Te he dicho mil veces que eres un irremediable tonto. ||


Vamos ahorran trabajo.
Un identificador, lo que hace es devolver el valor contenido en una variable ya definida por mirc, digamos que son variables predefinidas. Por ejemplo, $time devolvería la hora actual; Siempre que mIRC encuentre un identificador en tus órdenes, lo reemplazará por su correspondiente valor. Puedes ver una lista de los idenficadores, son muy útiles.
Las variables son identificadores cuyos valores puedes crear y cambiar tu mismo, y usarlos depués en los scripts.
Identificadores personalizados
Un identificador de este tipo es simplemente un alias que devuelve un valor, y puedes usar ese nombre de alias con un prefijo identificador: Por ejemplo, vamos a crear un alias para sumar:

|| Código: ||
|| add {
%x = $1 + $2
return = %x
} ||


add va a ser nuestro identificador, aquí creamos la variable x, y le asignamos el valor de $1 + $2 y luego le dedimos que devuelva el valor de X así que el valor de add será ahora el valor que tenga %x y podremos usarlos así

|| Código: ||
|| echo La suma es: $add(1,2) ||


Si tienes un identificador predefinido del mIRC con el mismo nombre, tendrá preferencia sobre el tuyo.
remote scripts
Puedes añadir alias a tus scrips remotos, simplemente añadiéndole el prefijo alias a tu alias habitual.
alias add {
%x = $1 + $2
return = %x
}
Si le añades -l en la definición del alias, entonces dicho alias sólo será accesible a órdenes que esten en el mismo script que el alias.

|| Código: ||
|| alias -l add {
%x = $1 + $2
return = %x
} ||


Prefijos de las órdenes
Si estás ejecutando una orden des un editbox de mIRC, puedes forzar al mIRC a evaluar los identificadores de esa línea poniendo
orden en lugar de /orden. Ejemplo:

|| Código: ||
|| /me dice que son las $time ||


Resultará en *Tomatoma dice que son las $time
En cambio

||
Código: ||
|| me dice que con las $time ||


resultará en * Tomatoma dice que son las 17:45:26
Los identificadores cuando no están en la sección de alias, popups o remote se leen tal cual savo que utilices la
.
Algunas órdenes te mandan mensajes para decirte lo que han hecho. por ejemplo /ignore idiota, te mandaría un mensaje al status diciéndote que estás ignorando al idiota. si quieres evitar que el mIRC te mande estos mensajes, tienes que anteponer un "." a la orden: /.ignore idiota Ignoraría al idiota, pero no te diría a ti nada.
Comentarios Puedes añadir comentarios a tus scripts usando ; al principio de la línea

||
Código: ||
|| ;esto es un comentario ||


Puede ser útil para recordarte qué hace un script concreto o cómo lo has hecho, cuando quieras revisarlo unos meses depués.
El identificador $&
Este identeficador permite descomponer en varias líneas una orden muy larga. Estas líneas se recompondrán al ejecutarse el script, y evitará el error del mIRC con las líneas de órdenes demasiado largas.

||
Código: ||
|| largo { echo Esto es un ejemplo de una línea muy larga $&
que vamos a descomponer en varios trozos pero $&
cuando se ejecute el script será cómo una sola línea ||
[editar]

4 opiniones

busco un remote

hola .. estoy buscando un remote o un alias que sea capaz de grabar en un determinado lugar, por ejemplo un .txt , lo que se le diga que guarde, por ejemplo.... si alguien dice algo en determinado canal .. ke lo guarde en un .txt ke .. gracias...
Alguien que me ayude es urgente.

Tengo un gran problema y quisiera que alguien me ayudara esque me dejaran hacer un programa con la estructura if then else y este programa tiene que realizar busqueda de unos votantes espero que me puedan ayudar por que lo tengo que entregar mañana.
El mejor y mas directo manual de scripting.

Me ha costado encontrarlo pues esta un poco escondido pero me ha sorprendido por su sencillez. Mu bueno. Gracias, lo recomendare siempre que tenga ocasion. Gracias de nuevo.
Siguen siendo.

Lo mejor... Regards.

Tutoriales relacionados con 'MIRC Scripting'

MIRC dispone de un lenguaje de programación propio, que permite convertirlo en una de las... Más »
Este artículo está basado en "A Scripting Guide to mIRC 6. 0" de blue-elf belf@mircscripter.... Más »
Estudiamos una por una las posibilidades de personalización del mIRC, los sonidos, las grabaciones, las... Más »
Estudiamos los diferentes menús del mIRC, y vemos algunas opciones de configuración sencillas que nos... Más »

Autor y licencia de 'MIRC Scripting'

Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.