Corso Multiplayer
Applicazioni Multimediali Multiplayer su Web
2
– Scripting
–
–
–
–
–
–
–
Eventi
Elementi sul linguaggio
Costrutti di controllo flusso
Parametri impliciti
Eventi di movimento
Orientarsi nella documentazione
Array e SET
www.dimensionex.net
EVENTO
 A ogni
cosa che succede corrisponde un
EVENTO
 A ogni EVENTO viene generata una
chiamata
 A ogni chiamata, se gli corrisponde del
codice, questo viene ESEGUITO
www.dimensionex.net
EVENTO esempi
 All’inizio
del gioco
 Evento onStart
 Se esiste onStart, viene eseguito
www.dimensionex.net
EVENT
 EVENT


id_evento
Istruzione
Istruzione ..
 End_EVENT
www.dimensionex.net
 verificare Developers Ref.
EVENT Esempio
 EVENT

onStart
Call PopMonster() ‘Mia funzione che fa apparire un
‘mostro in una stanza a caso
 End_EVENT
www.dimensionex.net
EVENTO esempi
 Un
personaggio viene guardato (cliccato)
 Scatta l’evento persona.onLook
 Se esiste, l’evento viene eseguito e stop.
 Scatta
l’evento onLook (generico)
 Se esiste, l’evento viene eseguito.
www.dimensionex.net
Parametri impliciti
– chi possiede l’evento
equivale a this in Java
 $AGENT – chi ha iniziato l’azione
 $TARGET – terzo attore (a volte si usa, a
volte no)
 $OWNER
www.dimensionex.net
EVENT Model: persona.onLook
$AGENT
www.dimensionex.net
$OWNER
EVENTO onLook Esempio
SCRIPTS
EVENT tizio.onLook
Speak $OWNER,$AGENT,“Ehi cos’hai da
guardare?"
END_SCRIPTS
www.dimensionex.net
Speak
 Speak
[da,][dest,] frase [, frase…]
 “da”
Default è $OWNER
 “dest”
Default è $AGENT
 Se ci sono più frasi vengono stampate in ciclo
www.dimensionex.net
Speak da così…
SCRIPTS
EVENT tizio.onLook
Speak $OWNER,$AGENT,“Ehi cos’hai da
guardare?", “Lasciami in pace!“
END_SCRIPTS
www.dimensionex.net
…a così
SCRIPTS
EVENT tizio.onLook
Speak “Ehi cos’hai da guardare?",
“Lasciami in pace!“
END_SCRIPTS
www.dimensionex.net
Valori predefiniti
SYS (Voce di sistema)
 Usare
in “da”
$WORLD (Tutti i giocatori connessi al gioco)
 Usare
www.dimensionex.net
in “dest”
EVENTO onLook Esempio
SCRIPTS
EVENT tizio.onLook
Speak SYS,$WORLD,“Il giocatore “ +
$AGENT + “ guarda “ + $OWNER
END_SCRIPTS
www.dimensionex.net
Object Model di CHARACTERS
 Usare
il punto . per fare riferimento a una
proprietà
Persona.name
Nome della persona
Persona.container
Dove si trova la persona
(oggetto)
Persona.container.id
(id della stanza)
Persona.container.name (nome della stanza)
www.dimensionex.net
Print
 Print
 Print
[dest,] Che cosa [, che cosa…]
“In questa stanza c’è poca luce”
 Print “OWNER=“ + $OWNER + “
AGENT= “ + $AGENT
+ “ TARGET=“ + $TARGET
www.dimensionex.net
Assegnazione – ricordare un valore
Compleanno = “26 Luglio”
 Print Compleanno
26 Luglio

www.dimensionex.net
If .. Else
 If
(condizione)
– Istruzioni
 Else
– Istruzioni
 End_If
 Niente
THEN
 End_If e non End If
www.dimensionex.net
RndInt(N)
 Estrae
un numero a caso da 1 a N e lo
restituisce
www.dimensionex.net
If .. Else
If RndInt(2) = 1
Print “PARI!”
Else
Print “DISPARI!”
End_If
www.dimensionex.net
EVENT Model: persona.onHear
$TARGET
$AGENT
www.dimensionex.net
$OWNER
Stampare i parametri impliciti
 Print
“OWNER=“ + $OWNER + “
AGENT= “ + $AGENT
+ “ TARGET=“ + $TARGET
www.dimensionex.net
Vedere il log
 Cartella
system
 File debug#.log
 # = numero dello slot usato
 NB.:
Se non funziona rivedere
impostazione debugTo= nel file
worldnav#.properties
www.dimensionex.net
Eco di quanto detto
 EVENT
persona.onHear
 Speak $OWNER,$AGENT,”Mi hai detto: “
+ $TARGET + “, ma che significa?”
 END_EVENT
www.dimensionex.net
EVENT Model: stanza.onLoose
$AGENT
$OWNER
www.dimensionex.net
$TARGET
EVENT Model: persona.onExit
$OWNER
$AGENT
$TARGET
www.dimensionex.net
EVENT Model: persona.onEnter
$OWNER
$AGENT
$TARGET
www.dimensionex.net
EVENT Model: stanza.onReceive
$AGENT (?)
$TARGET
$OWNER
www.dimensionex.net
Consultare la Developers
Reference
 Come
funziona DimensioneX
 Configurazione
 Parte Design-time (DXW)
 Parte Run-Time (SmallBasic)
–
–
–
–
Object Model degli oggetti
Eventi del sistema
Funzioni disponibili
Istruzioni disponibili
www.dimensionex.net
Array
arrSaluti
1
2
3
4
“ciao”
“hola”
“hi”
“hello”
www.dimensionex.net
Array + RndInt(N)
 arrSaluti
= NewSet(“ciao,hola,hello”)
 Speak arrSaluti(RndInt(3))
 Ciao
 Hello
 Ciao
 Hola
www.dimensionex.net
SET
setOggetti
book
www.dimensionex.net
crown
scroll
sword
For Each Next
 For
Each var In set
– Istruzioni
 Next
 Attenzione
www.dimensionex.net
a set e array
For Each Next + SET
Print “personaggi presenti:”
For Each x In getCharactersIn(spiaggia)
Print x.name
Next
www.dimensionex.net
Riassunto
 Eventi
 Elementi
sul linguaggio
 Costrutti di controllo flusso
 Parametri impliciti
 Eventi di movimento
 Orientarsi nella documentazione
 Array e SET
www.dimensionex.net
Scarica

Lezione 2 - Scripting