Gestione degli Eventi
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.
Lamerone the Mescalinizez |