Come avrai capito, la sessione Comandi Remoti tratta il comportamento del nostro script in relaziono a tutti i CTCP. Questa sessione, invece, tratta il comportamento dello script in relazione a tutto ciò che avviene su IRC, in relazione a tutti gli eventi.
Se hai paura di non riuscire a capire questa nuova sessione, tranquillizzati, perchè, se hai capito la sessione precedente, ti accorgerai che le differenze non sono poi così grandi.
Se non hai capito la sessione precedente... VAI A RIVEDERTELA!!!!!

ATTENZIONE: in generale mIRC è molto sensibile alla sintassi degli Eventi Remoti. L'uso incorretto della sintassi puo' causare un GPF (General Protection Fault), quindi fai attenzione! Se avrai mai problemi con il tuo script, questa sessione e' la prima da controllare con cura.


Sintassi degli Eventi Remoti

Gli Eventi Remoti sono: ON TEXT, ON JOIN, ON PART, ON KICK, ON OP, ON DEOP, ON INVITE, ON NICK, ON QUIT, ON TOPIC, ON SERVEROP, ON NOTIFY, ON MODE, ON SERVERMODE e ON SMODE.
Il remote ON TEXT e' simile all'ON ACTION, ON NOTICE, ON SNOTICE, ON CHAT, ON SERV e ON WALLOPS sono disponibili solo in specifiche circostanze.
Nuovi eventi dei remoti sono: ON FILESENT, ON FILERCVD, ON CHATOPEN, CHATCLOSE, SERVOPEN, SERVCLOSE e molti altri.

La sintassi e' essenzialmente la stessa dei Comandi Remoti.
Ecco alcuni esempi per l'eveto remoto ON TEXT:

on 1:TEXT:ciao:#:/msg $nick ... ma allora ciao!!

Sbatti questo esempio nei Remote Events. Vai in Tools/Remote, assicurati che "Events" sia selezionato (non commands) e che "Listening" sia con il segno di spunta.
(Quando "Listening" non è "spuntato", i Remote Events e i Commands sono ignorati.)

L'evento remoto verra' attivato quando la parola "ciao" verra' scritta in qualsiasi canale attivo.
La risposta del mIRC sara' un messaggio provato alla persona che ha scritto hello e il messaggio sara' "... ma allora ciao!!".

Ecco un esempio per l'evento ON JOIN:

on 1:JOIN:#:/notice $nick Benvenuto su $chan

Questo evento fara' in modo che il nostro script mandi un notice al nick che joinerà un qualsiasi canale attivo dicendo "Benvenuto su {nomedelcanale}"

Tutti gli eventi ad eccezzione di ON TEXT, ON QUIT e ON NICK sono regolati così:

on {livello_evento}:{evento}:{dove}:{comando(i)_eseguito(i) con parametro(i)}

{livello_evento} Questo evento avrà effetto solo per gli users con un particolare livello, e con ogni livello superiore.
{evento} Il nome dell'evento. Esempio ON JOIN, ON OP, ecc.
{dove} #, #nome. Dove si deve far azionare questo evento? Oppure # (tutti i canali) o il nome del canale specifico (come #kaos).
ECCEZIONI: Non usarlo con ON NICK o ON QUIT. Salta questa parte.
{comando(i)_eseguito(i) con parametro(i)} Il comando che dovrà essere attivato. Esattamente come nei Comandi Remoti, pero' qui abbiamo dei parametri predefiniti.
...e sicuramente, le eccezioni piu' rilevanti sono ON TEXT e ON ACTION che funzionano così:

on {livello_evento}:{evento}:{testo}:{dove}:{comando(i)_eseguito(i) con parametro(i)}

{livello_evento} Come sopra.
{evento} Ovviamente deve essere ON TEXT oppure ON ACTION.
{what_text} Specifica la parola o la prase da aspettare. Come "ciao" nel primo esempio.
{dove} #, #nome, ?, *. Anche questo e' come sopra, puoi utilizzare ON TEXT e ON ACTION per fare in modo che una parola o una frase detta su tutti i canali (#) o su un canale specifico (come #muroepistole) faccia eseguire determinati comandi.
Puoi anche fare in modo che i "luoghi" nei quali la parola o la frase faranno attivare l'evento comprendano i messaggi privati inviati a te (?) o sia canali che messaggi privati (*).
Un evento ON TEXT o ON ACTION non puo' considerare cio' che viene detto in una sessione di DCC Chats o nei messaggi dei Servers.
{comando(i)_eseguito(i) con parametro(i)} Come sopra.


Gli Eventi

Questi sono i vadi Eventi Remoti ai quali mIRC puo' rispondere...

ON TEXT Avviene quando una specificata parola/frase viene rilevata su un canale o in un messaggio privato.
ON ACTION funziona sattamente come ON TEXT...

Esempi:

on 1:TEXT:stronzate:#:/kick $chan $nick Non dire stronzate!
Appena uno scrive "stronzate" in un qualsiasi canale, verrà kickato con il messaggino.

on 1:TEXT:stronzate:#test:/kick $chan $nick | /notice $nick Ciao $nick , hai detto 'stronzate' e non le puoi dire le "stronzate" su #test...
Stessa cosa di prima, con l'aggiunta di un notice allo sfigato stronzaiolo.

on 5:TEXT:help:?:/notice $nick Prova a chiamare Popeye, io sono occupato.
(Questa e' una stronzata, lasciate perdere, non provatelo nemmeno).
Questo vale solo per i messaggi privati... ce sta il ?, vedete?

Puoi specificare queste wildcards per il testo dell'evento:

* reagisce a tutti i tipi di parole o frasi
word se un utente dice solo (e in modo corretto) questa parola, l'evento verrà attivato. E' casesensitive, quindi maiuscole e minuscole hanno valori diversi. Plop. (?).
word* se un utente comincia una linea con questa parola, l'evento verrà attivato.
*word se un utente finisce una linea con questa parola, l'evento verrà attivato.
*word* se nella frase dell'utente c'è sta parola, l'evento verrà attivato.

Esempi:

on 5:TEXT:ciao*:?:/notice $nick Ma chi ti conosce?!
Se un utente dice "ciao" piu' una qualsiasi parola in privato, tu risponderai "Ciao, sono contento che tu mi abbia salutato...".
HAUHUAHUAHUAUHAUHAUHAUHAUHHUAUHAHUAHUAUHAUHA


ON ACTION Vedi ON TEXT ... funziona allo stesso modo...
ON NOTICE Vedi ON TEXT ... funziona allo stesso modo...
ON CHAT Funziona come ON TEXT ma funziona per le sessioni DCC Chat.

Esempi:

on 1:CHAT:blabla:/msg $me $nick ti ha detto $parms (cioe' cazzate) in una DCC Chat.
Ecco, questo e' un'altro esempio di inutilita' assoluta. :oþ


ON SERV Funziona come ON CHAT ma sbircia nelle sessioni DCC Fileserver.

on 1:SERV:ciapa mirc:/echo server 6 To $nick the mIRC zip is sent.


ON JOIN
Funziona quando un user joina un canale.

Esempi:

on 1:JOIN:#rutto:/notice $nick Benvenuto nel canale #rutto! Burp!
Invia un notice quando un utente entra nel canale #rutto.

on 25:JOIN:#sonofiko:/kick $chan $nick Tu fai skifo! Fuori BASTARDO!
Kicka tutti gli utenti di livello 25 che joinano il canale #cool con il messagio "Sei bruttarello per questo canale... Vai fuori per favore."


ON PART
Funziona quando un user lascia un canale.

Esempi:

on 10:PART:#:/notice $nick Hey, grazie per essertene andato da $chan !
Invia un notice a tutti gli users di livello 10 che escono da un canale nel quale mi trovo dicendo: "Hey, puzzone, hai finito di infestare {canale} con la tua fottuta presenza!".

on 90:PART:#:/msg $chan Yahoo! $nick se n'e' andato!
Invia un messaggio sul canale dicendo: "Yahoo! {nick} se l'e' battuta!".
Naturalmente funziona solo per gli utenti di livello 90 che lasciano il canale.


ON KICK
Funziona quando un user e' kickato da un canale.

Esempi:

on 100:KICK:#:/kick $chan $nick | /invite $knick $chan | /notice $nick Cazzo fai!
Questo e' una gran figata!! Provatelo o vi torturo a smurfate.

NOTA: $knick e' il parametro che serve ad identificare il nick kickato. Questo identificatore puo' venir usato solo nei Comandi Remoti.


ON OP
Funziona quando un user e' oppato su un canale. (solo su un canale? non in query?)

NOTA: Questo evento richiede che il nick sia menzionato nella user list!

Esempi:

on 1:OP:#ZZzzZZzz:/notice $opnick Sei stato oppato da $nick . Ora torna a nanna!
Se qualcuno e' oppato su #ZZzzZZzz, gli invierai un notice con scritto: "Sei stato oppato da {oppatore}. Ora torna a nanna!"

NOTA: $opnick e' il parametro che identifica l'oppato.


ON DEOP
Funziona quando un user e' deoppato su un canale.

NOTA: Questo evento richiede che il nick sia menzionato nella user list!

Esempi:

on 1:DEOP:#:/msg $opnick Ooooops. Sei stato deoppato da $nick
Se qualcuno viene deoppato su un qualsiasi canale, gli invierai un messaggio privato dicendo:
"Tu sei una merda! Non sei degno dell'op! Sei cosi' puzzolente che mo apro una shell e ti meno il can per l'aia! Mentre mi preparo, vai a picchiare il maiale!"

NOTA: Se qualcuno mi manda un mail dicendo che ha provato i vari esempi e, effettivamente, i notice o i messaggi inviati non corrispondono a quel che ho scritto, giuro che gli mando una BOMB MAIL!!!! ;o))))))))))

NOTA: $opnick e' il parametro che identifica il deoppato.

TANTE ALTRE BELLE NOTE DA LEGGERE (ma quante cazzo sono??)
Spiegando gli eventi ON OP, ON DEOP, ON SERVEROP e anche ON NOTIFY, e' importante ricordare come devono essere impostati.
E' doveroso dire che i servers riportano solo il nick delle persone che sono oppate, deoppate o notificate in un canale di IRC, gli eventi ON OP, ON DEOP, ON SERVEROP e ON NOTIFY funzionano solamente se i nicks delle persone che sono oppati, deoppati o notificati sono menzionati nella user list. Specificare il loro address completo (nick!ident@machina.address.bhois) NON basta... mIRC non vuole distillare il nick da un tale rapporto (che cazzo vuol dire sta frase?). L'unica eccezzione si ha se tu vuoi che l'evento abbia effetto su tutti. In questo caso basta assegnare il livello 1 all'evento o cmq il numero di livello di default assegnato agli user che non sono presenti nella user list del tuo mIRC.

Se vuoi assegnare alle persone un livello adatto per i tuoi eventi ON OP, ON DEOP, ON SERVEROP o ON NOTIFY, devi inserirli nella tua users list per nome, come:

3:nickedell'amico
5:nickedell'amico
5:nickedell'amico
10:nickedell'amico!ident@macchina.azz

Naturalmente costruirsi una user list senza fare i lamers significa utilizzare wildcards, ossia maschere che riportano non solo il nick, ma anche ident e address degli amici e dei nemici.
Che significa?
Aho, ma non siate ingenui, porcaccia la miseria!
Se aggiungete alla user list un amico con nick [Pittbull] e non specificate il tipo di ident o l'address, io posso sempre menarlo e prendermi il suo nick.
Se è per la notify list, non ci sono problemi, ma se lo avete messo nella autooplist????
Mi oppate al volo e io vi fotto il vostro canale di merda.
Scusate, eh?
Pero' un canale in cui vige l'autoop su nick, piu' che canale di merda si dovrebbe definire "Er mejo cesso de IRC".


ON BAN
/ ON UNBAN Con l'evento ON BAN puoi facilmente sbannare i tuoi amici.

Esempi:

on 5:BAN:#italy:/mode $chan -b $banmask
$banmask rappresenta la maschera del ban.


ON INVITE Funziona quando sei invitato su un canale.

Esempi:

on 5:INVITE:#italia:/join $chan | /describe $chan grazie per avermi invitato!
Appena ricevi un invito su #italia, entri e mandi un action al canale dicendo:
"Grazie per avermi invitato! ... ma io non li frequento certi postacci!"


ON NICK Funziona quando un user cambia nick.

Esempi:

on 1:NICK:/notice $newnick Secondo me $nick era una merda, ma questo è peggio!
Invia un notice a chi ha cambiato nick dicendo: "Il nuovo nick è molto + bello! Ottima scelta!"

NOTA: $nick e' il parametro che identifica il vecchio nick, e $newnick il nuovo
NOTA: La parte {dove} non viene usata per ON NICK.


ON QUIT Funziona quando un utente esce da IRC.

Esempi:

on 2:QUIT:/notice $me E' ora di andare a nanna! $nick e' uscito da IRC!
Quando un pirla qualsiasi esce, invii un notice a te stesso dicendo:"{nick} e' uscito da IRC! MA CHI SSE NE FREGA!!"

NOTA: La parte {dove} non viene usata per ON QUIT.


ON TOPIC
Funziona quando il topic di un canale viene cambiato.

Esempi:

on 1:TOPIC:#:/msg $chan Wow, bello il topic nuovo!
Quando il topic di un canale viene cambiato, verra' inviato un messaggio sul canale con scritto: "Bella merda sto topic!"


ON SERVEROP
Funziona quando un utente viene oppato da un server.

NOTA: This event requires people to be mentioned by NICK in your Remote/Users list !

Esempi:

on 1:SERVEROP:#mirc:/mode $chan -o $nick | /notice $opnick Niente take su #mirc!
Quando una persona viene oppata su #mirc da un server, la deopperai e le manderai un notice dicendo: "C'hai provato, eh? Sei solo una caccola dell'asinello che scaldava il Gesu bambino!".
Normalmente gli op da server avvengono quando un server in split si relinka... non avete capito una mazza? Questo e' un tutorial sullo scripting, non sugli eventi di IRC.


ON NOTIFY
Funziona quando un utente della notify list entra in IRC.

NOTA: E' necessario che il nick sia menzionato nella User List!

Ricorda che e' necessario che il NICK sia menzionato nella User List!...
(come ON OP, ON DEOP e ON SERVEROP)

Esempi:

on 1:NOTIFY:/notice $nick Se sei il vero $nick entra in #sorciverdi!
on 3:NOTIFY:/whois $nick
on 5:NOTIFY:/beep 10 50 | /whois $nick


ON MODE / ON SERVERMODE Questo evento forza alcuni modes sui canali.

Usa questo evento per essere sicuro che quando qualcuno cambia i modes di un canale, i modes siano controllati per verificare se sono in sintonia con le tue scelte di gestione del canale.

Esempi:

on 1!:MODE:#name:-spmi+tnlk 20 miachiave:/notice $nick cambio di mode non consentito su $chan
on 1!:SERVERMODE:#name:-spmi+tnlk 20 miachiave:/notice $me cambio di mode non consentito effettuato da un Server

L'evento ON MODE reagisce ad ogni cambio di mode per ogni canale, questo significa che non e' la via ideale per reagire a determinati cambi di mode.Questa struttura non è certamente perfettam pero' funziona...

I settaggi generalmente usati sono:

on 1!:MODE:#mirc:-spmilk+tn:/notice $nick cambio di mode non consentito su $chan
on 1!:SERVERMODE:#mirc:-spmilk+tn:/notice $me cambio di mode non consentito!

NOTA: Ricordati che puoi permettere ad un certo livello utenti di cambiare i setting del canale senza che tu intervenga! Ricorda anche che mIRC NON tiene in memoria i modes precedentemente settati per il canale...


ON VOICE / ON DEVOICE Funziona quando viene dato o tolto il VOICE ad un user.

Esempi:

on 1:VOICE:/notice $nick Benvenuto tra quelli che sparano cazzate!
on 1:DEVOICE:/notice $vnick Hey, $nick e' abbastanza scemo da meritarsi la parola!!

 
ON SNOTICE Questo evento attende i notices dei servers. I notices dei servers ti dicono praticamente tutto quello che accade al server IRC al quale sei connesso. Per ricevere i notices dai servers devi aver abilitato il mode +s sul tuo nick (/mode #tuonick +s). Molte persone non hanno bisogno di questa flag... E' di sicuro piu' utile agli IRCOps e agli admin dei servers (pratecamente serve alla feccia di IRC). Cmq, con questo evento, puoi filtrare i notices dei servers inviati al tuo client. La sintassi di quest'evento è molto simile a quella dell'evento ON TEXT...

Esempi:

on 1:SNOTICE:servers_text:/echo 6 -a Il server ti ha notificato questo: $parms


ON FILESENT
Questo evento si attiva quando una sessione DCC Send si è conclusa con successo.
Tu puoi utlizzarlo per inviare un piccolo messaggio di ringraziamento, per notificarti il termine dell'operazione, per eseguire determinati programmi, ecc ecc.

Esempi:

on 1:FILESENT:*.txt,*.ini:/echo Inviato $filename a $nick ( $+ $address $+ )
on 1:FILESENT:mirc5616.exe:/notice $nick Divertiti con il mIRC a 16 bit!
on 1:FILESENT:mirc5632.exe:/notice $nick Divertiti con il mIRC a 32 bit!


ON FILERCVD
Questo verra' attivato quando un file verra' ricevuto con successo dopo una sessione di DCC Get. Tu puoi utlizzarlo per inviare un piccolo messaggio di ringraziamento, per notificarti il termine dell'operazione, per eseguire determinati programmi, ecc ecc.

Esempi:

on 1:FILERCVD:*.txt,*.ini:/run notepad.exe $filename
on 1:FILERCVD:*.wav:/wavplay $filename
on 1:FILERCVD:*.gif:/run c:\windows\wingif\wingif.exe $filename
on 1:FILERCVD:*.jpg:/run c:\windows\lview\lviewp19.exe $filename
on 1:FILERCVD:*.mid,*.voc:/run wplany.exe $filename
on 1:FILERCVD:*.*:/notice $nick Grazie per il file!


ON CTCPREPLY
Attende i replies dei CTCPs.

Esempi:

on 1:CTCPREPLY:PING*:/echo $active Ricevuto ping reply da $nick
on 1:CTCPREPLY:*mirc*:/echo $active Wow! Anche $nick usa mIRC!


Identificatori Speciali

$nick, $address, $site ecc. sono tutti identificatori speciali creati per venir usati nelle linee dei remotes. Puoi utilizzarli in qualsiasi evento remoto per far eseguire determinati comandi...

$nick Il nick della persona che attiva l'evento o esegue il comando.
$address L'address completo della persona che esegue il comando.
$site Il site della persona che esegue il comando.
$level Rappresenta il livello dell'user nella User List.
$chan Il canale dove nel quale e' stato fatto partire l'evento remoto.
$parms Tutto il testo nella riga che ha fatto scattare l'evento.
$parm1 La prima parola nella riga che ha fatto scattare l'evento.
$parm3* La terza parola e le successive nella riga che ha fatto scattare l'evento.