Ana səhifə

Guida allo Scripting su mirc


Yüklə 378.5 Kb.
səhifə12/14
tarix25.06.2016
ölçüsü378.5 Kb.
1   ...   6   7   8   9   10   11   12   13   14

Ruser & Guser


COSA SONO ED A COSA SERVONO?


Guser e Ruser sono dei comandi che servono per riconoscere uno o piu' utenti (appartenenti tutti allo stesso gruppo) quando compiono un evento.

Per capire bene i guser & ruser è consigliato di leggere prima cosa sono gli eventi e l'user list.


Nel mIRC editor (tools --> remote --> Users) troverete una pagina dove andranno ad collocarsi tutti gli address degli utenti da voi inseriti tramite il comando guser.
COME SI USANO?
La sintassi corretta di questi due comandi è la seguente:
.guser prova pippo 3

.ruser prova pippo 3


Il primo comando INSERISCE l'utente "pippo" nel gruppo di utenti "prova"

Il secondo comando CANCELLA l'utente "pippo" dal gruppo di utenti "prova"


Provate, dopo aver inserito un utente con il guser, a vedere cos'è stato scritto nell'user list...

Troverete una cosa di questo tipo:


prova:*!*ident@*.dominio.it
In poche parole lo script ha inserito l'address dell'utente pippo nel gruppo "prova"
Quindi per chiarirci le idee proviamo a spezzettare e commentare il comando guser:
.guser prova pippo 4
guser = è il comando principale

prova = è il gruppo

pippo = è il nickname dell'utente (potete sostituirlo con $nick)

4 = è la mask *!*user@*.domain


Ricorda che puoi scegliere tra 10 mask diverse:
mask 1 *!user@host.domain

mask 2 *!*user@host.domain

mask 3 *!*@host.domain

mask 4 *!*user@*.domain

mask 5 *!*@*.domain

mask 6 nick!user@host.domain

mask 7 nick!*user@host.domain

mask 8 nick!*@host.domain

mask 9 nick!*user@*.domain

mask 10 nick!*@*.domain


Dopo aver spiegato come si usano proviamo a metterle in protica su qualche evento...
on prova:JOIN:#: {

.msg $nick ciao bello... come ti va la vita oggi?

}
In questo modo se un utente appartenente al gruppo "prova" entra in un canale (dove tu ovviamente ti trovi) gli arriva il messaggio "ciao bello... come ti va la vita oggi?"

Loop


Il comando GOTO serve per far saltare la lettura del codice da un punto dello script fino ad un altro.

ESEMPIO:
/number {

if ($1 == 1) goto one

elseif ($1 == 2) goto two

else goto unknown

:one

echo IL NUMERO UNO



halt

:two


echo IL NUMERO DUE

halt


:unknown

echo NUMERO SCONOSCIUTO

halt

}
Come abbiamo detto il comando " goto pippo " salta una parte dello script fino ad arrivare al comando " :pippo " ( sono findamentali i " : " prima della parola " pippo " )


E indispensabile inserire un " HALT " alla fine di ogni comando altrimenti lo script continuera' a leggere tutto fino alla fine.
While Loops
While è l'operatore che consente di eseguire delle operazione fino a quando una determinata condizione è verificata, la sintassi è while (condizione) { operazione } La while può sembrare a primo sguardo complicata o inutile ma se impariamo bene ad utilizzarla ci risparmieremo molta fatica, evitando quegli odiosi "cicli fasulli" che ritroviamo in tutti gli script =PPP
Potete usare /break per fermare tutto e /continue per ricominciare. Vediamo ora una stessa operazione costruita dapprima con il classico "goto" ed in seguito con la più "performante" while..

massdeop {

var %i = 1

:loop if ($opnick(#,%i) != $me) { mode # -ooo $opnick(#,%i) }

inc %i

if (%i > $opnick(#,0)) { halt }



goto loop

}
massedeop1 {

var %i = 1

while ($opnick(#,0) > %i) {

inc %i

if ($opnick(#,%i) != $me) { mode # -o $opnick(#,%i) }



}

}
Questa funzione esegue un semplicissimo massdeop nel canale attivo, ovvero se noi siamo op deopperà tutti gli altri operatori in termine di qualche secondo, come potete vedere il primo massdeop è stato creato con il vecchio goto, mentre nel secondo abbiamo adoperato la while, molto più adatta nel creare un ciclo simile, fra l'altro bisogna sottolineare che il massdeod con il goto è leggermente più lento, quindi immaginiamo di creare un codice leggermente più complicato, utilizzando il goto quando potremmo sostuirlo con la while, il risultato sarà un codice appesantito, fate un pò di pratica e capirete la grande utilità della while. ;D



Tokens


I tokens trovano largo impiego nell'uso delle variabili. Letteralmente token significa gettone. Molti al primo impatto non saprebbero dare una collocazione agli identificatori token, tuttavia possono risultare utili in molti casi. Una variabile è "tokenizzata" se il suo valore presenta degli opportuni separatori che, attraverso tali identificatori, fanno sì che la variabile sia interpretata quasi come una variabile multipla. Facciamo un dovuto esempio (che utilizzeremo in tutto il tutorial):


%tokenized = tkn1,tkn2,tkn3,tkn4
La variabile appena descritta è tokenizzata secondo il separatore "," (ASCII 44). I rispettivi tokens sono, in ordine:
tkn1

tkn2


tkn3

tkn4
Una variabile così impostata ci permette di sfruttare i numerosi identificatori token, che ci aiutano a modificare i singoli tokens o ad ottenere questi ultimi da una variabile tokenizzata. Il separatore da interpretare è C ed è espresso secondo il codice ASCII. Questo valore è comune a tutti gli identificatori token.


$addtok(variabile,token,C)
Aggiunge alla fine della variabile il token specificato (se non è già presente).
%addtok = $addtok(%tokenized,tkn5,44)
Il valore di %addtok è tkn1,tkn2,tkn3,tkn4,tkn5. Se invece fosse stato:
%addtok = $addtok(%tokenized,tkn1,44)
Il valore di %addtok sarebbe rimasto invariato.
$deltok(variabile,N-N2,C)
Cancella dalla variabile il N° token (o, se N2 è specificato, dal N° al N2° token).
%deltok = $deltok(%tokenized,3-4,44)
Il valore di %deltok è tkn1,tkn2.
$gettok(variabile,N,C)
Restituisce il N° token dalla variabile ($null se il token non esiste).
%gettok = $gettok(%tokenized,2,44)
Il valore di %gettok è tkn2.
$numtok(variabile,C)
Restituisce il numero di tokens della variabile.
%numtok = $numtok(%tokenized,44)
Il valore di %numtok è 4.
$istok(variabile,token,C)
Restituisce $true o $false a seconda che il token sia o no presente nella variabile.
%istok = $istok(variabile,tkn1,C)
Il valore di %istok è $true.
Questi sono gli identificatori più comuni. Una volta acquisita una certà abilità potrete passare a quelli qui sotto descritti, che comprendono anche altri spunti originali... :)
$findtok(variabile,token,N,C)
Restituisce la posizione del N° token presente nella stringa ($null se non è presente). Se N=0, restituisce tutte le corrispondenze di token.
%findtok = $findtok(%tokenized,tkn3,1,44)
Il valore di %findtok è 3.
%findtok = $findtok(%tokenized,tkn3,0,44)
Il valore di %findtok è 1.
$instok(variabile,token,N,C)
Inserisce il token alla posizione N della variabile (anche se il token esiste già).
%instok = $instok(%tokenized,tkn1,3,44)
Il valore di %instok è tkn1,tkn2,tkn1,tkn3,tkn4
$puttok(variabile,token,N,C)
Sostituisce il N° token della variabile con token.
%puttok = $puttok(%tokenized,tkn5,2,44)
Il valore di %puttok è tkn1,tkn5,tkn3,tkn4.
$remtok(variabile,token,N,C)
Rimuove dalla variabile la N^ corrispondenza di token.
%remtok = $remtok(%tokenized,tkn3,1,44)
Il valore di %remtok è tkn1,tkn2,tkn4.
$reptok(variabile,token,nuovotoken,N,C)
Sostituisce nella variabile la N^ corrispondenza di token con nuovotoken.
%reptok = $reptok(%tokenized,tkn2,tkn5,1,44)
Il valore di %reptok è tkn1,tkn5,tkn3,tkn4.
$matchtok(variabile,token,N,C)
Restituisce la posizione della N^ corrispondenza (o tutte se N=0) di token nella variabile.
%matchtok = $matchtok(%tokenized,tkn,2,44)
Il valore di %matchtok è 2.
%matchtok = $matchtok(%tokenized,tkn,0,44)
Il valore di %matchtok è 4.
$wildtok(variabile,wildtoken,N,C)
Restituisce la N^ corrispondenza (o tutte se N=0) di wildtoken con la variabile.
%wildtok = $wildtok(%tokenized,tkn*,3,44)
Il valore di %wildtok è tkn3.
%wildtok = $wildtok(%tokenized,tkn*,0,44)
Il valore di %wildtok è 4.
$sorttok(variabile,C,ordine)
Ordina la variabile secondo l'ordine specificato. Il default è l'ordine alfabetico ma può comprendere anche questi tipi:
n = ordine numerico

c = ordine secondo lo stato del canale (owner,op,voice)

r = ordine inverso
%sorttok = $sorttok(1.8.4.6.3,46,nr)
Il valore di %sorttok è 8.6.4.3.1 (ordine numerico inverso).
Altri comandi e identificatori token
/didtok dialog id C tokenized
Questo comando aggiunge a un editbox/listbox/combobox una lista tokenizzata secondo il separatore C.
%tokenized = Voce1;Voce2;Voce3;Voce4
/didtok dialog 1 59 %tokenized
Nella listbox con id 1 verranno inseriti, nell'ordine, le seguenti voci:
Voce1

Voce2


Voce3

Voce4
$didtok(dialog,id,C)


L'identificatore $didtok restituisce sotto forma di lista tokenizzata il contenuto di un editbox/listbox/combobox. Se consideriamo l'oggetto di prima dopo l'aggiunta delle voci:
%didtok = $didtok(dialog,1,59)
il valore di %didtok sarà Voce1;Voce2;Voce3;Voce4.
/tokenize C tokenized
Questo comando imposta i valori di $1, $2, $3 ... con gli elementi di tokenized.
/tokenized 46 tkn1.tkn2.tkn3.tkn4
Di conseguenza:
$1 -> tkn1

$2 -> tkn2

$3 -> tkn3

$4 -> tkn4




1   ...   6   7   8   9   10   11   12   13   14


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət