Difference between revisions of "User:Daemonika Nightfire/Scripts/Grundlagen"
Jump to navigation
Jump to search
Line 35: | Line 35: | ||
====Bedingungen <sup><i>(<span style="color: darkblue;">Akten-Mappe</span>)</i></sup>==== | ====Bedingungen <sup><i>(<span style="color: darkblue;">Akten-Mappe</span>)</i></sup>==== | ||
* Die einfachsten Bedingungen sind <span style="color: darkblue;">'''if'''</span>, <span style="color: darkblue;">'''else if'''</span> & <span style="color: darkblue;">'''else'''</span>. Sinngemaess vergleiche ich das immer mit '''Frage''', '''andere Frage''' & '''alles andere'''. | * Die einfachsten Bedingungen sind <span style="color: darkblue;">'''if'''</span>, <span style="color: darkblue;">'''else if'''</span> & <span style="color: darkblue;">'''else'''</span>. Sinngemaess vergleiche ich das immer mit '''Frage''', '''andere Frage''' & '''alles andere'''. | ||
* Bedingungen reihen sich ebenfalls schon '''ab''' der dritten Spalte in unser Script ein, Befehle die sich in einer Bedingung befinden, ruecken darin automatisch in die vierte Spalte. | |||
* Vorsicht mit der else, grunsdaetzlich sehe ich diese Bedingung in Second Life als unsauberen Programmierstiel und potentielle Fehlerquelle an. Die else sollte man nur dann verwenden, wenn man explizit wuenscht jede weiter moegliche Bedingung als nicht zutreffend zu definieren. Das bedeutet, die Verwendung von if & else if sind voellig ausreichend und lassen dem Script keinen Spielraum fuer Reaktionen bei falschen Anforderungen. | * Vorsicht mit der else, grunsdaetzlich sehe ich diese Bedingung in Second Life als unsauberen Programmierstiel und potentielle Fehlerquelle an. Die else sollte man nur dann verwenden, wenn man explizit wuenscht jede weiter moegliche Bedingung als nicht zutreffend zu definieren. Das bedeutet, die Verwendung von if & else if sind voellig ausreichend und lassen dem Script keinen Spielraum fuer Reaktionen bei falschen Anforderungen. | ||
* Weitere Informationen zu diesem Thema sind im folgenden Link: [[If | if]] | * Weitere Informationen zu diesem Thema sind im folgenden Link: [[If | if]] |
Revision as of 02:38, 8 January 2020
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) |
|
Bestandteile
- Text
States (Aktenschrank)
- Der erste und wichtigste State (Status) welcher default genannt wird ist unser all umfassender Aktenschrank und sollte sich immer in der ersten Spalte unserer gedachten Tabelle befinden. Ohne diesen State geht gar nichts. Bei einem einfachen Script befindet sich direkt darunter eine geoeffnete klammer und ganz am Ende des Scriptes eine geschlossene, um den State abzuschliessen. In einem State kann sich immer nur ein gleichnamiger Event gleichzeitig befinden.
- Nun haben wir die Moeglichkeit, in einem Script mehrere Aktenschraenke uebereinander zu stellen. Das bedeutet, wir koennen mehrere States verwenden. Dabei ist es wichtig, das weitere States nicht default heissen, sondern state irgendwas und ebenfalls nur einmal pro Name existieren. In jedem weiteren State koennen wir dann jeden Event noch einmal pro Name verwenden.
- Weiter fuehrende informationen ueber States und ein Beispiel wie man im Script den State wechselt findest du hier: State.
Events (Schublade)
- Nun folgen die Events (Ereignisse), wofuer die zweite Spalte unserer gedachten Tabelle vorgesehen ist. Auch hier besitzt jeder einzelne Event eine eigene geoeffnete Klammer darunter und eine geschlossene Klammer, wo wir den Event enden lassen moechten.
- Einige Events reagieren auf Interaktion mit einem Avatar, andere koennen Automatisiert werden und wieder andere werden durch einen Befehl ausgeloest.
- Ab hier koennen in einem Event bereits Befehle verwendet werden, welche dann in der Regel automatisch in die dritte Spalte eingerueckt werden, wie man oben auf dem linken Bild schon erkennen kann.
- Natuerlich gibt es auch hierzu weiter fuehrtende Informationen: Events
Bedingungen (Akten-Mappe)
- Die einfachsten Bedingungen sind if, else if & else. Sinngemaess vergleiche ich das immer mit Frage, andere Frage & alles andere.
- Bedingungen reihen sich ebenfalls schon ab der dritten Spalte in unser Script ein, Befehle die sich in einer Bedingung befinden, ruecken darin automatisch in die vierte Spalte.
- Vorsicht mit der else, grunsdaetzlich sehe ich diese Bedingung in Second Life als unsauberen Programmierstiel und potentielle Fehlerquelle an. Die else sollte man nur dann verwenden, wenn man explizit wuenscht jede weiter moegliche Bedingung als nicht zutreffend zu definieren. Das bedeutet, die Verwendung von if & else if sind voellig ausreichend und lassen dem Script keinen Spielraum fuer Reaktionen bei falschen Anforderungen.
- Weitere Informationen zu diesem Thema sind im folgenden Link: if
Befehle (Dokument)
- Text
Variablen (Inhalt)
- Text
Variable | Beispiel | Info |
---|---|---|
string Text = | "bla bla bla"; | Kommunikation |
integer Ganzzahl = | 1; | Optional begrenzt, beachte die Limits (Channel: -2147483648, 0, 2147483647) |
float Kommazahl = | 1.0; | Optional begrenzt, beachte die Limits (siehe vector) |
vector Kootdinate = | <1.00000, 1.00000, 1.00000>; | Optional begrenzt, beachte die Limits (Objects: min. <0.01, 0.01, 0.01> max. <64.0, 64.0, 64.0>) |
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"]; |