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 |