mIRC Scripting - Complicando los Alias con programación
08 de Marzo de 2006
Programación web
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!!!!
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
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 ||
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 doselse 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 ||
Valora este capítulo:
Autor y licencia de 'mIRC Scripting - Complicando los Alias con programación'
|
Opiniona sobre 'mIRC Scripting - Complicando los Alias con programación' (3)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'mIRC Scripting - Complicando los Alias con programación'
Este artículo está basado en "A Scripting Guide to mIRC 6.0" de blue-elf belf@mircscripter.com ...
Más »
Estudiamos una por una las posibilidades de personalización del mIRC, los sonidos, las grabaciones, las...
Más »
Kerio mailserver es un servidor de correo que soporta los protocolos imap, pop3 y smtp....
Más »
PHP es un lenguaje de programación diseñado específicamente para aplicaciones Web; las características más destacables...
Más »
PHP es un lenguaje de programación diseñado específicamente para aplicaciones Web; las características más destacables...
Más »


