I Comandi dei Remote si riferiscono ad un particolare tipo di comandi: i CTCP.
Questa sezzione del mIRC ti permette di personalizzare a tuo piacimento i tipi di reply (risposte) del mIRC alle richieste CTCP inviate da altri utenti.
Ci sono molti comandi CTCP definiti in base agli standards IRC.
Questi comandi sono elencati nell'RFC relativo.
I CTCP che vengono generalmente usati sono version, ping, time, userinfo, clientinfo e finger.
Ogni clients IRC risponderà in un particolare modo (standard) a ciascuno di questi comandi.
I CTCP sono inviati nel seguente modo:

/ctcp {tuonick} {comando con parametri se richiesti}

Considera questo semplice esempio di un ping.
Un utente dovrà scrivere:

/ctcp {tuonick} ping

(Anche tu puoi mandarti un ping! Prova a scrivere "/ctcp {tuonick} ping")
In circostanze normali, mIRC invierà uno standard ping reply [ctcp quelnick pong], ma con i Commandi dei Remotes tu puoi ridefinire la risposta al ping. Non è strettamente necessario modificare i reply dei CTCP, sta a te decidere se farlo o no.
L'unico CTCP reply che non può venir modificato è quello relativo al version. Per modificarti quello devi obbligatoriamente lavorare sull'eseguibile...
Puoi anche creare nuovi comandi CTCP e quindi il tipo di risposta.
Passiamo agli esempiuzzi che tanto amate ;o)

1:ping:/notice $nick Mi pinghi? Mi hai pingato! Che ti pinghi?! Pingati a tua sorella! :oþ

Questa riga va inserita nei remotes e fa in modo che ad un ping di un utente venga inviato un notice di risposta con la scritta che vedete...
Potete provare a mettere il comando nei remote ed a pingarvi per vedere l'effetto risultante.
Secondo me, vi piacerà talmente tanto che vi sparerete un colpo in testa dalla contentezza.

NOTA: questo è importanterrimo!!! Nella finestra dei remote, in alto, c'è una voce di menu che si chiama Listen. Dovete sempre verificare che siano attive tutte e tre le voci presenti: CTCPs, RAW e EVENTs. E' estremamente importante, perchè se nei remotes c'è un comando relativo ai CTCP e la voce CTCPs nel Listen è disattivata, il comando verrà ignorato. Stessa cosa per le altre due voci.


Sintassi Remotes

I comandi dei remotes, tranne in alcuni casi, sono formati da tre parti distinte.
Queste tre parti sono suddivise da una colonna.
Generalmente si presentano così:

{livello del comando}:{comando ctcp}:{risposta al comando(i) con parametro(i)}

Studiamoci le singole parti una per una.

{livello del comando}: si riferisce alla User List. Praticamente associa il comando ad un particolare livello degli user. Se vogliamo riferire il comando ad un utente generico, dobbiamo utilizzare il livello 1 che è il livello di default del mirc che viene associato ad un utente generico.

{comando ctcp}: si riferisce al tipo di CTCP che è stato inviato a noi e al quale dobbiamo rispondere. Può riferirsi ad un CTCP standard (ping, version, ecc) o ad un CTCP creato da noi.
Più avanti farò qualche esempiuzzo per chiarire meglio 'u cunciett'.

{risposta al comando(i) con parametro(i)}: in questa parte verranno definiti i comportamenti dello script in risposta ad un CTCP pervenutoci. Per dirla in due parole, ciò che lo script dovrà fare quando ci arriverà un determinato CTCP.

Torniamo al vecchio esempio ed analizziamolo.

1:ping:/notice $nick Mi pinghi? Mi hai pingato! Che ti pinghi?! Pingati a tua sorella! :oþ

1 è il livello del comando. Tutti gli utenti che hanno livello 1 o superiore faranno eseguire il comando.

Ping è il CTCP relativo al comando. Se arriverà PING di un utente, il comando verrà eseguito.

/notice $nick Mi pinghi.... Questo è il comando che verrà eseguito.

Tutto chiaro?
Si -----> vai a pag. 396
No -----> vai a pag. 203
Forse -----> vai a pag. 185
....
Ma che cazzo faccio??? Ma sono scemo?!? Scusate... :°(°°°°

Naturalmente possono venire utilizzati diversi comandi utilizzando il carattere | (pipe) e venir richiamati alias. Le possibilità sono praticamente illimitate.
Se avete un mulinex in serie al vostro PC, potete addirittura farvi fare uno zabaione.
Gran figata lo scripting ;o)


Reazioni differenti per livelli differenti

Come avrete intuito (se non siete dementi), è possibile assegnare un livello ad ogni tipo di utente e quindi determinare diverse reazioni dello script.
Analizzate un po' questi esempi:

1:ping:/notice $nick ping? mmmm il tuo livello e' trooooooppo basso!!!... | /halt
2:ping:/notice $nick ping? mmmm! ... pang pang... Crepa in silenzio!!
3:ping:/notice $nick ping? ...pang !! mmm... mancato... :oþ
6:ping:/notice $nick ping? mmm! ... Mi piaci... da te mi lascio pingare... :o)

Ad ogni utente viene assegnato un reply ben preciso e differenziato.
Com'e' possibile farlo per i reply dei ping, così e' possibile farlo per i join, per i deop, e per qualsiasi tipo di evento remote.


Identificatori speciali per Remotes/Commands

$nick, $address, $parms, $parm1, $parm2, $parm1*, $parm2* etc. sono tutti identificatori creati specificatamente per essere usati neli remote.
Puoi usarli quando vuoi nelle righe di comandi...

$nick Il nick della persona che ha fatto attivare l'evento
$address L'address completo della persona che invia il comando
$site Il site della persona che invia il comando
$level Rappresenta il livello dell'utente
$parms Il testo che la persona ha inviato relativo al comando
$parm1 Ti permette di spezzare il $parms in parole singole
$parm3* Contiene la terza parola nel comando e tutte quelle che la seguono

NOTA: $chan NON E' SEMPRE DEFINITO nei Comandi Remoti... $chan normalmente contiente il nome del canale nel quale è dato un certo comando... i comandi CTCP non vengono eseguiti da nessun canale... o la persona che li esegue non sta su nessun canale... Chiaro il punto?? Forse $active potra' aiutarvi?

Questo semplice esempio usa il parametro $address predefinito...

1:address:/notice $nick Il tuo address e' $address

Se un user ti invia un /ctcp {yournick} address, tu gli inviearai un reply con un notice nel quale dirai: "Il tuo address e' {suo address}".

Oppare gli amici su richiesta. (Uso di $parms)
Se non ti e' chiaro il funzionamento di quest'esempio, non ti preoccupare.
Prova a seguire il Lamerone e vedrai che ti faccio scattare la molla nel cervello.
Rileggiti gli esempi e le spiegazioni, se non ti si scianquiglia il tempiozzo (:o?) ma non provare a creare eventi remoti o ad andare avanti con la lezionese non sei sicuro che la molla sia scattata.

1:opme:/notice $nick Vuoi essere oppato su $parms ma il tuo livello e' troppo basso.
5:opme:/mode $parms +o $nick

Se un utente fa un /ctcp tuonick opme #canale, lo script verifichera' il livello della persona.
Se il livello sara 5 o superiore, verra' oppato, altrimenti, pippe.
In questo esempio, il $parms corrisponde al canale, come'e' facilmente intuibile.

Il $parms puo' venir usato anche per frasi lunghe...

5:return:/notice $nick $parms

Questo comando inviera' un notice con tutte le parole che ci ha inviato...
Immaginiamo che un utente faccia /ctcp {yournick} return Bladiebla die bladie bla bla bla.
Questo comando fara' in modo che il nostro mIRC reagisca inviando un /notice friend Bladiebla die bladie bla bla bla.


Comandi multipli

Un evento CTCP puo' far scattare diversi comandi contemporaneamente.

5:opme:/mode $parms +o $nick | /notice $nick sei stato oppato su $parms

Quindi invierai all'amico (che ha livello 5) il comando /ctcp {tuonick} opme #nomecanale

Che succede??
In effetti il CTCP opme ha fatto eseguire due comandi:
/mode #name +o amico
/notice amico Sei stato oppato su #nomecanale

Un altro esempio di CTCP con comandi multipli e':

10:part:/part $parms | /notice $nick Ho lasciato il canale $parms

Se un utente di livello 10 ti invia /ctcp {tuonick} part #nomecanale, tu uscirai dal canale e invierai un notice all'utente dicendo "Ho lasciato il canale #nomecanale"

$parms cintiene il nome del canale che devi lasciare
$nick e' il nick dell'utente di livello 10 che ti ha inviato la richiesta di part

Altri esempi:

1:ping:/notice $nick Non mi pingare.

...quando verrai pingato, risponderai con /notice {nick} Non mi pingare.

5:time:/notice $nick Ora di anna' aff...

...quando riceverai un ctcp time, risponderai con: "/notice {nick} Ora di anna' aff...

10:ndostai:/notice $nick Io sono dove io so di essere | /notice $nick e quindi NON ROMPERE!

...quando riceverai un ctcp ndostai, risponderai con un "/notice {nick} Io sono dove io so di essere" e quindi con un "/notice {nick} e quindi NON ROMPERE!".