<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/index.php?action=history&amp;feed=atom&amp;title=OSSL%2Fde</id>
		<title>OSSL/de - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/index.php?action=history&amp;feed=atom&amp;title=OSSL%2Fde"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=OSSL/de&amp;action=history"/>
		<updated>2026-05-11T22:08:51Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54531&amp;oldid=prev</id>
		<title>Manni at 07:51, 31 August 2024</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54531&amp;oldid=prev"/>
				<updated>2024-08-31T07:51:34Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 07:51, 31 August 2024&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dies ist derzeit &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;einem der Blog&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Beiträge von justincc [http://justincc.wordpress.com/2008/10/24/opensim-scripting-languages-lsl-and-ossl] geschrieben. Einige dieser Informationen sollten hierher übertragen werden.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Einführung &lt;/ins&gt;in &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;die OpenSimulator&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Skriptsprache (&lt;/ins&gt;OSSL&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;) ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Lesen Sie, was [[&lt;/del&gt;OSSL &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Implementiert|implementiert]] ist.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''Im Folgenden handelt es sich um den fraglichen Blog&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Beitrag von JustinCC. Datierung vom 24. Oktober 2008.'''&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Die OpenSimulator&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Skriptsprache (&lt;/ins&gt;OSSL&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;) erweitert die Linden Scripting Language (LSL) um zusätzliche Funktionen&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;die speziell für die &lt;/ins&gt;OpenSimulator-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Plattform entwickelt wurden&lt;/ins&gt;. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''Hinweis: Ein neuer Mechanismus zum Hinzufügen von &lt;/del&gt;OSSL&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-Skriptfunktionen aus Regionsmodulen ohne jegliche Notwendigkeit&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;den &lt;/del&gt;OpenSimulator-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Code selbst zu patchen, wird unter [[OSSL_Script_Library/ModInvoke]] beschrieben&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;== Einleitung ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Diese Erweiterungen beginnen mit dem Präfix „os“ und bieten zusätzliche Möglichkeiten&lt;/ins&gt;, die in LSL &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nicht verfügbar sind, wie z.B. das Teleportieren von Agenten oder das Anzeigen dynamischer Texturen&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Trotz unseres langfristigen Wunsches&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;OpenSimulator zu einer allgemeinen virtuellen Umgebung zu machen, ist &lt;/del&gt;die &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Implementierung aller Funktionen &lt;/del&gt;in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;der Linden Scripting Language (&lt;/del&gt;LSL&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;) für die Second Life-Umgebung zu einem unserer de facto Ziele geworden&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dies ist aus zwei Gründen sehr verständlich:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Es gibt einen großen Bestand an Second Life-Skripten, die bereits in LSL geschrieben wurden. Je genauer unsere &lt;/del&gt;Implementierung &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;von LSL ist, desto einfacher ist es, diesen bestehenden Code wiederzuverwenden.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== &lt;/ins&gt;Implementierung &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;einer OSSL-Funktion ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Die Syntax und die ll-Funktionen von LSL stellen effektiv &lt;/del&gt;eine &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Sprachspezifikation dar. Dies ermöglicht es vielen verschiedenen Open&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Source-Beitragenden&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;auf 'Basar'-Art zu arbeiten. Viele verschiedene Personen können Patches beitragen, die ll-Funktionen stückweise implementieren, ohne ihre Bemühungen mit anderen Open-Source-Beitragenden abstimmen zu müssen.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Um &lt;/ins&gt;eine &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;neue OSSL&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Funktion hinzuzufügen&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sind folgende Schritte notwendig:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;LSL ist jedoch unvollkommen&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Abgesehen von Fragen zur Inkonsistenz &lt;/del&gt;der &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Implementierungen &lt;/del&gt;der &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ll-Funktionen von Linden Lab oder den Mängeln der Sprache selbst gibt es auch viele fehlende Funktionen&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Zum Beispiel kann man in LSL keinen Agenten teleportieren (stattdessen müssen verschiedene unvollkommene Workarounds verwendet werden)&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ebenso wenig kann man Daten auf Notecards schreiben oder Informationen über Avatar-Gruppenrollen herausfinden&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== 1&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Implementierung &lt;/ins&gt;der &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Funktion ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Erstellen Sie eine neue Methode in &lt;/ins&gt;der &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Datei `OSSL_Api&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cs` im Verzeichnis `OpenSim.Region.ScriptEngine.Shared.Api`. Die Methode sollte die gewünschte Funktionalität enthalten, z&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;B&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;== OpenSimulator-Skriptsprache (OSSL) ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;csharp &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wie könnte das Problem fehlender Funktionalität angegangen werden? Wenn wir die Aussicht auf die Verwendung vollständig unterschiedlicher Sprachen mit ihren eigenen Funktionsimplementierungen (C#, Python usw.) außer Acht lassen, ist eine Möglichkeit, dies zu tun, die Erweiterung von LSL durch das Hinzufügen zusätzlicher Funktionen, die von OpenSimulator verstanden werden. Dies ist es, was die OpenSimulator-Skriptsprache (OSSL) ist. Es handelt sich effektiv um alles von LSL plus zusätzliche Funktionen, die mit einem os-Präfix beginnen. Os-Funktionen können in einem Skript genau wie ll-Funktionen verwendet werden. Beispiele für Os-Funktionen sind:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;csharp&lt;/ins&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[osTeleportAgent|osTeleportAgent()]] ermöglicht es Ihnen, einen Agenten an eine andere Position und Region zu teleportieren.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[osSetDynamicTextureURL|osSetDynamicTextureURL()]] ermöglicht es Ihnen, ein externes oder dynamisch generiertes Bild in der Welt anzuzeigen (wie in diesem Inworld-Webseitenanzeigeskript oder meinem eigenen 'Graffiti-Board'-Skript, das Text auf einer einzelnen Textur in der Welt anzeigt).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[osParseJSON|osParseJSON()]] ermöglicht es Ihnen, JSON innerhalb eines Skripts zu analysieren. Dies ist kein so gutes Beispiel, da der Rückgabetyp HashTable es wahrscheinlich derzeit in LSL-Skripten unbrauchbar macht (das hier gezeigte Beispiel ist ein Skript in kompiliertem C#). Ich denke jedoch, dass es erweitert werden könnte, um eine Datenstruktur zurückzugeben, die in LSL verwendet werden könnte.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;== Wie man eine OSSL-Funktion implementiert - [[OSSL_Implementiert]] ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Das Implementieren einer OSSL-Funktion ist etwas umständlich - Sie müssen an 3 Stellen Änderungen vornehmen. Zuerst machen wir die eigentliche Implementierung selbst. Genau wie es eine LSL_Api-Klasse im Paket OpenSim.Region.ScriptEngine.Shared.Api gibt, die alle LSL-Funktionen implementiert, gibt es auch eine OSSL_Api-Klasse, die OSSL-Funktionen implementiert. Um eine neue Funktion zu implementieren, würde man in OSSL_Api.cs eine Methode mit demselben Namen hinzufügen. Zum Beispiel:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;lsl&lt;/del&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;public string osMyFunction()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;public string osMyFunction()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; // Wir werden das im nächsten Abschnitt besprechen&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; CheckThreatLevel(ThreatLevel.None, &amp;quot;osMyFunction&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; CheckThreatLevel(ThreatLevel.None, &amp;quot;osMyFunction&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; m_host.AddScriptLPS(1);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;#160; &amp;#160; return &amp;quot;Hallo Welt!&amp;quot;;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/source&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;// Lassen &lt;/del&gt;Sie die &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Statistiken wissen, dass eine Skriptzeile ausgeführt wurde&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== 2. Schnittstelle erweitern ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;m_host&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;AddScriptLPS(1);&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Fügen &lt;/ins&gt;Sie die &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Methodensignatur der Schnittstelle `IOOSL_Api` im Verzeichnis `OpenSim.Region.ScriptEngine&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Shared` hinzu:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;return &lt;/del&gt;&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Hallo Welt!&lt;/del&gt;&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;csharp&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;source lang=&lt;/ins&gt;&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;csharp&lt;/ins&gt;&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;string osMyFunction();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Die Methodensignatur für diese Implementierung muss dem Interface IOOSL_Api in &lt;/del&gt;OpenSim.Region.ScriptEngine.Shared &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(&lt;/del&gt;Api&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;/&lt;/del&gt;Interface&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-Verzeichnis) hinzugefügt werden&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== 3. Funktion zur Basis-Klasse hinzufügen ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;In der Datei `OSSL_Stub.cs` im Verzeichnis `&lt;/ins&gt;OpenSim.Region.ScriptEngine.Shared&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;Api&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.Runtime` fügen Sie die Methode hinzu, um die Funktion über das &lt;/ins&gt;Interface &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;aufzurufen&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160;  string osMyFunction();&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;csharp&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;csharp&lt;/ins&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Schließlich muss eine Methode zum Aufrufen der Funktion über dieses Interface zur ScriptBaseClass (die allen LSL- und OSSL-Skripten zugrunde liegt) in der Datei OSSL_Stub.cs im Paket OpenSim.Region.ScriptEngine.Shared.Api.Runtime hinzugefügt werden.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;lsl&lt;/del&gt;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;public string osMyFunction()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;public string osMyFunction()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 55:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dann ist es eine Frage der Neukompilierung von OpenSimulator und des Neustarts des Region-Servers&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Bevor &lt;/del&gt;Sie neu starten&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, stellen &lt;/del&gt;Sie &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sicher, dass&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== 4&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;OpenSimulator neu kompilieren ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Kompilieren &lt;/ins&gt;Sie &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;OpenSimulator &lt;/ins&gt;neu &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;und &lt;/ins&gt;starten Sie &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;den Region-Server.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;AllowOSFunctions = true&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== 5. OSSL-Funktionen aktivieren ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Stellen Sie sicher, dass in Ihrer `OpenSim.ini` die Einstellung `&lt;/ins&gt;AllowOSFunctions = true&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;` aktiviert ist, damit die os-Funktionen ausgeführt werden.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in Ihrer OpenSim.ini gesetzt ist. Wenn dies nicht gesetzt ist, wird keine os&lt;/del&gt;-Funktion &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ausgeführt, unabhängig davon, welches Bedrohungsniveau eingestellt ist (wie unten diskutiert).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Verwendung der neuen OSSL&lt;/ins&gt;-Funktion &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Nachdem Sie OpenSim neu gestartet haben, &lt;/del&gt;können Sie &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;osMyFunction() &lt;/del&gt;in einem &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Inworld-&lt;/del&gt;Skript &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aufrufen.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nach dem Neustart des Servers &lt;/ins&gt;können Sie &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;die neue Funktion &lt;/ins&gt;in einem Skript &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;verwenden:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;lsl&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;default&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 72:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 66:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;In Zukunft hoffe ich, dass es möglich sein wird, neue Funktionen über Plugins hinzuzufügen, anstatt die Datei OSSL_Api.cs zu ändern.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Sicherheitsstufen (&lt;/ins&gt;Threat Level&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;) &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Threat Level ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Sie haben möglicherweise die Zeile bemerkt&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''CheckThreatLevel(ThreatLevel.None, &amp;quot;osMyFunction&amp;quot;);'''&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;oben. Genau wie einige LL&lt;/del&gt;-&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Funktionen in &lt;/del&gt;einer &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;virtuellen Weltumgebung gefährlich sind und eingeschränkt werden müssen (z.B. llRezObject())&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;können auch os-Funktionen kontrolliert werden. Daher hat jede os-Funktion ein 'Bedrohungsniveau'&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;das vor der &lt;/del&gt;Ausführung &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;überprüft wird. Die Bedrohungsniveaus reichen von ''Keine'' (überhaupt keine Bedrohung) über ''Moderat'' (beabsichtigter Missbrauch kann zu einem Ausfall führen) bis hin zu ''Schwerwiegend'' (selbst gelegentliche Nutzung kann zu Regioninstabilität und/oder Datenverlust führen). Unsere BeispielosMyFunction() &lt;/del&gt;ist &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;als Keine eingestuft, weil sie einfach &amp;quot;Hallo Welt&amp;quot; zurückgibt. Etwas wie osTeleportAgent() ist derzeit als Hoch eingestuft, weil vor dem Teleportieren keine Sicherheitsüberprüfungen durchgeführt werden&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jede OSSL&lt;/ins&gt;-&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Funktion wird &lt;/ins&gt;einer &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Bedrohungsstufe zugewiesen&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;die bestimmt&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;wie sicher ihre &lt;/ins&gt;Ausführung ist. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Regionsadministratoren können das Niveau der os-Funktionen ändern, die sie zulassen möchten, indem sie das Attribut ''OSFunctionThreatLevel'' in der OpenSim.ini ändern. Sie können auch einzelne os-Funktionen ein- und ausschalten&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Diese Stufen reichen von `None` (keine Bedrohung) bis `High` (hohe Bedrohung)&lt;/ins&gt;. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;In einem öffentlichen virtuellen Weltkontext möchten Sie möglicherweise niemals Funktionen mit hohen Bedrohungsniveaus zulassen. In einer virtuellen Welt, &lt;/del&gt;in der &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;die zugelassenen Personen vertrauenswürdig sind, &lt;/del&gt;oder &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in Anwendungsvirtualumgebungen können das Zulassen solcher Funktionen jedoch viel sinnvoller sein&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Der Regionsadministrator kann die Bedrohungsstufen &lt;/ins&gt;in der &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;`OpenSim.ini` anpassen und einzelne Funktionen aktivieren &lt;/ins&gt;oder &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;deaktivieren&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Beiträge willkommen ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Beiträge willkommen ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54074&amp;oldid=prev</id>
		<title>Tampa at 18:07, 8 March 2024</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54074&amp;oldid=prev"/>
				<updated>2024-03-08T18:07:34Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 18:07, 8 March 2024&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;__NOTOC__&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;__NOTOC__&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Quicklinks}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Quicklinks&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|OSSL&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tampa</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54021&amp;oldid=prev</id>
		<title>Manni: /* Drohe mir nicht */</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54021&amp;oldid=prev"/>
				<updated>2024-03-05T10:27:19Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Drohe mir nicht&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:27, 5 March 2024&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In Zukunft hoffe ich, dass es möglich sein wird, neue Funktionen über Plugins hinzuzufügen, anstatt die Datei OSSL_Api.cs zu ändern.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In Zukunft hoffe ich, dass es möglich sein wird, neue Funktionen über Plugins hinzuzufügen, anstatt die Datei OSSL_Api.cs zu ändern.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Drohe mir nicht &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Threat Level &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sie haben möglicherweise die Zeile bemerkt&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Sie haben möglicherweise die Zeile bemerkt&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54020&amp;oldid=prev</id>
		<title>Manni: /* Wie man eine OSSL-Funktion implementiert - OSSL_Implementiert */</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54020&amp;oldid=prev"/>
				<updated>2024-03-05T10:25:00Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Wie man eine OSSL-Funktion implementiert - OSSL_Implementiert&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:25, 5 March 2024&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 45:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Die Methodensignatur für diese Implementierung muss dem Interface IOOSL_Api in OpenSim.Region.ScriptEngine.Shared (Api/Interface-Verzeichnis) hinzugefügt werden:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Die Methodensignatur für diese Implementierung muss dem Interface IOOSL_Api in OpenSim.Region.ScriptEngine.Shared (Api/Interface-Verzeichnis) hinzugefügt werden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;string osMyFunction();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160;  &lt;/ins&gt;string osMyFunction();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Schließlich muss eine Methode zum Aufrufen der Funktion über dieses Interface zur ScriptBaseClass (die allen LSL- und OSSL-Skripten zugrunde liegt) in der Datei OSSL_Stub.cs im Paket OpenSim.Region.ScriptEngine.Shared.Api.Runtime hinzugefügt werden.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Schließlich muss eine Methode zum Aufrufen der Funktion über dieses Interface zur ScriptBaseClass (die allen LSL- und OSSL-Skripten zugrunde liegt) in der Datei OSSL_Stub.cs im Paket OpenSim.Region.ScriptEngine.Shared.Api.Runtime hinzugefügt werden.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54019&amp;oldid=prev</id>
		<title>Manni: /* Wie man eine OSSL-Funktion implementiert - OSSL_Implementiert */</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54019&amp;oldid=prev"/>
				<updated>2024-03-05T10:24:06Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Wie man eine OSSL-Funktion implementiert - OSSL_Implementiert&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:24, 5 March 2024&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; // Wir werden das im nächsten Abschnitt besprechen&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; // Wir werden das im nächsten Abschnitt besprechen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; CheckThreatLevel(ThreatLevel.None, &amp;quot;osMyFunction&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160; CheckThreatLevel(ThreatLevel.None, &amp;quot;osMyFunction&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;kotlin&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// Lassen Sie die Statistiken wissen, dass eine Skriptzeile ausgeführt wurde&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;// Lassen Sie die Statistiken wissen, dass eine Skriptzeile ausgeführt wurde&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54018&amp;oldid=prev</id>
		<title>Manni: Created page with &quot;__NOTOC__ {{Quicklinks}} &lt;br /&gt;  Dies ist derzeit in einem der Blog-Beiträge von justincc [http://justincc.wordpress.com/2008/10/24/opensim-scripting-languages-lsl-and-ossl] ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=OSSL/de&amp;diff=54018&amp;oldid=prev"/>
				<updated>2024-03-05T10:23:36Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;__NOTOC__ {{Quicklinks}} &amp;lt;br /&amp;gt;  Dies ist derzeit in einem der Blog-Beiträge von justincc [http://justincc.wordpress.com/2008/10/24/opensim-scripting-languages-lsl-and-ossl] ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Quicklinks}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ist derzeit in einem der Blog-Beiträge von justincc [http://justincc.wordpress.com/2008/10/24/opensim-scripting-languages-lsl-and-ossl] geschrieben. Einige dieser Informationen sollten hierher übertragen werden.&lt;br /&gt;
Lesen Sie, was [[OSSL Implementiert|implementiert]] ist.&lt;br /&gt;
&lt;br /&gt;
'''Im Folgenden handelt es sich um den fraglichen Blog-Beitrag von JustinCC. Datierung vom 24. Oktober 2008.'''&lt;br /&gt;
'''Hinweis: Ein neuer Mechanismus zum Hinzufügen von OSSL-Skriptfunktionen aus Regionsmodulen ohne jegliche Notwendigkeit, den OpenSimulator-Code selbst zu patchen, wird unter [[OSSL_Script_Library/ModInvoke]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Trotz unseres langfristigen Wunsches, OpenSimulator zu einer allgemeinen virtuellen Umgebung zu machen, ist die Implementierung aller Funktionen in der Linden Scripting Language (LSL) für die Second Life-Umgebung zu einem unserer de facto Ziele geworden. Dies ist aus zwei Gründen sehr verständlich:&lt;br /&gt;
&lt;br /&gt;
Es gibt einen großen Bestand an Second Life-Skripten, die bereits in LSL geschrieben wurden. Je genauer unsere Implementierung von LSL ist, desto einfacher ist es, diesen bestehenden Code wiederzuverwenden.&lt;br /&gt;
&lt;br /&gt;
Die Syntax und die ll-Funktionen von LSL stellen effektiv eine Sprachspezifikation dar. Dies ermöglicht es vielen verschiedenen Open-Source-Beitragenden, auf 'Basar'-Art zu arbeiten. Viele verschiedene Personen können Patches beitragen, die ll-Funktionen stückweise implementieren, ohne ihre Bemühungen mit anderen Open-Source-Beitragenden abstimmen zu müssen.&lt;br /&gt;
&lt;br /&gt;
LSL ist jedoch unvollkommen. Abgesehen von Fragen zur Inkonsistenz der Implementierungen der ll-Funktionen von Linden Lab oder den Mängeln der Sprache selbst gibt es auch viele fehlende Funktionen. Zum Beispiel kann man in LSL keinen Agenten teleportieren (stattdessen müssen verschiedene unvollkommene Workarounds verwendet werden). Ebenso wenig kann man Daten auf Notecards schreiben oder Informationen über Avatar-Gruppenrollen herausfinden.&lt;br /&gt;
&lt;br /&gt;
== OpenSimulator-Skriptsprache (OSSL) ==&lt;br /&gt;
Wie könnte das Problem fehlender Funktionalität angegangen werden? Wenn wir die Aussicht auf die Verwendung vollständig unterschiedlicher Sprachen mit ihren eigenen Funktionsimplementierungen (C#, Python usw.) außer Acht lassen, ist eine Möglichkeit, dies zu tun, die Erweiterung von LSL durch das Hinzufügen zusätzlicher Funktionen, die von OpenSimulator verstanden werden. Dies ist es, was die OpenSimulator-Skriptsprache (OSSL) ist. Es handelt sich effektiv um alles von LSL plus zusätzliche Funktionen, die mit einem os-Präfix beginnen. Os-Funktionen können in einem Skript genau wie ll-Funktionen verwendet werden. Beispiele für Os-Funktionen sind:&lt;br /&gt;
&lt;br /&gt;
[[osTeleportAgent|osTeleportAgent()]] ermöglicht es Ihnen, einen Agenten an eine andere Position und Region zu teleportieren.&lt;br /&gt;
&lt;br /&gt;
[[osSetDynamicTextureURL|osSetDynamicTextureURL()]] ermöglicht es Ihnen, ein externes oder dynamisch generiertes Bild in der Welt anzuzeigen (wie in diesem Inworld-Webseitenanzeigeskript oder meinem eigenen 'Graffiti-Board'-Skript, das Text auf einer einzelnen Textur in der Welt anzeigt).&lt;br /&gt;
&lt;br /&gt;
[[osParseJSON|osParseJSON()]] ermöglicht es Ihnen, JSON innerhalb eines Skripts zu analysieren. Dies ist kein so gutes Beispiel, da der Rückgabetyp HashTable es wahrscheinlich derzeit in LSL-Skripten unbrauchbar macht (das hier gezeigte Beispiel ist ein Skript in kompiliertem C#). Ich denke jedoch, dass es erweitert werden könnte, um eine Datenstruktur zurückzugeben, die in LSL verwendet werden könnte.&lt;br /&gt;
&lt;br /&gt;
== Wie man eine OSSL-Funktion implementiert - [[OSSL_Implementiert]] ==&lt;br /&gt;
Das Implementieren einer OSSL-Funktion ist etwas umständlich - Sie müssen an 3 Stellen Änderungen vornehmen. Zuerst machen wir die eigentliche Implementierung selbst. Genau wie es eine LSL_Api-Klasse im Paket OpenSim.Region.ScriptEngine.Shared.Api gibt, die alle LSL-Funktionen implementiert, gibt es auch eine OSSL_Api-Klasse, die OSSL-Funktionen implementiert. Um eine neue Funktion zu implementieren, würde man in OSSL_Api.cs eine Methode mit demselben Namen hinzufügen. Zum Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
public string osMyFunction()&lt;br /&gt;
{&lt;br /&gt;
    // Wir werden das im nächsten Abschnitt besprechen&lt;br /&gt;
    CheckThreatLevel(ThreatLevel.None, &amp;quot;osMyFunction&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
kotlin&lt;br /&gt;
&lt;br /&gt;
// Lassen Sie die Statistiken wissen, dass eine Skriptzeile ausgeführt wurde&lt;br /&gt;
m_host.AddScriptLPS(1);&lt;br /&gt;
&lt;br /&gt;
return &amp;quot;Hallo Welt!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Methodensignatur für diese Implementierung muss dem Interface IOOSL_Api in OpenSim.Region.ScriptEngine.Shared (Api/Interface-Verzeichnis) hinzugefügt werden:&lt;br /&gt;
&lt;br /&gt;
string osMyFunction();&lt;br /&gt;
&lt;br /&gt;
Schließlich muss eine Methode zum Aufrufen der Funktion über dieses Interface zur ScriptBaseClass (die allen LSL- und OSSL-Skripten zugrunde liegt) in der Datei OSSL_Stub.cs im Paket OpenSim.Region.ScriptEngine.Shared.Api.Runtime hinzugefügt werden.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
public string osMyFunction()&lt;br /&gt;
{&lt;br /&gt;
    return m_OSSL_Functions.osMyFunction();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann ist es eine Frage der Neukompilierung von OpenSimulator und des Neustarts des Region-Servers. Bevor Sie neu starten, stellen Sie sicher, dass&lt;br /&gt;
&lt;br /&gt;
'''AllowOSFunctions = true'''&lt;br /&gt;
&lt;br /&gt;
in Ihrer OpenSim.ini gesetzt ist. Wenn dies nicht gesetzt ist, wird keine os-Funktion ausgeführt, unabhängig davon, welches Bedrohungsniveau eingestellt ist (wie unten diskutiert).&lt;br /&gt;
&lt;br /&gt;
Nachdem Sie OpenSim neu gestartet haben, können Sie osMyFunction() in einem Inworld-Skript aufrufen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;lsl&amp;quot;&amp;gt;&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
    state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        llSay(0, osMyFunction());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Zukunft hoffe ich, dass es möglich sein wird, neue Funktionen über Plugins hinzuzufügen, anstatt die Datei OSSL_Api.cs zu ändern.&lt;br /&gt;
&lt;br /&gt;
== Drohe mir nicht ==&lt;br /&gt;
Sie haben möglicherweise die Zeile bemerkt&lt;br /&gt;
&lt;br /&gt;
'''CheckThreatLevel(ThreatLevel.None, &amp;quot;osMyFunction&amp;quot;);'''&lt;br /&gt;
&lt;br /&gt;
oben. Genau wie einige LL-Funktionen in einer virtuellen Weltumgebung gefährlich sind und eingeschränkt werden müssen (z.B. llRezObject()), können auch os-Funktionen kontrolliert werden. Daher hat jede os-Funktion ein 'Bedrohungsniveau', das vor der Ausführung überprüft wird. Die Bedrohungsniveaus reichen von ''Keine'' (überhaupt keine Bedrohung) über ''Moderat'' (beabsichtigter Missbrauch kann zu einem Ausfall führen) bis hin zu ''Schwerwiegend'' (selbst gelegentliche Nutzung kann zu Regioninstabilität und/oder Datenverlust führen). Unsere BeispielosMyFunction() ist als Keine eingestuft, weil sie einfach &amp;quot;Hallo Welt&amp;quot; zurückgibt. Etwas wie osTeleportAgent() ist derzeit als Hoch eingestuft, weil vor dem Teleportieren keine Sicherheitsüberprüfungen durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Regionsadministratoren können das Niveau der os-Funktionen ändern, die sie zulassen möchten, indem sie das Attribut ''OSFunctionThreatLevel'' in der OpenSim.ini ändern. Sie können auch einzelne os-Funktionen ein- und ausschalten.&lt;br /&gt;
&lt;br /&gt;
In einem öffentlichen virtuellen Weltkontext möchten Sie möglicherweise niemals Funktionen mit hohen Bedrohungsniveaus zulassen. In einer virtuellen Welt, in der die zugelassenen Personen vertrauenswürdig sind, oder in Anwendungsvirtualumgebungen können das Zulassen solcher Funktionen jedoch viel sinnvoller sein.&lt;br /&gt;
&lt;br /&gt;
== Beiträge willkommen ==&lt;br /&gt;
&lt;br /&gt;
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 :-)&lt;br /&gt;
&lt;br /&gt;
[[Category:OSSL]]&lt;br /&gt;
[[Category:OSSL Functions]]&lt;br /&gt;
[[Category:Scripting]]&lt;br /&gt;
[[Category:German Translations]]&lt;/div&gt;</summary>
		<author><name>Manni</name></author>	</entry>

	</feed>