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

Vertikales Öffnen einer Falltür

Anni Silverweb

Superstar
Huhuuu ihr Lieben, ich brauche mal wieder eure wertgeschätzte Hilfe ;) und da es mit einem Script zu tun hat, packe ich die Frage mal hier rein.

Also Folgendes: Mein Partner und ich haben uns zusätzlich zu unseren eigenen Parzellen noch eine gemeinsame gegönnt und dort ein Schloss aufgestellt (das Rose castle von gwyydion). Ich habe diverse Veränderungen dort gemacht, aber eine überschreitet meine Kompetenzen......wir möchten gerne an zwei Orten (Zugänge zu den Türmen) jeweils eine Falltür anbringen. Ich dachte eigentlich, dass im MP ein recht grosses Angebot daran herrschen würde, aber Pustekuchen :(, es gibt zwar welche, aber meistens mit Teleportfunktion oder mit Hidefunktion, wir wollen aber eine Falltür die sich vertikal nach oben öffnet (wie eine Falltür das eben so tut :D). Zwei habe ich im MP gefunden, aber beide haben einen Haken ....die erste ist no copy und bei der zweiten sieht die Textur einfach sch....bescheiden aus :hmm

Schön sagte ich mir, im Texturieren bin ich wirklich gut, mach ich mir eben eine aus 'ner Platte und knall da ein Script rein. So dachte ich :rolleyes:.

Jetzt lässt die Suchfunktion im Mp ja zu wünschen übrig, obwohl ich versucht habe es einfach zu halten, aber ich habe kein Script mit der gewünschten Funktion gefunden.:sayno Allerdings habe ich ein "normales" Doorscript gefunden und in der Beschreibung steht man könnte die Winkel ändern. Das ist der erste Teil der Frage: Könnte das funktionieren? Wenn ja, was muss ich beachten? Ich bin ja nun absolut ahnungslos was Scripte angeht, also wenn dann bitte in "ich Tarzan du Jane" Manier antworten ^^

Zweiter Teil der Frage: Kennt vielleicht jemand schon ein entsprechendes Script und ich bin nur zu doof zum Suchen?

Um das ganze richtig zu veranschaulichen: man geht eine Treppe hoch und ist dann direkt auf einem der Türme (andere Seite ebenfalls), eine Öffnung ist grösser als die des anderen Turms, aber beide Öffnungen möchte ich mit einer Platte abdecken und direkt über der Treppe eine Falltür anbringen, die sich dann halt beim Draufklicken vertikal nach oben öffnet.
 
Erster Teil der Frage: ja, das funktioniert. Nimm einfach eine ganz normale Türe (ggf. mit neuer Textur) und rotiere sie so, daß sie nach oben aufgeht.

Oder ein neues Objekt erstellen, texturieren und mit einem Door-Skript ausstatten. Bei den meisten lässt sich einstellen, wohin die Tür aufgehen soll.

Zweiter Teil der Frage: da gibt es viele. Ganz auf die Schnelle, z.B. dieses (leider kann ich Dich inworld nicht finden, sonst hätte ich es Dir geschickt):

Code:
// If door is locked, the name of the avatar who locked it.
// If door is not locked, the empty string ("").
string gLockedBy = "";

// This number must match the channel number of the lock
// and unlock objects you want to use.  If multiple doors
// have the same channel, then a single lock can lock all of
// them at once.
integer gLockChannel = 243;

default
{
    state_entry()
    {
        llSay(0, "Door 1.0");
        llListen(gLockChannel, "", NULL_KEY, "");
        state closed;
    }
}

state closed
{
    listen(integer channel, string name, key id, string message)
    {
        if (channel == gLockChannel)
        {
            if (message == "")
            {
                gLockedBy = "";
                //llTriggerSound("door unlock", 10.0);
                llSay(0, "unlocked");
            }
            else
            {
                gLockedBy = message;
                //llTriggerSound("door lock", 10.0);
                llSay(0, "locked");
            }
        }
    }
    
    touch_start(integer total_number)
    {
        string name = llDetectedName(0);
        if (name == gLockedBy || gLockedBy == "")
        {
    //        llTriggerSound("Door open", 0.5);
      
            rotation rot = llGetRot();
            rotation delta = llEuler2Rot(<0,0,PI/3>);
            rot = delta * rot;
            llSetRot(rot);
            llSleep(0.25);
            rot = delta * rot;
            llSetRot(rot);
            state open;
        }
        else
        {
     //       llTriggerSound("Door knock", 0.5);
        }
    }
}

state open
{
    touch_start(integer num)
    {
    //    llTriggerSound("Door close", 0.5);
              
        rotation rot = llGetRot();
        rotation delta = llEuler2Rot(<0,0,-PI/3>);
        rot = delta * rot;
        llSetRot(rot);
        
        llSleep(0.25);
        rot = delta * rot;
        llSetRot(rot);
        
        state closed;
    }
}

Vielleicht gibt es noch bessere, aber dieses funktioniert bei mir ganz gut.
 
Hallo @Strandwind Resident , vielen Dank schon mal für die schnelle und super Antwort! Ich sehe mir das morgen nochmal alles an, so um 1 Uhr morgens bin ich noch unberechenbarer als gewöhnlich ^^
Du konntest mich Inworld ganz sicher nicht unter dem gleichen Namen wie hier finden, der komplette SL Name ist nämlich Anni Silverweb. :)
Wenn ich das recht verstehe (weil, ich und Skripte auweia), kopiere ich das obere Skript auf eine Notecard und schiebe das in den Inhalt meines Prims (Tür)?
 
Wenn ich das recht verstehe (weil, ich und Skripte auweia), kopiere ich das obere Skript auf eine Notecard und schiebe das in den Inhalt meines Prims (Tür)?
Guten morgen,

du erzeugst einfach in dem Object deiner Wahl im Inhalt ein neues Script, dieses oeffnest du dann per doppelklick und fuegst den kompletten Code von Standwind da ein.
Nach dem Speichern sollte deine Tuer sofort funktionieren.

Strandwinds Code enthaelt an 2 stellen folgende Befehle:
llEuler2Rot(<0,0,PI/3>);
llEuler2Rot(<0,0,-PI/3>);
Beachte das Minus Zeichen, es steht in diesem Fall fuer Vorwaerts und Rueckwaerts.

Bei beiden Befehlen siehst du im Vector <x, y, z>, das sich die Tuer um die Z-Achse bewegen soll.
Wenn du auf Grund der Ausrichtung deines Objects eine andere Richtung benoetigst tausche einfach die Eintraege in der Z-Achse mit einer der Nullen.
Beispiel: <0,PI/3,0> oder <PI/3,0,0> und <0,-PI/3,0> oder <-PI/3,0,0>

Uebrigends, anstelle von PI/3 kannst du auch einfach 1 und -1 schreiben, der Rest hinterm Komma kann vernachlaessigt werden und es rechnet keiner nach, wenn er durch die Falltuer faellt.

Alternativ kannst du aber auch das Script in einen unsichtbaren Wuerfel packen und in der gewuenschten Richtung mit deiner Tuer verlinken.
Vorteil: Du musst im Script nichts aendern und deine Tuer dreht sich nicht um die eigene Mitte, sondern um die Achse des unsichtbaren Wuerfels
Nachteil: Es kostet einen wertvollen halben Prim Land Impact mehr. (+ 0.5 LI bei Konvexe Huelle)

LG
Dae
 
Zuletzt bearbeitet:
Dankeeeee @Daemonika Nightfire , das probiere ich aus! :besos: Sobald das getan ist gebe ich Bescheid ob ich das hinbekommen habe (das ist mal gar nicht so sicher), kann ein paar Tage dauern, denn ich bin voll im Einrichtungsstress und.....Männer können ja sooooo anspruchsvoll sein! :rofl:rofl:rofl
 
Bei beiden Befehlen siehst du im Vector <x, y, z>, das sich die Tuer um die Z-Achse bewegen soll.
Wenn du auf Grund der Ausrichtung deines Objects eine andere Richtung benoetigst tausche einfach die Eintraege in der Z-Achse mit einer der Nullen.
Hmmm, also das ist der Teil den ich nicht verstehe (ist mir gerade bewusst geworden :^^:), wo genau sehe ich was? :confundio1: Die Falltür soll sich nicht um die Z Achse drehen, mit dem Script von Strandwind rotiert sie momentan in der Mitte und genau das soll sie nicht, sie soll entweder hinten oder vorne "hochklappen"

Wenn du auf Grund der Ausrichtung deines Objects eine andere Richtung benoetigst tausche einfach die Eintraege in der Z-Achse mit einer der Nullen.
Eine andere Richtung ja, also entweder x oder y, aber wo soll ich was tauschen? Ich verstehe nur Bahnhof :cry:
 
huhu,

genau das hatte ich beschrieben, das beste wird sein du verlinkst einen unsichtbaren Wuerfel als Root mit der Falltuer.
Den kleinen Wuerfel positionierst du in der richtigen Richtung bei den Schanieren deiner Falltuer und schon funktioniert es wie es soll.

Das Problem mit den Rotations-Befehlen ist, das sie grundsaetzlich immer vom Mittelpunkt des Objects ausgehen.
Darum haben wir damals fuer Tueren den Prim immer mit Pfadschnitt halbiert, um wenigstens den Eindruck zu erwecken, das es sich wie eine Tuer verhaelt.

LG
Dae
 
huhu,

die Tuer darf dann mit nichts anderem mehr verlinkt sein.
Also Wuerfel und Tuer zusammen sind dann ein seperates Object.
Auf keinen Fall darfst du die Tuer mit dem Gebaeude verlinken.

LG
Dae
 
Es besteht noch Hoffnung für mich :D, ich hab's doch hinbekommen, zum Glück bin ich bei solchen Sachen stur :aaaaa: Nee mit dem Gebäude hab' ich die Tür natürlich nicht verlinkt, was ich getan, bzw. nicht getan habe, war das Script sowohl in den Würfel, als auch in die Tür zu tun....ich hab' ja gesagt ich habe keine Ahnung von Scripten :rolleyes:

Ich habe dann bei einer anderen, ähnlichen Tür geschaut und mir ging ein Kronleuchter auf...na ja, nu' weiss ich es :^^:

Funzt ausgezeichnet, vielen Dank für das Script @Strandwind Resident und vielen Dank für die Hilfe @Daemonika Nightfire !

:abrazo::besos::ura::baloon:
 
Moment, versteh ich dich jetzt richtig?
Hast du das Script im Wuerfel und in der Tuer?

Eigentlich soll das Script nur in den Wuerfel und die Tuer muss leer sein.
 
Das hatte ich vorher ja so gemacht, funktionierte aber nicht, denn nur der Würfel drehte sich, ob mit der Tür gelinkt oder nicht, das war dem Würfel egal ^^
 
Es gibt verschiedene Skripte. Einige soll und können durchaus mit dem kompletten Objekt verlinkt sein, andere nicht. ich bin kein Skripter, deshalb kann ich das obere Skript nicht übersetzen. Ich verwende die nur. Muss aber dazu sagen, das ich nur noch die verwende wo man das Objekt verlinken kann. Für unverlinktes braucht es kein so riesen Skript. Man muss sich merken das sich die Drehrichtung immer auf das Rootprim bezieht, also das Hauptprim. Ich mache das bei Häusern grundsätzlich so, das das die Bodenplatte ist. Bei Häusern wo die Räume verschiedene Platten haben, weil zB unterschiedliche Texturen, mache ich notfalls eine große unsichtbare Platte, die dann auch die Maße hat welche das Haus als solches einnimmt. Macht alles einfach im Handlung bedeutend praktischer.

Die Achsen x,y,z beziehen sich auf die verschiedenen Richtungen der Achsen, ich meine auch in Anhängigkeit mit dem Rootprim.

Ach ja, es gibt auch komplexere Skripte wo sehr wohl zwei Skripte nötig sind. Ein Skript in dem Teil das sich bewegen soll, eines in dem Rootprim oder auch in dem in dem sich das bewegen soll. Gerade wenn die miteinander verlinkt werden sollen ist das praktisch. Vor allen dort wo Häuser zB gedreht werden nach dem reezen. Sonst kann es vorkommen das die Türe oder das Fenster sich nicht richtig bewegt weil es sich die Stellung merkt die das Gebäude in dem Moment hatte in dem es gerezzt wurde. Gesteuert werden die oft per Notecard.

Es kommt halt nun darauf an was du damit vor hast. ist es nur für dich, das Gebäude und die Türe wird nie wieder verschoben, dann tut es ein einfaches wo Türe und Gebäude nicht verlinkt sind. Für alle anderen würde ich zu einem komplexeren raten.
 
Da geht es mir eigentlich so wie dir Fe, ich verwende Skripte ansonsten nur, aber dieses mal musste/wollte ich das ändern :confused: und da stosse ich schnell an meine Grenzen. Skripten hab' ich nie gelernt ;)
Mit Editieren von Objekten bin ich durchaus vertraut, ob das jetzt Möbel, Häuser oder sonstwas sind. Rootprim kenne ich insofern, wenn ich Full Perm Klamotten bearbeite und einen HUD erstelle, ein Prim kommt in die Kleidung damit das auf meinen Namen läuft (Die Klamotte ist dann das Rootprim) und mehrere je nach Anzahl der Farben/Texturen dann in den HUD, wobei dann der Grundhud (Würfel) das Rootprim ist.
Das ist einfach.....wenn man weiss wie es geht :D Skripte sind für mich immer noch böhmische Dörfer :hmm

Aber das Problem ist ja jetzt gelöst ;)
 

Users who are viewing this thread

Zurück
Oben Unten