Beiträge: 530
Themen: 88
Thanks Received: 8 in 5 posts
Thanks Given: 0
Registriert seit: May 2016
Hallo zusammen
mit
http://wiki.secondlife.com/wiki/LlRezObject erstelle ich ja ein Objekt, das aber schon vorhanden ist.
Zum Beispiel liegt das Script und das Obiekt in einem Würfel, mal klickt drauf und das Objekt wird gerezzt.
Wie mach ich aber einen nigelnagelneuen Würfel ?
Geht das ?
Gruss, Pharcide
Grüsse, Pharcide
Beiträge: 2.450
Themen: 86
Thanks Received: 1.666 in 586 posts
Thanks Given: 1.865
Registriert seit: Oct 2011
nur in dem du einen nigelnagelneuen Würfel in dein Objekt packst und den dann rezzen lässt (gerezzt wird ja eine Kopie des Würfels, die ist ja dann auch nigelnagelneu)
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 530
Themen: 88
Thanks Received: 8 in 5 posts
Thanks Given: 0
Registriert seit: May 2016
Jap, bisher hab ich auch keine Möglichkeit gefunden, zu sagen, rezz mir ein Würfel, Kegel, Kugel usw.
Ok, weisst Du zufälligerweise auch, wie man die UUID des eben gerezzten Objektes ausliest ?
Grüsse, Pharcide
Beiträge: 2.450
Themen: 86
Thanks Received: 1.666 in 586 posts
Thanks Given: 1.865
Registriert seit: Oct 2011
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Beiträge: 403
Themen: 16
Thanks Received: 224 in 115 posts
Thanks Given: 808
Registriert seit: Sep 2017
(24.02.2018, 22:09)Pharcide schrieb: Jap, bisher hab ich auch keine Möglichkeit gefunden, zu sagen, rezz mir ein Würfel, Kegel, Kugel usw.
Ok, weisst Du zufälligerweise auch, wie man die UUID des eben gerezzten Objektes ausliest ?
Nur so als Idee, falls du im Rezzer die UUID des gerezzten Objekt haben willst:
Script im Rezzer:
Code:
string prim = "prim"; // Name des Prims im rezzer Inventory
integer channel = -32198; // Beliebiger channel (negativer Integer)
integer listenHandle = 0; // Handle für den Listener
default
{
touch_start(integer num_detected)
{
// Wir starten beim Touch einen Listener mit einem beliebig gewählten channel.
listenHandle = llListen(channel, "", NULL_KEY, "");
// Wir rezzen das Object 1 m in Y Richtung entferntund übergeben als param den channel.
// Das Object enthält ein Script das uns beim Rezzen über den
// mitgelieferten channel eine Message zurückschickt.
llRezObject(prim, llGetPos() + <0.0, 1.0, 0.0>, <0.0,0.0,0.0>, <0.0,0.0,0.0,0.0>, channel);
}
listen(integer channel, string name, key id, string message)
{
// Der Listner erhält auf dem mitgegebenen channel eine Message. Wir
// verwenden sie hier nicht, denn uns interessiert nur die UUID des
// neu gerezzten Prims und die ist in der id enthalten.
llSay(0, (string) id); //Kontollausgabe der ID im Chat.
// Um Lag zu vermeiden löschen wir den Listener sobald wir ihn nicht
// mehr brauchen
llListenRemove(listenHandle);
}
}
2. Script im gerezzten Objekt:
Code:
/// Dieses Script sendet nach dem rezzen irgendeine Message über dem // im param mitgegebenen Channel an den rezzer (und löscht sich selbst).
default
{
on_rez(integer param)
{
// Ausgabe im Chat zur Kontrolle
llSay(0, "Script on_rez " + param + ": " +(string) llGetKey());
// Message kann im Beispiel irgendwas sein, wir versenden sie nicht.
// Uns interessiert nur die UUID und die bekommen wir im Listener.
llRegionSay(param, "rezzed"); // Message kann im Beispiel irgendwas sein.
// Die nachstende Zeile ist auskommentiert um das Löschen
// des Scripts zu verhinder.
// llRemoveInventory(llGetScriptName());
}
}
Beiträge: 530
Themen: 88
Thanks Received: 8 in 5 posts
Thanks Given: 0
Registriert seit: May 2016
Danke für die Tipps
Was ich möchte ist folgendes:
- Rezzen eines Objekts
- Dann die UUID auslesen und in ein Array speichern
- Das gerezzte Obiekt über die UUID ansprechen, Form, Grösse und Position ändern
- Rezzen des nächsten Objekts
und so weiter
Das heisst, ich muss schon im Rezz Scipt die UUID bekommen und nicht im gerezzten Objekt.
Grüsse, Pharcide