Matthias Melzer
Second Life-Programmierung mit der Linden Scripting Language
Inhalt
8
Vorwort
14
Der Aufbau des Buches
15
Erforderliche Ressourcen
16
Typografische Konventionen
16
Die Beispiele und das Buch im SecondLife
16
Feedback
17
Danksagung
17
1 Einführung in LindenScript
18
1.1 Die Entwicklungsumgebung
18
1.2 Hello, Avatar!
20
1.3 Variablen
22
1.3.1 Deklarieren von Variablen
23
1.3.2 Variablen Werte zuweisen
25
1.4 Datentypen
26
1.4.1 Integer
26
1.4.2 Float
28
1.4.3 String
28
1.4.4 Vector
29
1.4.5 Rotation/Quaternion
35
1.4.6 Key
36
1.4.7 List
36
1.5 Typumwandlung
38
1.5.1 Explizite Typumwandlung
38
1.5.2 Implizite Typumwandlung
42
1.6 Operatoren
43
1.6.1 Zuweisungsoperator
43
1.6.2 Arithmetische Operatoren
44
1.6.3 Inkrement- und Dekrementoperatoren
45
1.6.4 Relationale Operatoren
46
1.6.5 Logische Operatoren
48
1.6.6 Binäre Operatoren
50
1.6.7 Sonstige Operatoren
53
1.6.8 Priorität der Operatoren
54
1.7 Konstanten
55
1.8 Anweisungen und Blöcke
56
1.9 Kontrollstrukturen
57
1.9.1 if und if-else
57
1.9.2 while-Schleife
60
1.9.3 do-while-Schleife
61
1.9.4 for-Schleife
61
1.9.5 jump
63
1.10 Funktionen
65
1.11 In LindenScript integrierte Funktionen
69
1.11.1 Funktionen zur string-Bearbeitung
69
1.11.2 Funktionen zur list-Bearbeitung
73
1.12 In Abschnitte eingeteilte Listen (Strided Lists)
84
1.13 Kartenziehen – ein erstes Beispielprogramm
86
1.14 Ereignisse/Events
92
1.14.1 Dem Benutzer zuhören – der Event
93
1.14.2 Zeitgesteuerte Skripte – der Event
96
1.14.3 Anweisungen beim Rezzen eines Objektes ausführen – der Event on_rez
97
1.15 Zustände/States
99
2 Primitives/Objekte
104
2.1 Was ist ein Primitive? Was ist ein Objekt?
104
2.1.1 Primitives
104
2.1.2 Objekte
105
2.2 Identität eines Prims
106
2.3 Zugriffsrechte
107
2.4 Einfache Manipulationen von Prim-Eigenschaften
110
2.4.1 Auf ein Wort – die allmächtige Funktion llSetPrimitiveParams
110
2.4.2 Die Eigenschaft Physikalisch
110
2.4.3 Die Eigenschaft Phantom
113
2.4.4 Die Eigenschaft Temporär
113
2.4.5 Prim-Dimensionen
114
2.4.6 Die Position eines Prims innerhalb von Second Life
115
2.5 Formen
120
2.5.1 Pfadschnitt/Path Cut
123
2.5.2 Hohl und Hohlform/Hollow and Hole Shape
125
2.5.3 Verdrehung (Torsion)/Twist
127
2.5.4 Verjüngung/Taper
127
2.5.5 Scherung/Topshear
130
2.5.6 Vertiefung/Dimple
130
2.5.7 Lochgröße/Holesize
131
2.5.8 Profilschnitt/Profile Cut
133
2.5.9 Versatz/Skew
135
2.5.10 Umdrehungen/Revolutions
135
2.5.11 Spiralform/Radius Delta
136
2.6 Farben und Texturen von Objekten
138
2.6.1 Farben
138
2.6.2 Face, die Seiten eines Prims
139
2.6.3 Texturen
144
2.6.4 Transparente Prims/Objekte
147
2.7 Licht
148
2.8 Textliches
149
2.9 Die Funktion llSetPrimitiveParams im Überblick
150
2.9.1 Die Konstanten und Übergabewerte von llSetPrimitiveParams
150
2.9.2 Basisformen setzen mit llSetPrimitiveParams
152
2.9.3 Überblick über die Parameter der Formmanipulation
154
2.9.4 Konstanten für Sculpted Prims
155
2.9.5 Konstanten für Bumpmapping
155
2.9.6 Glanz-Konstanten
156
2.9.7 Prim-Material
156
3 Verknüpfte Objekte/Linked Sets
158
3.1 Allgemeines zu verknüpften Objekten
158
3.2 Anweisungen in verknüpften Objekten
159
3.2.1 Versenden von Nachrichten in Linked Sets
159
3.2.2 Empfangen von Nachrichten in Linked Sets
160
3.2.3 Eigenschaften abfragen und manipulieren in Linked Sets
161
3.2.4 Programmatisches Anlegen und Auflösen von verknüpften Objekten
167
4 Objektinventar
174
4.1 Allgemeines zum Objektinventar
174
4.2 WYGIWYG – eine Beispielanwendung
175
4.2.1 Das Basisskript
176
4.2.2 Einen neuen Gegenstand im Objektinventar ermitteln
179
4.2.3 Objektinventarrechte und Übergabe eines Gegenstands an einen Spieler
183
4.3 Auslesen von Notizen/Notecards
189
4.4 Skriptfunktionen
194
4.4.1 Auslesen von Landmarks
196
5 Kommunikation
198
5.1 Dialoge
198
5.2 Instant Messages
203
5.3 E-Mail
204
5.4 HTTP
207
5.5 XML-RPC
210
5.6 Beispielanwendung RSS-Reader
210
5.6.1 XyText
211
5.6.2 Das serverseitige Abrufen des RSS-Feeds
214
5.6.3 Aufruf des PHP-Skriptes aus LindenScript heraus
215
5.6.4 Der RSS-Reader als Ganzes
216
5.7 Finaler Überblick zur Kommunikation in LindenScript
219
6 Rotation, Animation und Translation eines nichtphysikalischen Objekts
222
6.1 Einführung
222
6.2 Rotation von Prims
223
6.2.1 Mathematisches
223
6.2.2 Umrechnung von Grad in Radiant und umgekehrt
224
6.2.3 Drehung eines Prims/Objektes
224
6.2.4 Wiederholte Drehung eines Prims/Objektes
225
6.2.5 Animierte Drehung mit llTargetOmega
228
6.2.6 Lokale Rotation in Linked Sets
230
6.3 Rotation und Animation von Texturen
232
6.3.1 Animation von Texturen durch Einzelbilder
234
6.3.2 Animierte Rotation von Texturen
235
6.3.3 Animation einer Textur durch Skalierung
235
7 Avatarfunktion
238
7.1 Allgemeine Avatarfunktionen
239
7.2 Sitzen
243
7.3 Attachments
247
7.4 Animation von Avataren
251
7.5 Steuerung von Avataren/Controls
256
7.6 Money, Money, Money
260
7.7 Teleports
270
8 Media
274
8.1 Audio
274
8.1.1 In-world sound
274
8.1.2 Streaming Audio
281
8.2 Video
283
9 Partikel
288
9.1 Einführung
288
9.2 Partikelemissionen beenden
290
9.3 Der Emitter
290
9.4 Die Funktion llParticleSystem
291
9.4.1 Schemata/Pattern
292
9.4.2 Den Ausstoß von Partikeln beeinflussen
294
9.4.3 Farbe von Partikeln
295
9.4.4 Transparenz
296
9.4.5 Größe von Partikeln
297
9.4.6 Das Aussehen von Partikeln mit Texturen bestimmen
297
9.4.7 Rotation des Partikelemitters
299
9.4.8 Partikel auf ein Ziel zubewegen
299
9.4.9 Überblick über alle Übergabewerte an llParticleSystem
301
9.5 Partikelbeispiele
304
9.5.1 Bling Bling
305
9.5.2 Let it snow, let it snow, let it snow
306
9.5.3 Feuer!!!
307
10 Erweiterte Objektfunktionalität
310
10.1 Huds
310
10.1.1 Vorabinformationen
310
10.1.2 Ein Hud-gesteuerter Bildbetrachter
312
10.2 Sensoren
316
10.2.1 Allgemeines zu Sensoren
317
10.2.2 Beispielprogramm Avatar-Scanner-Attachment
319
10.3 Physikalische Objekte
323
10.3.1 Beschleunigung/acceleration
324
10.3.2 Drehmoment/torque
325
10.3.3 Geschwindigkeit/velocity
326
10.3.4 Kraft/force
326
10.3.5 Masse/mass
327
10.3.6 Impuls/impulse
328
10.3.7 Reibung/friction
329
10.3.8 Schwerkraft/gravity
329
10.3.9 Energie/energy
329
10.3.10 Weitere Funktionen für physikalische Objekte
330
10.4 Kollisionen
331
10.5 Abschließendes Beispielprogramm – eine Pistole
333
11 Fahrzeuge
342
11.1 Grundkonzepte
342
11.2 Autos
344
11.2.1 Mein erstes Auto
344
11.2.2 Auto 2.0 – jetzt mit Reifen
351
11.2.3 Türen, Motorhaube und Kofferraum
352
11.2.4 Du nicht
354
11.3 Wasserfahrzeuge
356
11.4 Ein fliegender Teppich
360
11.5 Die Parameter der vehicle-Funktion im Überblick
362
A Glossar
368
B Alle Events im Überblick
372
C Alternative Editoren
374
C.1 Compiler/Debugger
374
C.2 Editoren
374
C.3 Syntax-Checker
375
Register
376
© 2009-2024 ciando GmbH