Portale IRC - Guide scripts e snippet

martedì 30 novembre 2010

mIRC - Messaggio a Tempo - Uso di Variabili e Timer

Questa volta utilizziamo Variabili e Timer del mIRC, per creare un "menù" che ci consenta, cliccando con il tasto destro del mouse in un qualsiasi #chan di settare,avviare,fermare,un messaggio a tempo,stabilendo:
  • Testo del Messaggio
  • Numero di Ripetizioni
  • Intervallo tra una ripetizione e l'altra
Andate nell'editor degli script ( Alt+R ) selezionate i "popup's" -> New o Nuovo ed incollate quanto segue:
@Messaggio a tempo:
.Setta nuovo Messaggio: {
  /set %msgtxt $$?="Inserisci il tuo messaggio"
  /set %msgrip $$?="Quante volte ripeto il messaggio?"
  /set %msgtime $$?="Ogni quanto ripeto il messaggio?"
  /timer %msgrip %msgtime msg $chan %msgtxt
  /echo -a [ 4 Messaggio a Tempo Avviato! ]
}
-
@Avvia Messaggio a tempo: {
  /echo -a [ 4 Messaggio a Tempo Avviato! ]
  /timermsg %msgrip %msgtime msg $chan %msgtxt
}
-
@Ferma Messaggio a tempo: {
  /echo -a [ 4 Messaggio a Tempo Fermato! ]
  /timermsg off
}

lunedì 29 novembre 2010

Mass /hop - Rejoin automatico in tutti i chan

; http://www.mirc-scripting.blogspot.com ;

;Copiare ed incollare in un nuovo remote questo script;
;permette di rejoinare automaticamente tutti i chan in cui ci si trova;
;il comando per eseguire lo script è /mhop; 
alias mhop {
  var %sn = 1, %sc = 1
  if ($1 == -a) {
    if (($status == connected) && ($chan(0) != 0)) {
      while (%sc <= $chan(0)) {
        var %c = %c $+ $chan(%sc) $+ $chr(44)
        inc %sc
      }
      .partall $2- | join %c
    }
  }
  else {
    while (%sn <= $scon(0)) {
      .scon %sn
      if (($status == connected) && ($chan(0) != 0)) {
        while (%sc <= $chan(0)) {
          var %c = %c $+ $chan(%sc) $+ $chr(44)
          inc %sc
        }
        var %exc = %exc .scon %sn join %c $chr(124), %sc = 1, %c
        .partall $1-
      }
      inc %sn
    }
    %exc
  }
}

venerdì 26 novembre 2010

Utilizzo della funzione echo - Primi Passi

Oggi, faremo qualche esempio dell'utilità della funzione echo
il comando /echo , funziona cosi:
/echo [color] [-deghiNtsaqlbfnmr] [#canale|[=]nick] <testo>
Scrive il testo nella finestra specificata usando il colore richiesto (da 0 a 15).

/echo 3 #angel_&_Devil

scrive "Test" in colore verde nella finestra del canale #angel_&_Devil, sempre che sia aperto.

Se non viene specificato un canale/nick, l'opzione -s scriverà sulla finestra status, l'opzione -d sulla finestra singola di messaggi e l'opzione -a sulla finestra attualmente attiva.

L'opzione  -e include la linea tra due linee separatrici.
L'opzione -iN lascia una rientranza di N caratteri.
L'opzione  -h costringerà ad adattare il testo allo spazio disponibile per scrivere cosicchè se la finestra verrà ridimensionata sarà possibile visualizzarlo correttamente.
L'opzione  -t aggiunge all'inizio della riga l'ora se l'opzione di segnalazione dell'ora è attiva per quella finestra.
L'opzione  -q non farà scrivere la riga se usato in un alias chiamato con prefisso ".".

L'opzione  -l applicherà i settaggi highlight alla riga scritta.
L'opzione -bf applicherà i settaggi di bip/lampeggio della finestra in cui si sta scrivendo.
L'opzione  -n non farà evidenziare l'icona nella barra dei pulsanti.
L'opzione -m indica che la riga sarà interpretata come un messaggio per l'utente, non come un evento.

Nota: Questo testo è visualizzato solamente nella propria finestra, non è inviato al server e quindi nessuno potrà vedero.

(cit. mirc Help)
Passiamo ad un piccolo esempio, utilizzando il comando /echo e l'evento on *:INPUT:*: { che abbiamo approfondito la volta passata;

Utilizzando i due "sopra citati" andremo a creare un mini-script che ci dica (a nostra richiesta) il numero di utenti, il numero di ban e l'ultimo ban eseguito su un canale dove ci troviamo, il tutto d'evesserci reso noto in "echo" ovvero, una comunicazione che vediamo solo noi, e non passa per il server.

on *:INPUT:*: {
if ($1 == .stats) {
/echo -s In $chan ci sono N° $nick($chan,0) Utenti
/echo -s Numero di Ban $ibl($chan,0)
/echo -s Ultimo Ban effettuato $ibl($chan,1)
}
}
Alla prossima!
mAx` Mirc-scripting.blogspot.com Angel & Devil IRCGate.it

 

lunedì 22 novembre 2010

Comandi rapidi by on *:INPUT:

Oggi iniziamo a conoscere uno dei molteplici eventi sui quali si può lavorare per creare o modificare il nostro script, parliamo di on *:INPUT:
L' on *:INPUT: funziona in questo modo, nel momento in cui noi, dal nostro mIRC immettiamo del testo (input) il nostro mIRC, esegue un output, ovvero, la sua risposta è l'esecuzione di un comando, in linea di massima, e in maniera semplificata il funzionamento è questo:

on *:INPUT:[Testo Immesso da noi]: {
Se,l'input corrisponde a [Testo Immesso da noi] {
[esegui comando 1]
[esegui comando 2]
}
}
In cosa può esserci utile? In un milione di modi.. un esempio? L'esecuzione automatica di comandi lunghi da digitare, esempio il ban o il kick di un utente, ma vediamo come:
Per Bannare un utente la sintassi corretta è: /mode #canale +b Nick!ident@Host
Se volessimo bannare l'Host *!*@Host il comando sarebbe /mode #canale +b *!*@host
Il comando è lungo, ed a volte non avremmo il tempo per digitare tutto, quindi utilizziamo un on *:INPUT:
Decidiamo che il comando per bannare sia !banna  ;
Il Codice sarà il seguente:
on *:INPUT:*: {
if ($1 == !banna) {
/mode $chan +b $address($$2,2) 
}
$1 -> Testo Immesso da noi, se corrisponde a !banna lo script parte,
$$2 -> La prima parola (NICK) che segue il comando !banna (Es. !banna Tizio_ )
$chan -> Il canale dove eseguiamo !banna
$address($$2,2) -> L'host di $$2 (Tizio_)

Gli on input possono essere utilizzati per abbreviare l'esecuzione di comandi lunghi come il cambio nickname rapido, il kick e qualsiasi comando vi venga in mente.. se utilizzati a dovere possono facilitarvi e di non poco la permanenza in IRC;

Alla prossima!
mAx` - Helper.IRCgate.it

venerdì 19 novembre 2010

Auto Identificazione - on CONNECT

;Auto Identify by mAx`;
;Per utilizzare questo Code Copia-> Apri il mirc -> Alt+R -> New -> Incolla;
on *:CONNECT: {
  /set %mionick $$?="Inserisci il tuo nickname registrato"
  /set %password $$?="Inserisci la password"
  /nick %mionick
  /msg nickserv identify %password
}

on *:DISCONNECT: {
  /set %password $null
  /set %nick $null
}

martedì 16 novembre 2010

Gli Identificatori - Tempo e Data

$asctime(N,formato)
Restituisce il valore di data e ora in formato di testo, associato al valore di tempo $ctime


$asctime(793947600) restituisce il valore dell'ora in formato di testo
$asctime(hh:nn:ss) restituisce l'ora attuale in questo formato
$asctime(793947600,dd/mm/yy) restituisce la data per questo valore

Possono anche essere usati gli identificatori $time(), $date() e $gmt() con le specifiche del formato, indicate più sotto.

Il parametro relativo al formato è opzionale. Se viene omesso, verrà usato il formato di default. Il formato può essere una combinazione dei seguenti elementi:


Anno yy 99
yyyy 1999
Mese m 1
mm 01
mmm Jan
mmmm January
Giorno d 1
dd 01
ddd Mon
dddd Monday
Ora h 5
hh 05
H 13
HH 13
Minuti n 1

nn 01
Secondi s 1
ss 01
AM/PM t a/p
tt am/pm
T A/P
TT AM/PM
Ordinal oo st/nd/rd/th
Timezone z +0
zz +0000
zzz +0000 GMT

Nota: puoi specificare sia il parametro N sia il formato, oppure solo uno dei due.


$ctime
Restituisce il numero dei secondi trascorsi dalle 00:00:00 (GMT) del giorno 1 gennaio 1970, in base all'ora del vostro sistema.

Restituisce il numero dei secondi trascorsi dalle 00:00:00 (GMT) del giorno 1 gennaio 1970, in base alla data che viene specificata.

$ctime (January 1 1970 00:00:00)
$ctime (3rd August 1987 3:46pm)
$ctime (21/4/72 1:30:37)
$ctime (Wed 1998-3-27 21:16)

$date
Restituisce il valore della data corrente nel formato Giorno/mese/anno.

Per il formato statunitense potete usare $adate.

$day
Restituisce il nome del giorno attuale, in inglese (per esempio: Monday, Tuesday, etc.).

$daylight
Restituisce l'offset dei secondi se l'ora legale è in vigore, altrimenti restituisce 0.

$duration(N)
Restituisce il numero di secondi specificato, in un formato settimane/giorni/ore/minuti/secondi.

$fulldate
Restituisce l'attuale data nel formato Wed Jun 26 21:41:02 1996.


$gmt
Restituisce l'attuale ora (GMT) nel formato di $ctime.

$idle
Restituisce il valore del proprio idle time (lo stesso che viene indicato in un ctcp finger).

$ltimer
Restituisce il numero dell'ultimo timer inizializzato tramite il comando /timer.

$online
Restituisce il numero di secondi trascorsi nel Timer dialog.

$ticks
Restituisce il numero di ticks da quando il vostro sistema operativo è stto attivato.


$time
Restituisce l'ora nel formato ore:minuti:secondi.

$timer(N/nome)
Restituisce il timer id dell'Nesimo timer nella relativa lista. E' anche possibile specificare il nome di un timer invece del numero. Questo identificatore lavora congiuntamente al comando /timer.

Proprietà: com, time, reps, delay, type, secs, mmt

$timer(0) restituisce il numero di timer attivi
$timer(1) restituisce il timer id del primo timer nella lista

$timer(1).com restituisce il comando del primo timer nella lista
$timer(3).type restituisce lo stato (online/offline) del 3° timer nella lista
$timer(3).secs restituisce il numero di secondi trascorsi prima che il timer fosse inizializzato
$timer(3).mmt restituisce $true se il timer è un multimedia timer

$timestamp
Restituisce l'ora attuale nel formato [xx:xx]

$timezone
Questo identificatore restituisce le attuali impostazioni della vostra fascia oraria in secondi. Per la versione a 16bit il valore di ritorno dipende dalla variabile d'ambiente della timezone


$timestampfmt
Restituisce la stampa del tempo nel formato definito nel messaggio di dialog.

$uptime(mirc | server | System, N)
Restituisce l'uptime in millesimi di secondi per il punto specificato.

N è opzionale, N=1 restituisce lo stesso formato come $duration(), N=2 restituisce lo stesos formato di $duration() ma con i secondi, e N=3 restituisce millesimi di secondi invece dei secondi.

Gli Identificatori - File e Cartelle

$abook(nick,N)
Restituisce informazioni riguardanti i nicknames inseriti nella lista dell' address book.

Proprietà: nick, info, email, website, noteN

Formati consentiti: $abook(nick) $abook(N) $abook(nick,N) dove il nick può essere anche un wildcard.

$alias(N/nomefile)
Restituisce il nome del file per l'Nsimo file di alias caricato. Se viene specificato un nome di file, restituisce $null se il file non è caricato.



$alias(0) restituisce il numero di file di alias caricati
$alias(2) restituisce il nome del secondo file di alias caricato
$alias(moo.txt) restituisce $null se il file non è caricato, oppure moo.txt se lo è.

$crc(nomefile)
Restituisce il CRC dei contenuti del file specificato.

$disk(C)
Restituisce informazioni riguardanti l'hard disk specificato.

Proprietà: type, free, label, size, unc


$disk(c:) restituisce $true se il disco c: esiste, altrimenti restituisce $false

La proprietà Unc restituisce il percorso del drive

$exists(nomefile)
Restituisce $true se il file esiste, altrimenti $false

$exists(c:.exe) restituisce $true o $false.

$file(nomefile)
Restituisce informazioni riguardanti il file specificato.

Proprietà: size, ctime, mtime, atime.

$file(nomefile).size restituisce la dimensione del file

$file(nomefile).ctime restituisce l'ora della creazione
$file(nomefile).mtime restituisce l'ora dell'ultima modifica
$file(nomefile).atime restituisce l'ora dell'ultimo accesso

$filtered

Restituisce il numero di righe che sono state filtrate con il comando /filter.

$finddir(dir,wildcard,N,depth,@window | comando)
Cerca all'interno della cartella specificata e delle sue sottocartelle in base all'Nsimo nome di cartella corrispondente alla specifica del wildcard e restituisce il path completo e la cartella se viene trovata.

Proprietà: versione corta del nome di un file

$finddir(c:,mirc*,1) cerca all'interno di c: la prima cartella il cui nome inizia con "mirc"


Se viene specificata una @window (con un listbox) invece del parametro N, mIRC riempirà il listabox della @window con i risultati.

Se viene specificato un comando, questo comando verrà eseguito su ogni cartella che viene trovata. E' possibile usare $1- in riferimento al nome della cartella, p.es:

//echo 1 $finddir($mircdir,*.*,0,echo $1-)

Se viene specificato il parametro depth, mIRC cercherà soltanto all'interno di N cartelle per trovare i parametri richiesti.


Nota: sia il parametro depth, sia @window/comando sono opzionali.

$findfile(dir,wildcard,N,depth,@window | comando)
Cerca all'interno della cartella specificata e delle sue sottocartelle in base all'Nsimo nome di file corrispondente alla specifica del wildcard e restituisce il path completo e il nome del file se viene trovato.

Proprietà: funzione corta del nome di un file lungo


$findfile(c:,*.exe,1) restituisce c:.exe

Se viene specificato il nome di una @window invece dell'Nsimo parametro, mIRC riempirà il listbox della @window con i risultati.

Se viene specificato un comando, questo comando verrà eseguito su ogni file che viene trovato. E' possibile usare $1- in riferimento al nome del file, p.es:

//echo 1 $findfile($mircdir,*.*,0,echo $1-)

Se viene specificato il parametro depth, mIRC cercherà soltanto all'interno di N cartelle per trovare i parametri richiesti.


Nota: sia il parametro depth, sia sia @window/comando sono opzionali.

$getdir
Restituisce il nome della cartella della DCC Get, specificata nella finestra delle opzioni.

$getdir(filespec)
Restituisce il nome della cartella della DCC Get per il tipo di file specificato.

$getdir(*.txt) restituisce, per esempio c:

$ini(file,argomento/N,elemento/N)
Restituisce il nome o l'Nsima posizione di argomento/elemento specificato, all'interno di un file ini.


$ini(mirc.ini,0) restituisce il numero di argomenti all'interno del file mirc.ini
$ini(mirc.ini,1) restituisce il nome del primo argomento all'interno del file mirc.ini
$ini(mirc.ini,help) restituisce l'Nsima posizione dell'argomento "help" se esiste, altrimenti restituisce 0

Il parametro elemento/N è opzionale. Se viene specificato N=0, viene restituito il numero totale di argomenti/elementi

$isdir(nomecartella)
Restituisce $true se la cartella indicata esiste, altrimenti restituisce $false


$isfile(nomefile)
Restituisce $true se il file indicato esiste, altrimenti restituisce $false

$lines(nomefile)
Restituisce il numero totale di linee all'interno del file di testo specificato.

$lines(c:.txt) restituisce il numero di linee all'interno del file c:.txt

$logdir
Restituisce il nome della cartella dedicata ai Logs, come specificato nella sezione "Logging" nella finestra delle opzioni.

$longfn(nomefile)

Restituisce la versione lunga di un nome di file abbreviato. Funziona solo nella versione a 32 bit, mentre in quella a 16 restituisce lo stesso nome di file.

$mididir
Restituisce la cartella Midispecificata nella sezione Sound Request della finestra delle Opzioni

$mircdir
Restituisce l'attuale cartella del programma mIRC

$mircexe
Restituisce il path completo e il nome del file dell'eseguibile del mIRC

$mircini

Restituisce il nome del principale file .ini del mIRC, solitamente mirc.ini

$mklogfn(filename)
Restituisce il formato del nome del file che viene usato per il logging. Inserisce la data nel nome del file, se è stata inserita l'opzione relativa nella finestra delle impostazioni.

E' anche possibile utilizzare $mknickfn(nickname) per fissare un nickname da utilizzare come nome di file, e $mkfn(filename), che semplicemente rimuove i caratteri non validi.


$nofile(nomefile)
Restituisce il path del file indicato, senza il nome del file.

$nopath(nomefile)
Restituisce il nome del file senza path.


$read (nomefile, [ntsw], [matchtext], [N]
Restituisce una linea singola del testo del file.

//echo $read(funny.txt)

$read leggerà in modo casuale le linee dal file Funny.txt

//echo $readfunny.txt, 24)

$read leggerà la linea 24 del file funny.txt

//kick # $1 $read(kicks.txt)

$read leggerà a caso tra le linee di kick nel file kicks.txt e le userà nel comando di kick

//echo $read(info.txt, s, mirc)

$read scruterà il file info.txt alla ricerca della prima linea che inizia con la parola mirc


//echo $read(help.txt, w, *help*)

$read scruterà il file help.txt alla ricerca del carattere *help*

Se viene specificato un comando s o w, si potrà introdurre il valore N per specificare da che linee del file partire con la ricerca, eg.:

//echo $read(version.txt, w, *mirc*, 100)

Se il parametro -n è specificato, allora la linea letta non sarà valutata e verrà trattata come testo semplice.

Se la prima linea del file è un numero, è necessario rappresentare il numero totale di linee nel file. Se viene specificato N=0, mirc restituirà il valore della prima linea se questa è un numero.


Se il parametro -t è specificato, mIRC tratterà la prima linea come testo semplice, anche se si tratta di un numero.

$readn
Resituisce il numero di linee che saranno abbinate alla prossima chiamata del comando read(). Se nn viene travato alcun abbinamento $readn sarà impostato come 0

$readini(nomefile, [n], sezione, punto)
Restituisce la singola linea dal testo del file con estensione .ini

/echo $readini(mirc.ini mIRC nick)

Legge il proprio nick all'interno del file mirc.ini


Se il parametro -n è specificato, allora la linea letta verrà trattata come testo semplice .

$sdir(dir,titolo)
Espone e restituisce la cartella selezionata nel dialogo. Il titolo è opzionale.

$sfile(dir,title,oktext)
Espone e seleziona il nome del file selezionato. Il titolo e l' oktext sono opzionali.

//splay $sfile($wavedir,Choose a wave,Play it!)

$shortfn(nomefile)

Restituisce la versione abbreviata di un nome di file lungo. Lavora solo con la versione a 32 bit, mentre con la 16 bit restituisce lo stesso nome di file.

Gli Identificatori - Nick e Indirizzi

$address(nickname,tipo)
Cerca all'interno della IAL l'indirizzo associato al nickname specificato.


$address(nick,1) restituisce Nick!userid@dominio.host

Se la IAL non contiene il nickname corrispondente, l'identificatore restituisce il valore $null.

Vedi anche $mask() per una lista dei tipi.

$comchan(nick,N)
Restituisce i nomi dei canali in cui vi trovate sia voi che il nick indicato.

Proprietà: op, help, voice

$comchan(nick,0) restituisce il numero totale di canali comuni
$comchan(nick,1) restituisce il nome del primo canale comune

$comchan(nick,1).op restituisce $true se siete op su quel canale

$ial(mask,N)

Restituisce l'Nsimo indirizzo corrispondente alla mask indicata, all'interno della IAL .

$ialchan(mask,#,N)
Restituisce l'Nsimo indirizzo nel canale specificato, corrispondente alla mask nella IAL.

Proprietà: pnick

$ibl(#canale,N)
Restituisce l'Nsimo elemento nella Internal Ban List, oppure se N=0 restituisce il numero totale di elementi nella lista.

Proprietà: by, date, ctime



$ibl(1) restituisce il primo indirizzo nella ban list
$ibl(1).by restituisce l'indirizzo dell'utente che ha impostato il ban
$ibl(1).date restituisce la data in cui l'utente ha impostato il ban
$ibl(1).ctime restituisce la data del ban nel formato $ctime


Nota: vedi anche $chan() per ulteriori informazioni

$level(address)
Trova l'indirizzo corrispondente nella lista degli utenti e restituisce il corrispondente livello nella lista.


$level(*!*@mirc.com) restituisce =5,10,20,21,32

$link(N)
Restituisce l'Nsimo elemento nella finestra dei server linkati

Proprietà: addr, ip, level, info

$link(0) restituisce il numero totale di elementi nella finestra dei links
$link(1) restituisce l'indirizzo del primo server nella finestra dei links

$mask(indirizzo,tipo)
Restituisce una mask associata all'indirizzo e al tipo specificato


$mask(nick!khaled@mirc.com,1) restituisce *!*khaled@mirc.com
$mask(nick!khaled@mirc.com,2) restituisce *!*@mirc.com

I tipi disponibili sono:

0: *!user@host.domain
1: *!*user@host.domain
2: *!*@host.domain
3: *!*user@*.domain
4: *!*@*.domain
5: nick!user@host.domain
6: nick!*user@host.domain
7: nick!*@host.domain
8: nick!*user@*.domain
9: nick!*@*.domain

E' anche possibile specificare un tipo da 10 a 19 che corrisponde con le mask da 0 a 9, ma invece di utilizzare il widcard *, viene utilizzato il wildcard ? per sostituire parti dell'indirizzo.


Questa impostazione standard delle mask è usata anche negli altri identificatori e comandi.

$me
Restituisce il proprio nickname attuale.

$nick(#,N/nick,aohvr,aohvr)
Restituisce l'Nsimo nickname nelle nicklist dei canali, che si trova sul canale #.

Proprietà: colour, pnick

$nick(#mIRC,0) restituisce il numero totale dei nick su #mIRC
$nick(#mIRC,1) restituisce il primo nickname su #mIRC


Entrambi i parametri aohvr sono opzionali. Il primo specifica quali nick vorresti includere, il secondo specifica quali nick vorresti escludere, dove:

a = tutti i nick (all), o = operatori, h = helper, v = voiced, r = utenti regolari

$nick(#mIRC,1,o) restituisce il nick del primo op su #mIRC
$nick(#mIRC,0,a,o) restituisce il numero totali dei nick, escludendo gli op su #mIRC

La proprietà pnick restituisce il nickname in un formato .@%+nick


$notify(N/nick)
Restituisce l'Nsimo nickname nella lista dei nick.

Proprietà: ison, note, sound, whois, addr

$notify(0) restituisce il numero di nick nella lista notify
$notify(3) restituisce il terzo nick nella lista notify
$notify(3).ison restituisce $true se l'utente è su IRC, altrimenti $false
$notify(goat) restituisce la posizione del nickname "goat" nella lista notify

$snicks

Restituisce una lista dei nick selezionati all'interno della listbox del canale attivo, nel formato: nick1,nick2,...,nickN

$snick(#,N)
Restituisce l'Nsimo nick selezionato all'interno della listbox del canale #

$snick(#mIRC,0) restituisce il numero totale di nick selezionati su #mIRC
$snick(#mIRC,1) restituisce il primo nick selezionato su #mIRC

Nota: se il parametro N non viene specificato, l'identificatore restituisce tutti i nickname selezionati.


$snotify
Restituisce il nick selezionato nella listabox della lista notify

$snotify
Restituisce l'ennesimo numero nella lista dcc valida, oppure se N=0 ne restituisce il numero totale.

Gli Identificatori - Testo e Numeri

$abs(N)
Restituisce il valore assoluto del numero N


$abs(5) restituisce 5
$abs(-1) restituisce 1

$and(A,B)
Restituisce il valore binario di (A and B)

$asc(C)
Restituisce il codice ascii del carattere C

$asc(A) restituisce 65
$asc(*) restituisce 42

$base(N,basein,baseout,zeropad,precision)
Converte il numero N da basein a baseout. Gli ultimi due parametri sono opzionali.

$base(15,10,16) restituisce F

$base(1.5,10,16) restituisce 1.8
$base(2,10,16,3) restituisce 002

$biton(A,N)
Restituisce il valore di A, con l'Nsimo bit settato on

$bitoff(A,N)
Restituisce l'Nsimo valore di A, con l'Nsimo bit settato off

$bytes(N,bkmgt3)
Restituisce il numero di byte N formattato con virgole

Proprietà: suf.

Le opzioni bkmgt restituiscono il risultato in byte, kilobyte, etc.

La proprietà .suf unisce al risultato i suffissi b, k, M, G, T.


L'opzione 3 restituisce il risultato in una forma a tre cifre.

$calc(operazioni)
Restituisce il risultato delle operazioni specificate. Questo identificatore vi permette di svolgere facilmente anche delle operazioni multiple, per esempio:

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

$chr(N)
Restituisce il carattere corrispondente al codice ascii N

$chr(65) restituisce A
$chr(42) restituisce *


$cos(N) $acos(N)
Restituiscono rispettivamente il coseno e l'arcoseno di N

$count(stringa,sottostringa)
Restituisce il numero di volte che la sottostringa si ripete nella stringa

$count(hello,el) restituisce 1
$count(hello,l) restituisce 2

$encode(%­var | &binvar, mubt, N)
$decode(%­var | &binvar, mubt, N)
Codifica o decodifica il testo nella variabile %­var o in &binvar usando codifica Uuencode o Mime


Il secondo paragrafo consiste in alcune opzioni, dove m = mime, u = uucode (default), b = &binvar, e t = text (default).

La linea finale codificata è divisa in parti di 60 caratteri. E' possibile specificare N se si vuole che mIRC restituisca l'Nsima parte. N = 0 restituisce il numero totale di parti nella linea

Se si sta codificando/decodificando un &binvar, gli identificatori restituiscono il numero attuale di caratteri scritti all'interno del &binvar. Notare che la codifica utilizza il 33% in più dello spazio


Gli ultimi due parametri sono opzionali, i predefiniti sono uuencode, e N = 1.

$int(N)
Restituisce la parte intera di un numero che ha anche parte decimale

$int(3.14159) restituisce 3

$isbit(A,N)
Restituisce 1 se l'Nsimo bit è attivo

$islower(testo)
Restituisce $true se il testo è tutto in minuscolo.

$isupper(testo)
Restituisce $true se il testo è tutto maiuscolo.

$left(testo,N)

Restituisce i primi N caratteri di "testo", partendo da sinistra.

$left(goodbye,4) restituisce "good"

Se N è negativo, l'identificatore restituisce tutto il testo tranne gli N caratteri

$len(testo)
Restituisce la lunghezza del "testo"

$len(#mIRC) restituisce 5

$log(N)
Restituisce il logaritmo naturale di N

$longip(indirizzo)
Restituisce un indirizzo ip convertito in valori "long"

$longip(158.152.50.239) restituisce 2660774639

$longip(2660774639) restituisce 158.152.50.239

$lower(TESTO)
Restituisce il testo in minuscolo

$lower(CIAO) restituisce "ciao"

$mid(testo,S,N)
Restituisce gli N caratteri del testo, a partire dalla posizione S

$mid(othello,3,4) restituisce "hell"

Se N è zero, l'identificatore restituisce il numero di caratteri dalla posizione S alla fine.

E' anche possibile usare numeri negativi per S o N


$not(A)
Restituisce il valore binario di "not A"

$or(A,B)
Restituisce il valore binario di "A or B"

$ord(N)
Unisce il suffisso "st", "nd", "th" appropriato per N (1st, 2nd, etc.)

$pos(testo,stringa,N)
Restituisce l'Nsima occorrenza della stringa nel testo.

$pos(hello there,e,1) restituisce 2
$pos(hello there,e,2) restituisce 9
$pos(hello there,a,1) restituisce $null

Se N e' zero, l'identificatore restituisce il numero di volte che la stringa compare nel testo.


Nota: è possibile usare $poscs() per una versione case sensitive.

$rand(v1,v2)
Lavora in due modi. Utilizzando i numeri restituisce un valore casuale compreso tra v1 e v2. Con le lettere restituisce una lettera casuale compresa tra v1 e v2.

$rand(a,z) restituisce una lettera a caso nell'intervallo a, b, c, d, e, .... , z.
$rand(A,Z) restituisce una lettera a caso nell'intervallo A, B, C, D, E, .... , Z.
$rand(0,N) restituisce un numero casuale nell'intervallo 0, 1, 2, 3, 4, .... , N.


$remove(stringa,sottostringa,...)
Rimuove ogni occorrenza della sottostringa nella stringa.

$remove(abcdefg,cd) restituisce abefg

E' anche possibile specificare parametri multipli, separati da virgole:

$remove(abcdefg,a,c,e,g) restituisce bdf

Nota: e' anche possibile usare $removecs() per una versione case sensitive.

$replace(testo,stringa,nuovastringa,...)
Sostituisce la "stringa" presente nel testo, con la "nuovastringa".


$replace(abcdefg,cd,xyz) restituisce abxyzefg

E' anche possibile specificare parametri multipli:

$replace(abcdefg,a,A,b,B,c,C,d,D) restituisce ABCDefg

Nota: è anche possibile utilizzare $replacecs() per una versione case sensitive.

$right(testo,N)
Restituisce gli N caratteri del testo, partendo da destra.

$right(othello,5) restituisce hello

Se N è un valore negativo, restituisce tutto tranne N caratteri.


$round(N,D)
Restituisce il numero decimale N, indicando D cifre dopo la virgola.

$round(3.14159,2) restituisce 3.14

Il parametro D è opzionale.

$sin(N), $asin(N)
Restituiscono rispettivamente seno e arcseno di N.

$sqrt(N)
Restituisce la radice quadrata di N.

$str(testo,N)
Restituisce il testo ripetuto N volte.

$str(ho,3) restituisce la stringa hohoho.

$strip(testo,burcmo)

Restituisce il testo senza i parametri bold, underline, reverse e colore.

I parametri burcmo sono opzionali. Se usati, eliminano solo i control-codes specificati.

Le applicazioni m e o vengono settate tramite il Messages dialog.

$tan(N), $atan(N)
Restituiscono rispettivamente tangente e arctangente di N

$upper(testo)
Restituisce il testo convertito in maiuscolo.

$upper(ciao) restituisce CIAO


$wrap(testo, font, dimensione, larghezza, [word,] N)
Restituisce l'Nsima linea coperta nella larghezza specificata in pixel.

Se il parametro opzionale "word" è 1, il testo viene appeso al resto delle parole.

E' possibile specificare il valore zero per N, in modo da ottenere il numero totale di linee coperte.

$xor(A,B)
Restituisce A binario xor B.

Gli Idenrificatori - Token

$addtok(text,token,C)
Aggiunge un token alla fine del testo, ma solo se questo non è già presente nel testo stesso.


$addtok(a.b.c,d,46) restituisce a.b.c.d
$addtok(a.b.c.d,c,46) restituisce a.b.c.d

Il parametro C non è altro che il valore ascii del carattere di separazione del token.

Nota: $addtokcs() è la versione case-sensitive.

$deltok(text,N-N2,C)
Elimina l'Nsimo token dal testo.

$deltok(a.b.c.d,3,46) restituisce a.b.d
$deltok(a.b.c.d,2-3,46) restituisce a.d

E' anche possibile specificare un valore negativo per N.


$findtok(text,token,N,C)
Restituisce la posizione dell'Nsimo token corrispondente nel testo.

$findtok(a.b.c.d,c,1,46) restituisce 3
$findtok(a.b.c.d,e,1,46) restituisce $null

Specificando il valore zero per N, restituisce il numero totale di token corrispondenti.

Nota: $findtokcs() è la versione case-sensitive.

$gettok(text,N,C)
Restituisce l'Nsimo token nel testo.

$gettok(a.b.c.d.e,3,46) restituisce c

$gettok(a.b.c.d.e,9,46) restituisce $null

E' anche possibile specificare un intervallo di token:

$gettok(a.b.c.d.e,2-,46) restituisce l'intervallo dal secondo token in poi: b.c.d.e
$gettok(a.b.c.d.e,2-4,46) restituisce l'intervallo dal secondo al quarto token: b.c.d

E' anche possibile specificare un valore negativo per N.

$instok(text,token,N,C)
Inserisce un token nell'Nsima posizione del testo, anche se il token è già presente nel testo.


$instok(a.b.d,c,3,46) restituisce a.b.c.d
$instok(a.b.d,c,9,46) restituisce a.b.d.c

E' anche possibile specificare un valore negativo per N.

$istok(text,token,C)
Restituisce $true se il token è presente nel testo, altrimenti restituisce $false.

Nota: $istokcs() è la versione case-sensitive.

$matchtok(tokens,string,N,C)
Restituisce i token che contengono la stringa specificata.

$matchtok(one two three, e, 0, 32) restituisce 2

$matchtok(one two three, e, 2, 32) restituisce three

Specificando il valore zero per N, l'identificatore restituisce il numero totale di token.

Nota: $matchtokcs() è la versione case-sensitive.

$numtok(text,C)
Restituisce il numero di token nel testo.

$puttok(text,token,N,C)
Sovrascrive l'Nsimo token nel testo con un nuovo token.

$puttok(a.b.c.d,e,2,46) restituisce a.e.c.d

E' anche possibile specificare un valore negativo per N.


$remtok(text,token,N,C)
Rimuove l'Nsimo token corrispondente nel testo.

$remtok(a.b.c.d,b,1,46) restituisce a.c.d
$remtok(a.b.c.d,e,1,46) restituisce a.b.c.d
$remtok(a.c.c.d,c,1,46) restituisce a.c.d

Nota: $remtokcs() è la versione case-sensitive.

$reptok(text,token,new,N,C)
Sostituisce l'Nsimo token corrispondente nel testo con un nuovo token.

$reptok(a.b.c.d,b,e,1,46) restituisce a.e.c.d
$reptok(a.b.c.d,f,e,1,46) restituisce a.b.c.d

$reptok(a.b.a.c,a,e,2,46) restituisce a.b.e.c

Nota: $reptokcs() è la versione case-sensitive.

$sorttok(text,C,ncr)
Ordina i token nel testo.

$sorttok(e.d.c.b.a,46) restituisce a.b.c.d.e
$sorttok(1.3.5.2.4,46,nr) restituisce 5.4.3.2.1

L'impostazione predefinita è l'ordine alfabetico, ma è comunque possibile specificare i parametri: n = numeric sort, c = channel nick prefix sort, r = reverse sort.

Nota: $sorttokcs() è la versione case-sensitive.


$wildtok(tokens,wildstring,N,C)
Restituisce l'Nsimo token che corrisponde alla stringa contenente wildcard.

$wildtok(one two three, t*, 0, 32) restituisce 2
$wildtok(one two three, t*e, 1, 32) restituisce three

Se si specifica il valore zero per N, l'identificatore restituisce il numero totale di token corrispondenti.

Nota: $wildtokcs() è la versione case-sensitive.

Gli Identificatori - Identificatori Windows

$active
Restituisce il nome completo della corrente finestra attiva in mIRC.

Nota: Questo identificatore ha anche una controparte multi-server.

$appactive
Restituisce $true se mIRC è l'applicazione attiva, altrmienti restituisce $false.

$appstate
Restituisce lo stato della finestra del mIRC: minimized (rimpicciolito), maximized (ingrandito), normal (normale), hidden (nascosto), o tray (icona).


$chan(N/#)
Restituisce informazioni sui canali sui quali sei.

Proprietà: topic, mode, key, limit, ial, logfile, stamp, ibl, status

Se specifichi N, viene restituito il nome del canale numero N.


$chan(0) restituisce il numero di canali sui quali sei
$chan(2) restituisce il nome del secondo canale sul quale sei
$chan(2).key restituisce la password del secondo canale sul quale sei

$chan(4).ial restituisce $true se la Internal Address List contiene indirizzi di tutti gli utenti su questo canale, $false se non li contiene, oppure $inwho se mandi un /who #canale al server per riempire la IAL per questo canale e l'/who è ancora in progress.



$chan(1).ibl restituisce $true se mIRC ha già visto un /mode +b e ha la lista dei ban per quel canalel, o $inmode se un /mode +b viene listato in quel momento
. Vedere $ibl() per maggiori informazioni..


Se specifichi il nome di un canale, l'informazione viene restituita su quel canale ma solo se sei già nel canale stesso.


$chan(#mIRC).mode restituisce i modes del canale #mIRC.

La proprietà "status" restituisce il valore joining, joined, or kicked.

$chat(N/nick[,N])
Restituisce il nome della N finestra di dcc chat aperta.

Proprietà: ip, status, logfile, stamp

$chat(0) restituisce il numero totale delle dcc chat aperte
$chat(1) restituisce il nick della prima dcc chat
$chat(2).ip restituisce l'indirizzo ip della seconda dcc chat aperta


Se specifichi un nick e N, restituirà informazioni sulla finestra numero N per quel nick.

$fserv(N/nick,[N])
Restituisce il nome della N dcc chat aperta.

Proprietà: ip, status, cd

$fserv(0) restituisce il numero totale degli fserves aperti
$fserv(1) restituisce il nick del 1° fserve
$fserv(1).cd restituisce la corrente directory del 1° fserve

Se specifichi un nick e N, ti resituirà informazioni sulla finestra numero N per quel nick.


$get(N/nick,[N])
Restituisce il nick e il nome del file della N dcc get.

Proprietà: ip, status, file, path, size, rcvd, cps, pc, secs, done

$get(0) restituisce il numero totale delle dcc gets aperte
$get(2) restituisce il nick della 2a dcc get
$get(2).rcvd restituisce il numero di byte ricevuti dalla 2a dcc get
$get(2).cps restituisce il numero di caratteri trasferiti al secondo della 2a dcc

$get(3).pc restituisce la percentuale del trasferimento della 3a dcc get$get(1).secs restituisce il numero di secondi trascorsi dall'apertura della connessione
$get(1).done restituisce $true se il trasferimento è avvenuto con successo, altrimenti $false

Se specifichi un nick e N, ti restituirà alcune informazioni sulla N finestra di quel nick.

$query(N/nick)
Restituisce il nick della N query aperta.

Proprietà: addr, logfile, stamp


$query(0) restituisce il numero totale delle query aperte
$query(2) restituisce il nome della 1a query aperta
$query(1).addr restituisce l'indirizzo della 1a query, cmq bisogna notare che questo indirizzo non è visibile prima che l'utente ti abbia mandato un messaggio e inoltre l'indirizzo stesso potrebbe non essere corretto.

$send(N/nick[,N])
Restituisce il nick e il nome del file del N dcc send.


Proprietà: ip, status, file, path, size, sent, lra, cps, pc, secs, done$send(0) restituisce il numero totale dei dcc send

$send(2) restituisce il nick dell'utente del 2o dcc send
$send(2).sent restituisce il numero di bytes mandati dal 2o dcc send
$send(2).lra restituisce l'ultimo ack ricevuto dal 2o dcc send
$send(3).pc restituisce la percentuale del trasferimento del 3o dcc send
$send(3).status restituisce active (attivo), inactive (inattivo), o waiting (in attesa..) riferito al 3o dcc send

$send(1).secs restituisce il numero di secondi trascorsi dall'apertura della connessione
$send(1).done restituisce $true se il trasferimento è avvenuto con successo, altrimenti $false

Se specifichi un nick e N, ti restituirà alcune informazioni sulla N finestra di quel nick.

$wid
Restituisce l'id della finestra dello script corrente.

Gli Identificatori - Altri Identificatori

$+(n1,...,nN)
Combina tutti i parametri specificati, lo stesso che usare $+ tra ogni elemento.

$?*!="messaggio"
Mostra all'utente una finestra di input, e restituisce il risultato.

//echo $?="Come ti chiami?"
Se l'utente inserisce il proprio nome nell'editbox e preme il bottone OK, $? restituirà qualsiasi cosa sia stata inserita. Se l'utente preme il bottone Cancel, $? non restituisce nulla.

//echo $?*="Qual è la tua password?"
In questo caso $?* fa apparire il testo inserito dall'utente nell'editbox come caratteri ***** per evitare che qualcuno veda cosa è stato inserito.


//echo $?!="Continuo?"
In questo caso, verrà mostrata una dialog contenente i bottoni Yes/No. Se l'utente clikka su Yes, viene restituito $true, altrimenti viene restituito $false.

La finestra di input viene estesa verticalmente se il messaggio da mostrare è molto lungo. E' anche possibile far apparire il testo su linee differenti utilizzando l'identificatore $crlf per separare le linee, per esempio:
//echo $?="Questo è sulla prima linea. $crlf $+ E questo è sulla seonda linea."


Nota: questo identificatore non può essere usato in un evento dello script. Un metodo per aggirare ciò è utilizzare un /timer per inizializzare la richiesta di input quando lo script finisce.

$ansi2mirc(testo)
Restituisce il testo con i codici ANSI convertito con i codici del colore del mIRC.

$away
Restituisce i valori $true o $false a seconda che siate in away o meno.
if ($away) say Sono away! | else say Sono qui!


$bits
Restituisce 32 per la versione a 32 bit, oppure 16 per la versione a 16 bit.

$cb
Restituisce i primi 256 caratteri contenuti negli appunti (clipboard).

$cb(N)
Restituisce linee delimitate da un carattere CRLF dal testo che si trova attualmente negli appunti.

Proprietà: len


$cb(0) restituisce il numero di linee negli appunti
$cb(0).len restituisce la lunghezza totale di tutte le linee negli appunti
$cb(1) restituisce la prima linea negli appunti
$cb(1).len restituisce la lunghezza della linea 1

$chantypes
mIRC supporta numeric 005 token CHANTYPES, e può gestire una serie dinamica di prefissi per i canali.

$chantypes restituisce la lista dei prefissi dei canali in cui è possibile joinare, ad esempio #mIRC, &mIRC.


Quando non si è connessi ad un server, mIRC usa il valore predefinito di $chantypes, CHANTYPES=#&.

$chanmodes
mIRC supporta numeric 005 token CHANMODES, e può gestire una serie dinamica di chanmodes.

$chanmodes restituisce la lista di chan modes supportati, ad esempio '+K moo' per impostare la keyword del canale 'moo'.

Quando non si è connessi ad un server, mIRC utilizza i valori predefiniti per $chanmodes, CHANMODES=bIe,k,l.

$cmdbox

Restituisce $true se il comando nello script viene inizializzato da un comando editbox nella finestra di canale.

$cmdline
Restituisce il comando di linea passato dal mIRC quando viene inizializzato la prima volta.

$color(nome/N)
Restituisce l'indice di colore N per il nome del colore specificato, ad esempio $color(action text). Se non viene specificato il nome completo viene restituito il primo che corrisponda parzialmente, ad esempio $color(action)


Specificando il valore N, viene restituito l'indice RGB per l'Nsimo colore.

Proprietà: dd

$color(action).dd restituisce il numero in doppio formato digitale

$cr
Restituisce un carattere carriage return, lo stesso che $chr(13).

$creq
Restituisce l'attuale impostazione di /creq nella finestra di impostazioni della DCC Chat.

$crlf

Restituisce una combinazione carriage return/linefeed

$dccignore
Restituisce $true se l'ignore è attivato nella finestra di impostazioni della DCC altrimenti restituisce $false.

$dccignore(N/filename)
Restituisce l'Nsimo elemento nella dcc ignore types contenuta nella finestra di impostazioni della DCC.

Se N è zero, restituisce il numero totale di elementi nella lista, altrimenti restituisce l'Nsimo elemento in lista. Se viene specificato il nome di un file, restituisce $true se questo corrisponde nella lista, altrimenti $false.


$dccport
Restituisce il numero di porta che viene usata per il DCC Server.

$dll(nome.dll, nomeprocedura, dati)
Restituisce il valore risultante di una chiamate ad una DLL destinata per lavorare con mIRC.

$editbox(finestra)
Restituisce il testo nell'editbox della finestra specificata.

$emailaddr
Restituisce l'indirizzo e-mail specificato nella finestra di connessione.

$eval(testo,N)

Valuta il contenuto del testo N volte. Se N non è specificato, il valore predefinito di N è 1, se N=0 il testo non viene valutato.
Questo permette di valutare ricorsivamente identificatori e variabili in una linea di testo.

$fullname
Restituisce il fullname indicato nella finestra di connessione.

$hash(testo,B)
Restituisce il numero hash basato sul testo, dove B è il numero di bit utilizzati quando si calcola il numero hash.


$highlight
Restituisce $true se l'highlighting è attivato nella finestra Highlight, altrimenti restituisce $false.

$highlight(N/testo)
Restituisce l'Nsima linea nel listbox dell'highlight, oppure se è specificato del testo, restituisce restituisce le proprietà per la linea highlight corrispondente al testo.

Proprietà: text, color, sound, flash, message, nicks.

$host
Restituisce il proprio host name locale.


$iif(C,T,F)
Restituisce T o F a seconda che la valutazione della condizione C sia vera o falsa.

$iif(1 == 2, yes, no) restituisce "no"

$iif() restituisce F se la condizione restituisce zero, $false, o $null. Per ogni altro valore $iif() restituisce T.

Se non si specifica F come parametro, $iif restituisce un valore T se la condizione è vera, e non restituisce nulla se è falsa.

$iif(1 == 2, yes) non restituisce nulla

E' possibile capire meglio le condizioni nella sezione if-then-else.


$ifmatch
Restituisce il primo parametro corrispondente in un controllo if-then-else.

Nel caso del confronto:
if (testo isin altrotesto) ...
$ifmatch restituisce "testo"

$ignore(N/indirizzo)
Restituisce l'Nsimo indirizzo nella lista ignore.

Proprietà: type

$ignore(0) restituisce il numero totale di indirizzi nella lista ignore $ignore(1) restituisce il primo indirizzo nella lista ignore $ignore(2).type restituisce la flag dell'ignore per il secondo indirizzo nella lista ignore


Nota: se viene specificato un indirizzo, viene restituito il primo indirizzo corrispondente nella lista ignore.

$inpaste
Restituisce $true nel caso in cui l'utente utilizzi i comandi Control+V oppure Control+C per incollare testi nell'editbox.

$input(prompt,N,title,text)
Mostra all'utente una richiesta di input e restituisce il risultato.

La finestra di input viene estesa verticalmente per mostrare il messaggio nel caso in cui questo fosse troppo lungo. E' anche possibile far apparire il testo del messaggio su differenti linee utilizzando l'identificatore $crlf per separare le linee.


N può essere una combinazione dei valori indicati di seguito:


e - mostra un editbox
p - mostra un editbox per le password
o- bottone OK
y - bottoni Yes/No
n - bottoni Yes/No/Cancel
r- bottoni di retro-cancellazione
v - restituisce $ok, $yes, $no, $cancel per i bottoni.
g- bottone di allieamento a destra.

Di default, i bottoni restituiscono $true or $null, come per l'identificatore $?. Se c'è un editbox, i bottoni ok/yes restituiscono sempre il contenuto dell'editbox.

iqwh- mostrano rispettivamente informazioni, domande, avvisi, e hand icons.

d- esegue un file di sistema associandolo ad un'icona.

s- indica il nome della finetsra specificata.
a- attiva il dialog

title è il testo nella titlebar, e text è il testo predefinito inserito nell'editbox.

N, title, e text sono parametri opzionali.

//echo $input(Enter name:,129)

Nota: questo identificatore non può essere utilizzato in un evento dello script. Un metodo per aggirare ciò è utilizzare un /timer per inizializzare la richiesta di input dopo che lo script termina.


$ip
Restituisce il proprio indirizzo IP.

$isalias(nome)
Restituisce $true se il nome specificato è un alias contenuto nei propri aliases o script.

Proprietà: fname, alias

$isalias(join) restituisce $true se esiste un alias per /join
$isalias(join).fname restituisce il nome del file in cui è presente l'alias
$isalias(join).alias restituisce la definizione dell'alias per /join


$isid
Restituisce $true se l'alias è chiamato come un identificatore, altrimenti $false.

$lf
Restituisce un carattere linefeed, lo stesso che $chr(10).


$lock(item/#/N)
Restituisce $true o $false in base alle impostazioni nella finestra Lock.

Proprietà: send, get, chat, fserve, run, dll, channels

E' anche possibile utilizzare $lock(N) dove N restituisce l'Nsimo canale nella listbox dei canali, oppure è possibile specificare il nome di un canale al posto di N.

$md5(text|&binvar|filename,[N])
Restituisce il valore md5 per il dato specificato, quando N=0 per il formato di testo lineare, a per &binvar e 2 per i nomi di file.


$modespl
mIRC supporta numeric 005 token MODES.

$modespl restituisce il numero massimo di parametri consentiti per ogni /mode, ad esempio se $modespl è uguale a 5, è possibile usare /mode +ooooo per impostare 5 modes in un colpo solo.

$network
Restituisce il nome della rete IRC a cui siete connessi.

Nota: potrebbe essere impossibile reperire questa informazione dal network, se il network stesso non la fornisce.


$os
Restituisce la versione del proprio sistema operativo. Il valore può essere 3.1, 95, 98, NT, ME, 2000, o XP.

Nota: la versione a 16 bit riconosce solo 3.1 e 95

$port
Restituisce il numero di porta del server a cui siete connessi.

$prefix
mIRC supporta numeric 005 token PREFIX, e può gestire una serie dinamica di prefissi dei nickname del canale.

$prefix restituisce la lista dei prefissi per i nickname dei canali ad esemio op, halfop, voice, etc. §che sono supportati su un server.


Quando non si è connessi al server, mIRC utilizza i valori predefiniti per $prefix, PREFIX=(ohv)@%+.

$result
Immagazzina il valore del numero restituito dopo una routine di chiamata tramite il comando /return

$rgb(nome)
Restituisce il valore RGB del nome di colore specificato, che può essere uno dei seguenti: face, shadow, hilight, 3dlight, frame, and text.

$server
Restituisce il nome del server al quale si è connessi.


Se non si è connessi ad alcun server, $server restituisce $null.

Proprietà: desc, port, group, pass


$server(0) restituisce il numero totale di server nella lista dei server
$server(2) restituisce l'indirizzo del secondo server
$server(2).desc restituisce la descrizione del secondo server
$server(3).port restituisce la porta (le porte) del terzo server in lista


$serverip
Restituisce l'indirizzo IP del server.

$show
Restituisce $false se un comando è preceduto da un . per renderlo silenzioso, altrimenti restituisce.

$sreq
Restituisce le attuali impostazioni di /sreq nella finestra di opzioni della DCC.

$titlebar
Restituisce il testo nella bara del titolo di mIRC, impostata col comando /titlebar.

$url
Restituisce la finestra attiva dell'URL presente nel Browser Web


$url(N)
Restituisce l'Nsimo indirizzo nella lista URL.

Proprietà: desc, group


$url(0) restituisce il numero totale di elementi nella lista URL
$url(2) restituisce l'indirizzo del secondo elemento nella lista
$url(2).desc restituisce la descrizione del secondo elemento nella lista
$url(3).group restituisce il gruppo del terzo elemento nella lista

$usermode
Restituisce i propri usermodes sul server irc attuale.

$version
Restituisce la versione del mIRC in uso.

Gli Eventi - on BAN/UNBAN

Ogni qualvolta venga vietato l'accesso di un utente ad un determinato canale si attiva l'evento BAN, in caso contrario, ovvero la rimozione di tale divieto, si attiva l'evento UNBAN.

Formato: on <livello>:BAN:<#[,#]>:<comandi>
Esempio: on 1:BAN:#mirc,#irchelp:/msg $nick Spiacente, ma non sei desiderato sul canale $chan

Esempi

on 9:BAN:#newbies:/mode $chan -o $nick | /mode $chan -b $banmask

L'evento sopra riportato si innesca quando un operatore banna (dall'inglese "to ban",ndT) da un determinato canale un utente con livello di accesso 9. L'identificatore $banmask si riferisce al banmask usato per il ban dell'utente.


on 1:UNBAN:#:/msg $bnick Sei appena stato bannato.

Questo evento invece viene innescato quando un utente viene sbannato (dall'inglese "to unban",ndT) da un determinato canale. $bnick fa riferimento al nickname dell'utente bannato, ma questo identificatore è valido solamente nel caso in cui il banmask in se include un nickname. Se il banmask non include un nickname, $bnick equivale a $null.

Da ricordare che $banmask è solitamente una stringa wildcard, cioè contiene metacaratteri ("*" e "?",ndT) che possono corrispondere a più entry della sezione Remote Users. Per esempio, se viene posto un ban con stringa *!k*d@*.com, essa comprenderà gli utenti:


*!khaled@mirc.com
*!kha*d@*am.d*mo?.*
*!k*@*

Confrontare i livelli

E' possibile confrontare i livelli dell'operatore che setta il ban e quello della persona che lo riceve, utilizzando i prefissi <,>,<=,=>,<>, o =, come indicato nel modo seguente:

on >=2:BAN:#mIRC:/msg $chan $nick ha bannato $banmask (legale)
on 1:BAN:#mIRC:/msg $chan $nick ha bannato $banmask (illegale)

Nella situazione sopra riportata, se il livello di colui che setta il ban è più grande oppure uguale al livello dell'utente bannato, allora è un ban legale. Altrimenti, in caso contrario viene processata la seconda linea di Ban indicando che il divieto è illegale. Da ricordare che si stanno confrontando i livelli utente di colui che setta il ban e di colui che lo riceve, e ciò non ha niente a che fare con il livello 2 della definizione.


Nota: Questi eventi vengono processati solo in caso di ban a nickname, perchè il server IRC trasmette soltanto il nickname dell'utente che è bannato/sbannato e non il suo indirizzo. Inoltre, gli indirizzi IP non vengono risolti in automatico nei corrispettivi indirizzi DNS, per cui essi non generano corrispondenza con la lista utenti, e le banmask terminanti in @* vengono ignorate perchè corrisponderebbero a tutti gli utenti della lista.

Gli Eventi - on CONNECT/DISCONNECT

L'evento on CONNECT scatta quando mIRC si connette ad un Server IRC, subito dopo l'apparizione del MOTD.


Formato: on <level>:CONNECT:<commands>
Esempio: on 1:CONNECT:/join #new2irc


L'evento on Disconnect usa lo stesso formato qua sopra, ma scatta quando ci si disconnette da un Server IRC.

L'evento on CONNECTFAIL usa lo stesso formato qua sopra, ma scatta quando una prova di connessione (e tutte le prove successive) ha fallito.

Esempi

on 1:CONNECT:/echo Connesso al server $server alle $time con il nickname $nick

Questo scatta dopo che mIRC si è connesso al server.


on 1:DISCONNECT:/echo Disconnesso da $server alle $time con il nickname $nick

Questo scatta quando mIRC si disconnette dal server.

Gli Eventi - on OP/DEOP

Gli eventi on OP e on DEOP scattano quando un utente viene "oppato" o "deoppato" in un determinato canale.


Sintassi: on <livello>:OP:<#[,#]>:<comandi>
Esempio: on 1:OP:#mirc,#irchelp:/msg $nick Ora che sei op, non abusare del tuo potere :)

Gli eventi on VOICE/DEVOICE e on HELP/DEHELP usano la medesima sintassi e vengono innescati quando un utente riceve il voice o l'help, oppure quando questi gli vengono tolti.

Anche l'evento on SERVEROP utilizza la stessa sintassi e scatta quando un utente è oppato da un server.

Infine, l'evento on RAWMODE scatta indipendentemente da questi eventi e consente di analizzare la linea di testo del cambiamento di mode. (Scatta per TUTTI i cambiamenti di mode: personali, relativi ad altri utenti e relativi ai canali, ndT)


Esempi

on 9:OP:#:/mode $chan -o $opnick
on 9:VOICE:#:/mode $chan -v $vnick
on 9:HELP:#:/mode $chan -h $hnick

Questi eventi vengono innescati quando ad un utente con il Livello di accesso pari a 9 viene dato il grado di op/voice/help su un qualsiasi canale: $opnick si riferisce al nickname della persona oppata/deoppata, $vnick alla persona che ha ricevuto o a cui è stato tolto il voice, e $hnick si riferisce alla persona helpata/dehelpata.


on 1:DEOP:#beginner:/mode $chan +o $opnick

Questo evento scatta quando un qualsiasi op del canale #beginner viene deoppato.

on 1:SERVEROP:#:/mode $chan -o $opnick

In questo caso invece viene levato il grado di op ad un utente che ha ricevuto l'op dal server.

Confronto di livelli

É possibile confrontare i livelli degli operatori e degli utenti oppati/deoppati premettendo alla stringa i simboli <,>,<=,=>,<>, o =, nel modo seguente:

on >=1:DEOP:#mIRC:/msg $chan $nick ha deoppato $opnick (legale)

on 1:DEOP:#mIRC:/msg $chan $nick ha deoppato $opnick (illegale)

In questa situazione, se il livello degli operatori è maggiore o uguale al livello degli utenti a cui è stato tolto il grado di operatore, il deop è ritenuto legale. Altrimenti, si verifica il secondo caso indicandone l'illegalità. Si Ricordi che in questo momento si stanno confrontando i livelli dell'operatore e dell'utente oppato/deoppato, e ciò non ha niente a che fare con il Livello 2 nella definizione.


Nota: Questi eventi lavorano soltanto sui nicknames perchè il server IRC trasmette soltanto il nick dell'utente coinvolto non il suo indirizzo.

on RAWMODE

on @1:RAWMODE:#:/echo $chan Cambiate impostazioni: $nick ha settato $1-

L'evento on RAWMODE consente di analizzare TUTTI cambiamenti di mode: la linea di testo è in $1-.


E' possibile usare l'identificatore $mode(N) con questi eventi per elencare i nick coinvolti.

Gli Eventi - on INPUT

L'evento on INPUT è innescato quando viene digitato del testo in una editbox e viene premuto il tasto invio.

Formato: on <livello>:INPUT:<*#?=!@>:<comandi>
Esempio: on 1:INPUT:#mIRC:/echo Hai digitato il testo " $1- " nella finestra #mIRC

Esempi

on 1:INPUT:#:/echo Ho appena detto " $1- " in un canale

Questo evento scatta quando si inserisce del testo in una editbox e poi si preme il tasto invio. L'identificatore $1- si riferisce al testo digitato. Se l'evento viene fermato tramite il comando /halt è possibile impedire al mIRC l'elaborazione del vostro messaggio (e quindi il suo invio, ndT).


on 1:INPUT:?:/echo Ho appena detto " $1- " in una finestra di query
on 1:INPUT:=:/echo Ho appena detto " $1- " in una sessione di DCC chat
on 1:INPUT:!:/echo ho appena detto " $1- " in un fileserver

É anche possibile specificare il nome del canalel o della finestra anziché utilizzare i generici simboli *#?=!@.

L'identificatore $ctrlenter è utilizzato per controllare se è stato premuto Control+Enter quando l'utente ha digitato il testo.

Nota: E' possibile inoltre usare comandi come /say con l'evento INPUT, che invieranno il messaggio alla finestra nella quale sono stati scritti, anche se la maggior parte dei comandi e degli eventi non funzionano in questo modo, e richiedono che sia specificato il destinatario del messaggio.

Gli Eventi - on JOIN/PART

Gli eventi On JOIN e On PART vengono innescati quando un utente entra o esce da un canale.


Formato: on <livello>:JOIN:<#[,#]>:<comandi>
Esempio: on 1:JOIN:#mirc,#irchelp:/msg $nick Ciao a Tutti!

Esempi

on 1:JOIN:#:/msg $chan Benvenuto $nick

L'evento sopra riportato s'innesca nel momento in cui un utente entra su un canale su cui voi siete.

on 5:PART:#mIRC,#angel_&_devil:/describe $chan Torna a trovarci $nick *ciao*

Questo evento invece viene innescato nel momento in cui un utente di livello d'accesso pari a 5 esce da uno dei canali riportati, in questo caso #mIRC o #Angel_&_Devil.

Gli Eventi - on KICK

L'evento on KICK viene innescato quando un utente viene kickato (dall' inglese "to kick" cioè "espellere", ndT) da un canale.


Formato: on :KICK:<#[,#]>:
Esempio: on 1:KICK:#mirc,#mondoirc:/msg $nick Oh, scusa, stavo testando il kick! ;)

Esempi

on 5:KICK:#:/invite $knick $chan | /msg $nick Hey, $knick è mio amico!

L'evento sopra citato viene innescato nel momento in cui un utente di livello 5 viene kikkato da un determinato canale. $knick si riferisce al nickname dell'utente che è stato kikkato.

Confrontare i livelli

I livelli del "kikkante" [n.d.t dall'inglese kicker] e del "kikkato" posono essere confrontati premettendo alla stringa di comando uno dei simboli <,>,<=,=>,<>, oppure = come riportato nei seguenti esempi:


on >=2:KICK:#mIRC:/msg $chan $nick ha cacciato $knick (legale)
on 1:KICK:#mIRC:/msg $chan $nick ha cacciato $knick (illegale)

In questo caso, se il livello del "kickante" è maggiore o uguale rispetto al livello dell'utente "kickato", allora lo si può ritenere un kick legale. Viceversa, se il livello del kickante è inferiore, verrà eseguito il secondo evento Kick, qui indicato come illegale. Bisogna inoltre ricordare che si stanno confrontando i livelli del kickante e del kickato, e ciò non ha niente a che fare con con il livello "2" della definizione.


Nota: Questo evento funziona soltanto sul nickname perché il server IRC trasmette soltanto il nickname dell'utente kickato e non il relativo indirizzo.

Gli Eventi - on MODE

L'evento On MODE viene innescato quando un utente cambia le modalità (in inglese "mode", ndT) del canale.


Formato: on :MODE:<#[,#]>:
Esempio: on 1:MODE:#mIRC:/notice $me $nick setta il canale $chan in modalità $1-

L'evento on SERVERMODE utilizza la stessa sintassi, e si attiva quando è un Server IRC, e non utente, a cambiare le impostazioni del canale.

Esempi

on @1:MODE:#:/notice $me $nick setta il canale $chan in modalità $1-

L'evento sopra riportato si innesca quando un utente cambia un "mode" in un qualsiasi canale in cui si abbia l'op (il requisito operatore viene associato al simbolo @, per maggiori informazioni consultare la sezione Livelli d'Accesso ). I parametri del cambiamento di "mode" sono memorizzati in $1- che dovrebbe essere analizzato per fare rispettare un "mode" particolare.


Nota: Questi eventi vengono innescati soltanto nei cambiamenti di "mode" dei canali e non in caso di cambiamento di modalità di un utente, ovvero op, bans, etc..

Gli Eventi - on QUIT

L'evento on QUIT scatta quando un utente lascia IRC mentre è su un vostro stesso canale.


Formato: on <livello>:QUIT:<comandi>
Esempio: on 1:QUIT:/notice $me $nick ha appena lasciato Irc col messaggio $1-

Esempi

on 1:QUIT:/ame Ciao $nick torna a trovarci!


Questo evento scatta quando un utente lascia il server IRC in un canale in cui risiedete. Il parametro $1- memorizza il messaggio di uscita da IRC.

Gli Eventi - on TEXT

L'evento on TEXT scatta quando si ricevono messaggi in privato o in canale.


Formato: on <level>:TEXT:<testocorrispondente>:<*><?><#[,#]>:<comandi>
Esempio: on 1:TEXT:*help*:#mirc,#irchelp:/msg $nick quale è il problema?


Gli eventi on ACTION e on NOTICE usano esattamente lo stesso formato di on TEXT, e scattano rispoettivamente su una azione e su un notice.

Il testo corrispondente può essere una stringa con wildcards, dove:
* corrisponde a qualsiasi testo
& corrisponde a qualsiasi parola

text corrisponde se il testo contiene solo questa parola
text* corrisponde solo se il testo inizia con questa parola
*text corrisponde solo se il testo finisce con questa parola
*text* corrisponde se il testo contiene questa parola in qualsiasi posizione


Il posto dove questo evento si può verificare può essere specificato usando:
? per qualsiasi messaggio privato
# per qualsiasi messaggio in canale

#mirc per qualsiasi messaggio sul canale #mirc
* per qualsiasi messaggio in canale o privato


Esempi

on 1:TEXT:hello*:#:/msg $chan Benvenuto in $chan $nick!

Questo sta in ascolto su ogni canale per ogni linea che inizi con la parola "hello" e risponde a questa linea col messaggio da impostato.

on 1:TEXT:*cookie*:#food:/describe $chan regala a $nick un dolcetto :)

Questo resta in ascolto sul canale #food per qualsiasi messaggio che contiene la parola "cookie" e risponde come impostato.


on 1:ACTION:moo:#:/msg $chan Aha, I see we have a cow among us.

Questo resta in ascolto in qualsiasi canale per una azione che contenga la parola "moo" e risponde come impostato.

on 1:NOTICE:*:?:/msg $nick I'm AFK, back in a moment!

Questo resta in ascolto per qualsiasi notice privato e risponde con il messaggio impostato.

Per una maggiore flessibilità, è possibile utilizzare Variabili al posto sia del testo corrispondente che dei parametri del canale.


on 1:TEXT:%­matchtext:%channel:/msg $nick Tu hai appena detto $1- sul canale %channel

Il valore di %­matchtext sarà confontato con il testo inviato dall'utente, e il valore di %channel sarà confrontato con il canale in cui il messaggio è inviato.


Nota: Non si può testare questi eventi con il testo scritto da se stessi. Si può fare solamente con testo inviato da altri utenti in canale o in conversazioni private.

Per maggiori flessibilità, è inoltre possibile usare variabili.

on 1:TEXT:%­matchtext:%channel:/msg $nick You just said $1- on channel %channel

Gli Eventi - on USERMODE

on USERMODE

L'evento on USERMODE scatta nel momento in cui vengono cambiati i mode.


Formato: on <livello>:USERMODE:<comando>
Esempio: on 1:USERMODE:/echo Hai cambiato il tuo usermode in $1-


Esempio

on 1:USERMODE:/echo L'usermode per il $nick è ora $1-

Scatta per l'appunto quando il proprio mode cambia. Il parametro $1 si riferisce al nuovo usermode.

Livelli - I Livelli di Accesso del mIRC

I livelli di accesso sono assegnati rispettivamente ad un utente, ad un evento e ad un server per limitare, come dice la parola stessa, l'accesso di un utente soltanto a determinati eventi.

Il livello di accesso di default è pari a 1 per gli utenti che non presenti nella user list. Tutti gli utenti possono accedere agli eventi con livello d'accesso 1. Di conseguenza più è elevato il livello d'accesso dell'utente, più saranno gli eventi a cui esso potra accedere. E' possibile inoltre modificare il livello di accesso, così facendo solo determinati utenti avranno accesso a determinati eventi.


Utenti
Nella sezione degli user è possibile specificare una user list con relativo livello d'accesso usando il formato:

<livello1,livello2,...,livelloN>:<indirizzo_utente>

3,5,6:goat!khaled@mirc.com

Il primo livello è ritenuto un accesso generale, ciò sta a significare che un utente può accedere a tutti i livelli uguali o maggiori di 3. Tutti gli altri livelli di conseguenza saranno accessibili solo in classe di assegnazione.


Se si desiderasse forzare il primo livello di accesso al fine di ottenere un livello specifico bisognerà far precedere il comando dal simbolo "=":

=3,5,6:goat!khaled@mirc.com

Così facendo l'utente in questione avrà accesso ai livelli specifici 3, 5 e 6 ed a nessun altro.

Eventi
In generale il formato da usare in un evento è:

<prefisso> <livello>:<evento>:<finestra>:<comando>

ctcp 1:HELP:*:/msg $nick Nessun Help utilizzabile dagli utenti con livello d'accesso 1!


Il precedente evento può essere accessibile a tutti gli utenti poichè è un comando di livello 1. Così nel caso in cui utente con nickname assegnato digita /ctcp nick help, lo script restituirà la suddetta risposta.

Soltanto l'evento di corrispondenza assegnato ad un utente verrà restituito.

Named Levels
E' possibile inoltre usare i named levels il cui funzionamento è lo stesso di quelli descritti precedentemente ma più facile da capire.


friend:goat!khaled@mirc.com

on @friend:JOIN:#mIRC:/mode $chan +o $nick

Abbina all'utente "amico" il livello di accesso e relativa asseganzione del grado di operatore all'ingresso del canale specifico.

Limiting Access
E' possibile limitare l'accesso ad un evento specificando un prefisso speciale che ne determinerà l'innesco alla comparsa dell'utente.

Il prefisso +
La limitazione d'uso degli eventi ad un relativo utente è possibile prefissando il comando col simbolo "+".


10:goat!khaled@mirc.com

ctcp +5:HELP:*:/msg $nick Hai accesso di livello agli eventi +5

L'utente specificato non avrà accesso a questo evento del ctcp anche se in possesso di un livello superiore, infatti solamente gli utenti di pari livello potranno accedervi.

Il prefisso *
L'innesco degli eventi è possibile da parte dell'utente di diverso livello d'accesso usando il prefisso "*".

on *:TEXT:help:#:/msg $nick Hai accesso all'evento *

Il prefisso !

Impedire l'accesso ad un evento riservato a se stessi è possibile usando il prefisso "!".

ctcp !2:HELP:*:/msg $nick Hai accesso agli eventi di 2° ordine

Il prefisso @
L'accesso agli eventi è limitabile solamente a chi ha gradi di operatore in un canale usando il prefisso "@".

10:goat!khaled@mirc.com

on @2:JOIN:#mIRC:/mode $chan +o $nick

Una volta entrati nel canale specifico, si verrà automaticamente "oppati" e, solo allora, sarà possibile accedere agli eventi.




Il prefisso &
Impedire l'esecuzione di un evento è possible, nel caso in cui lo script avesse usato precedentemente un comando /halt o /haltdef, usando il prefisso "&".

on &1:TEXT:*:?:/echo L'evento non verrà innescato se $halted risulterà vero.



Il prefisso $

Sta ad indicare che la sezione matchtext o la definizione in corso contengono espressioni regolari.



on $*:TEXT:m/espressione regolare/switches:#:/messaggio echo: $1-



Le funzioni 'm' ed switches sono opzionali. Vengono invece richieste le //.


Il suffisso "="
impedire, agli utenti con accesso elevati, l'uso degli eventi più bassi del loro livello è possibile usando il suffisso "=".

10:goat!khaled@mirc.com

ctcp 2:HELP:*:/msg $nick Hai accesso agli eventi di 2° livello
ctcp 5:HELP:*:=

Con l'evento sopra descritto l'utente non può usare gli eventi inferiori al suo livello d'accesso che equivale a 5.


Il suffisso "!"
Impedire l'elaborazione di comandi di un determinato evento è possibile usando il suffisso "!".

ctcp 5:PING:*:echo PING!
ctcp 5:*:*:!

Il suffisso "!" all'estremità della linea di comando blocca un eventuale modifica del remote agli utenti di 5° livello.

Creazione di Gruppi
La creazione di diversi gruppi di eventi nello stesso script è resa possibile con l'utilizzo del prefisso "#".

#gruppo1 inizio
...
[ lista degli eventi ]

...
#gruppo1 fine

E' possibile usare i comandi /abilita e /disabilita rispettivamente per abilitare o disabilitare il gruppo. Una volta disabilitato un gruppo questo verrà ignorato dal processo di caricamento dello script . L'aspetto di un gruppo disabilitato sarà:

#gruppo1 disabilitato
...
[ lista degli eventi ]
...
#gruppo1 fine

Da ricordare che non è possibile la creazione di sottogruppi in un gruppo generale.

Ordine di Definizione

Molti prefissi e comandi sono "sensibili" ad un ordine numerico delle definizioni. Consigliamo dunque la realizzazione di script con eventi in ordine cresciente, da quelli di livello più piccolo salendo man mano verso il più alto, così facendo si avrà una migliore esecuzione dei comandi.

Comandi - Comandi Base del mIRC

I seguenti comandi sono utilizzati per modificare i settaggi degli script e nella sezione remote.

Comandi Generali

/ctcps [on|off]
Attiva o disattiva il processo di eventi CTCP.

/events [on|off]
Attiva o disattiva il processo di named events.

/dlevel <level>
Cambia il livello di default per gli utenti al livello specificato.

/raw [on|off]
Attiva o disattiva il processo di eventi numerici.


/remote [on|off]
Attiva o disattiva il processo di tutti gli Scripts.

Group Commands

Questi comandi permettono di attivare o disattivare i gruppi nei remote scripts. E' possibile trovare altre informazioni sui gruppi nella sezione Access Levels.

/enable <gruppo1 gruppo2 ... gruppoN>
Abilita i gruppi specificati in tutti gli scripts.

/enable #uno #due #tre

E' anche possibile specificare una wildcard per abilitare tutti i gruppi corrispondenti:


/enable #help*

/disable <gruppo1 gruppo2 ... gruppoN>
Disabilita i gruppi specificati in tutti gli scripts.

/disable #uno #due #tre

E' anche possibile specificare una wildcard per disabilitare tutti i gruppi corrispondenti:

/disable #help*

/groups [-e|d]
Questo mostra la lista di tutti i gruppi, sia abilitati che disabilitati.

Comandi per Utenti e Livelli

E' possibile utilizzare i seguenti tre comandi per aggiungere e rimuovere utenti alla user list, cosi' come aggiungere o rimuovere livelli per utenti esistenti.


/auser [-a] <levels> <nick|address> [info]
Questo aggiunge il nick/indirizzo specificato esattamente come è dato alla user list con il livello specificato. Se si specifica un [-a] e se l'utente esiste, il livello specificato è aggiunto ai livelli che l'utente ha. E' bene ricordare che se il primo livello non è preceduto dal segno uguale (=) sarà considerato come un livello generale d'accesso.

/auser 1,2,3 Nick

Questo aggiunge questo nick con questi livelli d'accesso alla user list (rimpiazzando un utente esistente con lo stesso nome).


/auser -a 1,2,3 Nick

Questo aggiunge il livello specificato all'utente specificato. Se l'utente non esiste, viene creato.

/auser -a 1,2,3 Nick

Aggiunge il livello specificato all'utente riportato nel comando. Nel caso in cui l'utente non apparisse nella user list verrà inserito.

/auser -a =1,2,3 Nick

Questo comando assomiglia al precedente, comunque =1 è molto importante, ciò significa che il livello di accesso generale iniziale non sarà possibile sostituirlo.


Il parametro info permette l'aggiunta di alcune note durante l'aggiunta dell'utente nella user list, è possibile inoltre far riferimento all'identificatore $ulist().

/flush [-l] [livello]
Elimina i livelli ad un utente inserito nella user list.

/flush 1,2,3

E' possibile usare -l per la rimozione dei livelli degli utenti nella user list.

/guser [-a] <livello> <nick> [tipo] [info]
Il funzionamento di questo comando è lo stesso del /auser salvo il fatto che osserva l'indirizzo dell'utente specificato e lo aggiunge alla user list. Questo è reso possibile grazie alla funzione /userhost sul dato nickname la quale restituisce un indirizzo nella disposizione specificata dal "tipo".


Il parametro info permette l'aggiunta di alcune note durante l'aggiunta dell'utente nella user list, è possibile inoltre far riferimento all'identificatore $ulist().

/iuser <nick | indirizzo> [info]
Permette la modifica delle informazioni collegate ad un utente.

/ruser [livello] <nick | indirizzo> [tipologia]
Se usato senza specificare livelli, rimuoverà l'utente specificato dalla user list. Specificandone il livello esso verrà rimosso all'utente in questione. Eliminati tutti i livelli di un dato utente anch'esso di conseguenza verrà eliminato. Specificandone una tipologia verrà osservato l'indirizzo degli utenti tramite l'/userhost con conseguente rimozione di tutti gli utenti appartenenti a quella categoria.


/ruser Nick
/ruser 1,2,3 Nick
/ruser 1,2,3 Nick 1

Usando /ruser Nick! (con punto esclamativo alla fine), verranno rimossi tutti gli utenti appartenenti a Nick!.

/rlevel [-r] <livello>
Rimuove tutti gli utenti di una user list aventi livello d'accesso specificato.

/rlevel 20
/rlevel =10

Quando l'opzione -r è specificata, questa si applicherà a tutti i livelli di accesso dell'utente. Tutti i livelli di corrispondenza saranno rimossi. In mankanza di livelli l'utente in questione verrà rimosso.


/rlevel -r 1,5,7,8

/ulist [<|>] <livello>
Restituisce una lista di utenti avente livello specificato.

/ulist <10 restituisce una lista di utenti con livello minore ed uguale di 10
/ulist >5 restituisce una lista di utenti con livello maggiore ed uguale di 10
/ulist 4 restituisce una lista di utenti con livello pari a 4

Nota: I comandi /guser e /ruser eseguono un /userhost in un determinato nick per ritrovarne l'indirizzo, il comando subirà un po' di ritardo dovuto all'intervento del server.

ial - Internal Address List

mIRC conserva una lista interna di indirizzi (internal address list) di tutti gli utenti che sono correntemente sugli stessi canali in cui si è posizionati.

Questa lista di indirizzi è usata dai comandi /guser, /ruser, /ban, /ignore, /finger, e /dns per trovare più velocemente l'indirizzo di un utente senza dover fare un /userhost dal server.


L'indirizzo di un utente viene aggiunto alla lista quando sia questo entra in un canale, che quando invia un messaggio ad un canale, o faccia un cambiamento dei mode.

L'indirizzo di un utente viene rimosso dalla lista quando un utente non è più su nessun canale sulla quale si è attualmente.

Il motivo per cui vengono conservati solo indirizzi di utenti sugli stessi canali nel quale si è, è che questo garantisce l'integrità della lista.


Comandi IAL

/ial [on | off]
Attiva/disattiva la IAL. Notare che questo settaggio non è persistente e resettando mIRC viene perso.

/ialclear [nick]
Azzera la IAL o, se viene specificato un nickname, cancella dalla IAL i dat irelativi a quel nickname.

/ialmark <nick> [text]
Inserisce un mark col testo specificato nella IAL per un nickname.

Identificatori IAL

$ial(nick/mask,N)
Ritorna l' Nesimo indirizzo corrispondente al nick o alla mask nella IAL.


Proprietà: nick, user, host, addr, mark

$ial(*!*@*.com,0) ritorna il numero totale delgi indirizzi nella IAL corrispondenti a *!*@*.com
$ial(*!*@*.com,3) ritorna il terzo indirizzo nella IAL corrispondente a *!*@*.com
$ial(*!*@*.com,4).nick ritorna il nick del quarto indirizzo indirizzo che termina in .com
$ial(*!*@*.com,4).user ritorna l'userid del quarto indirizzo che termina in .com

Per scansionare ogni indirizzo nella IAL è possibile utilizzare $ial(*,N).


Il parametro N è opzionale, se non specificato è preso di default il valore 1.

$ialchan(nick/mask,#,N)
Ritorna l' Nesimo indirizzo sul canale specificato corrispondente al nick o alla mask nella IAL.

Questo lavora allo stesso modo dell'identificatore $ial().

Le variabili - Aree Temporanee a cui assegnare un valore

Variabili


Le Variabili sono aree temporanee a cui si può assegnare dei valori, che si possono poi usare in un secondo tempo negli Scripts.

Se ci si riferisce ad una variabile, e questa non esiste, si avrà in ritorno il valore $null. Il valore $null può essere usato in comparazioni con if-then-else per controllare le diramazioni.

I seguenti comandi permettono di creare e settare valori di varaibili.

/set [-snzuN] <%­var> [valore]

Questo imposta il valore di %­var al valore specificato.

Se si specifica il parametro -uN, %­var verrà annullata dopo N secondi, presumendo che non sarà settata di nuovo da un altro script. Se si specifica N=0, la variabile sarà annullata quando lo script termina.

Il parametro -z decrementa %­var finchè non raggiunge zero, e poi la annulla.
Il parametro -n fa si che venga trattata come testo.

/unset [-s] <%­var>
Questo annulla e rimuove la variabile indicata dalla lista delle variabili. Se si specifica una variabile con caratteri wildcard allora tutte le varibili corrispondenti verranno rimosse.


/unset %­test*

Questo rimuoverà tutte le varibili che iniziano con la parola %­test.

E' anche possibile settare/desettare variabili usando le parentesi [ ]:

vartest
set %a [ $+ b ] 1
set %a [ $+ c ] 2
set %a [ $+ d ] 3

echo ab = %ab
echo ac = %ac
echo ad = %ad

unset %a [ $+ b ] %a [ $+ c ] %a [ $+ d ]


/unsetall
Questo annulla e rimuove tutte le varibili dalla lista.

/inc [-cszuN] <%­var> [valore]

Questo incrementa il valore di %­var di [valore]

Se si specificano i parametri -uN, %­var sarà incrementata del valore specificato una volta e poi sarà annullata dopo N secondi, presumendo che non sarà settata di nuovo da un altro script.

Il parametro -c incrementa %­var 1 volta al secondo.

Il parametro -z decrementa %­var finchè non raggiunge zero, e poi la annulla.

/dec [-cszuN] <%­var> [valore]
Questo decrementa il valore di %­var di [valore]


Se si specificano i parametri -uN, %­var sarà incrementata del valore specificato una volta e poi sarà annullata dopo N secondi, presumendo che non sarà settata di nuovo da un altro script.

Il parametro -c decrementa %­var 1 volta al secondo.

Il parametro -z decrementa %­var finchè non raggiunge zero, e poi la annulla.


E' possibile utilizzare anche il segno di uguale per assegnare valori alle variabili:

%­i = 5

%­xyzi = 3.14159
%count = $1

E' anche possibile eseguire le seguenti operazioni sulle varibili quando si usa il segno di uguale:

%­x = 5 + 1
%­x = 5 - %­y
%­x = %­x * 2
%­x = %­z / $2
%­x = $1 % 3
%­x = 2 ^ %­w

E' possibile eseguire una sola operazione per volta.

Si può utilizzare l'identificatore $calc() che permette di eseguire calcoli complessi.

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

Si possono utilizzare inoltre anche gli identificatori $round(N,D) e $int(N) per maneggiare con precisione numeri che hanno decimali. Il numero dei decimali è attualmente limitato a 5 cifre.


Variabili Locali
Le variabili locali sono variabili che esistono solo per la durata della sessione di uso dello script, nella quale possono essere create e possono essere accessibili solo da dentro lo script. Per crearle si utilizza il comando /var:

/var %­x

Questo crea la varibile locale %­x nella routine corrente e può essere utilizzata solo in questa routine.

/var %­x = ciao

Questo crea la varibile locale %­x e gli assegna il valore ciao.


Si possono creare più variabili locali separandole con virgole:

/var %­x = ciao, %­y, %­z = $me

loop
var %­x = 1
:next
echo item %­x
inc %­x
if (%­x < 10) goto next


Nota: si può utilizzare /var -s per far si che la varibile mostri il risultato quando un valore viene impostato.

Identificatori

$var(%­var,N)
Ritorna nome della variabile combaciante numero N.

Proprietà: valore, locale

Si può utilizzare una wildcard come nome della variabile.


Se N = 0, ritorna il numero toale di nomi di variabili combacianti.

Nota: Questo cerca sia tra variabili locali che tra variabili globali.

I Popups - Creazione di Menu' e Sotto Menu'

Popups

mIRC permette la generazione di menu popups per le finestre di status, query/chat, di canale, per le nickname listbox ed infine per i menubar. Questo sarà possible solamente usando comandi IRC, generando Aliases, Identificatori e Variabili.

Cliccando il pulsante destro del mouse in una delle finestra sopra citate apparirà il menu popups, sarà così possibile selezionare alcune delle funzioni inseritevi tra le quali per esempio oppare utenti o entrare in un canale.


Esempi
Il formato usato del menu popups è il seguente:

<menuitem>:<comando>

Richiesta d'aiuto:/join #irchelp

Il testo che precede il simbolo ":" è il nome assegnato al collegamento. Il testo invece posto dopo il simbolo ":" non è altro che il comando assegnato al menu stesso. In questo caso, nel menu principale apparirà il collegamento "Richiesta d'aiuto", cliccandoci col muose il comando rispettato sarà "/join #irchelp".

Il comando usato per l'esempio specifico è l'Aliases di cui ne consigliamo la consultazione per maggiori chiarimenti.


Per la creazione di un Submenu, basta introdurre il simbolo ".".

Entrare in un Canale
.Richiesta d'aiuto!:/join #irchelp
.Entra nel canale #mondoirc:/join #mondoirc
.Entra in?:/join $?

In questo caso il menu principale è chiamato "Entrare in un Canale", come si può notare i submenu sono preceduti dal simbolo ".".

Per creae menu nel submenu, basterà introdurre un altro ".":

Canali
.Aiuto
..irchelp:/join #irchelp
..mIRC:/join #mirc
..mondoirc:/join #mondoirc

.Altri Canali
..Visita #Italia:/join #Italia
..Wibble Wobble:/join #wibble
.Entra in?:/join #$$?="Inserisci il nome del canale in cui entrare:"

Per la separazione delle voi di menu, bisognerà introdurre il carattere "-".

whois ?:/whois $?
-
Vari
.Edita Testo:/run notepad.exe temp.txt
.say?: /say $?
.action?:/me $?
Canali
.#irchelp: /names #irchelp
.#mondoirc: /names #mondoirc
.nome ?:/nome $?
-
lista canali:/list
-
Entra in un Canale
.Richiesta d'aiuto!:/join #irchelp

.Entra in #mondoirc:/join #mondoirc
.Entra in?:/join $?

Per l'utilizzo del menu popups in una listbox di nickname, bisognerà prima selezionare un nickname. Ecco qui un esempio di menu:

Who Is?:/whois $1
-
Modi
.Op:/mode # +o $1
.Deop:/mode # -o $1
.Kick, Ban:/kick # $1 | /ban $1
-
DCC Send:/dcc send $1
DCC Chat:/dcc chat $1
-
Query:/query $1 Ciao! Ci sei...?

Nel caso si voglia generare un menu che effettui parecchi comandi, sarà necessario usare le parentesi "()". Consigliamo la consultazione della sezione Aliases per maggiori informazioni sul loro utilizzo.


Cookie
if ($1 == $me) echo I give myself a cookie!
else echo I give $1 a cookie!


Il suddetto esempio può essere usato in una listbox di nickname. Il parametro $1 si riferisce al nickname dell'utente selezionato nella lista. In questo caso, lo script controllerà se il nick selezionato è il proprio e, in caso affermativo visualizzerà il primo messaggio, vicecersa il secondo.

I popup menus per le Query/Chat ed i MenuBar utilizzano lo stesso principio sopra descritto.


Identificatori e Variabili
Le variabili e gli identificatori facenti parte dei comandi di un menu sono valutati ad ogni comparsa del popups. Ciò permette la genarazione di menu popup che variano nell'apparenza. Nel caso in cui un'intera voce di menu fosse valuta con $null, essa non sarà visualizzata.


Remote Scripts
L'introduzione di menu negli script remote è possibile grazie al prefisso menu.

menu status
Server
.Links:/links

.Lusers:/lusers
.Motd:/motd
.Time:/time


Questa definizione aggiunge un submenu al popup menu della finestra status..

E' possibile inoltre specificare canali, query, nicklist, e menubar come nome del menu, così facendo si andrà ad aggiungere menuitems ai menu correnti del popup per ciascuna di queste finestre.


menu nicklist
Schiaffo
.Haddock:/me prods $1 with a haddock


Questa definizione aggiungerà un submenu al popup menu della listbox dei nickname.


E' possibile generare inoltre menu popups utilizzando le finestre personalizzate specificandone il nome.

menu @test
dclick:/echo double-click!


Il comando dclick permette la specificazione del comando che verrà eseguito al momento del doppio-click nella finestra listbox personalizzata. .

E' inoltre possibile generare delle finestre multiple, esempio.:

menu @dogs,@cats,@goats
dclick: /echo double-click in $active

close: window -c $active


E' possibile utilizzare l'identificatore $menu per riferirsi ad un menu presente nel popup oppure associato ad uno script performato. Questo permette di modificare sia la forma base del popup che quella relativa a query, canale etc.

menu query,nicklist
$iif($menu == nicklist,Op):/mode # +o $$1

Menu Styles
Disporre un "segnalibro" o generare una voce di menu disabilitata è possibile usando l'identificatore $style(N), in cui N = 1 per il controllo, N = 2 per disabilitarlo e N = 3 per entrambi i comandi. L'identificatore $style(N) deve precedere la stringa del menu.


menu status
$iif($server == $null,$style(2)) Server Info
.Motd:/motd
.Time:/time


Il suddetto esempio genera un submenu nella finestra dello status, il quale verrà abilitato solo una volta connessi al server Irc.

$submenu($id($1))
Questo identificatore permette la generazione dinamica della menu list che potrà essere richiamata soltanto da una definizione del menu popups.

Il comando in questione è $id($1), dove $id() è il nome dell'identificatore e $1 = 1 verrà incrementato di una unità ad ogni richiamo.


Il valore restituito da $id() dovrà essere una disposizione di definizione di una delle linee del popups menu.

L'iterazione ends agirà quando $id() non restituirà alcuna valuta.

menu status
Animal
.$submenu($animal($1))


alias animal
if ($1 == begin) return -
if ($1 == 1) return Cow:echo Cow
if ($1 == 2) return Llama:echo Llama
if ($1 == 3) return Emu:echo Emu
if ($1 == end) return -


L'inizio e la fine verranno trasmessi al comando nelc aso in cui l'articolo fosse contenuto da separatori.


Nota: Non è possibile usare questa funzione per la crezione di submenu con collegamenti incrociati.