• 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.

Prims an Linkset anfügen

Kottos Sperber

Freund/in des Forums
Folgende Aufgabe: Ich habe ein Linkset, darin sagen wir mal 200 Prims.
Ich möchte nun gern noch 2 Prims hinzufügen, die sollen dann die Linknummer 201 und 202 bekommen. Die müssen diese beiden Nummern haben, ansonsten muss ich das Script umschreiben.

Problem: Klicke ich diese zuerst und dann das Linkset, werden diese beiden Prims Nummer 2 und 3 anstatt 201 und 202, die Linknummern der anderen Prims verschiebt sich dann nach hinten.

Klicke ich erst die beiden neuen, und dann das Linkset, wird eins der neuen Rootprim; das ist also auch nicht die Lösung.

Was, außer das Linkset komplett zu entlinken und alle 202 Prims neu zu verlinken bleibt dann noch?
 
Ich korrigiere mich.

Nimm einen weiteren Prim ( nennen wir ihn dummy )
Linke 201 und 202 an den dummy. (dummy als Root)
Linke nun das große Linkset an den Dummy-linkset.
Entlinke den dummy.

Könnte funktionieren ( würde aber vorher eine kopie des LinkSets machen)

Gruß Simon
 
Simon,

du hast mir gerade eine Menge Arbeit erspart :)

Das unlinken des dummy roots: Um es noch mal zu verdeutlichen, und damit ich es später noch mal nachlesen kann :), funktioniert wie folgt:

Das neue Linkset anklicken, im Baumenu "edit link parts", Dummy auswählen, dann im "Tools" Menu auf "unlick" klicken. Schon steht er frei und kann gelöscht werden.

Danke nochmal.
 
Ist zwar ein alter Thread, aber mein Aha-Erlebnis war gestern Nacht. Dann wollte ich meine Erkenntnis teilen, aber anstelle eines neuen Threads kopiere ich hier rein:


Ein bestehendes Linkset (mein Boot) soll mit zusätzlichen Prims erweitert werden, aber da werkeln schon mehrere Scripte welche mit den Linknummern arbeiten. Wenn ich nun die neuen Prims (Sulptie, Mesh: egal) dazu verlinke sind die neuen Prims nach dem Root eingefügt und somit alle Linknummern verschoben. Mein Script zielt nun auf die falschen Prims im Linkset... Katastrophe!
Ich könnte das shiften der Links bei jedem Aufruf im Script zu berücksichtigen. (alte)LinkNummer+n(neue prims) Wenn ich hier keinen Denkfehler mache, dann wäre das wohl die effektivste Lösung.

Oder mit einer Liste (ungetestet) aus dem englischen forum:

if (change & CHANGED_LINK){
gPrimnames = []; integer i;
for(i=1;i<=llGetNumberOfPrims();++i){ gPrimnames += [llGetLinkName(i)]; }
}


Später bei Bedarf:
integer LinkIdx = llListFindList(gPrimnames, [the_link_I_Want]) + 1;

LinkIdx ist nun meine neue Adresse. Nur müsste ich in meinem über die Jahre gewachsenen Schiff (128 spare prims aufgebraucht) alle angesprochenen Prims sauber beschriften und dann bei jedem Script-Befehl der Linknummern braucht mit der obigen Abfrage checken.


Gestern war ich in der Sandbox und nach einigen Versuchen hat sich das leidige Problem 'mechanisch' gelöst:

1. Vorsichtshalber mal alle Scripte im bestehenden Linkset auf 'not running' stellen
2. Rootprim vom bestehenden Linkset de-linken (Ein neues Rootprim ist entstanden, aber das interessiert uns nicht)
3. Neue Prims, oder neues Primset anwählen
4. Mit [shift] bestehendes Linkset dazu selektieren
5. Orginal Rootprim dazu [shift]
6. Verlinken, Scripte wieder starten und:
Et voilà! Altes Root ist Root und die bestehenden Linknummern stimmen wieder. Die Neuen sind fortlaufend dazugekommen. Die Reihenfolge macht's. )*(
 

Users who are viewing this thread

Zurück
Oben Unten