# Änderung an der OpenSimulator Version Es gibt einige Optionen, die sich von der Vanilla Version unterscheiden. Die meisten Änderungen sind Erleichterungen. Es gibt aber auch einige neue Funktionen. In der Regel sollte keiner dieser Änderungen offensichtlich in den normalen Betrieb eingreifen. Da diese aber doch einige Eigenheiten haben die bekannt sein sollten, hier eine Übersicht in chronologischer Reihenfolge der Einführung. ### Version Name Die Software hat eine Extra Versionsnummer bekommen: OpenSim 0.9.2.0.**05** Yeti Dev Je höher um so aktueller. Dies hat nichts mit der Vanilla OpenSim Version zu tun. ### CachedMapImageModule - Speichert das Map Image im OpenSim Ortner in einem Unterordner um es während dem Regionstart nicht immer neu Generieren zu müssen. - Es wird erst nach einem Monat neu generiert. Dies spart einiges an Zeit und RAM während dem Startvorgang. - Es kann auch die Region Position und Region Namen auf das Bild schreiben. - Es gibt einige Einstellungen, um dies zu steuern. Diese müssen in den [Map] Bereich. - **enableDate** == true/false | Zeigt das Datum der Generierung an. - **enableName** == true/false | Zeigt den Namen der Region an. - **enablePosition** == true/false | Zeigt die Position im Grid auf dem MapImage an. - **RefreshEveryMonth** == true/false | Schaltet das Neugenerieren an/aus. - **enableHostedBy** == true/false | Zeigt einen weiteren Text an. - **HosterText** == ".." | Der Text der angezeigt werden soll. ### JPEG Converter Module - Dies erlaubt Texturen und Dynamisch generierte Texturen als Bild auf Websiten einzubinden. - Dynamisch generierte Texturen gehen nur auf der Region wo sie generiert wurden. - Es muss die Asset UUID benutzt werden. - Host und Port sind von der Region. - URL zu den Daten: http://os.inc.li:7000/jpeg/?assetID=1345d1d3-a717-4590-9010-2a2efef84379 ### Disable AfK Physic - Deaktiviert die *physisch* Eigenschaft von allen Objekten, wenn niemand auf der Region ist. - Verhindert einen Großen CPU verbrauch von Regionen, die nicht in Benutzung sind. - Physikalische Crasher werden so außer Gefecht gesetzt. ### FullPerm - Setzt alle aufgestellten Objekte auf der Region auf FullPerm. - Beinflust **nicht** wie sich leute die Objekte nehmen können. Es muss weiterhin einzeln freigegeben werden ob sich leute die Objekte Kaufen oder Kopieren dürfen. - So ist es nicht mehr nötig sich Änderungsrechte oder ähnliches mit dem GodMode zu verschaffen. (Man hat eine Ausrede warum es fullPerm ist :D) - Objekte der Gruppe zu übertragen funktioniert so ohne Probleme. - Jeder mit entsprechenden Rechten in der Gruppe kann die Objekte bearbeiten. ### Skript Funktionen #### DataValue Diese Funktionen ermöglicht es Daten dauerhaft zu speichern. - Dies funktioniert auf der ganzen Region und unabhängig von Objekt/Eigentümer/Script. - Um eine gewisse Datensicherheit zu ermöglichen ist es nur möglich Daten zu teilen oder zu schreiben, wenn die Objekte dieselbe Gruppe haben. (Wenn das Objekt eine andere Gruppe bekommt, sind die Daten nicht mehr verfügar!) - Der Datenbestand wird nicht auf den Speicherverbrauch des Skriptes aufgerechnet. - Ein Scriptreset hat keine Auswirkungen auf den Datenbestand. - Die Daten werden auf dem Datenträger gespeichert. (Ordner DataScriptValue) und können dort auch ausgelesen und verändert werden. - Mehrere Regionen können die Daten nutzen. - Der Ordner wo die Daten gespeichert werden, kann in der OpenSim.ini unter [XEngine] Verändert werden. - **DataValueStorageDirectory** = "C:/.." ```csharp //Namespace == Der Speicherbereich der Gruppe. string osGetDataValue(string key); //Gibt Daten aus dem aktiven Namespace aus. void osSetDataValue(string key, string value); //Fügt Daten in den aktiven Namespace. bool osCheckDataValue(string key); //Prüft ob Daten für diesen Key im aktiven Namespace vorhanden sind. string osGetDataValue(string key, bool personal); //Gibt Daten aus dem Namespace des Besitzers aus. void osDeleteDataValue(string key); //Löscht die Daten dieses Keys im aktiven Namespace. void osDeleteDataValue(string key, bool personal); //Löscht die Daten dieses Keys im Namespace des Besitzers. string osSetDataValue(string key, string value, bool personal); //Fügt Daten in dem Namespace des Besitzers ein. bool osCheckDataValue(string key, bool personal); //Prüft ob Daten für diesen Key im Namespace des Besitzers vorhanden sind. ``` ```csharp default { state_entry() { osSetDataValue("test", "es funktioniert"); } touch_start(integer i) { llOwnerSay(osGetDataValue("test")); } } ```