OSSL/de
From OpenSimulator
(Created page with "__NOTOC__ {{Quicklinks}} <br /> Dies ist derzeit in einem der Blog-Beiträge von justincc [http://justincc.wordpress.com/2008/10/24/opensim-scripting-languages-lsl-and-ossl] ...") |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | {{Quicklinks}} | + | {{Quicklinks|OSSL}} |
<br /> | <br /> | ||
− | + | == Einführung in die OpenSimulator-Skriptsprache (OSSL) == | |
− | + | ||
− | + | Die OpenSimulator-Skriptsprache (OSSL) erweitert die Linden Scripting Language (LSL) um zusätzliche Funktionen, die speziell für die OpenSimulator-Plattform entwickelt wurden. | |
− | + | ||
− | + | Diese Erweiterungen beginnen mit dem Präfix „os“ und bieten zusätzliche Möglichkeiten, die in LSL nicht verfügbar sind, wie z.B. das Teleportieren von Agenten oder das Anzeigen dynamischer Texturen. | |
− | + | ||
− | + | == Implementierung einer OSSL-Funktion == | |
− | + | Um eine neue OSSL-Funktion hinzuzufügen, sind folgende Schritte notwendig: | |
− | + | === 1. Implementierung der Funktion === | |
+ | Erstellen Sie eine neue Methode in der Datei `OSSL_Api.cs` im Verzeichnis `OpenSim.Region.ScriptEngine.Shared.Api`. Die Methode sollte die gewünschte Funktionalität enthalten, z.B.: | ||
− | + | csharp | |
− | + | <source lang="csharp"> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | <source lang=" | + | |
public string osMyFunction() | public string osMyFunction() | ||
{ | { | ||
− | |||
CheckThreatLevel(ThreatLevel.None, "osMyFunction"); | CheckThreatLevel(ThreatLevel.None, "osMyFunction"); | ||
− | + | m_host.AddScriptLPS(1); | |
− | + | return "Hallo Welt!"; | |
− | + | ||
− | + | ||
− | m_host.AddScriptLPS(1); | + | |
− | + | ||
− | return "Hallo Welt!"; | + | |
− | + | ||
} | } | ||
</source> | </source> | ||
− | + | === 2. Schnittstelle erweitern === | |
+ | Fügen Sie die Methodensignatur der Schnittstelle `IOOSL_Api` im Verzeichnis `OpenSim.Region.ScriptEngine.Shared` hinzu: | ||
+ | csharp | ||
+ | <source lang="csharp"> | ||
string osMyFunction(); | string osMyFunction(); | ||
+ | </source> | ||
− | + | === 3. Funktion zur Basis-Klasse hinzufügen === | |
− | <source lang=" | + | In der Datei `OSSL_Stub.cs` im Verzeichnis `OpenSim.Region.ScriptEngine.Shared.Api.Runtime` fügen Sie die Methode hinzu, um die Funktion über das Interface aufzurufen: |
+ | |||
+ | csharp | ||
+ | <source lang="csharp"> | ||
public string osMyFunction() | public string osMyFunction() | ||
{ | { | ||
Line 57: | Line 45: | ||
</source> | </source> | ||
− | + | === 4. OpenSimulator neu kompilieren === | |
+ | Kompilieren Sie OpenSimulator neu und starten Sie den Region-Server. | ||
− | + | === 5. OSSL-Funktionen aktivieren === | |
+ | Stellen Sie sicher, dass in Ihrer `OpenSim.ini` die Einstellung `AllowOSFunctions = true` aktiviert ist, damit die os-Funktionen ausgeführt werden. | ||
− | + | == Verwendung der neuen OSSL-Funktion == | |
− | + | Nach dem Neustart des Servers können Sie die neue Funktion in einem Skript verwenden: | |
+ | |||
+ | lsl | ||
<source lang="lsl"> | <source lang="lsl"> | ||
default | default | ||
Line 74: | Line 66: | ||
</source> | </source> | ||
− | + | == Sicherheitsstufen (Threat Level) == | |
− | + | ||
− | == | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | Jede OSSL-Funktion wird einer Bedrohungsstufe zugewiesen, die bestimmt, wie sicher ihre Ausführung ist. | |
− | + | Diese Stufen reichen von `None` (keine Bedrohung) bis `High` (hohe Bedrohung). | |
− | + | Der Regionsadministrator kann die Bedrohungsstufen in der `OpenSim.ini` anpassen und einzelne Funktionen aktivieren oder deaktivieren. | |
== Beiträge willkommen == | == Beiträge willkommen == |
Latest revision as of 23:51, 30 August 2024
Languages: |
English Deutsch |
[edit] Einführung in die OpenSimulator-Skriptsprache (OSSL)
Die OpenSimulator-Skriptsprache (OSSL) erweitert die Linden Scripting Language (LSL) um zusätzliche Funktionen, die speziell für die OpenSimulator-Plattform entwickelt wurden.
Diese Erweiterungen beginnen mit dem Präfix „os“ und bieten zusätzliche Möglichkeiten, die in LSL nicht verfügbar sind, wie z.B. das Teleportieren von Agenten oder das Anzeigen dynamischer Texturen.
[edit] Implementierung einer OSSL-Funktion
Um eine neue OSSL-Funktion hinzuzufügen, sind folgende Schritte notwendig:
[edit] 1. Implementierung der Funktion
Erstellen Sie eine neue Methode in der Datei `OSSL_Api.cs` im Verzeichnis `OpenSim.Region.ScriptEngine.Shared.Api`. Die Methode sollte die gewünschte Funktionalität enthalten, z.B.:
csharp
public string osMyFunction() { CheckThreatLevel(ThreatLevel.None, "osMyFunction"); m_host.AddScriptLPS(1); return "Hallo Welt!"; }
[edit] 2. Schnittstelle erweitern
Fügen Sie die Methodensignatur der Schnittstelle `IOOSL_Api` im Verzeichnis `OpenSim.Region.ScriptEngine.Shared` hinzu:
csharp
string osMyFunction();
[edit] 3. Funktion zur Basis-Klasse hinzufügen
In der Datei `OSSL_Stub.cs` im Verzeichnis `OpenSim.Region.ScriptEngine.Shared.Api.Runtime` fügen Sie die Methode hinzu, um die Funktion über das Interface aufzurufen:
csharp
public string osMyFunction() { return m_OSSL_Functions.osMyFunction(); }
[edit] 4. OpenSimulator neu kompilieren
Kompilieren Sie OpenSimulator neu und starten Sie den Region-Server.
[edit] 5. OSSL-Funktionen aktivieren
Stellen Sie sicher, dass in Ihrer `OpenSim.ini` die Einstellung `AllowOSFunctions = true` aktiviert ist, damit die os-Funktionen ausgeführt werden.
[edit] Verwendung der neuen OSSL-Funktion
Nach dem Neustart des Servers können Sie die neue Funktion in einem Skript verwenden:
lsl
default { state_entry() { llSay(0, osMyFunction()); } }
[edit] Sicherheitsstufen (Threat Level)
Jede OSSL-Funktion wird einer Bedrohungsstufe zugewiesen, die bestimmt, wie sicher ihre Ausführung ist.
Diese Stufen reichen von `None` (keine Bedrohung) bis `High` (hohe Bedrohung).
Der Regionsadministrator kann die Bedrohungsstufen in der `OpenSim.ini` anpassen und einzelne Funktionen aktivieren oder deaktivieren.
[edit] Beiträge willkommen
OSSL ist keineswegs vollständig. Daher sind Patches zur Implementierung von Funktionen, die Sie in LSL haben möchten, willkommen - wir freuen uns immer, sie zu prüfen :-)