Hier ist der Link zu APIs:
Voraussetzungen:
- Der Benutzer soll einen RLV-fähigen Viewr benutzen, also RLV selbst, Emerald, CoolViewer, RainbowViewer
- Viewer sollen die RLV-Unterstützung aktiv haben (alle außer RLV selbst starten anfangs ohne die Unterstützung)
- Der Benutzer muss entweder der Besitezer des Kleiderstnds sein oder ein Relay tragen das die Befehle des Kleiderstands an den Viewer weiterleitet
- Der Benutzer muss einen Ordner mit Namen "#RLV" im Inventar angelegt haben. Nur auf diesen Ordner hat man von Außen einen Zugriff.
Vorgehen im Groben ist die folgende:
1. Der Kleiderstand übergibt die Objekte in einen Ordner der mit "#RLV/" anfängt. Der RLV legt diesen Ordner nicht direkt im Inventar sondern innerhalb des #RLV Ordners. Man denkt sich also einen Kontainernamen wie "~Kleiderstand123" der ein Unterordner von #RLV Ordners sein muss, mit einer laufenden Nummer. Und übergibt die via LSL Befehls
Code:
llGiveInventoryList(agent, "#RLV/~Kleiderstand123", objekte);
2. Unter Annahme dass der Benutzer die Objekte auch annimmt, wartet man eine Weile die fürs Akzeptieren des Ordners benötigt ist, und dann versendet man einen RLV-Befehl zum anziehen. Dabei ist unterschiedlich ob der Benutzer den Kleiderstand besitzt oder nicht.
Falls er auch besitzt, dann reicht es, wenn der Kleiderstand einen llOwnerSay benutzt um den Befehl zu übermitteln, RLV hört nämlich nur auf diesem Kanal. Der Kleiderstand führt also diesen LSL Befehl aus:
Code:
llOwnerSay("@attach:~Kleiderstand123=force");
Der RLV sieht also eine gelbe Nachricht "@attach:~Kleiderstand123=force" und erkennt am führenden "@", dass es ein Befehl ist.
Wenn der Kleiderstand aber nicht im Besitz des Benutzers ist, dann braucht man ein Relay, das den Befehl im Chat empfängt und in eine gelbe Nachricht umsetzt auf die RLV dann auch hört. Dann muss der Kleiderstand die Nachricht also per Chat übermitteln, das ginge also so:
Code:
llWhisper(-1812221819,
"Kleiderstand,"+(string)agent+
",@attach:~Kleiderstand123=force");
Das Relay würde erkennen dass der Befehl an den Benutzer gerichtet ist und es dann für den Viewer aufbereiten. Voraussetzung ist, dass der Benutzer die Kleider auch sofort annimmt. Da es allgemein nicht immer gilt muss der Kleiderstand nach Objektübergabe eine anfrage versenden an den RLV direkt oder per Relay ob dder Ordner auch da ist. Ginge z.B. per Befehl
Daraufhin würde RLV die Liste aller Ordner, die unter #RLV abgelegt sind, auf dem channel 3456 übermitteln. Das muss der Kleidertand dann auslesen und prüfen ob "~Kleiderstand123" dabei ist.
Ist relativ einfach und die einzige Möglichkeit das zu automatisieren die es bisher gibt.