• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Alle Scripte aus einem Linkset löschen

G

Gomez Papp

Guest
Hallo

Ich kann ja auf diesem Wege ein Script in einem Prim sich selber löschen lassen.

Ich habe aber ein Linkset (also ein Objekt aus mehreren verlinkten Prims).
Und in den diversen Prims sind diverse Scripte (für Rotation, Texturewchsel usw.).

Kann ich nun per Scriptbefehl irgendwie alle Scripte des Linksets komplett löschen lassen?

Gruß
Gomez
 

Feith Soderstrom

Aktiver Nutzer
Hi,
ich sehe irgendwie nich viel Sinn ein Objekt mit mehreren Prims zu erstellen wo in jedem ein Script drin ist, was später gelöscht werden soll. Vieleicht sagst du mal mit was du grade baust ;-)

Ich wüßte leider nicht wie das gehen soll, aber falls es hilft dir llMessageLinked , damit sendest du vom Hauptprim einen Befehlt an alle verlinkten Prims und sobalt die scripte den Befehl erhalten sich zu löschen, tun sie das auch. Allerdings muss das dann auch in jedem script drin stehen.

Wenn du was anderes findest schreib das hier noch mal
 
G

Gomez Papp

Guest
Hallo

Feith Soderstrom schrieb:
ich sehe irgendwie nich viel Sinn ein Objekt mit mehreren Prims zu erstellen wo in jedem ein Script drin ist, was später gelöscht werden soll. Vieleicht sagst du mal mit was du grade baust ;-)

Naja das ist im Grunde ganz einfach.
Das Objekt hat diverse Prims, bei denen z.B. die Textur rotoert usw.
Deswegen die einzelnen Scripte in den Prims des Objekts.

Ich möchte dieses Objekt später gerne neben der kaufbaren Version als kostenloses Demo (quasi zur Anprobe) anbieten, welches sich aber nach einer gewissen Zeit sozusagen selbst zerstört.
Und da es ja ein getragenes (Attached) Objekt ist, kann ich es sich ja nicht selbst löschen lassen.
Ich möchte aber gerne, dass die dieversen Texturrotationen, Partikel usw. alle stoppen, wenn die "Selbstzerstörung" ausgelöst wird.



Feith Soderstrom schrieb:
Ich wüßte leider nicht wie das gehen soll, aber falls es hilft dir llMessageLinked , damit sendest du vom Hauptprim einen Befehlt an alle verlinkten Prims und sobalt die scripte den Befehl erhalten sich zu löschen, tun sie das auch. Allerdings muss das dann auch in jedem script drin stehen.
Ja, darüber habe ich auch schon nachgedacht. Aber diesen "Ich zerstöre mich"-Code in jedes Script einzubauen ist mir zu aufwendig.

Es gibt ja den Befehl llRemoveInventory(llGetScriptName());
Schön wäre doch soiwas wie llRemoveLinkInventory(llGetScriptName());

Es würde mich auch schon reichen, wenn ich alle Scripte in allen Prims des Objektes stoppen kann, sie müssen also nicht unbedingt gelöscht werden.

Gruß
Gomez
 
Hi

Gomez Papp schrieb:
Ich möchte aber gerne, dass die dieversen Texturrotationen, Partikel usw. alle stoppen, wenn die "Selbstzerstörung" ausgelöst wird.

In diesem Falle nützt dir Script löschen garnix, da Textureanimationen und Partikel Effekte nicht stopen wenn man das Script löscht. Man muss beide Effekte explizit per Script stopen. Also entweder in jedem Script einen Timer einbauen der nach xx Sekunden/Minuten die Effekte anhält oder was evtl. funktionieren würde (habs selber noch nicht getestet):
Owner Change Abfrage, Timer starten, wenn Timer abgelaufen ist in einen neuen state wechseln und bei attach ein sofortiges llDetachFromAvatar() ausführen und bei on_rez() ein llDie(). Könnte für eine Attachment Demo funktionieren. Weiss nur gerade nicht ob man Attach/Detach permissions per Dialog bestätigen muss.

Edit: oder die übliche Variante, ein dicker Würfel über dem Kopf mit DEMO :D
 

Criz Runo

Nutzer
Leider gibts es sowas nicht. Wenn du 250 verlinkte prims hast, die alle ein script drin haben,d as du loswerden willst, musst Du auch in jedes Prim das "zerstörungs-Script" einbauen.

Davon aber ganz abgesehen stoppen Textur-Rotationen und Partikel NICHT, wenn man das Script entfernt. Diese Effekte muss man explizit stoppen. Auch das kannst Du per llMessageLinked() steuern.
 

Bibabu Mayo

Aktiver Nutzer
Gomez Papp schrieb:
Ja, darüber habe ich auch schon nachgedacht. Aber diesen "Ich zerstöre mich"-Code in jedes Script einzubauen ist mir zu aufwendig.

Es gibt ja den Befehl llRemoveInventory(llGetScriptName());
Schön wäre doch soiwas wie llRemoveLinkInventory(llGetScriptName());

Bin ja selber noch scriptanfänger. Aber so wie ich das sehe wirst Du, wenn Du alle scripte löschen willst, genau darum nicht herumkommen.
Es sei denn Du machst das Item schlicht unbrauchbar, z.B. so:

Sicherlich gibt es eine Art mainscript was Grundelgenede Funktionen hat um das attachment sinnvol benutzen zu können.

Du kannst z.B. aus dem mainprim einfach nen grossen Würfel machen mit ner Textur, die dem User sagt, die Demozeit iss abgelaufen. Das ganze läuft mit llSetTimerEvent. Wenn der abgelaufen ist, ersetzt Du den Prim mit der Box und löschst eben dieses Mainscript. Ob dann in den childs noch sinnvolle Prozesse ablaufen oder nicht ist dann ziemlich wurscht denke ich :)

Also meinetwegen eine Waffe, die nicht mehr scheisst, ein AO, der keinen Animationswechsel mehr macht, ein Helm, bei dem das Visier einfach besagte Box ist und nicht schliesst usw...

Der User darf natürlich keine mod Rechte haben um den Würfel seinerseits zu entfernen o.ä.
 
G

Gomez Papp

Guest
Hallo

Vielen Dank erstmal wieder für Eure zahlreichen Antworten.

Wenn ich das richtig verstanden habe, kann ich vom Rootprim meines Objektes aus per llMessageLinked allen Scripten gleichzeitig etwas senden, richtog?

Aber die diversen Scripten müssen dann ja dennoch einen Code enthalten, der das Gesendete empfängt und dann entsprechende handelt, ja?

Oder kann ich sozusagen irgendiwe einen generellen Stopp-Befelh an alle Scripte senden, ohne diese Scripte (Partikel, Texturanis) noch nachbearbeiten zu müssen?

Gruß
Gomez
 

Energy Dynamo

Freund/in des Forums
Gomez Papp schrieb:
Wenn ich das richtig verstanden habe, kann ich vom Rootprim meines Objektes aus per llMessageLinked allen Scripten gleichzeitig etwas senden, richtog?

Aber die diversen Scripten müssen dann ja dennoch einen Code enthalten, der das Gesendete empfängt und dann entsprechende handelt, ja?

Oder kann ich sozusagen irgendiwe einen generellen Stopp-Befelh an alle Scripte senden, ohne diese Scripte (Partikel, Texturanis) noch nachbearbeiten zu müssen?

Ja

Ja

Nein
 
G

Gomez Papp

Guest
Hallo

OK, prima, dann weis ich nun gut Bescheid.
Ich werde dann einfach daruf verzichten, die Scripte abzuschalten oder zu löschen.

Gruß
Gomez
 

Users who are viewing this thread

Oben Unten