enviciate hasta que no puedas mas
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

enviciate hasta que no puedas mas

Casi todo lo que necesitas
 
ÍndiceÚltimas imágenesBuscarRegistrarseConectarse
Tu nueva comunidad de PSP ya está aquí!!! Descarga los juegos de PSP que mas te gusten, t ambien para WII, NDS, PC y X-BOX todo en www.damepsp.com

 

 Guia para hacer Scripts. Parte 3

Ir abajo 
AutorMensaje





Fecha de inscripción : 31/12/1969

Guia para hacer Scripts. Parte 3 Empty
MensajeTema: Guia para hacer Scripts. Parte 3   Guia para hacer Scripts. Parte 3 I_icon_minitimeSáb Ago 14, 2010 11:55 am

Parte Tres



IDENTIFICADORES

El entorno del mIRC provee de una serie de identificadores o funciones que devuelven automáticamente un valor para su uso en definiciones de alias, popups y eventos. Todos ellos están precedidos para su identificación por el símbolo $.

Cuando el mIRC, en la ejecución de un script, encuentra uno de estos identificadores, lo sustituye por el valor que este devuelve. Es importante tener en cuenta que estos identificadores deben de ir siempre especificados entre dos espacios en blanco, de lo contrario el mIRC no los identificará como tales.

A continuación se relaciona una lista con la mayoría de los identificadores que se encuentran disponibles en la versión 5.1 del mIRC.

IDENTIFICADORES DE TIEMPO Y FECHA:

$ctime

Devuelve el número total de segundos transcurridos desde las 0 horas de 1 de enero de 1970.

$date

Devuelve la fecha actual en formato: día/mes/año.

$day

Devuelve el nombre del actual día de la semana.

$duration(nº)

Devuelve el número especificado de segundos transformado al formato: semanas/días/horas/minutos/segundos.

$fulldate

Devuelve la fecha en formato largo, por ejemplo: Wed Jun 26 21:41:02 1996

$idle

Devuelve nuestro actual tiempo idle (Este tiempo es el que devolveremos ante un requerimiento finger).

$ltimer

Devuelve el número del último timer activado con el comando /timer

$online

Devuelve el número de segundos transcurridos desde que se puso a cero el reloj contador del mIRC.

$ticks

Devuelve el número de ticks desde que se inició el sistema operativo.

$time

Devuelve la hora actual en formato horas/minutos/segundos.

$timer(0)

Devuelve el número de timers activos en el momento actual.

$timer(nº)

Devuelve todas las propiedades de timer cuyo número se especifica: comando, tiempo, repeticiones, retardo y tipo.

$timer(nº).com

Devuelve el comando asociado al timer especificado.

$timer(nº).type

Devuelve el tipo de status del timer especificado: online/offline

$timestamp

Devuelve el timer actual en formato: [xx:xx]

IDENTIFICADORES DE NÚMEROS Y TEXTOS

$abs(nº)

Devuelve el valor absoluto de un número (elimina el signo).

$asc(C)

Devuelve el número ASCII del carácter C.

$calc(operaciones)

Devuelve el resultado de las operaciones especificadas. Por ejemplo:

$calc(3.14159 * (2 ^ %x % 3) - ($ticks / (10000 + 1)))

$chr(nº)

Devuelve el carácter ASCII correspondiente al número especificado. Por ejemplo:

$chr(65) Devolverá el carácter A

$count(cadena_1,cadena_2)

Devuelve el número de veces que cadena_2 se encuentra repetida dentro de cadena_1.

Por ejemplo:

$count (jajajajaja, ja) Devolverá: 5

$int(nº)

Devuelve la parte entera de un número. Por ejemplo:

$int(3,14159) Devolverá: 3

$left(cadena,N)

Devuelve los N primeros caracteres de una cadena, por ejemplo:

$left(goodbye,4) Devolverá: good

$right(cadena,N)

Devuelve los N últimos caracteres de una cadena, por ejemplo:

$right(othello,5) Devolverá: hello

$len(cadena)

Devuelve el número de caracteres de una cadena.

$lower(texto)

Retorna todos los caracteres de una cadena convertidos a minúsculas, por ejemplo:

$lower(HOLA) Devolverá: "hola"

$mid(cadena,posición,número)

Devuelve el número especificado de caracteres de una cadena desde una posición dada. Por ejemplo:

$mid(othello,3,4) Retornará: "hell"

$pos(cadena,sub_cadena)

Devuelve la posición en que una sub_cadena comienza dentro de una cadena. Por ejemplo:

$pos(hello,el) Devolverá: 2

$pos(hello,la) Devolverá: $null

$rand(v1,v2)

Devuelve un número o letra aleatorio comprendido en el rango [v1-v2] . Por ejemplo:

$rand(1,4) Devolverá cualquier número entre 1 y 4, ambos inclusive

$remove(cadena,sub_cadena)

Devuelve la primera cadena, de la que habrá suprimido la primera ocurrencia expresada en sub_cadena. Por ejemplo:

$remove(abcdefg,cd) Devolverá: abefg

$replace(texto,cadena,reemplazo)

Busca una cadena dentro de un texto, y la reemplaza por otra especificada. Por ejemplo:

$replace(abcdefg,cd,xyz) Devolverá: abxyzefg

$round(número,D)

Devuelve un número especificado, con solo los D primeros decimales. Por ejemplo:

$round(3.14159,2) Devolverá: 3.14

$strip(texto)

Devuelve un texto del que eliminará los colores, negrita y subrayado.

$str(texto,N)

Devuelve un texto dado repetido N veces.

$str(ho,3) Devolverá: "hohoho"

IDENTIFICADORES DE FICHEROS

$alias(N)

Devuelve el nombre de enésimo fichero de alias cargado en ese momento.

$alias (nombre_fichero)

Devuelve $null si el fichero de alias no está cargado en ese momento.

Ejemplos:

$alias(0) Devuelve el número de ficheros de alias cargados en ese momento.

$alias(2) Devuelve el nombre del segundo fichero de alias cargado en ese momento.

$alias(moo.txt) Devuelve $null si el fichero de alias no está cargado, o "moo.txt" si lo está.

$dir y $file

Presentan un cuadro de dialogo desde el que permiten seleccionar un fichero para ser utilizado dentro de la especificación de un alias. $dir presenta un dialogo desde donde se puede acceder a toda la estructura de ficheros, mientras que $file presenta solo los ficheros contenidos dentro de un determinado directorio. En ambos casos se puede especificar mediante el comodín * qué tipos de ficheros se desea que aparezcan.

El formato de ambos es:

$dir[="Texto"]

$file[="Texto"]

Por ejemplo, podemos definir una opción de popups que reproduzca los fichero de tipo midi de un directorio llamado "midis":

Música/splay $file="Selecciona la música" c:\midis\*.mid

Nota: no usar estos especificadores para seleccionar un fichero a enviar por DCC, puesto que este comando lleva ya incorporado su propio dialogo de selección.

$exists(fichero)

Devuelve $true si el fichero existe, y $false si no es así.

$exists(c:\mirc\mirc.exe) Devolverá $true o $false.

$findfile(directorio, tipo_de_fichero, número)

Busca en el directorio especificado (y en todos sus subdirectorios), a todos los ficheros de un determinado tipo, y presenta el path y el nombre del que tiene el número de orden indicado. Si el número es 0 presentará toda la lista de ficheros encontrados de ese tipo. Por ejemplo:

$findfile(c:\mirc,*.exe,1) Devolverá: c:\mirc\mirc.exe

$findfile(c:\, auto*.*,1) Devolverá: c:\autoexec.bat

$getdir

Devuelve el directorio que tengamos especificado en el diálogo DCC options, como destino por defecto para las recepciones DCC.

$getdir(tipo_fichero)

Devuelve el directorio que tengamos especificado en el diálogo DCC options, como destino para las recepciones DCC de ficheros del tipo especificado. Por ejemplo:

$getdir(*.txt)

$lines(filename)

Devuelve el número de líneas que tiene un fichero de texto.

$lines(c:\irc\kicks.txt) Devolverá el número de filas del fichero: c:\irc\kicks.txt

$lof(fichero)

Devuelve el tamaño en bytes de un fichero especificado.

$logdir

Devuelve el directorio especificado en la sección Loggin del diálogo File/options.

$mididir

Devuelve el directorio especificado para los ficheros Midi en la sección Sound Requests del diálogo File/options.

$nofile(fichero)

Devuelve el path o ruta de un fichero especificado. Por ejemplo:

$nofile(c:\mirc\mirc32.exe) Devolverá: c:\mirc\

$nopath(fichero)

Devuelve el nombre del fichero especificado, sin incluir el path. Por ejemplo:

$nopath(c:\mirc\mirc.exe) Devolverá mirc.exe

$mircdir

Devuelve el path donde se encuentra actualmente el programa mIRC.

$mircini

Devuelve el nombre del fichero .ini principal del directorio donde se encuentra el mIRC. Este es normalmente: mirc.ini.

$read

Lee una línea de un fichero y la inserta dentro del alias en que se esté utilizando. Su formato es:

$read [-l] [-stexto]

Ejemplos:

/say $read c:\funny.txt

Imprimirá en pantalla una línea aleatoria del fichero c:\funny.txt.

/say $read -l24 c:\funny.txt

Imprimirá la línea 24 del fichero.

/pateo /kick # $1 $read kicks.txt

Hará un kick del nick especificado dando como razón una línea elegida al azar del fichero "kicks.txt"

/say $read -smirc info.txt

Busca una línea dentro del fichero "info.txt" que comience por "mirc", e imprime en pantalla el resto de la línea.

NOTA: si la primera línea del fichero es un número, el programa entenderá que este representa el número total de líneas del fichero, esto acelerará considerablemente la ejecución del $read.

$readini

Lee información de un fichero .ini e inserta la fila correspondiente dentro del alias. El formato es:

$readini

Por ejemplo:

/echo $readini mirc.ini mIRC nick

Presentará nuestro nick actual tomándolo del fichero mirc.ini

$script(N/fichero)

Devuelve el nombre del enésimo fichero de script cargado. Si se especifica un nombre de fichero de script en lugar de un número, devolverá este mismo nombre, o $null si dicho fichero no se encuentra cargado. Ejemplos:

$script(0) Devuelve el número de ficheros de script cargados.

$script(2) Devuelve el nombre del segundo fichero de script.

$script(moo.txt) Devuelve $null si el fichero no está cargado, o moo.txt si lo está.

$wavedir

Devuelve el directorio especificado en la sección Sound Requests del diálogo File/options.

IDENTIFICADORES DE NICKS Y DIRECCIONES:

$address(nick,tipo)

Busca en la lista interna de direcciones la dirección asociada al nick especificado. Los tipos son los que se describen en el identificador $mask. Por ejemplo:

$address(nick,1) Devuelve el formato: nick!User_ID@dominio.host

Si la lista interna no contiene el nick especificado se devolverá $null.

$comchan(nick,nº)

Devuelve los canales en que nos encontramos nosotros junto al nick especificado. Por ejemplo:

$comchan(nick,0) Devuelve todos los canales en que estamos nosotros y ese nick.

$comchan(nick,1) Devuelve el primer canal en que nos encontramos junto a ese nick

$ial(máscara,nº)

Devuelve direcciones de la lista interna de direcciones.

Propiedades: nick, user, host, addr

Ejemplos:

$ial(*!*@*.demon.co.uk,0) Devuelve todas las direcciones que concuerdan con la máscara especificada.

$ial(*!*@*.demon.co.uk,3) Devuelve la tercera dirección de la lista que concuerda con la máscara especificada.

$ial(*!*@*.com,0).nick Devuelve el nick que concuerda con la máscara.

$ial(*!*@*.com,4).user Devuelve el User ID que concuerda con la máscara.

Para escanear todas las direcciones de la lista interna se puede usar: $ial(*,nº).

$ialchan(máscara,#canal,nº)

Igual al anterior pero solo referido a la lista de ocupantes de un canal especificado.

$level(address)

Busca dentro de nuestra lista de acceso remoto el usuario con la dirección especificada y devuelve su nivel de acceso.

$link(N)

Devuelve el enésimo server de las lista de servers enlazados en la actual red de IRC.

Propiedades: addr, ip, level, info

Ejemplos:

$link(0) Devuelve el número de servers enlazados

$link(1) Devuelve el primer server de la lista de links

$mask(dirección,tipo)

Devuelve la máscara correspondiente al tipo especificado, para una dirección dada. Por ejemplo:

$mask(nick!khaled@mardam.demon.co.uk,1)

Devolverá: *!*khaled@mardam.demon.co.uk

$mask(nick!khaled@mardam.demon.co.uk,2)

Devolverá: *!*@mardam.demon.co.uk

Los tipos aplicables son los siguientes:

0: *!User [Tienes que estar registrado y conectado para ver este vínculo]

1: *!* User [Tienes que estar registrado y conectado para ver este vínculo]

2: *!*@host.dominio

3: *!* User ID@*.dominio

4: *!*@*.dominio

5: nick! User [Tienes que estar registrado y conectado para ver este vínculo]

6: nick!* User [Tienes que estar registrado y conectado para ver este vínculo]

7: nick!*@host.dominio

8: nick!* User ID@*.dominio

9: nick!*@*.dominio

La utilidad de este identificador es su uso en otros identificadores y comandos.

$me

Devuelve nuestro actual nick.

$nick(#canal,N)

Devuelve el enésimo nick de la lista de nicks del canal especificado. Si ponemos 0 devolverá en número de ocupantes del canal.

$nopnick(#canal,N)

Devuelve el enésimo nick de la lista de nicks que no tiene estatus de operador del canal especificado. Si ponemos 0 devolverá en número de operadores del canal

$notify(N)

Igual a los anteriores pero referido a los nicks de nuestra lista de notificaciones.

$vnick(#canal,N)

Igual a los anteriores pero referido a los nicks que tengan voz dentro del canal especificado

$nvnick(#canal,N)

Igual a los anteriores pero referido a los nicks que no tengan voz dentro del canal especificado

$opnick(#canal,N)

Igual los anteriores, pero referido solo a los nicks que tengan estatus de operadores del canal

$snicks

Devuelve en una línea, separados por comas, todos los nicks que tengamos seleccionados de la lista de nicks del canal.

IDENTIFICADORES DE VENTANAS:

$active

Devuelve el nombre de la ventana activa..

$chan(N/#canal)

Devuelve información sobre los canales en que nos encontramos.

Propiedades: topic, mode, key, limit

Si se especifica un numero en vez de un canal, devuelve el nombre de ese canal.

$chan(0) Devuelve el número de canales en que nos encontramos.

$chan(2) Devuelve el nombre del segundo canal en que nos encontramos.

$chan(2).key Devuelve la clave del segundo canal en que nos encontramos.

También podemos especificar un nombre de canal, pero solo devuelve información sobre este si nos encontramos dentro de él.

$chan(#mIRC).mode Devuelve los modos del canal #mirc.

$chat(N/nick)

Devuelve información sobre las ventanas de DCC chat abiertas.

Propiedades: ip, status

Por ejemplo:

$chat(2).ip Devuelve la IP del segundo DCC chat activo.

$fserv(N/nick)

Devuelve información sobre las ventanas abiertas del servidor de ficheros.

Propiedades: ip, status, cd (directorio abierto)

$get(N/nick)

Devuelve información sobre los DCC get en curso (recepción de ficheros).

Propiedades: ip, status, file, size, rcvd, cps, pc

Ejemplos:

$get(0) Devuelve el número de dcc gets en curso.

$get(2) Devuelve el nick que envía el segundo DCC get activo

$get(2).rcvd Devuelve el número de bytes recibidos hasta el momento en el segundo dcc get.

$get(2).cps Devuelve el número de caracteres por segundo que se están recibiendo en la segunda transmisión de ficheros

$get(3).pc Devuelve el porcentaje transmitido en la tercera recepción en curso.

$query(N/nick)

Devuelve el nick o la dirección del enésimo query abierto.

Propiedad: address

Ejemplos:

$query(0) Devuelve el número de querys abiertos.

$query(2) Devuelve el nick del segundo query.

$query(1).address Devuelve la dirección del primer query.

$send(N/nick)

Devuelve información sobre los envíos de ficheros en curso (DCC sends).

Propiedades: ip, status, file, size, sent, cps, pc

Ejemplos:

$send(0) Devuelve el número de ficheros que se están enviando.

$send(2) Devuelve el nick de destino del segundo envío.

$send(1).sent Devuelve el número de bytes enviados en el primer DCC en curso.

$send(3).pc Devuelve el porcentaje transferido en el tercer envío en curso.

$send(3).status Devuelve el estado (activo, inactivo, o en espera) del tercer send en curso.

IDENTIFICADORES DIVERSOS:

$away

Devuelve el valor $true (verdadero) o $false (falso) Si estamos en estado de away o no.

$cb

Devuelve los primeros 256 caracteres contenidos en el portapapeles.

$cr

Devuelve el carácter de retorno de carro. Es equivalente a poner: $chr(13)

$editbox(window)

Devuelve el texto contenido en la caja de edición de una determinada ventana.

$email

Devuelve la dirección de mail especificada en la correspondiente casilla del dialogo File/Setup.

$host

Devuelve el nombre del actual Local host.

$ignore(N)

Devuelve la dirección del enésimo elemento de la lista de ignores.

Propiedades: type

$ignore(0) Devuelve el número de elementos incluidos en la lista de ignores.

$ignore(1) Devuelve la dirección del primer elemento de la lista de ignores.

$ignore(2).type Devuelve el flag del segundo elemento de la lista de ignores.

$inmidi

Devuelve $true si se está reproduciendo un fichero midi, de lo contrario devuelve $false.

$ip

Devuelve nuestra dirección IP.

$lf

Devuelve el carácter de salto de línea. Equivale a: $chr(10).

$port

Devuelve el número del puerto del server en el que estamos conectados.

$server

Devuelve el nombre del server al que estamos conectados, o $null si estamos desconectados.

$server(N)

Devuelve la dirección del enésimo server de la lista de servers de File/Setup/IRC Server.

Propiedades: desc (descripción), port (puerto), group (grupo)

$server(0) Devuelve el número de servers de la lista.

$server(2) Devuelve la dirección del segundo server.

$server(2).desc Devuelve la descripción del segundo server.

$server(3).port Devuelve el puerto de conexión especificado para el tercer server.

$url

Devuelve la dirección URL de la página actualmente cargada en el navegador. Ejemplo:

/say Estoy viendo la página: $url ... os la recomiendo!

$usermode

Devuelve nuestros actuales modos de usuario.

$version

Devuelve la versión del mIRC en uso.

$+

Este identificador insertado en una línea de instrucción eliminará el espacio el espacio en blanco que se encuentra a su derecha, y el que se encuentra a su izquierda.

$nº-

Se puede usar $1 $2 ... $N para referirse a los parámetros o palabras individuales de una línea de comando. Además es posible especificar $nº- para referirse al parámetro o palabra de la posición especificada, y todos los que le siguen, y $nº_1-n_2º para referirse a todas la palabras comprendidas entre dos posiciones especificadas

$address

Devuelve la dirección de un usuario asociado a un evento, en la forma: [Tienes que estar registrado y conectado para ver este vínculo].

$fulladdress

Devuelve la dirección de un usuario asociado a un evento, en la forma: nick!User_ID@host.dominio.

$group(N/#nombre)

Devuelve el nombre o estatus de un grupo de un script.

Propiedades: status

$group(0) Devuelve el número de grupos del script.

$group(1) Devuelve el nombre del primer grupo del script.

$group(1).status Devuelve el estatus del primer grupo: on o off.

$group(#name) Devuelve el estatus del grupo #name

$maddress(máscara)

Busca el la lista interna de usuarios y devuelve la dirección del primer usuario que corresponde con la máscara especificada

$nick

Devuelve el nick de un usuario asociado a un evento.

$ulevel

Devuelve el nivel de acceso remoto de un usuario asociado a un evento.

LA ESTRUCTURA CONDICIONAL (IF-ELSE)

La estructura IF-ELSE permite establecer una bifurcación o alternativa dentro de una secuencia de ordenes. Es decir, en ocasiones es posible que deseemos que el programa ejecute una instrucción o instrucciones, pero solo si se cumple determinada circunstancia, y, en caso contrario, o bien no hacer nada, o bien ejecutar otras instrucciones diferentes.

Por ejemplo, queremos hacer un alias que a intervalos de un minuto mida nuestro lag, y solo si este supera los 15 segundos nos envíe un mensaje a la pantalla de Status avisándonos de cuanto lag tenemos. Esto no es posible hacerlo mediante una secuencia lineal de instrucciones; es preciso que el programa discierna en algún momento si procede o no ejecutar la orden de imprimir un mensaje. Esta posibilidad es la que nos facilita la estructura IF.

En definitiva, IF comparará valores, y ejecutará o no diferentes instrucciones, en función del resultado de la comparativa.

El formato general completo de la estructura IF es el siguiente:

if (Valor_1 operador Valor_2) { comandos }

elseif (Valor_1 operador Valor_2) { comandos }

else { comandos }

La orden if comparará Valor_1 y Valor_2 mediante un operador de comparación. En función de esta comparación ejecutará o no el comando o comandos incluidos dentro de las llaves. Por ejemplo:

if (%Variable_1 > %Variable_2) {

/echo -s Atención, la primera variable es mayor que la segunda !!!

/splay c:\sonidos\alarma.wav

}

Esta orden compara del contenido de dos variables, y solo en caso de que la primera variable sea mayor que la segunda enviará un mensaje a la pantalla de Status, y hará sonar un sonido Wav que supuestamente tenemos dentro de un directorio de la unidad C: llamado "sonidos".

Obsérvese que la condición del if se debe de poner entre paréntesis, y las instrucciones internas a ejecutar estarán encerradas entre llaves (si solo hay una instrucción no son necesarias las llaves).

Como se puede ver en la sintaxis general del if, junto este se pueden emplear otras dos instrucciones: elseif y else, aunque estas solo de forma opcional. Si podemos leer la sintaxis de IF de la siguiente forma:

Si (pasa esto) {Haz esto}

la del elseif equivaldrá a:

En caso contrario, si (pasa esto) {Haz esto}.

El anexo else es una posibilidad que permite ejecutar una serie de instrucciones en caso de que lo anterior no se haya producido. Las instrucciones comprendidas dentro del else se ejecutarán siempre que no hay resultado cierta la condición del if, ni, de existir este, la del elseif. Si no se especifica un else, el script sencillamente continuará a desde la instrucción siguiente al último }, o bien terminará si no hay nada más.

Es perfectamente posible "anidar" instrucciones if, es decir, incluir más if’s dentro del bloque de instrucciones de un if. Por ejemplo, queremos hacer un alias que se llame números. Este, al ejecutarse, nos pedirá tres números cualesquiera que cargará en tres variables, a continuación evaluará cual es el mayor de los tres y nos lo imprimirá en la ventana de Status. Podríamos hacer algo como lo siguiente:

/números {

/set %A $$?="Introduce el primer número"

/set %B $$?="Introduce el segundo número"

/set %C $$?="Introduce el tercer número"

if (%A>%B) {

if (%A>%C) {/echo -s El mayor es %A}

else {/echo -s El mayor es %C}

}

elseif (%B > %C) {/echo -s El mayor es %B}

else {/echo -s El mayor es %C}

/unset %A %B %C

Los operadores de comparación que podemos utilizar dentro de la condición de un if son los siguientes:

A == B A Igual a B

A != B A distinto de B

A < B A menor que B

A > B A mayor que B

A >= B A mayor o igual que B

A <= B A menor o igual que B

A // B A es múltiplo de B

A\\B A no es múltiplo de B

A isin B La cadena de caracteres A se encuentra incluida dentro de la cadena B

A iswm B La cadena A es idéntica a la cadena B

A isnum B A es un número incluido dentro de la cadena de números B. Si no se pone B se evalúa simplemente si A es un número

A isletter B Igual al anterior pero con letras en lugar de números

A ison B El nick A está en el canal B

A isop B El nick A es operador en el canal B

isvo El nick A tiene voz en el canal B

A ischan A está en este momento en el mismo canal que nosotros

A isauto B El nick A está en muestra lista de auto-op para el canal B (B opcional)

A isignore A está en nuestra lista de ignorados

A isprotect B A está en nuestra lista de protegidos en el canal B (B opcional)

A isnotify A está en nuestra lista de notify

En esta tabla se han usado, para hacerla más comprensible, los operándos genéricos A y B; en su lugar podemos usar valores numéricos, cadenas de caracteres, variables (identificándolas con su nombre precedido del símbolo %), o parámetros (identificándolos con su nombre precedido del símbolo $).

Si anteponemos el símbolo ! delante de cualquiera de los operadores de la tabla anterior este será negado, es decir, la condición se evaluará como cierta no cuando suceda eso, sino cuando no suceda.

Hasta ahora hemos visto como la estructura if puede evaluar una condición simple; no obstante es también posible crear condiciones complejas combinando varias con o operadores lógicos. El mIRC admite dos tipos de operadores lógicos para enlazar entre sí dos o mas condiciones simples formando así una sola condición múltiple:

Operador AND (&&). En castellano "y":

Si ((pasa esto) y (esto) y (además esto)) {Haz esto}

Por ejemplo:

if (($me !iswm SomaTic) && ($me isop #ayuda_irc)) mode $me -o #ayuda_irc

Esta instrucción comprobará si mi nick es distinto de SomaTic, y además si tengo el estatus de operador dentro del canal #ayuda_irc, de suceder ambas cosas me retirará dicho estatus.

Operador OR ( || ). En castellano "o":

Si ((pasa esto) o (esto) o (esto otro)) {Haz esto}

Por ejemplo:

if ((%A > 20) || (%B < 10)) echo -s Variable fuera de rango

Esta orden comprobará que la variable %A contiene un número en el rango [10-20] , en caso contrario manda a Status un aviso.

EL COMANDO /goto

El uso del comando goto es un recurso muy útil en especial cuando se utiliza desde dentro de una estructura if. La sintaxis de este comando es:

goto

La orden goto provoca un salto automático dentro de la secuencia que el programa utiliza para leer las líneas de un script, pasando directamente a leer a partir de una determinada etiqueta, las líneas que continúan a partir de esta. Una etiqueta no es más que una palabra que ocupa una línea del script, y que se identifica como tal por tener el símbolo ":" delante. La llamada a una etiqueta desde la orden goto no debe de llevar los dos puntos delante.

Ejemplo:

/CargaVar {

:PideDato

set %valor $$?="Introduzca un número entre 0 y 9"

if ((%valor < 0) || (%valor > 9)) {

echo -a Dato erróneo, introduzca solo un dígito entre 0 y 9

goto PideDato

}

Este alias es una sencilla rutina que nos permite aceptar valores para una variable, depurando que solo se introduzca un dígito entre 0 y 9, de no ser así el alias volverá una y otra a la etiqueta PideDato solicitando un nuevo valor para la variable.

EJEMPLOS:

1- El siguiente alias nos presentará la lista de operadores del canal en que nos encontramos en este momento. Se puede observar el empleo de la instrucción de salto incondicional (goto), el uso del parámetro $nick(canal,numero), el comando inc(%variable), y la estructura if.

/listaOPs {

echo -a * Listando Operadores en #

set %i 1

:sigue

set %nick $nick(#,%i)

if (%nick == $null) goto final

if %nick isop # echo 3 %nick is an Op!

inc %i ;(Se incrementa en uno la variable %i)

goto sigue

:final

echo -a * Fin de la lista de operadores de #.

}

2- Este ejemplo presenta un alias que imprimirá en la pantalla de Status una tabla de los caracteres ASCII entre el 33 y el 241 ambos inclusive

/TablASCII {

/set %num 33

/echo -s Tabla ASCII

:presenta

if (%num > 241) goto fin

/echo -s $chr( %num ) es el carácter ASCII carácter ASCII número: %num

/inc %num

goto presenta

:fin

/echo -s Fin de la tabla.

}

Eso es todo, con este curso estas en condiciones de crear el mejor script existente...



Volver arriba Ir abajo





Fecha de inscripción : 31/12/1969

Guia para hacer Scripts. Parte 3 Empty
MensajeTema: Los ejemplos   Guia para hacer Scripts. Parte 3 I_icon_minitimeSáb Ago 14, 2010 12:02 pm

la pag lee algunos ejemplos como direcciones a otras pag y por eso saldra subrayado y en color amarillo anaranjado, NO lleva a otras pag y los usarios no registrados no podran ver bien estos ejemplos Exclamation
Volver arriba Ir abajo
 
Guia para hacer Scripts. Parte 3
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Guia para la creacion de Scripts. Parte 1
» Guia para la creacion de Scripts. Parte 2
» Guia God Of War II PS2 primera parte
» Guia God Of War II PS2 segunda parte
» Guia de cracion de scripst. Parte 1

Permisos de este foro:No puedes responder a temas en este foro.
enviciate hasta que no puedas mas :: Programación-
Cambiar a: