17.05.2021, 10:23 (Dieser Beitrag wurde zuletzt bearbeitet: 17.05.2021, 10:25 von Xenos Yifu.)
Ich habe mal wieder was gebaut und Probleme.
In jetzigen Fall die Glaskuppel, hier im Bild, die es ermöglicht sich vom Dachgarten in das Gebäude fallen zu lassen.
Die soll und war auch Phantom bis ich das Gebäude verknüpfte.
Dann war sie es nicht mehr.
Auch ein "Teile bearbeiten" gab den Phantomhaken nicht frei.
Es blieb nur das verknüpfte Gebäude zu kopieren und dann das bestehende Original zu entknüpfen.
Aber das es ja nicht sein, sollte ich mal eine Kopie im Shop anbieten lasse ich ja kein Bearbeiten zu.
Also wäre dann das Dach zu.
Ich denke mal das ich nur ein Fehler bei beim Verknüpfen mache, bloß welchen?
Die Eigenschaft Phantom gilt immer für das Gesamtobjekt.
Du kannst in einem Linkset grundsätzlich nicht Phantom- und Solid-Prims mischen.
Du musst dein Gebäude also nolens-volens in zwei Linksets aufteilen - das eine phantom, das andere solid.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
The following 1 user says Thank You to Anachron for this post:1 user says Thank You to Anachron for this post • Xenos Yifu
Wenn ich dich richtig verstehe kann ich also nichts verkaufen was ein Phantomprim enthält?
Ich muss ja im Endeffekt "ein" Objekt haben um es verkaufen zu können.
Oder ein Rezzer verwenden was aber für mich völlig böhmische Dörfer sind.
Warum muss ein Objekt, dass du verkaufen willst unbedingt ein einzelnes Objekt sein? Packe beide Teile einfach in eine Kiste ... damit man die Teile dann auch ordentlich positionieren kannst, verpasse beiden ein identisches Rootprim, d.h. gleiche Ortskoordinaten und Ausrichtung - ggf. unsichtbar.
Übrigens: Warum willst du deine Objekte "No Modify" machen? Empfinde ich als ziemlich unhöflich, dem Käufer zu verbieten etwas nach seinen Wünschen anzupassen. "No Mod" ist eine Option, die ich jederzeit ohne schlechtes Gewissen sofort per God-Mode aufbröseln würde ...
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Mir geht es genau anders rum, ich empfinde es als unhöflich was zu ändern was man geschenkt bekommt in das der Ersteller ja auch viel Arbeit gesteckt hat.
Anders wäre es in SL wo ja manche Objekte unverschämt teuer sind und man L$ mit Euro kaufen muss.
Nur wenige verdienen selber in SL und haben ein Einkommen.
Aber das ist wohl reine Geschmackssache, jedem das seine.
normalerweise sollte mich das Thema nicht kratzen. Aber ich sehe das meine Signatur doch Recht hat und schreib mal einen kleinen Text dazu: 1. Es stimmt nicht ganz, das die Eigenschaft "Phantom" für das gesamte Objekt gilt, wenn man
2. scripten kann, oder zumindest sich mal umsieht ob es da nicht jemanden gibt, der diese Frage schon einmal sich selbst gestellt hat und die Lösung fand"!
Lösung: das Script nennt sich PhantomChild script; frohes suchen
Es gibt einen kleinen Trick, von dem ich allerdings nicht weiss, seit welcher Version er in OpenSim funktioniert.
Mit llSetLinkPrimitiveParamsFast(...) lässt sich ein Child-Prim in einem Linkset auf Phantom setzen. Root Prims lassen sich aber auch damit nicht auf Phantom setzen, ohne dass das ganze Linkset betroffen ist.
Der Trick funktionierte im SL schon lange, hat aber früher im OpenSim nicht funktioniert. Ich versuchte es jetzt wieder mal mit OpenSim 0.9.2 dev wo es problemlos geklappt hat. Soweit ich mich erinnere gibt es Im SL ein Script Fehler, wenn das Script versehentlich im Root Prim angelegt wird. Bei OpenSim habe ich in dem Fall kein Fehler festgestellt, das Script funktionierte einfach nicht.
Beispiel:
Erstelle ein Linkset, öffne es zum Bearbeiten, setze einen Hacken in "Edit linked" und wähle das Prim aus, das du auf Phantom setzen möchtest. Erstellen in diesem Prim ein Script mit nachstehendem Code.
Code:
default
{
touch_start(integer total_number) {
// Setzt das Prim in dem sich das Script im Linkset befindet auf Phantom.
// Achtung: Das Prim darf nicht das Root-Prim sein.
llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_PHYSICS_SHAPE_TYPE,PRIM_PHYSICS_SHAPE_NONE]);
llRemoveInventory(llGetScriptName()); // Löscht das Script aus dem Prim
}
}
Wenn Du fertig bist, klicke dein Linkset an, so dass das Prim mit dem Touch Event ausgeführt wird. Dadurch wird das Prim auf Phantom gesetzt und anschliessend aus dem Prim gelöscht.
Solange das Linkset nicht bearbeitet wird kann man es ins Inventar nehmen und nach dem Rezzen aus dem Inventar sind die Prims immer noch Phantom. Wie zuverlässig das funktioniert, z.B. über Grids hinweg oder hinsichtlich Bearbeitungen, bin ich mir nicht sicher.
(17.05.2021, 11:46)Cayoun Daydreamer schrieb: normalerweise sollte mich das Thema nicht kratzen. Aber ich sehe das meine Signatur doch Recht hat und schreib mal einen kleinen Text dazu: 1. Es stimmt nicht ganz, das die Eigenschaft "Phantom" für das gesamte Objekt gilt, wenn man
2. scripten kann, oder zumindest sich mal umsieht ob es da nicht jemanden gibt, der diese Frage schon einmal sich selbst gestellt hat und die Lösung fand"!
Lösung: das Script nennt sich PhantomChild script; frohes suchen
17.05.2021, 12:20 (Dieser Beitrag wurde zuletzt bearbeitet: 17.05.2021, 12:22 von Anachron.)
(17.05.2021, 12:07)Pius Noel schrieb: ...
Wenn Du fertig bist, klicke dein Linkset an, so dass das Prim mit dem Touch Event ausgeführt wird. Dadurch wird das Prim auf Phantom gesetzt und anschliessend aus dem Prim gelöscht.
Solange das Linkset nicht bearbeitet wird kann man es ins Inventar nehmen und nach dem Rezzen aus dem Inventar sind die Prims immer noch Phantom. Wie zuverlässig das funktioniert, z.B. über Grids hinweg oder hinsichtlich Bearbeitungen, bin ich mir nicht sicher.
Das Script aus dem Prim zu löschen ist keine gute Idee, denn diese Einstellung ist nicht restart-fest!
Wie man in dem oben verlinkten Artikel im SL-Wiki nachlesen kann : "It needs to be reset on sim restarts."
Dort findet sich auch eine Script-Lösung, die diesem Umstand Rechnung trägt und das Prim nach einem Restart erneut auf Phantom setzt.
Wer nicht weiss wohin er will, der kommt leicht woanders hin.
Was die Rechte betrifft, so finde ich, dass es allen selber überlassen ist, wie sie ihre Sachen weitergeben. Etwas auf nicht modifizierbar zu setzen finde ich überhaupt nicht unhöflich.
In der Regel bevorzuge ich für mich Dinge, die sich bearbeiten lassen, respektiere aber auch, wenn das nicht möglich ist. Gefällt es mir, aber es passt aus irgendwelchen Gründen nicht, dann lass ich es sein oder baue es selber. So einfach ist das.
Ich selber würde etwas, das ich weitergebe, nur dann auf "No Mod" setzen, wenn es dafür trifftige Gründe gibt. Im OpenSim fällt mir dazu nicht sofort etwas ein. In der Regel reicht ein Beipackzettel (Notecard) der auf linzenzrechtliche Umstände hinweist. Im SL ist es aber häufig so, dass Ersteller*innen vorfabrizierte Teile für ihre eigenen Kreationen verwenden, die sie dann nur nicht modifizierbar weitergeben dürfen.