Registrierung
Linkliste Second Forum Chat Second Forum Treffen Suche Mitgliederliste Häufig gestellte Fragen Gästebuch Kalender

 
Amazonien Rollenspiel in SL
 

Hier kann man sich über die letzten Beiträge im Board live informieren, das kleine Fenster welches sich durch einen Klick öffnet aktualisiert sich von alleine alle 60 Sekunden.

Guckloch öffnen
 

Second Forum - Ein deutschsprachiges Forum zu Second Life » Support zu Second Life » Fragen zu Scripting in Second Life » skriptfehler bei 2 verlinkten Schraktüren » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen


Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen skriptfehler bei 2 verlinkten Schraktüren
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »

Judith
SF Joungster


[meine Galerie]


Dabei seit: 25.04.2009
Beiträge: 17

skriptfehler bei 2 verlinkten Schraktüren 24.05.2010 14:53 [OPTIONEN] [HOCH] [RUNTER]

Hallo zusammen,

Heute habe ich eine Frage zu Skripten in verlinkten Objekten:

Genauer: ein Schrank / Regal mit zwei Türen. Die eine soll nach rechts die andere nach links aufgehen. SOweit klappt auch alles prima.
Das Problem: immer wenn ich (egal in welcher Reihenfolge) alle Prims verlinke, funktionieren die scripte nicht mehr einwandfrei. Die Türen bewegen sich kreuz und quer, aber nie so wie sie sich bewegen sollten.
Löse ich die Verlinkung wieder auf, funktionieren sie wieder richtig.

Was mache ich falsch???

Danke für Eure Antwort,

Judith
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Judith am 24.05.2010 um 14:53 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.


Gwador Merlin Gwador Merlin ist männlich
SF As


images/avatars/avatar-1654.jpg

[meine Galerie]


Dabei seit: 17.09.2009
Beiträge: 160
SL Nick: Gwador Merlin

26.05.2010 11:14 [OPTIONEN] [HOCH] [RUNTER]

Ich muss jetzt mal ein bisschen Rätselraten.

Das ist ein durchaus nicht seltenes Problem.

Prinzipiell bewegt bei so einer Tür ein Script einen Prim. Wenn ich andere Prims mit diesem Prim verlinke, werden sie mit bewegt.

Es gibt allerdings Türen, die sind verlinkt und funktionieren trotzdem - ich kann aus dem Stand nur vermuten, warum das so ist.

Entweder ist das Script "Irgendwie anders" programmiert - an der Stelle muss ich mal passen, so tief stecke ich im LSL nicht drin.

Oder: Es gibt zwei Möglichkeiten, eine normale Tür zu bauen.

Einmal macht man das mit zwei Prims: dem eigentlichen Türblatt und einem schmalen, dünnen Prim, das mit dem Türblatt verlinkt als "Scharnier" dient und das Script beinhaltet

Oder man nimmt einen Prim, der doppelt so groß ist wie die eigentliche Tür und schneidet den Prim so an, dass nur der halbe Prim sichtbar ist. Das spart einen prim ein und verlegt die Drehachse genau auf die "Fadenkreuz-linie" des Editors.

Möglicherweise führt eine dieser Varianten zum Ziel.

Ich schau heute abend mal in meine Sammlung von Prefab-Hütten... vielleicht ist was dabei.

Gwador

__________________
Wer Focebook für ein soziales Netz hält, für den ist in die Steckdose fassen auch ne Wellnesskur.
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Gwador Merlin am 26.05.2010 um 11:14 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.


Vega Elcano
unregistriert
26.05.2010 16:08 [OPTIONEN] [HOCH] [RUNTER]

Zitat:
Original von Gwador Merlin am 26. Mai 2010, 11:14 Uhr

Oder: Es gibt zwei Möglichkeiten, eine normale Tür zu bauen.

Einmal macht man das mit zwei Prims: dem eigentlichen Türblatt und einem schmalen, dünnen Prim, das mit dem Türblatt verlinkt als "Scharnier" dient und das Script beinhaltet

Oder man nimmt einen Prim, der doppelt so groß ist wie die eigentliche Tür und schneidet den Prim so an, dass nur der halbe Prim sichtbar ist. Das spart einen prim ein und verlegt die Drehachse genau auf die "Fadenkreuz-linie" des Editors.


Also, ich verwende immer die zweite Variante mit der abgeschnittenen Tür und dem Skript im Prim. Wenn man dann den Befehl "llSetLocalRot" verwendet funktioniert das auch gut mit verlinkten Türen. Allerdings kann der Befehl auch nur die Tür drehen, in dem das Skript steckt. Bei einer Doppeltür würde das so nicht funktionieren.

In dem Fall müsste das aber mit "llSetLinkPrimitiveParams" funktionieren (Ein sehr schöner und mächtiger Befehl, mit dem alle möglichen Dinge mit Primes veranstallten kann; leider etwas aufwendig in der Verwendung)

Schöne Grüße
Vega
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Vega Elcano am 26.05.2010 um 16:08 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.


Judith
SF Joungster


[meine Galerie]


Dabei seit: 25.04.2009
Beiträge: 17

Themenstarter Thema begonnen von Judith
26.05.2010 23:41 [OPTIONEN] [HOCH] [RUNTER]

Vielen Dank für Eure Hilfe :-)

Zitat:
Oder man nimmt einen Prim, der doppelt so groß ist wie die eigentliche Tür und schneidet den Prim so an, dass nur der halbe Prim sichtbar ist.


So habe ich es gemacht.

Zitat:
Prinzipiell bewegt bei so einer Tür ein Script einen Prim. Wenn ich andere Prims mit diesem Prim verlinke, werden sie mit bewegt.


Da habe ich ganz unterschiedliche Phänomene erlebt. Einmal drehte sich der ganze Schrank, dann beide Türen in eine Richtung, und ein anderes mal wild durcheinander. Ich denke das hat zu tun mit der Drehung der einzelnen Prims, oder. ich kann aber die Rotation nicht bei allen Prims bei 0,0,0 belassen.

Nun wie auch immer.
Vega, könntest Du mir llSetLocalRot" und "llSetLinkPrimitiveParams" etwas genauer erklären? und/oder mir ein Beispiel script posten?

Vielen Dank und Gruß, Judith
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Judith am 26.05.2010 um 23:41 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.


Vega Elcano
unregistriert
27.05.2010 18:25 [OPTIONEN] [HOCH] [RUNTER]

Zitat:
Original von Judith am 26. Mai 2010, 23:41 Uhr
Nun wie auch immer.
Vega, könntest Du mir llSetLocalRot" und "llSetLinkPrimitiveParams" etwas genauer erklären? und/oder mir ein Beispiel script posten?

Vielen Dank und Gruß, Judith


Gerne, der Befehl llSetLocalRot wirkt halt nur auf das Prim, indem das Script selber ist. Alle anderen Primes des Link-Sets bleiben unverändert. Ich habe das dann so gemacht, dass ich mir einmal beim Initalisieren der Tür die Rotationen für öffnen und schließen gemerkt habe:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
state init
{
    state_entry()
    {
        
        vector xyz_angles = <0,0,90.0>; // This is to define a 1 degree change
        vector angles_in_radians = xyz_angles*DEG_TO_RAD; // Change to Radians
        
        gRotOpen  = llEuler2Rot(gRotDirection*angles_in_radians); // Change to a Rotation
        gRotClose = llEuler2Rot(-1*gRotDirection*angles_in_radians); // Change to a Rotation
        
        gChannelDialog = ( -1 * (integer)("0x"+llGetSubString((string)llGetKey(),-5,-1)) );
        
        //gRotDefault = llGetLocalRot();
        llSetLocalRot(gRotDefault);
        //llSay(0, (string) gRotDefault);
        state close;
    }


Beim öffnen und schliessen, brauche ich dann nur noch diese Rotationen mit der vorhanden Rotation der Tür multiplizieren:

code:
1:
2:
3:
4:
5:
6:
7:
8:
      else if (choice == "Open") {
        //llSay(0, "Next: State Open.");
        
        llSetLocalRot(llGetLocalRot()*gRotClose); //Do the Rotation...
        state open;
      }


Das funktioniert sehr gut für einen Türflügel. Mit zwei Flügeln habe ich noch nicht gearbeitet. Im Prinzip funktioniert der llSetLinkPrimitiveParms genauso. Die Hauptschwierigkeit besteht allerdings darin, das man die richtige Prime-Numer des Link-Sets bekommt. Die können sich ja leicht mal verändern, wenn man an komplexeren Objekten baut. Insofern, sollte man dem zweiten Flügel einen eindeutigen Namen geben, und mit einer Funktion einmal beim Initialisieren diese Nummer heraussuchen.

Allerdings kommt man sowieso nicht ganz um ein zweites Skript herum, da man ja beide Türen anklicken können soll (oder?). Dann könnte man auch überlegen, ob man in beiden Türen mit llSetLocalRot die Drehung macht, und nur die jeweils andere mit einer Message benachrichtigt, das diese sich auch bewegen muss. Andererseits muss man dann das eigentlich Türskript duplizieren und in beiden Türen konsistent halten. Falls es fertig ist, ist das nicht schwierig, während der Entwicklung ist es aber die Hölle.

Naja, soweit erstmal. Falls Du noch weiter Fragen hast melde Dich gerne bei mir. Falls interesse an dem gesammten Skript oben besteht, kann ich Dir das sonst gerne Inworld rüberschieben (Hier aus Platzgründen nur ein Auszug).

Schöne Grüße
Vega
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Vega Elcano am 27.05.2010 um 18:25 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.


Judith
SF Joungster


[meine Galerie]


Dabei seit: 25.04.2009
Beiträge: 17

Themenstarter Thema begonnen von Judith
28.05.2010 12:58 [OPTIONEN] [HOCH] [RUNTER]

Danke Vega :-)

ich werde mir das script in den nächsten Tagen erst genauer ansehen können. Bei Fragen komme ich gerne auf Dein Angebot zurück.

Judith
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Judith am 28.05.2010 um 12:58 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.


Ulrika Ulrika ist weiblich
Mauerblümchen


images/avatars/avatar-1595.jpg

[meine Galerie]


Dabei seit: 08.02.2009
Beiträge: 795
Userpage - Gästebuch: 0
SL Nick: Ulrika Tomsen/Joanne Jejces
Second Life Geburtstag: 20.02.2007
Fähigkeiten: Prims - Häuser; Sonstiges - Sänger

28.05.2010 14:55 [OPTIONEN] [HOCH] [RUNTER]

Ich hab es immer so gehandhabt, das ich die Türen nicht mit verlinkt hab, sondern die quasi außen vor bleiben.
Wobei ich mit beiden Tür-Varianten arbeite.

Wenn es um jeden Prim geht, dann ist die mit dem abgeschnittenen Prim zu bevorzugen.
bei der 2. Variante verlinke ich natürlich das Scriptprim (ich nehme dafür immer einen dünnen Stab, der dann wie ein Scharnier wirkt) mit der Tür. Dabei ist darauf zu achten, dass der Stab als Rootprim (gelb) gesetzt wird.
Es gibt einfache Scripte, bei denen man die Öffnungsrichtung durch ein davorgesetztes Minus-Zeichen bestimmt.
Manchmal hilft es auch, die Tür einfach umzudrehen, auf den Kopf zustellen.
einfach ein wenig rumspielen...

LG Ulrika

__________________
... Stille Wasser sind tief...
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Ulrika am 28.05.2010 um 14:55 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.


Vega Elcano
unregistriert
28.05.2010 17:12 [OPTIONEN] [HOCH] [RUNTER]

Zitat:
Original von Ulrika am 28. Mai 2010, 14:55 Uhr
Ich hab es immer so gehandhabt, das ich die Türen nicht mit verlinkt hab, sondern die quasi außen vor bleiben.
Wobei ich mit beiden Tür-Varianten arbeite.


Ja, das ist natürlich eine Möglichkeit. Allerdings komme ich mit der Methode nicht gut zurecht, da ich kein Land habe, wo ich Dinge auf dauer stehen lassen kann. Da ich abends immer spontan schaue in welcher sandbox nicht zu viel los ist und dann nach Bedarf auspacke und unter Umständen auch nochmal umziehe, versuche ich alles immer so zu bauen, das ich mit möglichst einer Aktion alles aufnehmen, bzw. wieder Rezzen kann.

Nicht verlinkte Objekte sind da dann recht lässtig, oder müssen extra mit einem rez/positionierungs-Skript versehen werden. Für Möbel mache ich das schon. Aber im Prinzip versuche ich das zu vermeiden und verlinke deshalb möglichst alles.

Schöne Grüße
Vega
Der Betreiber und die Moderatoren von Second Forum distanzieren sich hiermit ausdrücklich von dem von Vega Elcano am 28.05.2010 um 17:12 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung.

Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Second Forum - Ein deutschsprachiges Forum zu Second Life » Support zu Second Life » Fragen zu Scripting in Second Life » skriptfehler bei 2 verlinkten Schraktüren

Views heute: 2.681 | Views gestern: 8.744 | Views gesamt: 44.549.724



Impressum


Forensoftware: Burning Board 2.3.6
Designed by: ART[I]SIGN GbR
#top #top