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