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.
|