mIRC Scripting - if-then-else
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
Programación web
7 - if-then-else
Bueno, esto ya es programación, la estructura If-Then-Else es común a casi todos los lenguajes de programación. Para los que entendemos inglés, su finalidad (aunque no su uso) resulta bastante lógico podríamos traducirlo cómo "Si_entonces_en Otro caso". Se trata de un condicional, en realidad es una forma de decir: Si esto es cierto, entonces haz esto, En otro caso haz tal otra cosa (o no hagas nada).
Veamos como funcionaría con pseudo con un ejemplo en castellano y en "pseudo código"
En castellano: Si el chico está bien adelante, y sino que le den.
En pseudo código
|| Código: ||
|| if (chico bien) {
igual a
Igual (si las toma en cuenta, por lo que tomatoma no será lo mismo que ToMaToMa)
!= no es igual a
< menor que
> mayor que
>= Mayor o igual que
<= menor o igual que
múltiplo de
\\ no es un múltiplo de
& Comparación bitwise
isin la cadena v1 está contenida en la cadena v2
isincs string v1 está comprendido dentro del v2 (atendiendo a la diferencia entre mayúsculas y minúsculas)
iswm wildcard (cómodín) la cadena v1 es equivalente a la cadena v2
isnum el número v1 es un número que está dentro del rango de v2 que está en el formato n1 -n2 (V2 opcional)
isalpha la letra v1 es una letra en la lista de letras contenida en v2 (v2 opcional)
ison nick v1 está en el canal v2
isop nick v1 es operador del canal v2
isvo nick v1 tiene voz en el canal v2
isban si v1 es una dirección baneada en la lista interna de bans
ischan Si v1 es el canal en el que estás.
isauto Si v1 es un usuario en tu lista de autoop en el canal v2 v2 (v2 opcional)
isignore Si v1 es un usuario en tulista de ignores v2 (v2 opcional)
isprotect si v1 es un usuario en tu lista de protegidos en el canal v2 (v2 opcional)
isnotify Si v1 es un usuario en tu notify list.
Para negar un operador (es decir que signifique exactamente lo contrario, puedes añadirle ! antes del operador, por ejemplo:
!isauto. quiere decir que la codición se cumple cuando ese nick no está en la lista de auto-op.
|| Código: ||
|| $ifmatch ||
Devuelve el primer parámetro de la comparación, cuando se ha cumplido la condición, por ejemplo:
|| Código: ||
|| if (text isin sometext) { ...
}
$ifmatch devolverá "text" ||
Combinando comparaciones Puedes combinar comparaciones usando los caracteres && para "y" y || para "o"
|| Código: ||
|| number {
if (($1 > 0) && ($1 < 10)) {
if ($1 < 5) echo el número es menor de 5
else echo el número es mayor de 5
}
else echo el número está fuera de rango
} ||
Este alias mira a ver si el número que especifiques al teclear /number (valor) está dentro del rango especificado (menor de 10)
Ejemplos
|| Código: ||
||
listops {
echo 4 * Lista de operadores en #
set %i 1
:next
set %nick $nick(%i,#)
if %nick $null goto done
$null) halt
else {
%pt = $ctime - $2
if (%pt <0) set %pt 0
if (%pt < 5) echo 4 [PING reply] $nick Pero si estamos pegaos!!!!!
elseif (%pt < 20) echo 4 [PING reply] $nick estás justo a la distancia perfecta
else echo 4 [PING reply] tierra llamando a $nick, Tierra llamando a $nick
}
halt
} ||
Esto intercepta el ping replay y en su lugar manda un mensaje tontísimo sóbre lo cercano que está el nick que nos ha hecho el ping.
Veamos como funcionaría con pseudo con un ejemplo en castellano y en "pseudo código"
En castellano: Si el chico está bien adelante, y sino que le den.
En pseudo código
|| Código: ||
|| if (chico
bien) {
adelante}
}
else{
que le den
} ||
Dentro de mIRC, nos permite aumentar muchísimo la complejidad de nuestros scripts. Nos permite ejecutar una u otra parte del script en función de que se cumplan unas condiciones que nosotros mismos hemos establecido; con lo cual nuestras órdenes dejan de ser lineales y empiezan a "pensar" por sí mismas.
SINTAXIS
|| Código: ||
|| if (CONDICIÓN) { órdenes }
elseif (CONDICIÓN) { órdenes }
else { órdenes } ||
En realidad aquí lo que hacemos es poner una condición, y le decimos:
Si la condición se cumple, ejecuta estas órdenes
Si no se cumple, pero es cumple esta otra condición, ejecuta estas otras órdenes,
Y si no se cumple ninguna de las dos condiciones anteriores
If va seguido de una condición que tiene que cumplirse, esta condición es una comparación entre dos cosas, como hemos visto en el pseudo código.
Los operadores nos sirven para definir la relación que queremos comprobar entre los dos términos de la comparación, por ejemplo:
A > B (A mayor que B, ">" sería el operador mayor qué.
(ahora veremos los distintos operadores que podemos utilizar) y después van las órdenes, es decir si lo que va entre paréntesis es cierto, tienes que asegurarte de que las comparaciones (o condiciones) y las órdenes están bien, por cada condición (entre paréntesis) hay una orden o serie de órdenes (entre { })
Usar los { } agiliza el procesamiento del If_else. Utilízalos con generosidad, por ahorrarte un par de paréntesis en un alias, el if puede resultar ambiguo con lo que se ralentizaría su ejecución o incluso podría no funcionar correctamente o simple y llanamente no funcionar en absoluto.
Puedes anidar tantos if_else cóno necesites, unos dentro de otros. You can nest as many if-then-else statements as you want inside each other.
los operadores
-
igual a Igual (si las toma en cuenta, por lo que tomatoma no será lo mismo que ToMaToMa)
Para negar un operador (es decir que signifique exactamente lo contrario, puedes añadirle ! antes del operador, por ejemplo:
!isauto. quiere decir que la codición se cumple cuando ese nick no está en la lista de auto-op.
|| Código: ||
|| $ifmatch ||
Devuelve el primer parámetro de la comparación, cuando se ha cumplido la condición, por ejemplo:
|| Código: ||
|| if (text isin sometext) { ...
}
$ifmatch devolverá "text" ||
Combinando comparaciones Puedes combinar comparaciones usando los caracteres && para "y" y || para "o"
|| Código: ||
|| number {
if (($1 > 0) && ($1 < 10)) {
if ($1 < 5) echo el número es menor de 5
else echo el número es mayor de 5
}
else echo el número está fuera de rango
} ||
Este alias mira a ver si el número que especifiques al teclear /number (valor) está dentro del rango especificado (menor de 10)
Ejemplos
|| Código: ||
||
listops {
echo 4 * Lista de operadores en #
set %i 1
:next
set %nick $nick(%i,#)
if %nick
$null goto done
if %nick isop # echo 3 %nick es operador!
inc %i
goto next
:done
echo 4 * Fin de la lista de ops!!
} ||
Este alias hace una lista de los operadores del canal en el que estés. Lo hace de la forma difícil, pues podríamos hacermos simplemente usando $opnick() pero al usar $nick() lo podemos usar cómo ejemplo de cómo funciona el "isop" y cómo te devuelve un $null una vez que hayamos llegado al final de la lista.
|| Código: ||
|| GiveOps {
%i = 0
%nicks = ---:nextnick ---inc %i ---if ($snick(%i,#) == $null) { if ---($len(%nicks) > 0) mode # +oooo %nicks | halt } ---%nicks = %nicks $snick(%i,#) ---if (4 // %i) { mode # +oooo %nicks | %nicks = }
goto nextnick
} ||
Esto es un popup que da op a los nick que estén seleccionados en la lista de nicks del canal en el que estés en ese momento.
|| Código: ||
|| on 1:ctcpreply:PING* {
if ($2
$null) halt else {
%pt = $ctime - $2
if (%pt <0) set %pt 0
if (%pt < 5) echo 4 [PING reply] $nick Pero si estamos pegaos!!!!!
elseif (%pt < 20) echo 4 [PING reply] $nick estás justo a la distancia perfecta
else echo 4 [PING reply] tierra llamando a $nick, Tierra llamando a $nick
}
halt
} ||
Esto intercepta el ping replay y en su lugar manda un mensaje tontísimo sóbre lo cercano que está el nick que nos ha hecho el ping.
Valora este capítulo:
Autor y licencia de 'mIRC Scripting - if-then-else'
|
Opiniona sobre 'mIRC Scripting - if-then-else' (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 - if-then-else'
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 »

