mIRC

Principal Sobre Transferir Registrar Enlaces Ayuda
 

Preguntas más frecuentes sobre mIRC

La sección 7 de mIRC FAQ te ayuda a la programación en mIRC de alias, popups y remotos.

La primera parte (Secciones 1 - 5) nos introduce en mIRC e IRC. La Sección 6 es digamos el verdadero FAQ. Esta última parte pretende ser un tutorial para programar las diferentes características de mIRC. Si deseas saber como se crean Alias, Popups, Comandos Remotos y Eventos debes mirar y chequear bien esta página. Esta es una sección muy recomendada.


Índice de Contenidos


7 MANUAL SOBRE PROGRAMACIÓN EN MIRC  (¿ Tutorial ?)

mIRC tiene tres secciones que pueden ser "programadas" de alguna manera: Los Alias, Popups, y la sección Remota. En la sección remota puedes definir Usuarios, variables y Scripts. En scripts, puedes definir como mIRC reacciona a sucesos en IRC, CTCP y Eventos.

La mejor manera para aprender y comprender los trabajos Remotos de mIRC es estudiando este capitulo en orden consecutivo. Por favor, no trates de tomar atajos en las secciones Remotas antes de comprender exactamente los Alias y los Popups. Las lecciones son acumulativas, una sirve para la otra.

(Nota para gente familiarizada con irc: la sintaxis de alias y otros scripts de mIRC Remotos es muy similar al de otros programas, pero su estructura es un poco diferente... con lo cual, no irán bien de unos programas a otros)
 

Volver al índice de preguntas


7-1  Sección Alias

Selecciona el menú Herramientas/Alias.
El editor de mIRC arranca con la ventana abierta si pulsas el icono Alias. Por favor, ignora de momento las secciones Popups, Remota, Usuarios y Variables.

El editor de mIRC se utiliza como interfaz compacto y uniforme en casi todas las secciones programables de mIRC. En la sección Alias si seleccionas el menú "fichero" te ayudará a cargar, a descargar y a salvar ficheros de Alias. "Edita" con las opciones copiar/pegar del menú las rutinas que desees. La opción "Ver" del menú te deja seleccionar que fichero de Alias deseas corregir y la opción "Alias" te muestra un índice del fichero actual abierto.

En la sección Alias puedes definir los atajos para los comandos de uso frecuente por ejemplo join, part, quit, opping y deopping, y cualquier otra cosa que desees. Incluso las cosas que dices con frecuencia se pueden poner en alias... En general, TODOS LOS comandos que se puedan utilizar en la ventana de editar (la línea o las líneas que uses normalmente para hablar o escribir) se pueden utilizar en alias. Los Alias se pueden también utilizar para ejecutar varios comandos a la vez. Puedes incluso definir los alias que son activados por las teclas de función de F1 - F12.... (al fin un uso para esas teclas normalmente no usadas). En mIRC puedes incluso meter alias en alias o del menú de popup y de la sección remote. En el mIRC nuevo puedes tener múltiples ficheros de Alias además del que viene por defecto llamado alias.ini , puedes agregar uno o varios ficheros nuevos con los alias que prefieras. ¡ Muy sencillo !

Volver al índice de preguntas


7-1-1  Creando Alias

Ok. Comenzamos con un ejemplo. Para entrar en un canal, normalmente tienes que escribir:
/join #(nombre)

...donde #(nombre) es el nombre del canal, por supuesto. Como este comando se usa frecuentemente... intentaremos escribir lo menos posible. Crearemos un atajo o alias para "/join #(nombre)". En vez de escribirlo todo, crearemos un Alias, que seria:
/j /join $1

(No es necesario que entiendas esto profundamente, a estas alturas de la explicación de mIRC, de momento, solo como funciona. Luego se explica la sintaxis correcta). Haz la prueba, poniendo la línea "/j /join $1" en la ventana editora de Alias en el menú Herramientas/Alias (si es que no está aún). Haz una prueba escribiendo en la línea de comandos (donde escribes normalmente) lo siguiente:

"/j #test". Verás que escribir "/j #test" es exactamente lo mismo que si escribes "/join #test" -- te hace entrar en el canal #test. Esta forma de construir es un Alias.

Sintaxis en los Alias.

Los Alias usan el formato siguiente /<alias> /<comando> En otras palabras, primero "el atajo" (/j en el ej.: anterior) después un espacio, y el comando real que indique (como "/join" en el ejemplo de antes).
Para definir un alias, -no es necesario- que especifiques el carácter /. Se utiliza normalmente para mayor claridad en las explicaciones, para que se vea es un alias. prueba si quieres y verás como "j join $1" funcionará igualmente.

Los alias también usan varias cadenas especiales e identificadores. Hay varias cadenas como $1, $3-5, $$1, $?, $!, #$1, #$$1, e incluso #$?. Las cadenas están formadas por palabras normalmente. Son muy dinámicas en su uso. Los identificadores son similares a las cadenas pero están formados por un valor. Los identificadores más importantes son #, $me y $url pero la lista de identificadores es muy larga y cada vez va creciendo más. Para darte una idea; $read $date $adate $fulldate $time y $day son algunos otros identificadores. No te preocupes, todo se explicará a su debido tiempo.

Ahora, concentrémonos en $1. Después de todo, es la cadena que utilizamos en nuestro ejemplo anterior:
/j /join $1

$1 significa "la primera palabra escrita después del alias", en nuestro ejemplo #(nombre). Si escribes /j #prueba mIRC sabe que esto es un alias para "/join #prueba". Si escribes "/j #stella" sabrá que es un alias para "/join #stella"

Ejemplo: Comandos Múltiples.

Supongamos ahora que te hubiera gustado abrir varios canales a la vez. Se puede crear un Alias para hacer esto... simplemente se separan los comandos con | carácter llamado "pipe".
La sintaxis de unir los tres canales de inmediato es:
/j3 /join $1 | /join $2 | /join $3

Si está el Alias puesto, también se puede escribir:
/j3 #test1 #test2 #test3

En este caso $1 significa la primera palabra escrita después del alias, $2 la segunda y $3 la tercera.

Ahora mIRC espera tres nombres de canal. Que sucedería si escribes /j3 #test1? Debería esperar dos nombres más. Esto se soluciona con el parámetro $$1, que se explicará más adelante.

Ejemplo: /say

Este comando say sirve para mostrar, cuando escribes en canal algo repetitivo como, por ejemplo, dirección, saludos... etc. Mira los siguientes ejemplos:
/Hola /say Hola a todos ustedes
/www /say La pagina Url es http://www.canalstella.com
/líneas /say Esta es la primera línea | /say Esta es la segunda | /say Esta es la última

Fíjate como se usa /say en líneas múltiples. Simplemente se separa comando con el carácter |. Puedes ver que no siempre los alias llevan cadenas.

Ejemplo: /me

Las acciones en un alias...
/broma /me Pienso esto es divertido!
/abrazo /me Abrazos fuertes $1 !

El segundo ejemplo usa la cadena, $1. Si escribes "/abrazo todos", esto sería equivalente a "/me Abrazos fuertes todos", observa que $1 toma la primera palabra, si se hubiera escrito /abrazo a todos... hubiera resultado "Abrazos fuertes a"

Ejemplo: Compartir Cadenas.

Múltiples comandos, pueden compartir también cadenas:
/jtest /join $1 | /topic $1 Simplemente probando

En esta definición de alias la cadena $1 se usa dos veces. Si escribes "/jtest #prueba", el primero te une al canal #prueba, y entonces el topic del Canal se pone "Simplemente probando"
Otro ejemplo:
/amor /say Yo amo a $1 ! | /say Yo realmente amo a $1 !

Si escribes "/amor todos", mIRC escribirá "/say Yo amo a todos !" y entonces, "/say Yo realmente amo a todos !"

Ejemplo: Cambio de Modo (Opeando, etc.).

Para usar los modos deberías saber el uso del comando mode. Para poner en modo Operador el comando es /mode #canal +o nick. Si deseamos hacer operadores a tres nicks a la vez, la sintaxis sería:
/mode #<nombre de canal> +ooo <nick1> <nick2> <nick3>

... y se realizará el +o a las 3 personas citadas.
Esto se hace en alias exactamente con:
/op /mode # +ooo $1 $2 $3

Para poner Op a Juan, María y Pedro, ahora puedes escribir simplemente: "/op Juan María Pedro"

El # en este alias muestra el uso de uno u otro de los identificadores predefinidos (# y $!). El # siempre significa el #canal en que se usa el alias... Del mismo modo puedes hacer alias como...
/deop /mode # -ooo $1 $2 $3 /ban /mode # +b $1 /kick /kick # $1 /dbk /mode # -o $1 | /kick # $1 | /mode # +b $1

IMPORTANTE: ¡El espacio adecuado!

¡Esto es muy importante! ¡DEBES incluir espacios entre parámetros y el resto del texto!. Por ejemplo:

/amor /say Yo realmente amo a $1!!!

... NO funcionará!. Necesita un espacio entre la cadena "$1" y su "!!!". (Esto es muy frecuente con comandos como /say, ten cuidado con su redacción)
/amor /say Yo realmente amo a $1 !!!

... FUNCIONARÁ correctamente.
Esto es cierto en TODAS las cadenas. Un caso especial es cuando se especifican canales, se han creado cadenas especiales, que automáticamente anteponen el parámetro con el carácter #. Estos son #$1, #$$1, y #$?. Mira más adelante para más detalles.

En ALGUNOS casos PUEDES hacer: /like /say me gusta mucho el Topic de $1, pero ten presente: ¡¡NO SIEMPRE!!. Tienes que probarlo antes de usarlo...

¿ Dónde puedo usar Alias ?

Los Alias se pueden utilizar en la ventana de editar (la línea o líneas que usas normalmente y los comandos), puedes incluso utilizar Alias en el Popups y la sección Remota que serán explicados en las secciones siguientes. Los Alias se pueden utilizar también en las ventanas de query, chat, etc... dependiendo de las definiciones del Alias. Incluso se permite para que los Alias recurran a otros Alias, o aún se llamen recurrentemente. Como salvaguardia contra bucles infinitos, la profundidad máxima del valor por defecto se fija en 5. Esto se puede cambiar con el comando /maxdepth. La profundidad mínima permitida es 1 (los Alias no pueden llamar otros Alias) y el máximo es 100. Llamar Alias con otros Alias consume memoria, así que esto puede causar problemas en ciertas situaciones donde está la memoria escasa. En caso de que uno de tus Alias consiguiera un bucle, la forma de parar el proceso es pulsar CTRL+BREAK.

Definiciones especiales de Alias; las teclas de Función.

Se pueden definir Alias especiales con las teclas de función. Defina algunos Alias como se indica a continuación: /f1 /say Hola a todos. Saludos /f2 /topic Este es el nuevo Topic

Ahora podrás escribir "Hola a todos. Saludos" con solo teclear "/f1"... pero también funcionará pulsando la tecla "F1". Otros ejemplos: /f5 /me enviaré felizmente el nuevo mIRC.
/f6 /join #mirc
/f9 /dcc send $1 c:.zip

/f10 /dcc send $1 c:s.exe
/f11 /dcc send $1

La tecla F9 enviará cualquier archivo zip que se encuentre directorio raíz del disco duro, al Nick seleccionado en los nombres del canal. No olvidar seleccionar primero un Nick. Puedes usar la tecla F9 en un Privado, Query o DCC Chat con esta definición de Alias. Puedes también usar las teclas de función combinadas con mayúsculas -shift- y -ctrl- Control. Puedes definir alias como:
/f1 /say Yo uso F1 para decir esto /sf1 /say Yo usé Shift+F1 para decir esto /cf1 /say Yo usé CTRL+F1 para decir esto

Usar paréntesis de evaluación.

Puedes usar ahora ( y ] en Alias para controlar el orden de evaluación de identificadores. Los paréntesis pueden usarse en Popups y Remote también. Los identificadores dentro de paréntesis se evaluarán primero, desde la izquierda a la derecha. Puedes insertar también paréntesis. Esto te permite evaluar las cosas a tu gusto... Los paréntesis no se mostrarán en el comando o texto resultante. Ejemplo son: /note /notice $1 " $+ [$read [-s + [ $2 ]]c:\texto\note.txt] $+ " /sayvar /say % [ $+ [ $1 ] ]

Las definiciones sin los paréntesis de evaluación se evalúan de la misma manera que antes.

Alias en Scripts

Puedes cargar fácilmente ficheros adicionales de Alias en mIRC además del que ya tienes por defecto. Abre el editor de los Alias (Herramientas/Alias) y vete a Fichero/Cargar, es fácil ahora seleccionar un fichero con Alias. Selecciona la opción "Ver" para ver todos los ficheros alias cargados. Esto es una manera fácil de tener los Alias creados por tus amigos y de darselos tú a ellos. Los Alias se pueden incluso poner en un fichero completo y distribuirlo junto con comandos y events remotos. Explicaremos esto detalladamente más adelante.

Volver al índice de preguntas


7-1-2  Definición de Parámetros

Ya deberías tener una idea de como funcionan los Alias. Pero podrías estar interesado en una lista llena de cadenas e identificadores, que puedas usar en Alias, y luego en Popups y mIRC Remoto. Las próximas dos secciones, los introducirán todos. Asegúrate, practicando con los ejemplos, hasta poder hacerlos tu mismo. Mira además los archivos de ayuda para tener más información y estar al día con los cambios.

$N

La cadena más simple. Contiene una palabra, la palabra primera después del comando de alias. Por lo mismo, el símbolo $2, indicará la segunda palabra, $3 la tercera, etc. Ejemplo:
/op /modo $1 +o $2 $3
Prueba "/op #mirc Janet John" para hacer a Janet y John operadores en #mirc.
/slap /me golpea $1 con un largo $2

$N-M

Esta cadena contiene una selección de palabras. Prueba el alias: /tres /say Las primeras tres palabras son $1-3 ahora escribe /tres un bonito empiece kiddo. Observa que la palabra kiddo es ignorada. Nota: $N-M reemplaza la antigua definición *N-M

$N-

Esta cadena puede contener MUCHAS palabras... contiene la primera palabra * y * todo lo que viene detrás. Prueba:
/tell /say me gustaría decirles algo a todos ustedes - $1 -
El comando "/tell mIRC es muy grande" este alias dará el texto: "Me gustaría decirles algo a todos ustedes - mIRC es muy grande". $2 - contendría la segunda palabra y todo lo que va después de él. $3 - contendría la tercera palabra y todo lo que va después de él. etc. Prueba también...
/note /notice $1 $2 -
...y teclea "/note <nick> <texto cualquiera>" Y...
/mess /msg $1 $2 -
...y teclea "/mess <nick> <texto cualquiera>"
(Asegúrate comprendes que estas órdenes habrían dado lo mismo que haber definido los alias como '/note /notice $1 -' y '/mess /msg $1 - ' respectivamente.)

Nota: $N- reemplaza la antigua definición *N-

$$1

Un Alias conteniendo este tipo de cadena será hecho como UNICO. De otra forma, la llamada al alias se ignorará. Si escribes un alias como: /j /join $$1
al escribir /j , en vez de /j #canal, mIRC lo ignorará por no incluir un nombre de canal. De otra manera $$1 trabaja como $1 .... substituye la primera palabra, $$2 la segunda y $$3 la tercera...etc.

$?

Este es importante.
Un alias con esta cadena fuerza a mIRC a abrir una ventana para poner el valor, bien sea texto, nick o cualquier otra cosa. Prueba con los ejemplos: /j /join $? /abrazo /me abrázame $? fuerte

$? ="texto"

Es una "forma especial" del anterior, mIRC igualmente abrirá caja de dialogo para entrada de valores, pero pedirá la información especificada en el texto. Prueba:
/j /join $?="¿Que canal para entrar?"
/entrar /me entrar en $?="¿Que canal quieres?"

$!

Esta cadena se usa juntamente con $?. En el ejemplo siguiente verás como se ejecuta el Canal requerido, introduce un nombre de canal, como #prueba: /j /join $?="Que canal para entrar?" | /say Me gusta ir a $!
Al escribir "/j" se mostrará una ventana de diálogo para que escribas el nombre del canal para entrar. Si escribes "#prueba", entrarás en #prueba, y entonces leerás en el canal que estabas "Me gusta ir a #prueba ". Prueba también:
/amigo /say $? es amigo mio | /say me gusta $! mucho

#$1 - y - #$$1 - y - #$?

Son versiones especiales de $1, $$1, y $?, pero referidas únicamente a canales. Prueba con: /j /join #$1
Si escribes "/j prueba" inmediatamente entrarás en #prueba. Otro ejemplo, si pones en ventana de Alias: /j /join #$?="¿En que canal deseas entrar?"

 

Volver al índice de preguntas


7-1-3  Identificadores

Un tipo especial de cadena es el identificador. Donde el contenido de una cadena siempre se define por un alias, popup o remoto (mira después) , los identificadores siempre devolverán información pre-definida. Como la mayor parte de las listas de este FAQ esta lista no está completa del todo. ¡Siempre explora en los archivos de ayuda para más información y por ejemplo en el archivo versions.txt para ver añadidos y cambios!


#

Este es el Identificador más importante y siempre toma el valor del canal donde usamos el Alias. Esto es importante, porque por ejemplo los comandos de modo (/mode), requieren que especifiques el nombre de un Canal. Ejemplo: /op /mode # +o $1
Si escribimos /op JCarlos, se situará como OP el Nick JCarlos en cualquier canal que escribas esto; siempre y cuando seas OP (requisito imprescindible).

$me

Este Identificador toma el valor del nick seleccionado. Se puede usar en toda clase de situaciones. Por ejemplo: /bonito /me Pienso $me es un nick bonito ! /oferta /me ofrezco mIRC versión 4.7 /salgo /me está away ( $1- ) | /away $1- | /say Mensajes para $me se grabarán.
O para explicar cambio de nick: /nick /me Prefiero usar $1 más que $me | /nick $1
prueba, y cambia tu nick por otro "/nick <nuevo nick>"

$read [-l#] <archivo.txt>

Este identificador es divertido. Escogerá una línea al azar del fichero especificado e insertará esa línea en alias.... La línea puede contener el texto y, también, comandos (para hacerlo más fácil) también $!read que es igual que $read a menos que no se evalúen la primera vez las rutinas del Alias. Esto te permite que lo utilices con el comando /timer si deseas que $read sea reevaluado cada vez.Por ejemplo: /fun /say $read c:\mirc\funlines.txt /kick /kick # $1 $read c:\mirc\funkicks.txt /silly /say $read -l5 silly.txt

$readini [-n] <inifile><sección><artículo>

Parecido al anterior, pero lee desde archivos.ini. Va conjuntamente con el comando /writeini. Utilizalo en rutinas para leer y para escribir a los ficheros estándares de los ficheros ini. Pensamos que $readini y /writeini abrirá las nuevas y mejores posibilidades de escribir tus propias acciones automatizadas en el IRC. El parámetro -n evitará que una línea sea evaluada.

$url

Este contiene la pagina url que tienes por defecto en tu navegador... Por ejemplo: /show /say Mirar que encontré, una web super. Comprobar esta $url /mu /me he encontrado esta preciosa URL : $url

Veamos otros Identificadores y sus valores:


$ip Tu dirección IP
$server El servidor que usas.
$active El nombre de la ventana activa en mIRC.
$time La hora de tu PC.
$away Dice si estas fuera o no
$ticks Número de señales O/S desde tu conexión.
$idle Tiempo de tardanza en ctcp userinfo y finger.
$online Número de segundos transcurridos desde que conectaste cronómetro.
$version Da el número de versión de mIRC
$ctime Número de segundos desde 00:00:00 GMT - 1 Enero 70
$asctime Como ctime en formato de texto de fecha.
$day El día actual. (Lunes, Martes,...)
$date La fecha (formato europeo) (SI !! mIRC -no- está hecho en USA ;o) alternativamente usa
$adate (formato americano), $fulldate o $day.
$duration(segundos) traduce números como 123456 en 1dia 10hrs 17mins 36seg.
$logdir, $getdir, $wavedir, $mircdir, $mididir,$script y $scriptdir dan las trayectorias de esos directorios.
$mircini da el path y el nombre del archivo ini usado
$nopath (archivo) Da el nombre de archivo sin la trayectoria.
$nofile (archivo) Mira el archivo y da la trayectoria.
$exists (archivo) Chequea si el archivo existe. (Dando $true o $false)
$findfile (dir, archivo, N) Busca el archivo en trayectoria indicada.
$ddename da el nombre del servicio DDE usado

$abs (N) devuelve el valor absoluto del número N.
$chr (N) devuelve el carácter ASCII del número N.
$asc (C) devuelve el número ASCII del carácter C.
$len (texto) devuelve la longitud del texto.
$upper (texto) devuelve texto en mayúsculas.
$lower (texto) devuelve texto en minúsculas.
$left (texto,N) devuelve el carácter N a la izquierda del texto.
$right (texto,N) devuelve el carácter N a la derecha del texto.
$mid (texto,S, N) da el carácter N del texto comenzando por S.
$pos (cadena, subcadena) devuelve la posición de subcadena en la cadena.
$replace (cadena, subcadena, reemplazo) cambia una subcadena en una cadena.
$remove (cadena, subcadena) quita una subcadena de una cadena.
$strip (texto) quita códigos de negrita, inversa, subrayado y colores del texto.
$count (cadena1, cadena2) da las veces que la cadena2 ocurre en la cadena1.
$str (texto,N) devuelve texto N veces repetido.
$rand (X, Y) da un número al azar entre X e Y.
$lines (archivo) devuelve el número de líneas en el archivo especificado.

$usermode da su modo personal actual.
$topic(#) da el topic del canal en que estás.

$nick (#,N) da la posición N del nick en el canal #.
$snick (#,N) da la posición N del nick seleccionado en el canal #.
$opnick (#,N) da la posición N del nick Op en el canal #.
$nopnick (#,N) da la posición N del nick como no Op en el canal #.
$vnick (#,N) da la posición N del nick con voz en el canal #.
$nvnick (#,N) da la posición N del nick sin voz en el canal #.
$comchan (nick,N) da los canales que está el nick.
$query (N|nick) da el número N de ventanas query que tiene abiertas.
$chat (N) da el nick y número N de ventanas chat que tiene abiertas.
$fserv (N) da el nick y número N de ventanas fserve que tiene abiertas. $send (N) y $get (N) da el nick y número N de ventanas send/get abiertas.
$notify (N) da el número N de nick en Notify en ese momento en IRC.
$token (N, C, texto) da el número N de símbolo en texto separado por el carácter C
(C es el número de carácter ASCII)
$addtok (texto, símbolo, C) agrega un símbolo al fin de texto pero solo si no está.
$findtok (texto, símbolo, C) da la posición N del símbolo en el texto.
$gettok (texto, N, C) da el símbolo N en el texto.
$instok (texto, símbolo, N, C) pone el símbolo en la posición N en el texto.
$remtok (texto, símbolo, C) quita 1 símbolo de apareamiento desde el texto.
$reptok (texto, símbolo, nuevo, C) cambia 1 símbolo con nuevo símbolo en el texto.

Para los identificadores de arriba, puedes especificar N como 0 (cero) para conseguir el número total de nicks/canales/símbolos... etc. para ese identificador.

$snotify da el nick seleccionado en la ventana de notify.
$address da la dirección del usuario que provocó una línea remota.
$address (nick, tipo) repasa la lista de dirección interna y da dirección si halla.
$maddress da dirección del usuario que dirige un suceso remoto.
$maddress(dirección) da la dirección comparada en la lista de usuarios.
$level (dirección) encuentra una dirección en usuarios remotos y da su nivel.
$ulevel da los niveles remotos de usuarios para un suceso.
$clevel da los niveles remotos de comando para un suceso.
$dlevel devuelve el nivel remoto de usuario por defecto.
$mask (dirección, tipo) devuelve la dirección con el tipo especificado de máscara.

Los Identificadores y las variables pueden ponerse entre paréntesis.
Ejemplo: /echo $right(3,$left($len(goats),ToMooOrNotToMoo)) resulta 'Moo'

Identificadores con parámetros propios.

Algunos identificadores pueden ser usados junto a parámetros especiales. Esto hace recordar su sintaxis y puede ayudar mucho en scripting. La sintaxis es $identificador (N |#| nick) propiedades
¡ Siempre mira en los archivos de ayuda para saber la última información y los cambios !

$server (N|nick) Da acceso a los servidores enumerados en Fichero/Opciones/Servidores_de_IRC.
$server (N) dirección, desc para descripción, port para puerto, group para grupo.
$ial (mask, N) Da acceso a la Lista Interna de Direcciones.
$ial (mask, N) para la dirección entera, .nick para nick, .user para usuario, .host para host, .addr para la dirección.
$url (N) Da acceso a la lista Url.
$url (N) para la dirección, .desc para la descripción, .group para el prefijo. $chan (N|#).propiedades Da las características de los canales en que estás.
$chan(N|#) Da el nombre del canal, .topic, .mode, .key, .limit,
$chat (N|nick) nick, .ip, .status (activo, esperando, inactivo)
$fserv (N|nick) nick, .ip, .status, .cd (directorio actual)
$get (N|nick) nick, .ip, .status, .file, .size, .rcvd, .cps, .pc
$send (N|nick) nick, .ip, .status, .file, .size, .sent, .lra, .cps, .pc
$timer (N) Da los cronómetros que tienes activos.
$timer (N) para el id, .com, .time, .reps, .delay, .type

$group(N|name) identificador.
$group(N) da acceso al nombre del grupo
$group(N).status y $group(name) responde si el grupo está on ó off

Identificadores definibles por el Usuario.(Sección original escrita por Li0nheart)

Como vas aprendiendo mIRC tiene un número grande de identificadores incorporados para uso en tus alias y definiciones remotas. Se pueden configurar identificadores propios, y se pueden configurar para hacer casi lo que quieras. Los identificadores se programan en la sección Alias, y se hacen como ellos, con la única excepción de que al final hay un /return. Puedes tener el identificador return que quieras. Por ejemplo la suma de dos números:
/sume {
%temp = $1 + $2
return %temp
}

Ahora ya puede usar el identificador $sum (sumar) en Alias, Popups o Remoto. Veamos un ejemplo en Popups:
Add:/say La suma de 45 y 78 es $sum (45,78)
en Alias:
/add /say La suma de $1 y $2 es $sum ($1,$2)
(no tiene ningún sentido ejecutar un comando como /sum.. trabajará normalmente)

Todos los parámetros dados a los identificadores se deben separar con comas. Puedes usar estructuras if/then/else en definiciones de identificadores. Puedes comprobar que los parámetros requeridos son correctos o envían mensaje de Error. Por ejemplo, esta rutina calcula el porcentaje de X en Y:

/perc {
if ($1 == $null) || ($2 == $null) { return Error not enough parameters }
if ($2 != 1) { %half = $2 / 2 } | else { %half = 1 }
%dummy = $1 * 100
%perc = %dummy / $2
%remainder = %dummy % $2
if (%perc == 0) { goto return }
elseif (%remainder >= %half) { inc %perc }
:return
return %perc
}

La primera línea se asegura estén todos los parámetros. El resto es el calculo del porcentaje, donde parte de esto es para asegurarse que el total añadido es el 100%. El identificador por ejemplo se llamaría $perc (56,100) el cual mostraría 56%.

Los números no son lo único que puedes obtener con un identificador. Puedes conseguir texto o combinaciones de texto y números. Por ejemplo, el tiempo en formato americano (7:52 pm):
/atime {
set %hr $token(1,58,$time)
set %min $token(2,58,$time)
if (%hr == 0) { set %hr 12 | set %sub am }
elseif (%hr < 12) { set %sub am }
elseif (%hr == 12) { set %sub pm }
else { %hr = %hr - 12 | set %sub pm }
return %hr $+ : $+ %min $+ %sub
}

Con un poco de creatividad puedes hacer identificadores para cualquier cosa que quieras. Quizás sea mejor que alguien te pase ejemplos y estudiarlos. ¡¡Diviértete!!

Volver al índice de preguntas


7-2  Sección Popups

Popups son los menús que aparecen cuando pulsas el botón derecho del ratón. Si no tienes este apartado de mIRC todavía... inténtalo AHORA. Algunos menús de Popups están predefinidos en mirc.ini, pero son personalizables en el Icono Popups o bien a través de la opción Herramientas/Popups.

El Editor de mIRC nos permite ver los Popups para editarlos. Por favor, de momento olvídate de las secciones remota, usuarios y variables. La ventana editora de mIRC es muy fácil de usar y programar. Con la sección Popups abierta, en el menú "Fichero", puedes seleccionar grabar o salvar ficheros de popups. En el menú "Editar" puedes copiar, pegar, y buscar rutinas. Popups nos indica el archivo popups utilizado.

En el menú "Ver" puedes seleccionar que popups deseas editar, usalo para cambiar los popups. Hay diferentes menús para las distintas secciones del mIRC. El menú de Canal es diferente del menú popups de Querys (conversaciones privadas). Usa la opción "Ver" del menú para editar los diferentes popups. Hay secciones popups programables para la ventana de Estado, las ventanas del Canal, ventanas de Query/Chat y lista de Nicks y un apartado especial llamado Menubar que es también programable. (Todos se explicarán más adelante).

Si tu copia de mIRC no cuenta con algún menú popup de origen (la sección Herramientas/Popups/ está vacía), es casi seguro que los archivos originales .ini no se copiaron correctamente del archivo de distribución de mIRC al directorio del mirc, o el lugar donde el archivo popups.ini puede estar no ha sido encontrado por mIRC ó no se especifica correctamente. Puedes arreglar esto fácilmente en el menú Fichero/Cargar del editor de Popups.

Los comandos Popups trabajan casi exactamente como Alias. Todas las cadenas mencionadas en la Sección 7-1 se permiten en Popups (y es fundamental para su uso). Si no has leído la Sección Alias (7-1), hazlo ahora. Necesitas saber esa información antes de seguir.

También: lee la explicación del archivo de Ayuda de popups, así como echa una mirada a los muchos ejemplos del popup incluidos en mIRC en Herramientas/Popups. Cuantos más ejemplos pruebes, examines, y arregles, mejor será tu conocimiento de mIRC.

Ejemplo /join

Supongamos que sueles entrar frecuentemente en el #test.

¿ Que más fácil que pulsar el botón derecho del ratón y seleccionar en un menú para entrar automáticamente ?.

Los popup siguientes harían eso. Simplemente entra en Herramientas/Popups, asegurándote que la "Ventana de Estado" se selecciona en la opción "Ver". (No la ventana de Query/Chat, lista de Nicks, de Canal ó Barra del Menú!) escribe esto:
Entrar en Canal Test:/join #test

Ahora pulsa el botón derecho del mouse en la ventana de "Estado" y selecciona "Entrar en Canal Test". mIRC hará eso exactamente.

Ejemplo: /away

Esto es un ejemplo de "ausente" y "vuelta" en popups... Teclea la razón por la que te encuentras ausente, y se enviará a todos los canales en los que estés. (En el fondo lo que usa es el comando /ame , y envía un mensaje /me a cada canal en que te encuentras)
Ausente...:
/ame está AUSENTE ($? = "Da una razón") | /away Por favor inténtalo después ($!) Regreso:
/ame Regresa | /away

(Nota que en algunos puedes necesitar mover los cursores a la derecha en la ventana Editora para ver el texto entero de algunos ejemplos.)

Fíjate que en el ejemplo anterior Estar Ausente usa comandos múltiples.

Menús Desplegables

Si te gustan los popups, y añades, tu pantalla se desordenaría cada vez más rápidamente. Así que puedes organizar tus popups con los menús desplegables.

Prueba el popups siguiente:

Decir Cosas
.Hola:/say Hola a todos
.Adiós:/say Adiós a todos
.Abrazos a :/me $? un abrazo grande

Aquí nosotros estamos especificando que las últimos tres órdenes deben mostrarse en un menú desplegable cuyo titulo sea "Decir Cosas" y con tres apartados: 1) incluso después de "Decir Cosas", nosotros queremos que ellos aparezcan en orden, y 2) prologándolos todos en" ." <-- un menú.

Cuando pulses el botón derecho del mouse, verás el "Decir Cosas" del menú. Cuando selecciones, verás "Hola", "Adiós", y "el Abrazo a" del menú. Selecciona una de las acciones especificada y verás el resultado.

Si lo quieres poner mas complicado, puedes poner mas niveles a tus popups. Por ejemplo, prueba:

Comentarios Sobre las Personas
.Cumplidos ..Encantado:/say Wow, $? -- ¡estás siendo muy bueno hoy!
..Gracias por ayudar:/say gracias por ser tan útil, $?
..Amigo:/say me alegro de tener a $? por amigo.
.Insultos ..Aviso:/say Por favor.. no admito insultos
..Idiota:/me por qué $? parece idiota a veces.
..Enemigo:/say estoy orgulloso de tener a $? como mi enemigo!

Y así sucesivamente! Simplemente adécualos, úsalos un tiempo, y prueba. (Si la manera en que lo anterior esta organizado no te gusta, cámbialo y pruébalo. Pon lo del "comentario" anterior en la sección Herramientas/Popups, es mucho más fácil entenderlo cuando lo ves funcionar)

Todos los apartados de menú de popup también pueden ponerse bajo una tecla de Función. Eso es un método rápido para los popups más usados.... (Asegúrate usas la sintaxis correcta [reemplazas la función de las teclas] en la sección Alias). Lee más en la Sección 7-1.

 

Volver al índice de preguntas


7-3  Sección Scripts Remotos

La sección remota se encuentra en Herramientas/Remotos. Es claramente la parte más compleja de mIRC, puedes hacer cosas en la sección Remota de mIRC que normalmente requerirían scripts avanzados o software especial...

Cosas como: ofrecer archivos (lista de XDCC); responder a canales específicos o textos de mensajes privados; contestaciones personalizadas a CTCP; dar niveles de usuario a tus amigos; ...a cualquier cosa que pasa en IRC puedes responder automáticamente, y tu respuesta puede ser con cualquier comando o comandos de mIRC.

La sintaxis puede parecer complicada a veces, pero es solo una extensión de lo explicado en Alias y Popups. Si se comprenden bien esas secciones y las cadenas, esto te será muy sencillo... si no deberás releer y practicar lo expuesto en las Secciones 7-1 y 7-2. La información ahí presentada es ABSOLUTAMENTE NECESARIA para comprender la sección Remota.

También es importante recordar por qué Remoto se llama Remoto. La sección Remota se diseña para responder a las cosas hechas por OTROS usuarios -- en efecto, reacciona a cosas que pasan en IRC a tu alrededor y permite el "control remoto" a tu sesión de mIRC. Todo según las ordenes Remotas especificadas. Muchos ejemplos no pueden ser probados solamente enviando los órdenes o tecleando textos. Esas órdenes tienen que ser enviadas por algún otro programa o tienen que suceder en IRC.

La sección Remota trabaja estrechamente ligada a la sección de Usuarios. En la sección Remota tu definirás Scripts para los distintos niveles de la sección de Usuarios. Cada Usuario en tu lista puede tener uno o más niveles. Estos niveles determinan que los eventos a un usuario puedan suceder si se hacen ciertas cosas. En el (Remoto) sección de Scripts puedes definir cómo mIRC reaccionará a las cosas que suceden en IRC, en CTCP y (Raw) y las líneas de Eventos. Por defecto la lista de usuarios remotos, variables y scripts se graban en el archivo remote.ini.
 

Volver al índice de preguntas


7-3-1  Usuarios Remotos

Selecciona en mIRC Herramientas/Remotos para abrir el Editor del mIRC. Asegúrate has seleccionado y estas en la sección de Usuarios. Aqui puedes asignar varios niveles a los usuarios. Puedes asignar ciertos niveles a tus amigos y ciertos niveles a tus "enemigos" (puedes crear una "lista personalizada"), y un organizador de niveles.

¿Por qué es esto importante? Supongamos que has diseñado un Evento Remoto para echar del canal en que estas, kick, al que escribe una palabra "sin sentido" (cambia esta palabra por la que quieras).

Nosotros te explicaremos cómo hacer esto más adelante (en la Sección 7-3-3), pero por ahora la idea es lo importante. ¿ Entiendes la idea ?.

OK, pero quizás SOLO quieras que eso suceda como advertencia para los amigos. Y te gustaría ignorarlo de momento a otros, quizás los amigos más íntimos. Y si no quieres a nadie en concreto, quizás te gustaría kickear Y banear por decir "cosas sin sentido".

Para dar respuestas (diferentes a personas diferentes), debes estructurar a los usuarios en la llamda Lista de usuarios. Para cada usuario especificarás, su nick o dirección y un nivel de usuario.

Veamos un ejemplo de Lista de Usuarios válida:

1:nick1
1:nick2
2:nick3!account3@machine.subnet.net
2:*!account4@machine.subnet.com
3:*!*@machine.subnet.edu
4:*!*@*subnet.edu
5:*!account@*.subnet.edu
10:yournick!youraccount@yourmachine.net

Los números que escoges para los niveles de usuario son completamente cosa tuya. Puedes decidir lo que los números de usuario pueden y no pueden hacer, en las próximas dos secciones. Por defecto mIRC asigna nivel de usuario 1, a los no especificados en la lista de usuarios. (Dependiendo de lo señalado en Herramientas/Remotos/Opciones/Nivel de usuario por defecto)

Si especificas niveles diferentes a usuarios diferentes, necesitas comandos y eventos que den reacciones diferentes o se activen a los usuarios de estos niveles... Esto se explicará después...

Como puedes ver en el ejemplo se admiten nicks o direcciones. También se permiten (*) como comodines. Hay casos en que se pueden especificar los usuarios dos veces, por nick y dirección; ( sucesos OP, DEOP, SERVEROP y NOTIFY) se explica más adelante en la Sección 7-3-3.

Para editar la lista de Usuarios, puedes utilizar en la ventana de Editar los comandos: /auser, /guser y /ruser.

/auser <nivel> <nick o dirección>
'Auser' (Agregar usuario) agrega cualquier nick o dirección especificada a la lista de usuarios y con el nivel señalado. No verifica que la dirección sea válida. El nick o la dirección se agrega exactamente como pongas.

/guser <nivel> <nick> [tipo]
'Guser' (Conseguir usuario) agrega un nick a la lista de usuarios, especificado por la dirección. Para realizar esto, mIRC hace un /whois al nick y agrega la dirección. El tipo es un número del 0 al 4, que veremos luego.

/ruser <nick! o dirección o nick [tipo]>
'Ruser' (Quitar usuario) elimina un nick o dirección de la lista de usuarios. Debes saber exactamente como poner el nick o la address, en la lista de Usuarios para que trabaje el comando. Si alguien está en la lista como nick!blabla@whatever.net puedes hacer también "/ruser nick!". La expresión "!" quita la línea entera.
En mIRC el comando /ruser ha sido mejorado para que pueda funcionar como /ban y /guser. /ruser <nick> [tipo] si NO especificas un tipo, entonces funciona como de costumbre y quita el nick de la Lista de Usuarios. SI especificas un tipo, busca a los usuarios y quita esa dirección de la Lista de Usuarios.

Nota: Usando los tipos diferentes de dirección puedes especificar una persona o un grupo de personas, según uses los comodines (*). Los tipos son:
type 0; *!vonck@cheops.student.utwente.nl
type 1; *!*vonck@cheops.student.utwente.nl
type 2; *!*@cheops.student.utwente.nl
type 3; *!*vonck@*.student.utwente.nl
type 4; *!*@*.student.utwente.nl
type 5; Kreet!vonck@cheops.student.utwente.nl
type 6; Kreet!*vonck@cheops.student.utwente.nl
type 7; Kreet!*@cheops.student.utwente.nl
type 8; Kreet!*vonck@*.student.utwente.nl
type 9; Kreet!*@*.student.utwente.nl

Un último comentario; Un nivel de usuario puede incluso ser una palabra, por ejemplo: JCarlos: *!*@info53.retecal.es. (Puedes usar esto en sucesos como: on JOIN:#mirc:/mode $chan +o $nick)

mIRC guarda una base de datos ó database interna de la gente que está en tus canales. Esta base de datos se usa para acelerar el trabajo de comandos como /ban /guser /ruser. Normalmente mIRC hará un /whois sobre la persona que haga el comando. La Lista Interna guarda información de nicks!userid@dirección de los usuarios que están en los mismos canales que tu. Cuando un comando /guser /ruser /ban /finger /ignore o /dns se emite, la Lista Interna busca para encontrar dirección del Nick, si no se encuentra se realiza un /whois normal. Si tu computadora es lenta o te encuentras en muchos canales, desactiva el Uso de la Lista Interna de direcciones. 'Herramientas/Remotos/Opciones'. Interruptor en ON
 

Volver al índice de preguntas


7-3-2  Scripts Remotos - Comandos CTCP

En mIRC selecciona Herramientas/Remotos o pulsa Alt+R para abrir el Editor de mIRC. Aqui puedes preparar a tu mIRC para que reaccione a los diversos sucesos que ocurren en IRC. Dos grupos distintos de reacciones son posibles; reacciones a los Comandos CTCP y reacciones a los Eventos. En estos párrafos los Comandos CTCP son explicados.

Introducción - Los Comandos Remotos se refieren a un tipo específico de comandos: comandos CTCP. La sección de comandos remotos de mIRC hacen que se produzca un suceso como quieras a comandos CTCP enviados por otros usuarios.

Hay muchos comandos remotos definidos por el IRC RFC’S (normas). Los más frecuentes son Versión, Ping, Time, Userinfo, Clientinfo y Finger. Cada programa IRC responde de una manera standard a estos comandos. Los comandos CTCP son enviados en este formato:

/ctcp <nick> <comando con parámetros>

Consideremos el ejemplo simple de un ping. El otro usuario escribiría:

/ctcp <nick> ping

Puedes enviar también un comando Ping... Prueba a escribir "/ctcp <tunick> ping".
En circunstancias normales, mIRC enviaría una contestación ping [ctcp nick pong]. Pero con los Comandos Remotos, se puede definir la respuesta del programa al ping. Puedes ahora dar casi cualquier respuesta cuando recibes un Ping. Y por supuesto, puedes enviar también una respuesta normal al ping. O no, depende de ti.
Hay UNA de excepción a esto... cuando quieres ocultar la versión de mIRC... No sé puede hacer...

Puedes crear también nuevos comandos CTCP, y respuestas para ellos. Esto es característico del manejo y ofrecimiento de archivos (XDCC LIST y SEND).

Pero ahora mismo, vamos a regresar a nuestro ejemplo ping.

Ejemplo: Personalizar Respuesta Ping

Ve a las Herramientas/Remotos y mira que en la opción "Ver" está seleccionado commands.ini ó ctcps.ini. Si es así, edita y añade líneas en la ventana editora. Si no es así, vete a la opción Fichero y selecciona "Nuevo" para crear un nuevo script. Asegúrate que en la opción "Atender" los CTCP están activados. (Cuando en "Atender" no está activado, los Comandos Remotos CTCP no funcionarán).

Ahora copia lo siguiente en tu archivo o en el nuevo script.
ctcp 1:ping: /notice $nick ping? Hmmm! ...que dolor !!!

Ahora si alguien te hace Ping, su respuesta será "ping? Hmmm! ...que dolor !!!" en un aviso enviado a la persona que te envió el Ping, en vez de la respuesta normal que es 'pong'. Prueba esto escribiendo el comando "ctcp (tunick) ping", si no funciona, asegurate que en Listen los Comandos Remotos CTCP estan activados. Puedes también habilitarlo escribiendo "/remote on" y/o "/commands on".

Si no quieres que el comando ping te dé las respuestas predefinidas, puedes bloquear el proceso con el comando /halt. Use pues:
ctcp 1:ping:/notice $nick ping? Hmmm! ...que dolor !!! | /halt
Esto hará lo mismo que antes, excepto que no enviará su normal respuesta ping. ¡Prueba y mira la diferencia!.

Asumiendo que realmente se intentaron las dos respuestas ping, y que conseguiste que trabajaran, revisa la sintaxis usada un poco, y entonces entenderás bien como se hace.

Sintaxis de Comandos Remotos CTCP.

Los Comandos Remotos, a excepción de algunos casos especiales, se componen de 3 partes. La sintaxis general es:

ctcp <nivel> :<comando ctcp> :<comando y parámetros>

Vayamos por partes, una por una:

ctcp Es la llamada que mIRC hace a los (Comandos Remotos) por definición

<comando nivel> Este comando responde a los usuarios que tengan un nivel como él o más alto, a no ser que se creen otras ordenes para ellos.

<comando ctcp> El comando CTCP puede ser un comando adaptado a la norma como Ping o Versión o puede ser uno de creación propia (OPME, DIE, LEAVE, XDCC LIST,...)

<comando y parámetros> En esta parte está el comando que provoca la acción. Su formato y uso es igual que los definidos en Alias y Popups. Las cadenas son rellenadas por mIRC automáticamente... Solo te tienes que asegurar que estén definidas y que tengan sentido en los comandos remotos...(Por ejemplo los $chan ¡NO están definidos en comandos remotos !).

Vamos a mirar el ejemplo Ping anterior e intentemos estudiarlo.

ctcp 1:ping:/notice $nick ping? Hmmm! ...que dolor !!!

El prefijo ctcp le dice a mIRC que es un comando remoto lo siguiente. También en los mismos scripts pueden usarse alias, eventos y raw. Esto se explicará después.

1- es el nivel de comando. Todos los usuarios con un nivel igual o más alto de 1 pueden ejecutar o usar este comando.

Ping - es el comando CTCP al que el Comando Remoto debe reaccionar.

/notice - El comando provocado es un /notice. En este caso un aviso se envía a $nick con la línea entera "ping? Hmmm! ...que dolor !!!" $nick es un identificador que contiene el nick de la persona que envió el comando CTCP ... en este caso el Ping. (Más sobre parámetro pre-definidos veremos pronto)

Resumiendo, el efecto del comando "/ctcp <nick> ping" es un "/notice <nick> ping? Hmmm! ...que dolor !!!" Esto se produce tan pronto como se recibe un CTCP Ping.

Puedes usar también comandos múltiples, utilizando el | carácter, como con Alias y Popups. De esa manera un Comando Remoto único podría activar líneas múltiples de comando. El uso del | es ahora muy pronto para ponerlo, y lo explicaremos después. Sencillamente junta dos comandos remotos al usar el | "símbolo pipe".


Las reacciones diferentes a diferentes niveles de usuario

Puedes ajustar las reacciones a comandos remotos por niveles diferentes. mIRC responderá siempre al usuario con la respuesta más alta de nivel. Analicemos estos ejemplos...

ctcp 1:ping:/notice $nick ping? Hmmm sus niveles son muy bajos ... | /halt
ctcp 2:ping:/notice $nick ping? Hmmm! ...pang pang .... Estás muerto !!
ctcp 3:ping:/notice $nick ping? ...pang !! Hmmm... desapareció...
ctcp 6:ping:/notice $nick ping? Hmmm! ...Bien Me gusta usted .. a ti se permite ping ..

Un nivel 1 de usuario conseguirá un "ping? Hmmm sus niveles son muy bajos ..." Un nivel 2 de usuario (2:nick!account@machine.subnet.net) no sobrevivirá cuando hace un /ctcp <nick> ping. El verá "ping? Hmmm!...pang pang.... Estás muerto !!" Un nivel 3 de usuario (3:*!*@machine.subnet.edu) conseguirá "ping? ...pang !! Hmmm... desapareció..." Para niveles 4 y 5 no hay reacción determinada... El comando disponible más alto es el nivel 3... Por lo tanto esta gente verá el nivel 3. Niveles 6 y los usuarios más altos consiguen el nivel 6 de respuesta...

Esta nivelación se hace para TODOS los comandos remotos (y sucesos)...Asegúrate entiendes hasta este punto. ¿Quizás debas releer las secciones anteriores?

Identificadores especiales para líneas de Comandos/Remotos

$nick, $address, $site, $level etc. son identificadores especiales para usar en líneas de comandos remotos. Todas las Cadenas definidas (7-1-2) pueden usarse también.

También puedes usarlas en líneas con múltiples comandos remotos...

$nick El nick de la persona que envia el comando o activa el suceso. $address La dirección del nick que activa el comando. $site El lugar de la persona que activa el comando. $wildsite Da la dirección en la forma *!*@host.dominio $level Representa el nivel del usuario.

Nota: El $chan NO ESTA DEFINIDO SIEMPRE en los Comandos Remotos... $chan normalmente representa el canal, pero los comandos CTCP se pueden activar sin estar en canal o estando en varios... ¿ Mejor usar $active o $target ?.

Ejemplo: Veamos un ejemplo usando el parámetro $address... ctcp 1:address:/notice $nick Tú dirección es $address
Si envias el comando /ctcp <tunick> address recibirás "Tú dirección es (dirección)".

Ejemplo: Opeando amigos que lo solicitan.

Si no tienes claro como se hace esto, no te preocupes. Intenta seguir los ejemplos, hasta que te des cuenta como es. Relee en caso de necesidad. Pero procura no usar los comandos remotos o pasar a la sección siguiente hasta que no lo comprendas.
ctcp 1:opme:/notice $nick Lo siento, no puedes ser op en $2 .. tú nivel es muy bajo ctcp 5:opme:/mode $2 +o $nick

Si un amigo nivel 5 envia "ctcp <tunick> opme <#canal>", será opeado en el canal citado. Los usuarios nivel 1 no conseguirán el Op... Aquí el parámetro $2 se refiere a la segunda palabra que el usuario tecleó en el comando CTCP opme. En este caso, es el nombre del canal. ($1 será la palabra 'opme'). Los $2 - pueden usarse para procesar líneas largas dadas por un usuario remoto en un comando CTCP...

ctcp 5:return:/notice $nick $2-

Comandos múltiples.

Los Comandos Remotos CTCP admiten múltiples comandos....
ctcp 5:opme:/mode $2 +o $nick | /notice $nick Eres opeado por $2

Si un amigo nivel 5 envia el comando: "/ctcp <tunick> opme #canal" ¿ Qué ocurre ?
En efecto, dos comandos remotos CTCP se dan con el comando opme...
uno "/mode #canal +o Amigo" dos "/notice Amigo Eres opeado en #canal"

Otros CTCP admiten múltiples comandos:
ctcp 10:part:/part $2 | /notice $nick He salido del canal $2

Si un usuario nivel 10 envia: "/ctcp <tunick> part #canal"

Este comando hace que dejes un canal, y le dice al solicitante que lo hiciste...
$2 es el nombre del canal en que se hace. $nick es el nick de la persona requerida.

Otros Ejemplos.

ctcp 1:ping:/notice $nick Por favor hazme un ping.

... responde con: "/notice <nick> Por favor hazme un ping."

ctcp 5:time:/notice $nick Mira la hora en el reloj.

... responde con: "/notice <nick> Mira la hora en el reloj.

ctcp 10:como estás:/notice $nick Yo estoy bien | /notice $nick ¡ Espero tú bien !

... responde con:"/notice <nick> Yo estoy bien" seguido de
"/notice <nick> ¡ Espero tú bien !"



Volver al índice de preguntas


7-3-3  Scripts Remotos - Eventos

Selecciona en mIRC Herramientas/Remotos, para abrir el Editor de mIRC, selecciona en la opción "Ver" el script events.ini. Si esta opción no la tienes disponible, vete a Fichero/Nuevo y crea uno nuevo. Por defecto se crea el fichero script1.ini.

Como habrás visto, los sucesos Remotos trabajan solo con comandos CTCP. Los Sucesos Remotos trabajan sobre lo que puede suceder en IRC. Como se ha dicho, estas lecciones son acumulativas. Si has comprendido Comandos Remotos, los Sucesos Remotos serán un camino fácil, has aprendido ya, la materia realmente difícil.

Advertencia: En general mIRC puede ser sensible a la sintaxis mala de Sucesos Remotos. Usando la sintaxis incorrecta puedes ocasionar un GPF (Fallo General de Protección), por lo cual tener ¡cuidado!. Si notas tener repentinamente problemas de estabilidad de mIRC, esta es la parte que debes, ¡verificar primero!

Sintaxis de Sucesos Remotos.

Los Sucesos Remotos son: TEXT, INPUT, JOIN, PART, KICK, OP, DEOP, BAN, UNBAN, INVITE, NICK, QUIT, TOPIC, SERVEROP, NOTIFY, UNOTIFY, MODE, USERMODE, SERVERMODE y SMODE. A parte TEXT, similar es ACTION, NOTICE, SNOTICE, CHAT, SERV y WALLOPS, están disponibles para determinados textos. Nuevos son FILESENT, y FILERCVD y NOSOUND, así como también CHATOPEN, CHATCLOSE, SERVOPEN, Y SERVCLOSE. (¿Se me olvida alguno ?) CONNECT, MIDIEND,....

Que son y como usarlos se explicará más adelante. Primero veamos algunos ejemplos rápidos y una explicación de la sintaxis.

La sintaxis es esencialmente igual que con los Comandos Remotos. He aquí un Suceso Remoto para TEXT:

on 1:TEXT:Hola:#:/msg $nick Hola que tal?

Ve a las Herramientas/Remotos y mira que en la opción "Ver" está seleccionado events.ini. Si no es así, vete a la opción Fichero y selecciona "Nuevo" para crear un nuevo script. Asegúrate que en la opción "Atender" los Eventos están activados. (Cuando en "Atender" no está activado, los Eventos serán ignorados por mIRC). Pon ahora el ejemplo anterior en la ventana Editora del events.ini o del nuevo script.

Este Suceso Remoto se activa cuando la palabra "Hola" se escribe en cualquier canal que estés y mIRC enviará mensaje privado a la persona que lo escribió diciéndole "Hola que tal?.

Veamos otro ejemplo usando JOIN:

on 1:JOIN:#:/notice $nick Eres Bienvenido a $chan

Esto provoca al entrar un usuario en el Canal que estés, se le envíe un aviso que dice "Eres Bienvenido a <nombre canal>"

Si has seguido todo hasta aquí, y entendiste los Comandos Remotos, esto ya te parecerá sencillo.

Los Eventos remotos tienen 3, 4 o 5 partes distintas. La mayoría de los Eventos tiene 4 partes, excepto TEXT que tiene 6, y QUIT Y NICK que tienen sólo 3.

Todos los Sucesos "excepto" TEXT, QUIT y NICK tienen el formato:

on <nivel de suceso> : <suceso> : <donde> : <comando y parámetros>

on Este prefijo le indica a mIRC que vendrá después un Suceso o Evento.
<nivel de suceso> Nivel de usuario que provocará acción, y niveles más altos, siempre y cuando no haya otra acción para ellos.
<suceso> Nombre del Suceso. JOIN, OP,... etc.
<donde> #, #prueba . Canal donde se producirá, # (cualquier canal). EXCEPCION: No usado con NICK o QUIT. Sáltate esto de momento.

<comando y parámetros>. En los comandos remotos hay excepciones para diferentes parámetros predefinidos.

... estas excepciones son con TEXT y ACTION, NOTICE, SNOTICE, CHAT y SERV que trabajan así:
on <nivel de suceso> : <suceso> : <que texto> : <donde> : <comando y parámetros>

on Este prefijo le indica a mIRC que vendrá después un Suceso o Evento.
<nivel comando> igual que antes.
<suceso> Bien, obviamente, van con el TEXT o ACTION
<que texto> Especifica la palabra o frase. "Hola" en el primer ejemplo.

<donde> #, #nombre, ?, *. Como arriba, puedes decir TEXT y ACTION para escuchar en todos los canales (#) o en un canal determinado ( como #test ). Pero tú también puedes decirle que escuche a todos los mensajes privados que te envian a ti (?) o ambos a la vez canal y mensajes privados de texto (*). Un TEXT o ACTION no puede escuchar lo que se dice en los chat DCC o los mensajes del servidor.
<comando y parámetros> igual que antes.

Los Sucesos (Eventos)

Aquí vamos a ver los diversos Sucesos Remotos a que mIRC pueden responder...

TEXT event Ocurre cuando especificó palabras/frases que se encuentran en un canal o mensaje privado.
ACTION trabaja igual...

Ejemplo:
on 1:TEXT:disparate:#:/kick $chan $nick Por decir disparate !!
Al encontrar la palabra "disparate" se produce Kick y se emite mensaje (Por decir disparate!!)

Ejemplo: on 1:TEXT:disparate:#test:/kick $chan $nick | /notice $nick Hola $nick has dicho disparate y no está permitido en #test...

Si la palabra "disparate" se escribe en #test, el que lo hace es kickeado (si eres OP del canal #test) y se envía el mensaje: "Hola $nick has dicho disparate y no está permitido en #test..."

Ejemplo:
on 5:TEXT:help:?: /notice $nick Me hubiera gustado ayudarte, pero no puedo.

Si se encuentra la palabra "help" aunque sea en tus mensajes privados, se contesta al usuario, "Me hubiera gustado ayudarte, pero no puedo." en un notice ó aviso.

Puedes especificar comodines en el texto para que mIRC reaccione:

* reacciona a cualquier texto
palabra reacciona a esa palabra, no admite más longitud
palabra* reacciona a esa palabra aunque lleve después más texto.
*palabra reacciona a esa palabra aunque lleve antes más texto.
*palabra* reacciona lleve antes o después

Ejemplo:
on 5:TEXT:help:?:/notice $nick Me hubiera gustado ayudarte, pero no puedo.

Solo se produce el suceso si el texto solo contiene la palabra help no si esta se encuentra en el texto.

Si ponemos:
on 5:TEXT:hola*:?:/notice $nick ¡ Holaaaaa !

Se produce el suceso, si el mensaje comienza por la palabra "hola".

ACTION event Mira TEXT.... funciona exactamente igual.

NOTICE event Mira TEXT.... funciona exactamente igual.

CHAT event Funciona como TEXT si se dicen palabras/frases en DCC Chat.

Ejemplo:
on 1:CHAT:blabla:/msg $me $nick dijo $1- en un DCC Chat.

SERV event  Funciona como ON CHAT cuando se producen frases en DCC Fileserver.

Ejemplo:
on 1:SERV:get mirc:/echo server 6 A $nick se envía el mIRC zip.

JOIN event  Ocurre cuando un usuario entra en un canal.

Ejemplo:
on 1:JOIN:#test:/notice $nick Bienvenido al Canal #test
Envía aviso al que entre en el Canal #test.

Ejemplo:
on 25:JOIN:#test:/kick $chan $nick ¡¡ No eres bienvenido a este Canal !!
Se produce kick a usuario de nivel 25 al entrar en Canal #test y se le envía mensaje, "¡¡ No eres bienvenido a este Canal !!"

PART event Ocurre cuando un usuario deja un canal.

Ejemplo: on 10:PART:#:/notice $nick Adiós, gracias por tú visita a $chan
Envía aviso de despedida a usuarios de nivel 10 al dejar el canal que estés, "Adiós, gracias por tú visita a <canal> "

Ejemplo: on 90:PART:#:/msg $chan Al fin !! $nick se ha ido!
envía mensaje al canal en que estés al salir un usuario nivel 90.

CONNECT event Ocurre al final del MOTD (Mensaje del dia) busca y refleja la conexión al server.

Ejemplo: on 1:Connect:/echo Estoy conectado a $server

DISCONNECT event Se produce al desconexionar el servidor.
on 1:Disconnect:/echo Adióssss .. he cerrado la conexión

KICK event Ocurre cuando un usuario es echado de un canal.

Ejemplo:
on 100:KICK:#:/kick $chan $nick | /invite $knick $chan | /notice $nick Esa persona es amiga!

Si un usuario nivel 100 es kickeado kickeas al que lo hizo, invitas al canal al kickeado y le envías el mensaje al kickeador con "Esa persona es mi amiga!"
NOTA: $Knick es el parámetro del nick kickeado en este suceso. Observa que en este ejemplo hay comandos múltiples. Funcionan como en Comandos Remotos.

OP event Ocurre cuando un usuario es hecho Operador.

Nota: Este suceso requiere que el usuario esté mencionado por NICK en la Lista de Usuarios.

Ejemplo: on 1:OP:#test:/notice $opnick Eres op por $nick . Bienvenido!!
Si un usuario es hecho OP en #test recibe ese mensaje: "Eres op por <operador>. Bienvenido!!"
NOTA: $opnick es el nick hecho OP en este Suceso.

DEOP event Ocurre cuando un usuario es quitado de Operador.
Nota: Este suceso requiere que el usuario esté mencionado por NICK en tu Lista de Usuarios.

Ejemplo:
on 1:DEOP:#:/msg $opnick Mala suerte. Has sido desopeado por $nick
Si alguien es desopeado, recibe ese mensaje: "Has sido desopeado por <desopeador>". NOTA: $opnick es el parámetro para el nick desopeado en este suceso.

 

Volver al índice de preguntas


NOTA
Explicando el OP, DEOP, SERVEROP así como el NOTIFY un comentario importante debe hacerse. Debido al hecho que los servidores sólo informan del nick de las personas que son opeadas, deopeadas o notificadas en un canal de IRC, el OP, DEOP, SERVEROP y NOTIFY los eventos sólo funcionan si los nicks de las personas que son opeadas, deopeadas o notificadas se encuentran en la lista de los Usuarios. Especificando la dirección entera (nick!userid@machine.address.net) NO es bastante... mIRC no reconocerá el nick. La única excepción a esto es si deseas que el evento afecte a un nivel de acceso de 1, o al que hayas puesto por defecto. Éste es el único caso donde no es necesario tener un usuario en la lista de Usuarios por nick.

Si quieres dar un nivel que se adapte a OP, DEOP, SERVEROP, o NOTIFY, tienes que poner en la lista de usuarios por nick, como:

3:nickA
5:nickB
5:nickC
10:nickB!userid@mirces.com

Esta forma de construcción puede darte una buena razón para especificar los usuarios con dirección completa (se admiten comodines) y nick. Esto podría garantizar la reacción apropiada a OP, DEOP, o SERVEROP sin dar a TODAS las personas por accidente (?) el mismo nick e iguales derechos tanto a tus amigos (o enemigos).
 



BAN event
UNBAN event Con BAN puede fácilmente auto-unban a sus amigos.

Ejemplo:
on 5:BAN:#test:/mode $chan -b $banmask
$banmask contiene la dirección entera baneada. ¿ Fácil ? El identificador $bnick se refiere al nick del usuario baneado. Esto no siempre se completa, ya que algunas veces el nick no se especifíca con máscara de ban, banmask.

INVITE event Ocurre cuando se es invitado a un Canal.

Ejemplo:
on 5:INVITE:#test:/join $chan | /describe $chan Gracias por la invitación!
Si eres invitado a #test, entra en el canal y usa acción para decir "<me> Gracias por la invitación!"

NICK event Sucede cuando un usuario cambia su nick.

Ejemplo:
on 1:NICK:/notice $newnick Pienso que $nick es más bonito.
envía un mensaje al que ha cambiado el nick, "Pienso que <antiguo nick> es más bonito."

NOTA: $nick es el antiguo nick y $newnick el nuevo.
NOTA: El <donde> no es usado en ON NICK.

QUIT event Ocurre cuando un usuario sale de IRC.

Ejemplo:
on 2:QUIT:/notice $me Hora de celebrarlo ¡¡ $nick abandona IRC!!
Cuando se produce el quits, se envia mensaje: "Hora de celebrarlo ¡¡ <Nick> abandona IRC!! NOTA: El <donde> no es usado en el Suceso QUIT.

TOPIC event Ocurre cuando es cambiado Topic en Canal.

Ejemplo:
on 1:TOPIC:#:/msg $chan OH !precioso el nuevo Topic!
Cuando el Topic cambie, se envía mensaje al canal diciendo, "OH !precioso el nuevo Topic!

SERVEROP event Sucede cuando un servidor da OP a un usuario en el Canal.

Nota: Este suceso requiere que el usuario esté mencionado por Nick en Lista de Usuarios.

Ejemplo:
on 1:SERVEROP:#mirc:/mode $chan -o $nick | /notice $opnick Lo siento.. serverop no está permitido en $chan
Normalmente esto ocurre cuando se ha colgado algún servidor y se produce enganche de nuevo.

NOTIFY event
UNOTIFY event Ocurre cuando un usuario de su Lista de notificación entra en IRC.

Nota: Este suceso requiere que el usuario esté mencionado por Nick en Lista de Usuarios.

Podrías utilizar esto, por ejemplo, para hacer whois a la persona y comprobar que ese nick es el usuario correcto... Recuerda que en la lista de notificación mIRC responde SOLO por el NICK y podría no ser el usuario deseado. (como OP, DEOP y SERVEROP) Esto es debido a que los protocolos de IRC no muestran la dirección de la persona...

Ejemplos:
on 1:NOTIFY:/notice $nick Si eres realmente $nick por favor join #test !
on 1:UNOTIFY:/echo $active $nick ha dejado el IRC.
on 3:NOTIFY:/whois $nick
on 5:NOTIFY:/beep 10 50 | /whois $nick

MODE event
SERVERMODE event Ocurren cuando cambian los modos del canal. La sintaxis de MODE ha cambiado.Observa MODE cambia el formato. $1- representa el cambio de modo. Usa este suceso para reaccionar a los cambios de modo en el canal.
on 1!:MODE:#test:/echo 6 Cambio de modo por $nick en $chan
on 1!:SERVERMODE:#name:/echo 6 El servidor cambia el modo a $1-

USERMODE event Ocurre al cambiar el usuario de modo. Si un usuario cambia por ejemplo a modo invisible +i es detectado el suceso automáticamente y reacciona el Suceso.

VOICE event. Este evento reacciona a los usuarios quitando o dando voz en los canales.
DEVOICE event Ocurre al enviar o dejar música en el Canal. Ejemplos:
on 1:VOICE:/notice $nick Bienvenido al mundo de la música !
on 1:DEVOICE:/notice $vnick Eh, $nick puede hablar aquí !

SNOTICE event Este suceso escucha noticias del servidor. Las noticias del servidor, le avisan de lo que sucede en IRC. Para recibirlas debe cambiar su modo de usuario a +s (/mode nick +s) La mayoría de la gente no necesita esto Es fundamentalmente para IRCOps y administradores del server. Con este suceso puede filtrarlos y reaccionar automáticamente. Se usa junto al suceso TEXT:
on 1:SNOTICE:servers_text:/echo 6 El servidor le notifica $1-

FILESENT event Este suceso reacciona a todo DCC exitoso de envío de archivo. Puedes usarlo para recibir un mensaje pequeño
on 1:FILESENT:*.txt,*.ini:/echo Envio $filename a $nick ( $+ $address $+ )
on 1:FILESENT:mirc531s.exe:/notice $nick Estoy contento con mIRC 16 bit
on 1:FILESENT:mirc531t.exe:/notice $nick Estoy contento con mIRC 32 bit

FILERCVD event Este suceso reacciona a todo DCC exitoso al recibir archivo. Ocurrirá tan pronto el archivo esté en tu disco duro. Puedes usarlo para enviar al remitente un mensaje pequeño o bien para ver la foto enviada o leer el archivo de texto recibido. Ejemplos:
on 1:ON FILERCVD:*.txt,*.ini:/run notepad.exe $filename
on 1:ON FILERCVD:*.wav:/wavplay $filename
on 1:ON FILERCVD:*.gif:/run c:\windows\wingif.exe $filename
on 1:ON FILERCVD:*.jpg:/run c:\windows\lviewp19.exe $filename
on 1:ON FILERCVD:*.mid,*.voc:/run wplany.exe $filename
on 1:ON FILERCVD:*.*:/notice $nick Gracias por el archivo!

Obviamente los directorios del disco duro los deberás cambiar por los tuyos

SENDFAIL event
GETFAIL event Ocurre cuando se producen fallos en las conexiones DCC bien sea por desconexión u otras causas. Ejemplos:
on 1:SENDFAIL:*.txt:/echo ha fallado el envio de $filename a $nick
on 1:GETFAIL:*.txt:/echo ha fallado el envio de $filename desde $nick

CTCPREPLY event Atento para responder a ctcps. Ejemplos:
on 1:CTCPREPLY:PING*:/echo $active Se ha logrado respuesta Ping desde $nick
on 1:CTCPREPLY:*mirc:/echo $active Oh! $nick usa mIRC demasiado!.

MIDIEND event Ocurre cuando finaliza la ejecuciónde un fichero midi. (pero no si lo detienes ejecutando otro midi o usando /splay stop). Ejemplo:
on 1:MIDIEND:/echo mIRC acaba de ejecutar el fichero midi

INPUT event Ocurre cuando pones un mensaje de texto en la caja de editar y presiona Enter. Tú puedes procesar esta línea con un script o incluso haciendo /halt en el proceso de un texto. Ejemplo:
on 1:INPUT:/echo Has introducido $1-

LOAD event Ocurre cuando mIRC se arranca y son grabados scripts START event Ocurre tan pronto como tú nuevo script se activa.
on 1:LOAD:/echo script leido sin problema
on 1:START:/echo script iniciado sin problema

Con el suceso LOAD puedes usar comandos cuando mIRC ejecuta los scrpits. Para iniciar los comandos y que mIRC ejecute primero los scripts, usa START. El START corre después de LOAD cuando el script ha sido primero ejecutado. Si el script es grabado con Remote, los comandos de auto-ejecución no se ejecutan y se acaba.

Identificadores especiales para líneas de Remotos/Eventos

$nick, $address, $site etc. Son identificadores especiales para uso en líneas remotas. Los puedes usar en las líneas para provocar sucesos remotos...

$nick El nick del que envió el comando o activó el suceso.
$address La dirección entera de la persona que envió el comando.
$site El sitio de la persona que envió el comando.
$level Representa el nivel remoto del usuario.
$chan El canal en el que se provocó una línea Remote/Events.
 

Volver al índice de preguntas


7-3-4  Símbolos para usar por Comandos o Eventos

Finalmente algunos comentarios tienen que hacerse sobre los diversos símbolos que puedes usar en la sección Remota. (Con Comandos y/o Sucesos)

***El símbolo ! (Solo Eventos)

Este símbolo no reacciona cuando los sucesos los provocas tú.
Ejemplo:
on 1!:JOIN:#test:/notice $nick Bienvenido... al Canal.

***El símbolo = (Solo Eventos)

Este símbolo sirve para no molestar a gente con nivel superior. En los niveles de usuario, un nivel marcado por ejemplo 2, será para niveles 2 y superiores. El símbolo = evita sea para superiores.

Ejemplo:
on 1:JOIN:#test:/ctcp $nick VERSION
on 3:JOIN:#test:=
Los niveles 1 y 2 ven comando Versión. Los niveles 3 y superiores y tú no lo ven al entrar en #test.

Ejemplo:
on 1:JOIN:#test1:/notice $nick Bienvenido a #test1
on 1:JOIN:#test2:/notice $nick Bienvenido a #test2
on 3:JOIN:=
Niveles 3 y superiores recibirán el mensaje Bienvenido.... niveles más bajos solo en #test1 y #test2.

***El símbolo +

Este símbolo hace que las acciones se realicen con Niveles ÚNICOS y EXACTOS... Superiores o inferiores no funcionarán.

Ejemplo:
on 1:JOIN:#mine:/ctcp $nick VERSION
on +3:JOIN:#mine:/notice $nick Bienvenido a este canal.
A todos los usuarios EXCEPTO nivel 3, se les hará Versión al entrar en el canal mine..... niveles tres y superiores, serán Bienvenidos.

Ejemplo:
on +5:JOIN:#mirc:/msg $nick ¡ Bienvenido usuario nivel 5 !

El símbolo ; y REM

Estos símbolos provocan desactivación momentánea de las líneas.
Ejemplos:
;on 1:JOIN:#test:/notice $nick Bienvenido !.
REM on 1:JOIN:#test:/notice $nick Bienvenido !.

Los símbolos * y @

Estos símbolos equivalentes hacen que mIRC ejecute un suceso SOLO si eres Operador en el canal que se produce el Suceso o se usa el comando.
on *1:JOIN:#test:/notice $nick Bienvenido !.
on @10:JOIN:#mine:/mode $chan +o $nick

El símbolo me

Este símbolo se usa para asegurarse que solo puedes hacer una cosa, aunque lo intente alguien con tu misma dirección. Esa misma persona podrías ser tu con un segundo mIRC. Normalmente con los niveles apropiados en la Lista de Usuarios no necesitarás ese símbolo.

Símbolos Condicionales

Desde la versión 3.7 de mIRC se introdujeron nuevos símbolos para los EVENTOS. Con estos símbolos puedes hacer que mIRC tenga en cuenta el nivel de la persona que inició un EVENTO. Estos símbolos sólo pueden usarse con OP, DEOP y KICK ya que son los únicos en que la acción es de alguien haciendo algo a alguien más.
Los tres símbolos agregados son >, < y = . Pero se pueden hacer combinaciones matemáticas y conseguir seis: <, >, <=, >=, <>, y =.

Estas símbolos sólo harán que el evento se active si PRIMERO el nivel del evento es el Opeado, Deopeado ó kickeado de tipo (m/f) y además SEGUNDO el nivel del activador presenta la expresión {nivel - activador} [símbolo (expresión matemática) ] {nivel de suceso}

Lo veremos con algunos ejemplos...

Imaginemos que usted quiere proteger (GUARD) a su Amigo que tiene nivel de usuario 2 y un Activador que tenga diferentes niveles de usuario...Imaginemos los EVENTOS:

<on 2:DEOP:#test123:/msg $chan el < activado >
=on 2:DEOP:#test123:/msg $chan el >= activado

Cuando el activador tiene nivel 1.
*** el Activador coloca modo: - o Amigo
<GUARD> el < activó
Su Amigo tiene nivel 2, el Activador tiene nivel 1, 1<2 es válido (uno es menor que 2), el nivel primero 2 DEOP provoca el suceso...

Cuando el activador tiene nivel 2.
*** el Activador coloca modo: - o Amigo
<GUARD> el >= activa
Su Amigo tiene nivel 2, el Activador tiene nivel 2, 2<2 es inválido, 2>=2 es válido (2 es más grande que o igual a 2), el segundo nivel 2 DEOP provoca el suceso...

Cuando el activador tiene nivel 3.
*** el Activador coloca modo: - o Amigo
<GUARD> el >= activa
Su Amigo tiene nivel 2, el Activador tiene nivel 3, 3<2 es inválido, 3>=2 es válido, el segundo nivel 2 DEOP provoca el suceso...

Espero hayas conseguido la idea, puedes practicar con otras combinaciones de los signos.
Más ejemplos:

on <2:DEOP:#test123:/msg $chan el < activa
on >2:DEOP:#test123:/msg $chan el > activa

Cuando el activador tiene nivel 1.
*** Activador pone modo: -o Amigo
<GUARD> el < activa

Cuando el activador tiene nivel 2.
*** Activador pone: -o Amigo

Cuando el activador tiene nivel 3.
*** Activador pone mode: -o Amigo
<GUARD> el > activa

on =2:DEOP:#test123:/msg $chan el = activa

Cuando el activador tiene nivel 1.
*** Activador pone modo: -o Amigo

Cuando el activador tiene nivel 2.
*** Activador pone modo: -o Amigo
<GUARD> el = activa

Cuando el activador tiene nivel 3.

*** Activador pone modo: -o Amigo

 

Volver al índice de preguntas


7-3-5  Variables

En Herramientas/Remotos, selecciona la ventana llamada "Variables"... mIRC te permite definir todo tipo de Variables. Las Variables siempre empiezan con % y pueden tener nombres de cualquier longitud; estas se almacenan en un archivo del directorio mirc. Las Variables pueden contener, números, palabras ó líneas de texto. Si son números se les pueden aplicar fórmulas matemáticas para aumentar o disminuir valores determinados. Las variables siempre empiezan con un % y puede tener nombres de cualquier longitud. Las variables se guardan durante las sesiones de IRC en un archivo variable en el directorio de mIRC.

Varios comandos hay para crear y mantener variables: (s=show; para forzar un informe del estado de funcionamiento)

/set [-s] <%var> [valor] Para crear una variable.
/unset [-s] <%var> [%var2] ... [%varN] Para borrar una variable.
/unsetall Para borrar todas las variables.
/inc [-s] <%var> [valor] Para aumentar una variable con un valor (número o variable)
/dec [-s] <%var> [valor] Para disminuir una variable con un valor (número o variable)

Con la ayuda de estos comandos puedes hacer toda clase de Alias prácticos y líneas remotas

Vamos a ver unos cuantos ejemplos:

Los comandos remotos (mira luego) :
ctcp 2:xdcc send #1:/dcc send $nick c:\temp\mirc40.zip | /inc %mirc 1
ctcp 2:xdcc send #2:/dcc send $nick c:\temp\mircfq24.zip | /inc %faq 1
ctcp 1:stats:/notice $nick Sending stats: mIRC= %mirc y FAQ= %faq

Los sucesos remotos (mira luego) :
on 2:TEXT:xdcc send #1*:?:/dcc send $nick c:\temp\mirc392.zip | /inc %mirc 1
on 2:TEXT:xdcc send #2*:?:/dcc send $nick c:\temp\mircfq23.zip | /inc %faq 1

Alias :
/stats /echo 6 mIRC: %mirc y FAQ: %faq

Con estas líneas Yo hice un pequeño contador hacia abajo... no perfecto, pero ¡funcionó!

Puedes agregar algunos Alias como los próximos para guardar estadísticas parciales :
/reset /set %date $day $date | /inc %mirctot %mirc | /inc %faqtot %faq | /set %mirc 0 | /set %faq 0
/stats /echo 6 Stats mIRC: %mirc ( %mirctot ) and FAQ: %faq ( %faqtot ) (Set on %date )

Cuando aumentas o disminuyes una inexistente variable se creará automáticamente y se pone el valor que le das. Ejemplo :
/inc %test1 6 pondrá %test1 a 6 si no existió antes
/dec %test2 7 colocará %test2 a 7 si no existió antes

Nota: Te debes asegurar de incluir el % !!. Esto no limita el uso de las Variables en las construcciones como:
ctccp 1:upme:/inc % $+ $site 1
ctcp 2:xdcc send #1:/dcc send $nick c:\temp\mirc40.zip | /inc % $+ $nick 1
ctcp 2:xdcc send #2:/dcc send $nick c:\temp\mircfq24.zip | /inc % $+ $nick 1
ctcp 2:xdcc stats:/notice $nick Usted transmitió %nick archivos ya desde %date


 

Volver al índice de preguntas


7-3-6  Scripts Remotos - Procesando Raw

En la sección Herramientas/Remotos/Raw mIRC te ofrece la posibilidad, de procesar todo el servidor cliente, (mIRC) procesa directamente y de la forma que quieres o como quieres. Trabaja exactamente como el Remote/Events exceptuando, que mIRC atiende los sucesos numéricos. Este servidor numérico se describe en el IRC RFC1459. Más información la tienes disponible en (http://www.teleport.com/~jeepster/numeric.html) donde puedes transferir el fichero numeric.hlp y profundizar en Raw. Usa la sección Raw - si sabes exactamente lo que hace y si lo ves absolutamente necesario. El uso equivocado de la sección Raw puede desordenar tu mIRC totalmente. Ejemplo:
raw 322:*mirc*:/echo 2 $1-

Esto imprimiría todas las líneas que tienen la palabra "mirc" cuando haces listado de canales (esta es una prueba muy bonita).

Para repetir 2 líneas concisas del /whois en su ventana activa, ponga las líneas siguientes en su sección Raw (Listening activado):
raw 311:*:echo 5 $active *** $2-
raw 319:*:echo 5 $active *** $2-

Esto mostrará el usuario y canales. Los números para las otras respuestas /whois son: 312, servidor; 313, ircop; 301, away; 317, idle; y 318, end. Para un Completo echo /whois, simplemente duplicar las líneas arriba usando estos números.

Para averiguar los numéricos de los servidores puedes usar el nuevo identificador $numeric que muestra el número del evento (raw) activado. En el IRC RFC1459, Sección 6; respuestas Numéricas, puedes mirar todos los numéricos, con su número, nombre y respuesta.

Volver al índice de preguntas


7-4 : Uso avanzados de comandos; Comandos Multi-líneas

En mIRC puedes usar comandos y crear Alias, Popups y Remotos con líneas de condiciones, enlaces y otras cosas aparentemente tramposas. Para explicarlo todo se necesitaría otro FAQ completo, pero trataré de conseguirlo en una sección corta con algunos ejemplos.
Pienso que lo mejor es comenzar en el acto...

mIRC permite ahora Alias multilineas, Popups, y definiciones remotas. Esto te permite escribir declaraciones en una manera bonita y estructurada:

<prefijo definición> {
/comando1 ...
/comando2 ...
/comando3 ...
}

Ejemplo:
/away /ame está AWAY ( $+ $?="Razón" $+ ) | /away Estoy away $time { $+ $! $+ } /back /ame ha vuelto,.. me he perdido algo ? | /away

Esto definido en Alias quedaría así:

/away {
/ame is AWAY ( $+ $?="Reason" $+ )
/away Set away at $time { $+ $! $+ }
}

/back {
/ame is back,.. what did I miss ?
/away
}

Me gustaría que no necesitaras ayuda -aquí- , pero mientras pruebas las nuevas estructuras, verás como te gusta esta forma, ¿no es así ?. Pon entre {} llaves todos los comandos para ver las nuevas posibilidades de bucles condicionantes. Ahora ya está todo, ... no necesitas líneas grandes.

Un comando /goto es añadido para usarlo en definiciones { }
Ejemplo:
/greet {
/set %x 0
:retry
/inc %x
/goto %x
:2
/echo line2
/halt
:1
/echo line1
/goto retry
}

Este Alias muestra las líneas "line1" y "line2" en tu pantalla.
Prueba este otro comando equivalente en alguna ventana de editar:
/set %x 0 | :retry | inc %x | goto %x | :2 | echo line2 | halt | :1 | echo line1 | goto retry

Esto mostrará exactamente lo que sucede. ;-) Puedes usar también una variable como por ejemplo:
%jumppoint

Si pones "/set %jumppoint 5" al usar "/goto 5" mIRC evaluará %jumppoint 5 y saltará hasta él. En el ejemplo anterior los puntos de salto estaban fijados a "1" y "2". Intenta esos tres comandos y verás ahora que sucede.
/set %jump1 1
/set %jump2 2
/set %x 0 | :retry | inc %x | goto %x | :%jump2 | echo line2 | halt | :%jump1 | echo line1 | goto retry

Puedes usar el comando /return para finalizar el comando procesado y continuar procesando lo que falte. Ejemplo:
on 1:JOIN:#mIRC {
/echo 3 #mirc [Joins $nick]
/return
/echo 3 #mirc No estoy imprimiendo!
}

Esto dará un mensaje como:
[Joins henk]
*** henk (monster@ppp.dial.tip.nl) has joined #mIRC

Cuidadin...!

Ten cuidado de no dejar llaves sin cerrar. Cuando abres llaves y no las cierras, mIRC inicia un camino extraño y sucederán cosas raras. Trabaja con cuidado. Un botón especial se ha añadido en el editor de Alias, Popups y Remote, para que puedas chequear si las llaves en el script son correctas. Es el botón con el dibujo "{}".

/if /elseif /else

Ahora deberías estar listo para la materia verdadera. En mIRC un simple /if está disponible. /if v1 operador v2 { ... } | /elseif v1 operador v2 { ... } | /else { ... }

Ejemplo:
Haga este Alias y comience con "/prueba 4";
/test { set %i 0 | :start | inc %i | if %i > $1 halt | echo $active %i | goto start }

Si If/elseif/else se juntan dentro unos de otros, deberías usar ( ) y {} para asegurarte que se evalúan correctamente (en el orden correcto), aunque no *tengas* porque usarlos. Usar los paréntesis también acelera los procesos en mIRC, pues este entonces sabe exactamente qué tiene que evaluar.

Operadores y comparaciones disponibles:
== igual que
!= no igual que
< menos de
> más grande que
>= más grande o igual que
<= menor que o igual que
// es un múltiplo de
\\ no es múltiplo de

isin la cadena v1 está en la cadena v2
iswm la cadena comodín v1 está en la cadena v2
ison el nick v1 está en el canal v2
isop el nick v1 es un op en el canal v2
isvo mira si el usuario v1 tiene voz en canal v2
isnum el número v1 es un número de rango v2 en forma n1-n2 (v2 opcional)
ischan si v1 es un canal en que estás.
isauto si v1 es un usuario en tu lista auto - op para el canal v2 (v2 opcional)
isignore si v1 es usuario en tu lista de ignore con el interruptor ignore v2 (v2 opcional) isprotect si v1 es usuario en tu lista protect para el canal v2 (v2 opcional)
isnotify si v1 es un usuario en tu lista notify.

Para negar los prefijos de arriba señala con una ! exclamación.

Ejemplo:
/massinvite { echo 4 * Mass - inviting # | set %i $nick(0,#) | :next | if $nick(%i,#) != $me invite $nick(%i,#) $1 | dec %i | if %i > 1goto next | echo 4 * Mass-invite # done }

Usa este ejemplo de Alias como "/massinvite #Canal". (Están mal vistos)

Ejemplo:
/randnopkick { :begin | set %kicknick $nick ($r(1,$nick (0,#)),#) | if %kicknick isop # goto begin | /echo 6 %kicknick }

Si eres Op en algún canal te podría gustar este juego de azar - no - Op - Kick. Kickea una persona aleatoria desde tu canal, pero nunca un Op. Considera... si el único Op disponible tiene un problema :-)

Ejemplo:
/line { %line = "" | if $asc ($1) < $asc ($2) { set %i $asc ($1) | :add | %line = %line $chr (%i) | inc %i | if %i <= $asc($2) {to add } | if (%line == "") { halt } | else { echo # %line | halt } } else echo # Lo siento, no válido }

Comienza este alias ejemplo escribiendo "/line d k" para ver qué hace. Imprimirá una línea como 'd e f g h i j k '. Nada útil apenas pero muestra lo bonito que puede hacer if/elseif/else.

Ejemplo:
/printnum1 { if $len($1) = 1 { if $1 !isin 1234567890 {ho 6 $1 is not a number | goto end } } | elseif $len($1) = 2 {f $mid(1,1,$1) !isin 1234567890 { echo 6 $mid(1,1,$1) is not a number | goto end } | elseif $mid(2,1,$1) !isin 1234567890 { echo 6 $mid(2,1,$1) is not a number | goto end } } | elseif $len($1) > 2 { echo 6 $1 has too many chars | goto end } | { set %x 1 | :begin | echo 6 %x | if %x >= $1 { goto end } | else { inc %x | g| goto begin } | :end } }

/printnum2 { if $1 !isnum { echo 6 $1 is not a number | goto end } | elseif $1 !isnum 0-99 { echo 6 $1 is a too large number | goto end } | { set %x 1 | :begin | echo 6 %x | if %x >= $1 { goto end } | else { inc %x | goto begin } | :end } }

Estos dos alias equivalentes imprimirán una lista de números según el valor que des. Pruébalo con "/printnum1 14" o similar.... El segundo alias enseña como el uso inteligente de identificadores puede reducir mucho la longitud del alias.

Identificadores vacíos o no válidos

Las variables o identificadores que no representan a un valor devuelven el valor $null. Pueden ser usados en las líneas para comprobar etc.

Ejemplo:
/listops { echo 4 * Listing Ops on # | set %i 1 | :next | set %nick $nick(%i,#) | if %nick == $null { goto done } | if %nick isop # { echo 3 %nick Es un Op en # } | inc %i | goto next | :done | echo 4 * Fin de lista de Ops }

Este alias enumerará todos los Op en el canal que estás.

O en Events Remotos:
on 1:CTCPREPLY:PING* {
if ($2 == $null) echo [ $+ $nick PING reply]
else {
%pt = $ctime - $2
if (%pt < 0) set %pt 0
echo [ $+ $nick PING reply] %pt segundos
}
halt
}

Más ejemplos Popups :

GiveOps { %i = 0 | %nick = "" | :nextnick | inc %i | if ($snick(%i,#) == $null) { if ($len(%nick) > 0) mode # +oooo %nicks | halt } | %nicks = %nicks $snick(%i,#) | if (4 // %i) {ode # +oooo %nicks | %nicks = "" } | goto nextnick }

Este menú Popups hará Op a toda la gente en un canal donde eres operador.

Selkick:/kick # $token($r(1,$snick(0,#)),44,$snicks)

Este menú kickea a una persona aleatoria de la gente seleccionada en un Canal.

RandNopkick:/kick # $nopnick($r(1,$nopnick(0,#)),#)

Este popup kickeará al azar un no-operador en el Canal que estés.

RandNopkick { :begin | /set %kicknick $nick(#,$r(1,$nick(#,0))) | if %kicknick isop # goto begin | /kick # %kicknick }

Este popup kickea al azar a alguien que no sea operador en el canal que estés.

Randkick:/kick # $nick(#,$r(1,$nick(#,0)))

¿Te diviertes kickeando? ... uno al azar, pudiendo ser tú mismo.

RandOpkick:/kick # $opnick(#,$r(1,$opnick(#,0)))

¿Kickeando a un op?, cuidado, ellos pueden defenderse.

Los bucles interminables.

Con todos los ejemplos anteriores, es previsible que acabes en un bucle interminable. Este ejemplo simple crea uno:

/loop { :start | echo 6 # test loop | goto start }

En el caso de que un Alias o Remote hagan un bucle interminable pulsa CTRL+BREAK para acabar el proceso. Estarás a salvo.

Personalizar Ventanas

En mIRC 5.0 y superiores una nueva herramienta se ha añadido, que permite crear tus propias Ventanas personalizadas. Todo ello lo puedes hacer también mediante scripts. Se ha creado el nuevo comando /windows. Se pueden utilizar varios parámetros para definir el tipo, o el estado de las Ventanas que crea mIRC. /window [-abcdelnorsx] @name [x y [w h]] [/command] [popup.txt] [font [size]]

Parámetros:
a = activa window
b = marca anchura de la ventana
c = cierra window
d = abre window en escritorio
e = editbox
l = listbox
n = minimiza window
o = si está abierta en escritorio la pone arriba
r = restaura window
s = usa listado de salida
x = maximiza window
@name = nombre de window (prefijo con @)
x,y,w,h = izquierda arriba ancho alto
popup.txt = archivo popup, grabado si se necesita
/command = comando por defecto
font/size = fuente y tamaño (por defecto la fuente de la ventana estado)

Puedes también usar /window para manipular alguna de las opciones de arriba para una ventana personalizada existente. Puedes usar los siguientes comandos para manipular las líneas.
/aline [-cN] @name texto añade línea al la lista
/dline @name N borra número de línea
/iline [-cN] @name N texto inserta línea y número de línea
/rline [-cN] @name N texto reemplaza número de línea
/sline @name N selecciona número de línea
Donde -cN permite especificar el color de la línea.

Para usar $window(N/@name) identificar el acceso a la ventana personalizada:
$window(N).x izquierda
$window(N).y arriba
$window(N).w ancho
$window(N).h alto
$window(N).state minimiza/maximiza/normal

Para acceder a la línea en una ventana personalizada:
$line(@name,N) retorna número de línea
$sline(@name,N) retorna número seleccionado de línea (solo listbox)
$sline(@name,N).ln para retornar el número de línea del apartado seleccionado.

Esta nueva herramienta ofrece varios usos útiles y creativos, pero necesita alguna experimentación para hacer lo que quieras. ¡¡ Diviértete !!

 

Volver al índice de preguntas


Copyright - Se permite proporcionar y distribuir el FAQ de mIRC, como está o en cualquier medio mientras lo hagas "gratis". No se permite cambiar nada en el fichero o cobrar cualquier cantidad de dinero por servicios. Si deseas copiar solamente ciertas partes, sea el uso que sea, acuérdate de mencionar mi nombre y el FAQ como fuente de la información, siempre que lo publiques. Copyright 1995 - 2008 Tjerk Vonck


 
Privacidad   Contacto
Copyright © mIRC Co. Ltd. 1995-2008. Derechos Reservados.