LSL Scripting Teil 1 - Die Grundlagen 
Freitag, den 29. August 2008 um 12:53 Uhr
LSL, oder Linden Scripting Language ausgeschrieben, ist die Scriptsprache in Second Life. Sie ist sehr ähnlich aufgebaut wie PHP, die serverseitige Web-Scriptsprache und wie auch PHP ein Abkömmling von der Hochsprache C.

LSL wird in Second Life dazu benutzt, um Objekten Leben einzuhauchen. Sie lässt die Second Life Residents mit Objekten interagieren. Mit LSL ist sehr vieles möglich. Ganz einfache Anwendungsbeispiele sind zum Beispiel Besucherzähler, automatische Begrüßer oder ähnliche Dinge.
Natürlich kann man damit auch kompliziertere Geschichten bauen, wie zum Beispiel eine automatisch fahrende Schwebebahn, Autos, Disco-Einrichtung wie Scheinwerfer, oder auch sogenannte HUDs, Head-Up Displays, die benutzt werden, um Informationen auf dem Bildschirm anzuzeigen oder andere Dinge in Second Life fernzusteuern.
 

Begriffe in LSL

Wie in jeder Programmier- oder Scriptsprache gibt es auch in LSL einige Begriffe, die kurz erklärt werden müssen. Da diese Begriffe und Bezeichnungen aber in jeder Sprache vorkommen, kann es durchaus sein, dass Ihr sie schon kennt. Woraus besteht also ein LSL Script?
 
  • State - Ein LSL Script hat eine bestimmte Struktur. Die States sind die Grund-"Container", die das eigentliche Script oder die eigentlichen Anweisungen enthalten.
  • Event - Ein Event ist eine Funktion in LSL, welche durch eine Aktion des Users oder durch eine Anweisung im Script aufgerufen und ausgeführt wird.
  • Function - Eine Function ist eine festgelegte Anweisung, die bestimmte Aufgaben erledigt und dem Script dann einen Rückgabewert liefert, mit dem man weiterarbeiten kann.
  • Variable - Eine Variable enthält einen bestimmten Wert. Dies kann ein String, also ein Text sein, aber auch eine Ganzzahl, Flieskommazahl oder eine ganze Liste von weiteren Werten.

Wie sieht ein LSL Script aus?

Wie oben schon gesagt, hat jedes LSL Script eine bestimmte Struktur. Wenn man in Second Life ein neues Script erstellt, hat dieses Script schon eben jene Grundstruktur und auch schon eine kleine Funktion. Schauen wir uns einmal solch ein neu erstelltes Script an: 
 
default
{
        state_entry ()
        {
                llSay(0, "Hello, Avatar!");
         }
        touch_start(integer total_number)
        {
                llSay(0, "Touched: "+(string)total_number);
        }
}
 
Dies also ist ein LSL-Script. Wir sehen ganz oben den ersten Container, genannt "default". Dies ist der Standard-State, der immer in einem Script enthalten sein muss. Der State "default" enthält hier jetzt schon zwei Events. Einmal das Event "state_entry()" und zum Zweiten das Event "touch_start()". Das Event "state_entry()" ist zwar nicht zwingend notwendig, sollte aber dennoch immer in einem Script enthalten sein. Dieser State wird sofort aufgerufen, sobald das Script gestartet wird, was geschieht, sobald man das Script in Second Life in ein Objekt einfügt. Das Event "touch_start()" ist schon ein Event, das auf eine Aktion des Users reagiert. Es wird erst gestartet, sobald ein User auf das Objekt klickt, das dieses Script enthält.

Ausserdem sehen wir noch eine Function in beiden Events: "llSay()". Diese Funktion gibt den Text, der in Anführungszeichen steht, hier in diesen zwei Fällen auf Kanal 0, also dem open public chat in Second Life, aus.

In diesem Script sehen wir schon sehr schön die grundsätzliche Struktur eines LSL-Scripts. Wir haben den State "default" als grundsätzlichen Container außen herum. Dann haben wir zwei Events im State "default". Einer wird gestartet, sobald das Script aktiv wird und der andere erst, sobald ein User auf das Objekt klickt. In beiden Fällen wird ein Text im Chat durch die Funktion "llSay()" ausgegeben.

Das ist aber noch nicht alles. Im Event "touch_start()" und auch dort in der function "llSay()" sehen wir noch etwas, was wir bisher noch nicht kennen: Eine Variable. Beim Event "touch_start(integer total_number)" bedeutet dies, das dieses Event im Falle, dass mehrere User zeitgleich auf das Objekt klicken, das das Script enthält, die Anzahl der User, die gleichzeitig auf das Objekt geklickt haben, in dieser Variable weitergibt. Innerhalb des Events "touch_start" kann man also diese Variable benutzen, um die Anzahl der klickenden User wieder auszugeben oder damit zu arbeiten. In unserem Fall hier, wird diese Anzahl einfach mit der Function "llSay()" wieder mit dem Text "Touched: " zusammen im public chat ausgegeben.


Mehr?


Nun, das obige Script ist ein sehr simples Beispiel dafür, wie ein LSL-Script aufgebaut ist und funktioniert. Mehr Informationen hierzu bekommt ihr demnächst, wenn weitere Tutorial-Teile zu diesem Thema veröffentlicht werden.

Ausserdem lohnt es sich natürlich einschlägige Webseiten, die sich mit diesem Thema befassen, zu studieren. Sehr zu empfehlen ist die folgende Seite:
Auf dem LSLWiki bekommt ihr zahlreiche Informationen, wie ein Script aussehen muss und was es enthalten kann. Ihr lernt dort die vielen verschiedenen Events und Funktionen kennen und könnt Euch die vielen Beispiele in der "Script Library" anschauen oder nachbauen.

Dieser erste noch recht kurz geratene Teil hat Euch hoffentlich gefallen. Wir sehen uns dann im nächsten Teil.
 

Bitte Einloggen oder Registrieren um Kommentare zu schreiben.

Panorama 

Neue Artikel:
rss-005

Metaversen 

Neue Artikel:
VWI RSS

IT / Tech 

Neue Artikel:
VWI RSS

Second Life 

Neue Artikel:
rss-005

Mitmach-News 

Neue Artikel:
rss-005