¿Qué son Identificadores?
Los Identificadores son esos simbolillos ($?! etc..) raros del mIRC los cuales te devuelven un valor especifico asignado con anterioridad, por ejemplo: $time te devolverá la hora actual. Donde quiera que el mIRC encuentre un identificador en alguno de los comandos escritos por ti, lo reemplazará con el valor actual del identificador. Muchos Identificadores también ejecutan operaciones en las cuales tu das los datos y estos arrojan el resultado. También hay Identificadores Remotos que se utilizan con los Scripts Remotos.
Un identificador muy útil que se usa en combinación con $? es $!. Este nos permite recuperar el valor que hemos introducido en la ventana de diálogo, sin necesidad de tenerlo que escribir de nuevo.
Por ejemplo:
/MiNick {
/nick $?="Introduce tu nuevo nick"
/say ¿Qué te parece mi nuevo nick: $! ?
}
Los Identificadores que no pueden ser evaluados o que no cuentan con toda la información necesaria devolverán el valor $null. El valor $null puede ser utilizado como agente de comparación junto con el if-then-else.
Para todos los siguientes Identificadores, tu puedes agregarle mas Identificadores o variables encerradas en paréntesis (brackets).
Los Identificadores que te presentare están listados de acuerdo a grupos de uso:
Identificadores Customs (o a la medida)
Un identificador custom es un alias que te regresa un valor, y puedes usar ese alias con el prefijo de identificador.
Por ejemplo, crea un alias /suma como este:
suma {
%x = $1 + $2
return %x
}
Y luego úsalo en un comando:
//echo El total es: $suma(1,2)
Puedes poner la cantidad de parámetros que desees a tu identificador.
Ejemplo:
$suma(1,2,...,N)
Un identificador interno de mIRC con el mismo nombre tendrá prioridad.
Puedes agregar aliases a los scripts de remotos(en un remote.ini, por ejemplo) usando el prefijo alias e introduciendo tu alias como siempre.
alias suma {
%x = $1 + $2
return %x
}
Este es el mismo identificador de arriba, pero con el prefijo alias
Teclas de función (f1-f12)
Puedes definir las teclas de función para que realicen ciertos comandos, como si fueran alias.
Por ejemplo:
/F1 /say Hola!
/sF2 /query $1
/cF3 /ctcp $1 version
Los prefijos s (shift) y c (Ctrl) se refieren a la tecla de mayúscula y de control respectivamente
Nota: Un tecla de función se comportará de distintas maneras dependiendo de la ventana en que se use. Por ejemplo, si la usas en una ventana de query (privado), el parámetro $1 se refiere al nickname del usuario seleccionado. Si estás en un canal y la lista de nicknames está activa entonces la tecla de función trabajará en los nicknames seleccionados. Si la lista de nombres no está activa, entonces la líneas de función solo trabajará en el canal.
Prefijos de comando
Si estás ejecutando un comando desde la línea de comandos ( o sea escribiéndola en el editbox, que es donde uno normalmente escribe ), puedes forzar a mIRC a evaluar los identificadores en ese comando poniendo dos // en vez de una /.
Por ejemplo:
/echo Mi nickname es $me
Esto daría "Mi nickname es $me" y no evaluaría $me.
//echo Mi nickname es $me
Esto daría "Mi nickname es Bj0rn" si tu nickname es Bj0rn, claro..
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 el 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 Jan 27 21:41:02 2004
$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, n°: comando, tiempo, repeticiones, retardo y tipo.
$timer(nº).com - Devuelve el comando asociado al timer especificado, n°.
$timer(nº).type - Devuelve el status del timer especificado, n°: online/offline
$timer(n°) - Devuelve el id del timer que se encuentra primero en la lista de timers
$timestamp - Devuelve el timer actual en formato: [xx:xx]
$timezone - Devuelve tu actual hora (de tu Zona Horaria) expresada en segundos. Para un ambiente de 16bit la devolución dependerá del ambiente de la variable TZ.
IDENTIFICADORES DE NÚMEROS Y TEXTOS
$abs(nº) - Devuelve el valor absoluto de un número (elimina el signo)
Por ejemplo :
$abs(5) - Devuelve el número 5
$abs(-1) - Devuelve el número 1 sin signo
$asc(C) - Devuelve el número ASCII del carácter C.
$asc(A) - devuelve el número 65
$asc(*) - Devuelve el número 42
$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 de izquierda a derecha.
Por ejemplo:
$left(goodbye,4) Devolverá: good
$right(cadena,N) - Devuelve los N últimos caracteres de una cadena de derecha a izquierda.
Por ejemplo:
$right(othello,5) Devolverá: hello
$len(cadena) - Devuelve el número de caracteres de una cadena.
$lower(texto) - Devuelve 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) Devolverá: "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 o por ejemplo: $pos(hello,la) Devolverá: $null, ya que no se encuentra la en lo dado. Lo que se encuentra después de la coma es lo que se pide identificar.
$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 dos(2) 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"
$longip - Convierte una dirección IP en un valor largo o viceversa.
Por ejemplo:
$longip(158.152.50.239) Entregara 2660774639, o $longip(2660774639) nos dará 158.152.50.239
$upper(text) - Devuelve el texto en mayúsculas, por ejemplo: $upper(hello) mostrará HELLO
IDENTIFICADORES DE ARCHIVOS (FICHEROS) Y DIRECTORIOS
$alias(N) - Devuelve el nombre del N 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(fiambre.txt) - Devuelve $null si el fichero de alias no está cargado, o "fiambre.txt" si se encuentra cargado.
$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 diálogo 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"] <path y nombre de fichero>
$file[="Texto"] <path y nombre de fichero>
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 diálogo de selección.
$exists(fichero) - Devuelve $true si el fichero existe, y $false si no es así.
$exists(c:mircmirc.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:mircmirc.exe
$fidfile(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:irckicks.txt) Devolverá el número de filas del fichero: c:irckicks.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 Archivo/Opciones.
$mididir - Devuelve el directorio especificado para los ficheros Midi en la sección Sound Requests del diálogo Archivo/Opciones.
$nofile(fichero) - Devuelve el path(directorio) o ruta de un fichero especificado.
Por ejemplo:
$nofile(c:mircmirc32.exe) Devolverá: c:mirc
$nopath(fichero) - Devuelve el nombre del fichero especificado, sin incluir el path.
Por ejemplo:
$nopath(c:mircmirc.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] <fichero>
Por ejemplos:
/say $read c:funny.txt - Mostrará 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 <fichero> <sección> <item>
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 N 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(fiambre.txt) - Devuelve $null si el fichero no está cargado, o fiambre.txt si se encuentra cargado.
$wavedir - Devuelve el directorio especificado en la sección Sound Requests del diálogo Archivo/Opciones.
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) - Da 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) - Da todas las direcciones que concuerdan con la máscara especificada.
$ial(*!*@*.demon.co.uk,3) - Da 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 N 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 ID@host.dominio
· 1: *!* User ID@host.dominio
· 2: *!*@host.dominio
· 3: *!* User ID@*.dominio
· 4: *!*@*.dominio
· 5: nick! User ID@host.dominio
· 6: nick!* User ID@host.dominio
· 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 N 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 N 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 en el 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 número 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 caanl, 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) - Informa 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) - Da el nick o dirección del N 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 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) - Da texto contenido en caja de edición de determinada ventana.
$email - Devuelve la dirección de mail especificada en la correspondiente casilla del dialogo Archivo/Opciones.
$host - Devuelve el nombre del actual Local host.
$ignore(N) - Devuelve la dirección del N 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 N server de la lista de servers de Archivos/Opciones/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 ... se las 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: User_ID@host.dominio.
$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.