User:Daemonika Nightfire/Scripts/Grundlagen

From Second Life Wiki
Jump to navigation Jump to search

Grundsaetzlicher Aufbau

Ja ich weiss, ziemlich bescheuert ein Bild von einem Script auf einer scripting Wiki zu zeigen. Aber, vergleichen wir mal das linke Bild mit dem rechten Bild, dann wird ersichtlich worauf ich hinaus will.

Bild 1 (LSL Script) Bild 2 (Aktenschrank)
ScriptColored.jpg Aktenschrank.jpg
  • Die beiden Bilder sind ein Versuch eine sinnbildliche Vorstellung davon zu vermitteln, wie ein Event basierendes LSL Script strukturiert ist.
  • Wenn wir uns vorstellen, das der default State (Tuerkies) der Aktenschrank selbst ist und die einzelnen Events (Blau) durch die Schubladen repraesentiert werden, brauchen wir nur noch die Befehle (Rot) in die Schubladen hinein legen. Jede Schublade (Event) stellt ein tatsaechliches Ereigniss dar, worauf das Script reagieren kann.
  • Die Reihenfolge der Events ist nicht festgelegt, du kannst nach eigenen Beduerfnissen bestimmen an welcher stelle deine Events stehen sollen. Im direkten Vergleich ist es voellig egal welche Schublade oben steckt und welche unten.
  • Innerhalb eines Events spielt die Reihenfolge jedoch eine sehr grosse Rolle. Weil ein Script im Event alles der Reihe nach von oben nach unten abarbeitet, kann es zu seltsamen bzw. falschen Ergebnissen fuehren, wenn die Reihenfolge nicht stimmt. Du kannst z.B. nicht mit einer ID arbeiten, wenn du sie nicht vorher abgefragt hast.
  • Das Script auf der linken Seite kann mit der aktuellen konfiguration bis zum Sankt Nimmerleins Tag so stehen bleiben, ohne das irgend etwas passiert. Erst wenn jemand das Object clickt reagiert der touch_start Event und alles was sich darin befindet wird abgearbeitet.

Variablen

  • Text
Variable Beispiel Info
string Text = "bla bla bla"; Kommunikation
integer Ganzzahl = 1; Unbegrenzt / optional limitiert, beachte die Limits (Channel: -2147483648, 0, 2147483647)
float Kommazahl = 1.0; Unbegrenzt / optional limitiert, beachte die Limits (Objects: min. <0.01, 0.01, 0.01> max. <64.0, 64.0, 64.0>)
vector Kootdinate = <1.00000, 1.00000, 1.00000>; Unbegrenzt / optional limitiert, beachte die Limits (Limits unterscheiden sich je nach Funktion)
rotation Quaternion = <0.00000, 0.00000, 0.00000, 1.00000>; Migraene Quaternion / Mit diesem Converter geht das leichter. (Lass den Server rechnen.)
key UUID = "61ee201a-81cf-4322-b9a8-a5eb8da777c2"; Ein Key/UUID (universal unique identifier) kann alles sein LSL_Key
list Liste = ["bla bla bla", 1, 1.0, <1.00000, 1.00000, 1.00000>, <0.00000, 0.00000, 0.00000, 1.00000>, "61ee201a-81cf-4322-b9a8-a5eb8da777c2"];

Bestandteile

  • Text

States

  • Text

Befehle

  • Text

Bedingungen

  • Text