1
0
Fork 0

„Changelog.md“ ändern

master
Chris 2020-06-28 15:53:23 +00:00
parent 9b7b3de37f
commit d64850cb11
1 changed files with 81 additions and 11 deletions

View File

@ -30,10 +30,17 @@ Je höher um so aktueller. Dies hat nichts mit der Vanilla OpenSim Version zu tu
### Disable AfK Physic
- Deaktiviert die *physisch* Eigenschaft von allen Objekten, wenn niemand auf der Region ist.
- Deaktiviert die Physic und alle Scripte auf der Region, wenn diese leer ist.
- Löscht alle NPCs von der Region wenn kein echter Besucher mehr vorhanden ist.
- Verhindert einen Großen CPU verbrauch von Regionen, die nicht in Benutzung sind.
- Physikalische Crasher werden so außer Gefecht gesetzt.
```ini
[Startup]
RegionIdleMode = true
IdleModeScripts = true
IdleModePhysics = true
```
### FullPerm
- Setzt alle aufgestellten Objekte auf der Region auf FullPerm.
@ -42,6 +49,21 @@ Je höher um so aktueller. Dies hat nichts mit der Vanilla OpenSim Version zu tu
- Objekte der Gruppe zu übertragen funktioniert so ohne Probleme.
- Jeder mit entsprechenden Rechten in der Gruppe kann die Objekte bearbeiten.
#### Textur Fetcher
Dies ist ein kleiner Helfer der es ermögliches soll texturen von anderen Bauwerken zu benutzen.
Es nimmt alle Texturen von einem Linkset und fügt sie dem Inventar des Root Prims hinzu.
Diese können dann entnommen werden um diese weiter zu benutzen.
- Dies geschieht nicht wenn das Root Prim ein Script enthält welches mit Texturen aus dem Inventar arbeitet.
- Mit der Option **TextureFetcherCheckAssets** wird geprüft, ob die Textur im Asset Server exestiert. Dies Verzögert den Regionsstart um mehrere Minuten.
OpenSim.ini
```ini
[Startup]
TextureFetcherCheckAssets = false
```
### Skript Funktionen
#### DataValue
Diese Funktionen ermöglicht es Daten dauerhaft zu speichern.
@ -56,17 +78,22 @@ Diese Funktionen ermöglicht es Daten dauerhaft zu speichern.
```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.
string osGetDataValue(string key); //Gibt Daten aus dem Speicher aus.
void osSetDataValue(string key, string value); //Fügt Daten in den Speicher ein.
bool osCheckDataValue(string key); //Prüft ob für diesen Key Daten im Speicher verfügbar sind.
void osDeleteDataValue(string key); //Löscht Daten aus dem Speicher.
```
Konfiguration in der OpenSim.ini:
```ini
[XEngine]
DataValueStorageDirectory = true
EnabledDataStorageRateLimit = true
EnabledDataStorageCompressing = true
```
```csharp
default
{
state_entry()
@ -81,4 +108,47 @@ default
}
```
#### PathFinding
Diese Funktionen ermöglichen es die kürzeste Route über Wegpunkte einer Region zu finden. Zusätzlich zu diesen Funktionen benötigt es noch ein Script das diese Wegpunkte einfügt. Diese können entweder mit **osSetPathPositionData** einzeln für jeden Punkt auf der Region eingegeben werden oder mit **osSetPathLineData** in Form von Verbindungen zwischen 2 Punkten erfolgen.
PathFinding ist ein sehr aufwendiger vorgang und nimmt etwas Zeit in Anspruch. Deshalb arbeiten alle funktionen asynchron und geben die jeweiligen Resultate als link_message an das Script zurück.
**osGetSearchableObjectList** ist ein Hilfsmittel um den Weg einfacher zu finden. Diese Funktion erwartet den namen eines Objektes und gibt eine Liste mit UUID zurück von allen Objekten auf der Region mit diesen Namen.
```csharp
string osGeneratePathEnv();
void osSetPathPositionData(string envID, Vector position, bool isWalkable, bool isTarget, bool isStart);
void osSetPathLineData(string envID, Vector startPosition, Vector ZielPosition, bool isWalkable);
string osGeneratePath(string envID);
list osGetSearchableObjectList(string query);
```
```
key m_request_env = NULL_KEY;
key m_request_path = NULL_KEY;
default
{
touch_start(integer i)
{
m_request_env = osGeneratePathEnv();
}
link_message(integer sender_num, integer num, string msg, key id)
{
if(m_request_env == id)
{
osSetPathPositionData((key)msg, llGetPos(), TRUE, FALSE, TRUE);
osSetPathLineData((key)msg, llGetPos(), llGetPos() + <0, 5, 0>, TRUE);
osSetPathPositionData((key)msg, llGetPos() + <0, 5, 0>, TRUE, TRUE, FALSE);
m_request_path = osGeneratePath((key)msg);
}
if(m_request_path == id)
{
llOwnerSay(msg);
}
}
}
```