Log - Formazione Propedeutica
- [12:57] Salahzar Stenvaag: allora, iniziamo
- [12:57] Salahzar Stenvaag: l'idea era di far partire delle lezioni di script intermedi
- [12:57] Salahzar Stenvaag: che fossero produttivi
- [12:58] Salahzar Stenvaag: sulla lavagna vedere il programma che intendevo fare
- [12:58] Salahzar Stenvaag: una lezione propedeutica
- [12:58] Salahzar Stenvaag: (questa)
- [12:58] Salahzar Stenvaag: per fare un riepilogo delle varie cose
- [12:58] Salahzar Stenvaag: e poi una serie di lezioni
- [12:58] Salahzar Stenvaag: su come scriptare oggetti
- [12:58] Salahzar Stenvaag: ed approfondire tematiche
- [12:59] Salahzar Stenvaag: 1: comunicare a distanza
- [12:59] Salahzar Stenvaag: 2. rezzare oggetti
- [12:59] Salahzar Stenvaag: 3. sensori e sonde
- [12:59] Salahzar Stenvaag: 4. object inventory
- [12:59] Salahzar Stenvaag: 5. lettura di notecard
- [12:59] Salahzar Stenvaag: 6. costruzione di un vendor
- [13:00] Salahzar Stenvaag: poi si pensava di fare anche corsi avanzati
- [13:01] Salahzar Stenvaag: allora adesso vediamo le slide che ho preparato
- [13:01] Salahzar Stenvaag: alcune probabilmente sono banali
- [13:01] Salahzar Stenvaag: però le ho messe lo stesso
- [13:01] Salahzar Stenvaag: perchè qualcuno potrebbe non saperle
- [13:01] Salahzar Stenvaag: come vedete
- [13:02] Salahzar Stenvaag: ho cominciato proprio con come si fa uno script
- [13:02] Salahzar Stenvaag: poi si passa alla sintassi dello scripting
- [13:02] Salahzar Stenvaag: istruzioni, pardon
- [13:02] Salahzar Stenvaag: e poi si vede come funzionano alcuni comandi fondamentali
- [13:03] Salahzar Stenvaag: se per voi le cose sono troppo elementari, ditemelo
- [13:04] Salahzar Stenvaag: magari facciamo solo una piccola indagine
- [13:04] Salahzar Stenvaag: quanti di voi sanno bene come si fa uno script?
- [13:05] Salahzar Stenvaag: perfetto, allora vado un po' veloce
- [13:05] Salahzar Stenvaag: il sistema a)
- [13:05] Salahzar Stenvaag: che vedete qua
- [13:05] Salahzar Stenvaag: create new script è il più veloce, ma ad esempio non funziona ancora con opensim
- [13:05] Salahzar Stenvaag: scusa il modo b)
- [13:06] Salahzar Stenvaag: quello di cliccare su "New Script" dal content di un oggetto
- [13:06] Salahzar Stenvaag: invece creare uno script nell'inventory e poi trascinarlo sul content dell'oggetto funziona sempre
- [13:06] Salahzar Stenvaag: anche se è un po' scomodo
- [13:06] Salahzar Stenvaag: quando avete lo script creato
- [13:06] Salahzar Stenvaag: con doppio click o con tasto destro open potete editarlo
- [13:07] Salahzar Stenvaag: vedere sulla lavagna gli appunti
- [13:07] Salahzar Stenvaag: sull'uso del copia / incolla
- [13:07] Salahzar Stenvaag: credo che siano cose ovvie per voi
- [13:07] Salahzar Stenvaag: giusto?
- [13:07] Salahzar Stenvaag: è utile per cercare il testo
- [13:08] Salahzar Stenvaag: e la sintassi viene spiegata discretamente dall'editor "embedded" nel vostro browser
- [13:08] Salahzar Stenvaag: passando sopra una istruzione
- [13:08] Salahzar Stenvaag: vi dice esattamente la sintassi e i parametri
- [13:08] Salahzar Stenvaag: ok, passiamo allo stato dello script
- [13:09] Salahzar Stenvaag: potete mettere uno script in stato NON running
- [13:09] Salahzar Stenvaag: per fermarne l'esecuzione
- [13:09] Salahzar Stenvaag: oppure fare il reset dello script
- [13:09] Salahzar Stenvaag: quando uno script è non running
- [13:09] Salahzar Stenvaag: mantiene tutte le informazioni che stava elaborando
- [13:10] Salahzar Stenvaag: è un po' come quando lo mettete nell'inventory
- [13:10] Salahzar Stenvaag: si "sospende"
- [13:10] Salahzar Stenvaag: quando invece gli fate il reset
- [13:10] Salahzar Stenvaag: perde tutte le sue informazioni
- [13:10] Salahzar Stenvaag: il reset è l'unico modo per ripristinare uno stato di stack/collision
- [13:10] Salahzar Stenvaag: vale a dire quando aveter mandato in "overflow" la memoria degli script
- [13:11] Salahzar Stenvaag: che come sapete è molto bassa :(
- [13:11] Salahzar Stenvaag: ci sono solo 16Kbyte
- [13:11] Salahzar Stenvaag: ma in realtà di usabili effettivamente ce ne sono molto meno
- [13:11] Salahzar Stenvaag: perchè bisogna lasciare spazio
- [13:11] Salahzar Stenvaag: con il nuovo motore MONO
- [13:11] Salahzar Stenvaag: lo spazio utilizzabile aumenta
- [13:12] Salahzar Stenvaag: ma non in modo eccezionale :(
- [13:12] Salahzar Stenvaag: è chiaro?
- [13:12] Salahzar Stenvaag: questo invece è importante
- [13:12] Salahzar Stenvaag: gli script hanno la tendenza a "fare i capricci"
- [13:13] Salahzar Stenvaag: non funzionano quasi mai al primo colpo :)
- [13:13] Salahzar Stenvaag: quindi occorre abituarsi all'idea di mettere istruzioni di debug
- [13:13] Salahzar Stenvaag: per capire cosa stanno facendo
- [13:13] Salahzar Stenvaag: io le metto sempre, anche quando magari non le userò
- [13:13] Salahzar Stenvaag: questione di abitudine
- [13:14] Salahzar Stenvaag: poi ognuno ha uno stile personale
- [13:14] Salahzar Stenvaag: quindi quello che vi dico non è detto che debba essere la "verità rivelata"
- [13:14] Salahzar Stenvaag: anzi
- [13:14] Salahzar Stenvaag: cmq, la cosa più semplice è quella di fare dire all'oggetto con llSay
- [13:14] Salahzar Stenvaag: in punti opportuni delle informazioni
- [13:15] Salahzar Stenvaag: molti usano llOwnerSay
- [13:15] Salahzar Stenvaag: oppure llSay(0
- [13:15] Salahzar Stenvaag: ad esempio llOwnerSay("Sono stato toccato, x vale "+(string)x);
- [13:15] Salahzar Stenvaag: è sempre bello verificare il valore delle variabili che sia quello che ci aspettiamo
- [13:16] Salahzar Stenvaag: qui consiglio di usare come metodo di debug un canale, il 10 che non è quello normalmente usato per chattare
- [13:16] Salahzar Stenvaag: e nemmeno l'ownersay
- [13:16] Salahzar Stenvaag: in modo tale che se per caso vi dimenticate il debug attivo
- [13:16] Salahzar Stenvaag: non abbiate sporcamenti sulle vostre finestre
- [13:16] Salahzar Stenvaag: scrivere sul canale 10
- [13:17] Salahzar Stenvaag: potete sempre avere un tool che vi legga il canale 10
- [13:17] Salahzar Stenvaag: e vi rimandi i debug a voi o sul canale 0
- [13:17] Salahzar Stenvaag: ad esempio il Mystitool
- [13:17] Salahzar Stenvaag: che io uso normalmente lo fa facilmente
- [13:17] Salahzar Stenvaag: è chiaro?
- [13:17] You: il Mystitool è gratuito per i mentori, se lo desiderate inviatemi un IM alla fine
- [13:18] Salahzar Stenvaag: il Mystitool è pieno di cose utilissime
- [13:18] Salahzar Stenvaag: quindi io lo raccomando sempre
- [13:18] Salahzar Stenvaag: ma anche se non lo avete non è un grosso problema
- [13:18] Salahzar Stenvaag: sapendo scriptare si può ovviare LOL :)
- [13:19] Salahzar Stenvaag: ecco qui metto in colore azzurro i concetti più avanzati
- [13:19] Salahzar Stenvaag: si possono fare debug e tracciature usando altri sistemi oltre a llSay
- [13:19] Salahzar Stenvaag: ad esempio si può usare llSetText
- [13:20] Salahzar Stenvaag: per scrivere sulla cima di un oggetto delle informazioni preziose
- [13:20] Salahzar Stenvaag: ho visto script che colorano dei bottoni
- [13:20] Salahzar Stenvaag: per indicare che stanno elaborando
- [13:20] Salahzar Stenvaag: si possono mandare IM
- [13:20] Salahzar Stenvaag: ma la cosa più interessante è che si possono mandare le tracce
- [13:20] Salahzar Stenvaag: i debug
- [13:21] Salahzar Stenvaag: su un server web esterno, con comandi http
- [13:21] Salahzar Stenvaag: questo è un esempio di una funzione di debug
- [13:21] Salahzar Stenvaag: che scrive su un sito web
- [13:21] Salahzar Stenvaag: e consente di vedere il tabulato
- [13:22] Salahzar Stenvaag: l'ho messo in blu perchè è un argomento avanzato
- [13:22] Salahzar Stenvaag: quindi non è necessario che lo capiate
- [13:22] Salahzar Stenvaag: (almeno non adesso)
- [13:22] Salahzar Stenvaag: prima dobbiamo fare le lezioni sull'http
- [13:23] Salahzar Stenvaag: ma se qualcuno è interessato, lo script php è su un mio sito web
- [13:23] Salahzar Stenvaag: qui l'ho messo solo per farvi vedere che si può operare in infiniti modi
- [13:23] Kathrine Slade: il link che si trova lì?
- [13:23] Salahzar Stenvaag: :)
- [13:23] Salahzar Stenvaag: www.salahzar.info è il mio dominio personale
- [13:24] Salahzar Stenvaag: /lsl/httplog.php è il programma php che appende una stringa su un file
- [13:24] Salahzar Stenvaag: usando un file che si chiama diversamente a seconda della chiave k
- [13:25] Salahzar Stenvaag: la traccia la si leggerà poi su un browser (firefox) con la url www.salahzar.info/lsl/data/log_k
- [13:25] Salahzar Stenvaag: per evitare usi "abusivi" il programma risponde solo passandogli una password
- [13:25] Salahzar Stenvaag: questo per altro è un modello di uso "avanzato"
- [13:26] Salahzar Stenvaag: ma ne parleremo moolto più avanti :)
- [13:26] Salahzar Stenvaag: ok
- [13:26] Salahzar Stenvaag: qui parlo invece dei concetti legati alle permissions
- [13:26] Salahzar Stenvaag: suppongo che voi conosciate bene le permission più normali, giusto
- [13:26] Salahzar Stenvaag: ?
- [13:27] Salahzar Stenvaag: ok, per gli script normalmente
- [13:27] Salahzar Stenvaag: le permission che si usano sono le "full-permissions" per prodotti opensource
- [13:27] Salahzar Stenvaag: che regalate a chiunque
- [13:27] Salahzar Stenvaag: senza scopo di lucro
- [13:27] Salahzar Stenvaag: mentre normalmente se volete conservare la proprietà intellettuale usate copy ma NON modify
- [13:28] Salahzar Stenvaag: in modo che gli acquirenti non possano vedere il vostro script o trasferirlo
- [13:28] Salahzar Stenvaag: l'assenza di permissions è sconsigliabile
- [13:28] Salahzar Stenvaag: perchè rende praticamente impossibile usare gli oggetti scriptati
- [13:29] Salahzar Stenvaag: l'operazione di settaggio delle permissions
- [13:29] Salahzar Stenvaag: almeno per me
- [13:29] Salahzar Stenvaag: è una delle cose più noiose
- [13:29] Salahzar Stenvaag: e difficili
- [13:29] Salahzar Stenvaag: si rischia sempre di sbagliare
- [13:29] Salahzar Stenvaag: togliendo troppe permissions
- [13:29] Salahzar Stenvaag: o lasciandone troppe
- [13:29] Salahzar Stenvaag: chissà se sapete di tools che consentano
- [13:29] Salahzar Stenvaag: di verificare le permissions
- [13:29] Salahzar Stenvaag: o di impostarle in modo indolore?
- [13:30] Salahzar Stenvaag: (questo è in comune anche con i builders etc...)
- [13:30] Salahzar Stenvaag: ok
- [13:30] Salahzar Stenvaag: adesso andiamo sulla sintassi del linguaggio
- [13:30] Salahzar Stenvaag: non mi soffermo troppo sui numeri
- [13:30] Salahzar Stenvaag: che vedete nella slide
- [13:31] Salahzar Stenvaag: la cosa normalmente più interessante sono le stringhe
- [13:31] Salahzar Stenvaag: che in lsl sono molto più complesse di quello che sembra
- [13:31] Salahzar Stenvaag: specie se si usano caratteri "strani"
- [13:32] Salahzar Stenvaag: in pratica
- [13:32] Salahzar Stenvaag: se usate caratteri strani come le vocali accentate
- [13:32] Salahzar Stenvaag: queste contano "per due"
- [13:33] Salahzar Stenvaag: quindi una stringa di 10 caratteri può utilizzare anche 16-20 bytes
- [13:33] Salahzar Stenvaag: come nell'esempio di "città"
- [13:33] Salahzar Stenvaag: UTF-8 è la codifica dei caratteri che usa secondlife
- [13:34] Salahzar Stenvaag: che è simile alla codifica ASCII per i caratteri non accentati
- [13:34] Salahzar Stenvaag: la codifica ASCII è quella usata dalla maggior parte dei linguaggi di programmazione
- [13:34] Salahzar Stenvaag: mentre l'UTF-8 è utilizzato da Java
- [13:35] Salahzar Stenvaag: e serve per rappresentare i caratteri + strani
- [13:35] Salahzar Stenvaag: ditemi se sono troppo complicato ....
- [13:35] Salahzar Stenvaag: ok
- [13:35] Salahzar Stenvaag: invece qua ci sono gli altri tipi
- [13:36] Salahzar Stenvaag: la key che rappresenta un oggetto, un avatar etc
- [13:36] Salahzar Stenvaag: ed è una specie di "stringa"
- [13:36] Salahzar Stenvaag: i vettori e le rotazioni
- [13:36] Salahzar Stenvaag: che servono per le posizioni spaziali e le rotazioni
- [13:36] Salahzar Stenvaag: e le liste
- [13:36] Salahzar Stenvaag: che sono insieme il gioiello e la croce di lsl :(
- [13:37] Salahzar Stenvaag: conoscete tutti questi tipi?
- [13:37] Salahzar Stenvaag: se avete qualche dubbio su queste cose potete chiedermi
- [13:38] Salahzar Stenvaag: ok allora vado
- [13:38] Salahzar Stenvaag: dunque le variabili
- [13:38] Salahzar Stenvaag: sono dei pezzi di memoria
- [13:38] Salahzar Stenvaag: e sono FONDAMENTALI
- [13:39] Salahzar Stenvaag: tutti gli script usano almeno 1 variabile per memorizzare qualcosa
- [13:39] Salahzar Stenvaag: anche solo per l'intervallo di qualche istruzione
- [13:39] Salahzar Stenvaag: in lsl
- [13:39] Salahzar Stenvaag: le variabili globali vanno dichiarate in testa al programma
- [13:39] Salahzar Stenvaag: ogni volta che qualcuno modifica una variabile globale
- [13:39] Salahzar Stenvaag: questa cambia
- [13:40] Salahzar Stenvaag: e potrebbe dare fastidio ad altre parti di programma
- [13:40] Salahzar Stenvaag: pensate se avete una variabile intera di nome "i"
- [13:40] Salahzar Stenvaag: e ne cambiate il valore quando un pezzo di codice la sta usando per fare un loop
- [13:40] Salahzar Stenvaag: il linguaggio lsl è difficile
- [13:41] Salahzar Stenvaag: perchè molti eventi accadono praticamente nello stesso momento
- [13:41] Salahzar Stenvaag: e quindi è fondamentale evitare che un pezzo di script "sporchi" variabili gestite da altri pezzi di codice
- [13:41] Salahzar Stenvaag: le variabili locali invece si possono usare liberamente senza problemi
- [13:42] Salahzar Stenvaag: il mio consiglio
- [13:42] Salahzar Stenvaag: è quello di usare una convenzione
- [13:42] Salahzar Stenvaag: in modo da capire subito se una variabile è globale e specificare il tipo
- [13:42] Salahzar Stenvaag: quindi iNOTECARD
- [13:42] Salahzar Stenvaag: è una variabile globale
- [13:42] Salahzar Stenvaag: di tipo intero
- [13:42] Salahzar Stenvaag: vPOS è un vettore
- [13:43] Salahzar Stenvaag: globale e così via
- [13:43] Salahzar Stenvaag: poi ci sono le funzioni
- [13:43] Salahzar Stenvaag: le funzioni come scritto qua
- [13:43] Salahzar Stenvaag: servono per "riciclare" pezzi di codice
- [13:44] Salahzar Stenvaag: ad esempio per scrivere qualcosa in cima al vostro oggetto potreste avere una funzione
- [13:44] Salahzar Stenvaag: info(str)
- [13:44] Salahzar Stenvaag: che magari fa una llSetText(str,<1,0,0>,1)
- [13:44] Salahzar Stenvaag: sono utilissime
- [13:44] Salahzar Stenvaag: quindi ogni volta che fate una cosa ripetutamente utilizzatele
- [13:45] Salahzar Stenvaag: ecco e qui veniamo alla struttua a stati
- [13:45] Salahzar Stenvaag: struttura
- [13:45] Salahzar Stenvaag: in lsl voi potete avere oggetti che hanno più di uno stato
- [13:45] Salahzar Stenvaag: anche se francamente
- [13:46] Salahzar Stenvaag: la maggior parte degli script che ho visto ne utilizzano 1 o 2 al massimo
- [13:46] Salahzar Stenvaag: noi faremo finta per il momento che vi sia un solo stato quello di default
- [13:46] Salahzar Stenvaag: quello che siete obbligati a scrivere
- [13:47] Salahzar Stenvaag: all'interno di un evento vi sono gli eventi + importanti
- [13:47] Salahzar Stenvaag: che sono quelli in basso sulla slide
- [13:47] Salahzar Stenvaag: - touch_start
- [13:47] Salahzar Stenvaag: on_rez
- [13:47] Salahzar Stenvaag: state_entry
- [13:47] Salahzar Stenvaag: listen
- [13:47] Salahzar Stenvaag: timer
- [13:47] Salahzar Stenvaag: conoscete tutti questi eventi?
- [13:48] Salahzar Stenvaag: qualcuno mi sa dire la differenza fra touch_start e touch?
- [13:48] Salahzar Stenvaag: si infatti il + importante è touch_start
- [13:48] Salahzar Stenvaag: (ma c'è anche il touch_end)
- [13:49] Salahzar Stenvaag: è quello utilizzato e parte al momento in cui l'oggetto viene toccato
- [13:49] Salahzar Stenvaag: il touch(integer count)
- [13:49] Salahzar Stenvaag: continua ad essere chiamato finchè l'avatar continua a toccare l'oggetto
- [13:49] Salahzar Stenvaag: quindi diciamo ogni mezzo secondo
- [13:50] Salahzar Stenvaag: il che crea anche un po' di stress
- [13:50] Salahzar Stenvaag: si esatto
- [13:50] Salahzar Stenvaag: quindi potreste fare uno script
- [13:50] Salahzar Stenvaag: che distingue le 3 fasi
- [13:50] Salahzar Stenvaag: se ne aveste bisogno
- [13:50] Salahzar Stenvaag: o che calcoli quanti secondi un avatar ha tenuto cliccato un oggetto
- [13:50] Salahzar Stenvaag: potrebbe essere un modo potente che so per
- [13:50] Salahzar Stenvaag: fare dei flipper
- [13:51] Salahzar Stenvaag: cmq ve l'ho fatto vedere
- [13:51] Salahzar Stenvaag: perchè il linguaggio di scripting di sl
- [13:51] Salahzar Stenvaag: pur apparentemente spartano
- [13:51] Salahzar Stenvaag: è in realtà ricchissimo
- [13:51] Salahzar Stenvaag: di cose particolari
- [13:51] Salahzar Stenvaag: basta solo la fantasia per farci sopra le cose + strane
- [13:52] Salahzar Stenvaag: ok veniamo ai costrutti elementari
- [13:52] Salahzar Stenvaag: ritengo che i primi li conosciate tutti
- [13:52] Salahzar Stenvaag: giusto?
- [13:52] Salahzar Stenvaag: il comando @label
- [13:52] Salahzar Stenvaag: e jum label
- [13:52] Salahzar Stenvaag: jump
- [13:52] Salahzar Stenvaag: sono l'equivalente del goto
- [13:52] Salahzar Stenvaag: si esatto
- [13:53] Salahzar Stenvaag: e viene utilizzato a volte per due motivi
- [13:53] Salahzar Stenvaag: 1\ perchè risparmia bytes
- [13:53] Salahzar Stenvaag: 2\ perchè può essere utile per uscire da un ciclo
- [13:53] Salahzar Stenvaag: il goto
- [13:53] Salahzar Stenvaag: permette di spostare l'elaborazione ad un altro punto dello script
- [13:54] Salahzar Stenvaag: è simile all'if then else
- [13:54] Salahzar Stenvaag: con la differenza che è "incondizionato"
- [13:54] Salahzar Stenvaag: l'if then else va al blocco else se il test non è verificato
- [13:54] Salahzar Stenvaag: il jump va "sempre" alla label
- [13:54] Salahzar Stenvaag: e di solito come dicevo viene utilizzato
- [13:54] Salahzar Stenvaag: per uscire da un loop
- [13:55] Salahzar Stenvaag: oppure da qualche programmatore pazzo e scatenato
- [13:55] Salahzar Stenvaag: lol
- [13:55] Salahzar Stenvaag: io ho visto molti pezzi di codice dei guru pieni di jum
- [13:55] Salahzar Stenvaag: jump
- [13:56] Salahzar Stenvaag: diciamo che di solito si riesce "quasi" sempre a farne a meno :)
- [13:56] Salahzar Stenvaag: ma ve l'ho messo così se lo vedete lo capite
- [13:56] Salahzar Stenvaag: io la prima volta che l'ho visto in lsl mi ha messo un po' in crisi
- [13:56] Salahzar Stenvaag: e qui veniamo invece alle cose "truci"
- [13:56] Salahzar Stenvaag: la potenza di lsl sta nella sua libreria di funzioni
- [13:57] Salahzar Stenvaag: queste in questa pagina le dovreste conoscere già
- [13:57] Salahzar Stenvaag: uno scripter elementare dovrebbe averle già usate tutte
- [13:57] Salahzar Stenvaag: giusto? :)
- [13:57] Salahzar Stenvaag: queste invece
- [13:57] Salahzar Stenvaag: sono per i "guru"
- [13:58] Salahzar Stenvaag: mi sa che non le avete mai usate
- [13:58] Salahzar Stenvaag: in particolare l'ultima istruzione
- [13:58] Salahzar Stenvaag: studiatela bene
- [13:58] Salahzar Stenvaag: perchè viene usata spesso da script che hanno problemi di memoria
- [13:59] Salahzar Stenvaag: nella prima funzione non c'è una vera e prorpia chiave
- [13:59] Salahzar Stenvaag: la key
- [13:59] Salahzar Stenvaag: è una cosa che viene indicata anche come UUID
- [13:59] Salahzar Stenvaag: nella letteratura dei guru
- [13:59] Salahzar Stenvaag: ed è un algoritmo complessissimo
- [14:00] Salahzar Stenvaag: che usa il computer su cui è stata generata
- [14:00] Salahzar Stenvaag: la data e l'ora
- [14:00] Salahzar Stenvaag: e alcuni elementi casuali
- [14:00] Salahzar Stenvaag: le UUID sono garantite essere UNIVOCHE in tutto l'universo
- [14:00] Salahzar Stenvaag: (almeno sulla terra) lol
- [14:00] Salahzar Stenvaag: cmq si
- [14:01] Salahzar Stenvaag: le puoi vedere come una specie di chiave di accesso all'oggetto
- [14:01] Salahzar Stenvaag: qui con MD5
- [14:01] Salahzar Stenvaag: si intende invece un altro algoritmo diverso dall UUID
- [14:01] Salahzar Stenvaag: che estrae un integer
- [14:01] Salahzar Stenvaag: a partire da una stringa
- [14:01] Salahzar Stenvaag: in questo caso non si garantisce l'univocità
- [14:02] Salahzar Stenvaag: è un discorso un po' complesso da fare
- [14:02] Salahzar Stenvaag: per cui lo saltiamo adesso
- [14:02] Salahzar Stenvaag: ve lo facevo vedere come al solito
- [14:02] Salahzar Stenvaag: per farvi vedere la ricchezza del linguaggio
- [14:02] Salahzar Stenvaag: anche nella sua "semplicità"
- [14:02] Salahzar Stenvaag: se trovate da qualche parte x=(x="")+x+c;
- [14:02] Salahzar Stenvaag: adesso sapete cosa vuol dire?
- [14:03] Salahzar Stenvaag: vuol dire semplicemente l'aggiunta della stringa c alla stringa x
- [14:03] Salahzar Stenvaag: viene raccomandata dalla linden
- [14:03] Salahzar Stenvaag: per risparmiare spazio
- [14:03] Salahzar Stenvaag: ok
- [14:04] Salahzar Stenvaag: qui abbiamo invece alcune funzioni matematiche
- [14:04] Salahzar Stenvaag: non mi addentro
- [14:04] Salahzar Stenvaag: ma llFrand
- [14:04] Salahzar Stenvaag: può essere utile
- [14:04] Salahzar Stenvaag: per generare dei channel casuali
- [14:04] Salahzar Stenvaag: le rotazioni per il momento le lasciamo anche loro tranquille
- [14:05] Salahzar Stenvaag: e qui invece abbiamo funzioni sempre + interessanti
- [14:05] Salahzar Stenvaag: come dicevo prima le liste sono insieme il gioiello e la croce di lsl
- [14:05] Salahzar Stenvaag: si possono fare tantissime cose
- [14:06] Salahzar Stenvaag: ma spesso in modo abbastanza complesso
- [14:06] Salahzar Stenvaag: comunque le funzioni su questa pagina sono quelle + intuitive
- [14:06] Salahzar Stenvaag: tra queste le più usate
- [14:06] Salahzar Stenvaag: sono llGetListLength
- [14:07] Salahzar Stenvaag: e llList2<type>
- [14:07] Salahzar Stenvaag: la seconda per estrarre un elemento da una lista
- [14:08] Salahzar Stenvaag: queste invece sono le funzioni + avanzate
- [14:11] Salahzar Stenvaag: allora
- [14:11] Salahzar Stenvaag: in realtà molte di queste funzioni
- [14:11] Salahzar Stenvaag: meriterebbero una lezione a parte per ognuna di loro
- [14:12] Salahzar Stenvaag: io sto facendo solo una carrellata
- [14:12] Salahzar Stenvaag: in modo tale che almeno le abbiate già viste
- [14:12] Salahzar Stenvaag: poi di volta in volta quando le useremo
- [14:12] Salahzar Stenvaag: vi spiegherò i loro vari aspetti
- [14:13] Salahzar Stenvaag: delle funzioni di lista che vedete vi sono vari concetti che vi accenno
- [14:13] Salahzar Stenvaag: 1\ strided list
- [14:13] Salahzar Stenvaag: sono la cosa più vicina alle "matrici"
- [14:13] Salahzar Stenvaag: array n-dimensionali
- [14:13] Salahzar Stenvaag: che lsl possa fornire
- [14:14] Salahzar Stenvaag: in realtà sono un trucco
- [14:14] Salahzar Stenvaag: ad esempio se avete una matrice di 10 righe per 2 colonne
- [14:14] Salahzar Stenvaag: in lsl si possono rappresentare con una lista "stirata"
- [14:14] Salahzar Stenvaag: ad esempio la lista
- [14:15] Salahzar Stenvaag: list matrix=*[ "a",5,"b",6,"c",7];
- [14:15] Salahzar Stenvaag: potrebbe corrispondere ad una matrice di 3 righe per 2 colonne
- [14:15] Salahzar Stenvaag: la prima riga è "a" 5
- [14:15] Salahzar Stenvaag: la seconda "b" 6
- [14:15] Salahzar Stenvaag: ecc
- [14:16] Salahzar Stenvaag: questa lista viene indicata come una lista con "stride=2"
- [14:16] Salahzar Stenvaag: stride credo che si possa tradurre come "salto" od intervallo
- [14:16] Salahzar Stenvaag: quindi dice che "ogni due" parte una nuova riga
- [14:16] Salahzar Stenvaag: non so se ve l'ho presentato chiaramente
- [14:17] Salahzar Stenvaag: ok allora stop con le stride per il momento
- [14:17] Salahzar Stenvaag: l'altro grosso concetto
- [14:17] Salahzar Stenvaag: è rappresentato dalla trasformazione di una lista in stringa
- [14:17] Salahzar Stenvaag: e viceversa
- [14:17] Salahzar Stenvaag: questo è IMPORTANTISSIMO
- [14:17] Salahzar Stenvaag: perchè spesso nelle liste vi sono informazioni importanti
- [14:18] Salahzar Stenvaag: che devono essere trasmesse fra oggetti
- [14:18] Salahzar Stenvaag: come vedremo
- [14:18] Salahzar Stenvaag: e dobbiamo avere uno strumento per mandare la lista come se fosse una stringa
- [14:19] Salahzar Stenvaag: le funzioni più semplici per fare questo sono llList2CSV (lista=>stringa)
- [14:19] Salahzar Stenvaag: e llCSV2List (stringa lista)
- [14:19] Kathrine Slade: cosa fa llListStatistics?
- [14:19] Salahzar Stenvaag: quella è molto potente
- [14:19] Salahzar Stenvaag: data una lista con dei valori misurati
- [14:19] Salahzar Stenvaag: consente di estrarre informazioni
- [14:19] Salahzar Stenvaag: come la media
- [14:19] Salahzar Stenvaag: lo scarto quadratico medio
- [14:19] Salahzar Stenvaag: ed altre informazioni statistiche
- [14:20] Salahzar Stenvaag: prova a farlo in cobol LOL
- [14:20] Salahzar Stenvaag: ecco
- [14:20] Salahzar Stenvaag: nell'ultima riga
- [14:20] Salahzar Stenvaag: avete invece il solito trucco
- [14:20] Salahzar Stenvaag: strano
- [14:20] Salahzar Stenvaag: lst=(lst=*[])+lst+x
- [14:21] Salahzar Stenvaag: in particolare per le liste
- [14:21] Salahzar Stenvaag: una lista potrebbe essere lunga 4-5000 bytes
- [14:21] Salahzar Stenvaag: se non si facesse in quel modo si perderebbero 5000 bytes
- [14:21] Salahzar Stenvaag: lst+=x
- [14:22] Salahzar Stenvaag: usa 3 volte la memoria per lst
- [14:22] Salahzar Stenvaag: mentre la sintassi che vi ho detto usa solo 2 volte lo spazio di memoria
- [14:22] Salahzar Stenvaag: se avete script cicciuti
- [14:22] Salahzar Stenvaag: dovete sapere fare queste cose
- [14:23] Salahzar Stenvaag: altrimenti non vanno :)
- [14:23] Salahzar Stenvaag: okay ora
- [14:23] Salahzar Stenvaag: torniamo ad argomenti + terra terra
- [14:23] Salahzar Stenvaag: sicuramente avete già usato la lllisten
- [14:23] Salahzar Stenvaag: (con 3 elle) lol
- [14:23] Salahzar Stenvaag: sapete che è importante scegliere un canale
- [14:23] Kathrine Slade: no con tre l mi manca..:D
- [14:24] Salahzar Stenvaag: e sapete la differenza fra il canale 0, canali positivi e negativi
- [14:24] Salahzar Stenvaag: allora lo zero è quello che dà più fastidio
- [14:24] Salahzar Stenvaag: e dà anche più lag
- [14:25] Salahzar Stenvaag: ma anche i canali positivi sono pesanti
- [14:25] Salahzar Stenvaag: i canali negativi, essendo utilizzati solo dagli oggetti
- [14:25] Salahzar Stenvaag: generano MENO lag
- [14:25] Salahzar Stenvaag: ricordatevi di usare sempre la MINORE quantità possibile di llListen
- [14:26] Salahzar Stenvaag: gli IM viaggiano su canali propri totalmente diversi
- [14:26] Salahzar Stenvaag: si
- [14:26] Salahzar Stenvaag: i canali negativi generano meno lag
- [14:26] Salahzar Stenvaag: perchè non vengono rimbalzati su tutti i browser
- [14:27] Salahzar Stenvaag: ma rimangono nel computer remoto
- [14:27] Salahzar Stenvaag: => meno traffico di rete
- [14:27] Salahzar Stenvaag: questa slide
- [14:27] Salahzar Stenvaag: vi spiega la frustrazione
- [14:27] Salahzar Stenvaag: che si ha a volte
- [14:27] Salahzar Stenvaag: con le lllisten
- [14:28] Salahzar Stenvaag: avete fatto uno splendido script
- [14:28] Salahzar Stenvaag: ma quando gli parlate
- [14:28] Salahzar Stenvaag: o quando fate touch e c'è il menu
- [14:28] Salahzar Stenvaag: lui non fa nulla
- [14:28] Salahzar Stenvaag: la soluzione è una cosa (a parte essere perfettissimi e non dimenticarsi nulla)
- [14:28] Salahzar Stenvaag: lol
- [14:29] Salahzar Stenvaag: mettete tante scritte di debug per essere sicuri che tutto sia come deve essere
- [14:29] Salahzar Stenvaag: la llListen venga fatta sul canale giusto
- [14:29] Salahzar Stenvaag: eccetera.
- [14:29] Salahzar Stenvaag: poi a volte voi stessi fate in modo che l'oggetto reagisca SOLO se siete l'owner
- [14:29] Salahzar Stenvaag: ad esempio io ho modificato questa lavagna
- [14:30] Salahzar Stenvaag: in modo che SOLO IO posso cliccarne i tasti
- [14:30] Salahzar Stenvaag: poi lo vediamo in apposita lezione
- [14:30] Salahzar Stenvaag: e siamo al timer
- [14:30] Salahzar Stenvaag: anche questo coso
- [14:30] Salahzar Stenvaag: sembra semplice
- [14:31] Salahzar Stenvaag: ma ho visto fare delle cose con il timer :)
- [14:31] Salahzar Stenvaag: comunque nel suo comportamento più semplice
- [14:31] Salahzar Stenvaag: fa esattamente quello che sembra
- [14:31] Salahzar Stenvaag: fa scattare l'evento dopo tot secondi
- [14:31] Salahzar Stenvaag: come scritto viene spesso utilizzato
- [14:32] Salahzar Stenvaag: per rimuovere un listen dopo un certo intervallo di tempo
- [14:32] Salahzar Stenvaag: ricordatevi che finchè non fate llSetTimerEvent(0)
- [14:32] Salahzar Stenvaag: il timer rimane attivo
- [14:32] Salahzar Stenvaag: e continua a scattare
- [14:32] Salahzar Stenvaag: sul touch
- [14:33] Salahzar Stenvaag: (forse l'evento + usato su secondlife)
- [14:33] Salahzar Stenvaag: mi sa che lo sapete usare tutti
- [14:33] Salahzar Stenvaag: mi sapete dire che cosa rappresenta quell'integer count?
- [14:33] Salahzar Stenvaag: c'è scritto sulla slide :)
- [14:34] Kathrine Slade: il numero di avatar che tocca l'oggetto... (uffi)
- [14:34] Salahzar Stenvaag: però la maggior parte dei programmatori
- [14:34] Salahzar Stenvaag: non lo considerano
- [14:34] Salahzar Stenvaag: e usano semplicemente llDetectedKey(0)
- [14:34] Salahzar Stenvaag: perchè si suppone che in circostanze normali un solo avatar tocchi l'oggetto
- [14:34] Salahzar Stenvaag: e noi faremo anche così (siamo pigri)
- [14:35] Salahzar Stenvaag: ecco cosa si dovrebbe fare
- [14:35] Salahzar Stenvaag: ok saltiamo le altre interazioni
- [14:35] Salahzar Stenvaag: la llDialog
- [14:35] Salahzar Stenvaag: è anche usatissima
- [14:35] Salahzar Stenvaag: e come vedete quasi sempre insieme a touch-start
- [14:36] Salahzar Stenvaag: in questa slide
- [14:36] Salahzar Stenvaag: vedete che elenco le opzioni
- [14:36] Salahzar Stenvaag: dentro una lista
- [14:36] Salahzar Stenvaag: e poi la llDialog visualizza il menù in alto a destra (il classico menu blu)
- [14:36] Salahzar Stenvaag: la llDialog ha la particolarità
- [14:36] Salahzar Stenvaag: che l'ordine delle scelte nella lista
- [14:37] Salahzar Stenvaag: corrisponde in modo "strano" a come le visualizza
- [14:37] Salahzar Stenvaag: nel menù
- [14:37] Salahzar Stenvaag: questo succede quando avete più di 3 opzioni
- [14:37] Salahzar Stenvaag: perchè il maledetto
- [14:37] Salahzar Stenvaag: ordina le opzioni dal basso a sinistra verso destra
- [14:37] Salahzar Stenvaag: e poi va su in verticale
- [14:37] Salahzar Stenvaag: come se fossero coordinate X,Y
- [14:38] Salahzar Stenvaag: e non un testo che parte dall'alto a sinistra e poi scorre verso il basso
- [14:38] Salahzar Stenvaag: ci sono numerosi trucchi per ovviare a questo
- [14:38] Salahzar Stenvaag: se vedete questo listato
- [14:38] Salahzar Stenvaag: vedete che ho messo insieme un po' tutte le funzioni che vi ho descritto prima
- [14:39] Salahzar Stenvaag: touch_start
- [14:39] Salahzar Stenvaag: listen
- [14:39] Salahzar Stenvaag: dialog
- [14:39] Salahzar Stenvaag: timer
- [14:39] Salahzar Stenvaag: è chiaro quello che fa?
- [14:39] Kathrine Slade: si.. fa apparire un menù dando tot tempo di risposta
- [14:39] Salahzar Stenvaag: perfect
- [14:40] Salahzar Stenvaag: quella era l'ultima slide
- [14:40] Salahzar Stenvaag: vuol dire che adesso siete pronti per la prima lezione
|
Michel's Informazioni
|
Click per Ingrandire
|
Link VTeam
|
|
|
|