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
|