Portale IRC - Guide scripts e snippet

martedì 16 novembre 2010

I Popups - Creazione di Menu' e Sotto Menu'

Popups

mIRC permette la generazione di menu popups per le finestre di status, query/chat, di canale, per le nickname listbox ed infine per i menubar. Questo sarà possible solamente usando comandi IRC, generando Aliases, Identificatori e Variabili.

Cliccando il pulsante destro del mouse in una delle finestra sopra citate apparirà il menu popups, sarà così possibile selezionare alcune delle funzioni inseritevi tra le quali per esempio oppare utenti o entrare in un canale.


Esempi
Il formato usato del menu popups è il seguente:

<menuitem>:<comando>

Richiesta d'aiuto:/join #irchelp

Il testo che precede il simbolo ":" è il nome assegnato al collegamento. Il testo invece posto dopo il simbolo ":" non è altro che il comando assegnato al menu stesso. In questo caso, nel menu principale apparirà il collegamento "Richiesta d'aiuto", cliccandoci col muose il comando rispettato sarà "/join #irchelp".

Il comando usato per l'esempio specifico è l'Aliases di cui ne consigliamo la consultazione per maggiori chiarimenti.


Per la creazione di un Submenu, basta introdurre il simbolo ".".

Entrare in un Canale
.Richiesta d'aiuto!:/join #irchelp
.Entra nel canale #mondoirc:/join #mondoirc
.Entra in?:/join $?

In questo caso il menu principale è chiamato "Entrare in un Canale", come si può notare i submenu sono preceduti dal simbolo ".".

Per creae menu nel submenu, basterà introdurre un altro ".":

Canali
.Aiuto
..irchelp:/join #irchelp
..mIRC:/join #mirc
..mondoirc:/join #mondoirc

.Altri Canali
..Visita #Italia:/join #Italia
..Wibble Wobble:/join #wibble
.Entra in?:/join #$$?="Inserisci il nome del canale in cui entrare:"

Per la separazione delle voi di menu, bisognerà introdurre il carattere "-".

whois ?:/whois $?
-
Vari
.Edita Testo:/run notepad.exe temp.txt
.say?: /say $?
.action?:/me $?
Canali
.#irchelp: /names #irchelp
.#mondoirc: /names #mondoirc
.nome ?:/nome $?
-
lista canali:/list
-
Entra in un Canale
.Richiesta d'aiuto!:/join #irchelp

.Entra in #mondoirc:/join #mondoirc
.Entra in?:/join $?

Per l'utilizzo del menu popups in una listbox di nickname, bisognerà prima selezionare un nickname. Ecco qui un esempio di menu:

Who Is?:/whois $1
-
Modi
.Op:/mode # +o $1
.Deop:/mode # -o $1
.Kick, Ban:/kick # $1 | /ban $1
-
DCC Send:/dcc send $1
DCC Chat:/dcc chat $1
-
Query:/query $1 Ciao! Ci sei...?

Nel caso si voglia generare un menu che effettui parecchi comandi, sarà necessario usare le parentesi "()". Consigliamo la consultazione della sezione Aliases per maggiori informazioni sul loro utilizzo.


Cookie
if ($1 == $me) echo I give myself a cookie!
else echo I give $1 a cookie!


Il suddetto esempio può essere usato in una listbox di nickname. Il parametro $1 si riferisce al nickname dell'utente selezionato nella lista. In questo caso, lo script controllerà se il nick selezionato è il proprio e, in caso affermativo visualizzerà il primo messaggio, vicecersa il secondo.

I popup menus per le Query/Chat ed i MenuBar utilizzano lo stesso principio sopra descritto.


Identificatori e Variabili
Le variabili e gli identificatori facenti parte dei comandi di un menu sono valutati ad ogni comparsa del popups. Ciò permette la genarazione di menu popup che variano nell'apparenza. Nel caso in cui un'intera voce di menu fosse valuta con $null, essa non sarà visualizzata.


Remote Scripts
L'introduzione di menu negli script remote è possibile grazie al prefisso menu.

menu status
Server
.Links:/links

.Lusers:/lusers
.Motd:/motd
.Time:/time


Questa definizione aggiunge un submenu al popup menu della finestra status..

E' possibile inoltre specificare canali, query, nicklist, e menubar come nome del menu, così facendo si andrà ad aggiungere menuitems ai menu correnti del popup per ciascuna di queste finestre.


menu nicklist
Schiaffo
.Haddock:/me prods $1 with a haddock


Questa definizione aggiungerà un submenu al popup menu della listbox dei nickname.


E' possibile generare inoltre menu popups utilizzando le finestre personalizzate specificandone il nome.

menu @test
dclick:/echo double-click!


Il comando dclick permette la specificazione del comando che verrà eseguito al momento del doppio-click nella finestra listbox personalizzata. .

E' inoltre possibile generare delle finestre multiple, esempio.:

menu @dogs,@cats,@goats
dclick: /echo double-click in $active

close: window -c $active


E' possibile utilizzare l'identificatore $menu per riferirsi ad un menu presente nel popup oppure associato ad uno script performato. Questo permette di modificare sia la forma base del popup che quella relativa a query, canale etc.

menu query,nicklist
$iif($menu == nicklist,Op):/mode # +o $$1

Menu Styles
Disporre un "segnalibro" o generare una voce di menu disabilitata è possibile usando l'identificatore $style(N), in cui N = 1 per il controllo, N = 2 per disabilitarlo e N = 3 per entrambi i comandi. L'identificatore $style(N) deve precedere la stringa del menu.


menu status
$iif($server == $null,$style(2)) Server Info
.Motd:/motd
.Time:/time


Il suddetto esempio genera un submenu nella finestra dello status, il quale verrà abilitato solo una volta connessi al server Irc.

$submenu($id($1))
Questo identificatore permette la generazione dinamica della menu list che potrà essere richiamata soltanto da una definizione del menu popups.

Il comando in questione è $id($1), dove $id() è il nome dell'identificatore e $1 = 1 verrà incrementato di una unità ad ogni richiamo.


Il valore restituito da $id() dovrà essere una disposizione di definizione di una delle linee del popups menu.

L'iterazione ends agirà quando $id() non restituirà alcuna valuta.

menu status
Animal
.$submenu($animal($1))


alias animal
if ($1 == begin) return -
if ($1 == 1) return Cow:echo Cow
if ($1 == 2) return Llama:echo Llama
if ($1 == 3) return Emu:echo Emu
if ($1 == end) return -


L'inizio e la fine verranno trasmessi al comando nelc aso in cui l'articolo fosse contenuto da separatori.


Nota: Non è possibile usare questa funzione per la crezione di submenu con collegamenti incrociati.

Nessun commento:

Posta un commento