Second Life heute an einem Ort Geschenke & Freebies stündlich aktualisiert 7 Sprachen Kostenlos deinen Store eintragen
12:49 SLT Event eintragen+ Eintragen
Grid-Störung
  • Geplant: Scheduled Billing Maintenance, Mo., 16. Nov. 09:30–10:30 SLT
  • Grid-Status: Unscheduled Group Chat Maintenance (investigating)
  • Jetzt: Unitarian Universalist Samstagsgottesdienst in UUtopia
  • Jetzt: The Dharma of Community: Buddhistische Gesellschaft und der Householder
  • Jetzt: SLCS Harvest Fest: Spiele, Musik und Spaß
  • 14:00 SLT: NAD GOUGH live im Moondance in Cascadia, 14:00 Uhr SLT
  • News: REZZ MALL: Second-Life-Marken in einem Web-Mall
  • Viewer: Second Life Viewer 26.5 mit modernisiertem Chat
  • Geplant: Scheduled Billing Maintenance, Mo., 16. Nov. 09:30–10:30 SLT
  • Grid-Status: Unscheduled Group Chat Maintenance (investigating)
  • Jetzt: Unitarian Universalist Samstagsgottesdienst in UUtopia
  • Jetzt: The Dharma of Community: Buddhistische Gesellschaft und der Householder
  • Jetzt: SLCS Harvest Fest: Spiele, Musik und Spaß
  • 14:00 SLT: NAD GOUGH live im Moondance in Cascadia, 14:00 Uhr SLT
  • News: REZZ MALL: Second-Life-Marken in einem Web-Mall
  • Viewer: Second Life Viewer 26.5 mit modernisiertem Chat
LSL-Skript

LSL-Tür-Skript: Berühren zum Öffnen, schließt sich selbst

Kostenloses LSL-Türskript für Second Life. Berühren zum Öffnen und Schließen, die Tür schwingt um ihr Scharnier und schließt sich nach einigen Sekunden selbst. Geräusche optional.

55 Zeilen ·

Ein einfaches, zuverlässiges Türskript für Second Life. Berühre die Tür, und sie schwingt auf ihrem Scharnier auf; berühre sie erneut, um sie zu schließen, oder lass sie nach einigen Sekunden von selbst zufallen. Das Skript merkt sich bei jedem Öffnen, wo die geschlossene Tür steht, sodass du die Tür später verschieben kannst und sie trotzdem funktioniert.

lsl-door-script.lsl · 55 Zeilen Dieses Skript prüfen
// Touch Door with auto-close - free LSL script from WhatSL (https://whatsl.com/scripts/lsl-door-script)
// Free to use, change and put in your own creations, also ones you sell.
//
// Put this script in an upright door that is its own object (not linked to the house).
// The door's width must run along its X axis (the red arrow in the Edit window).
// Touch to open, touch again to close. It also closes by itself after AUTO_CLOSE seconds.

float   OPEN_ANGLE  = 90.0;  // degrees to swing; use -90.0 to open the other way
float   AUTO_CLOSE  = 10.0;  // seconds before it closes by itself; 0.0 = stay open
integer HINGE_SIDE  = 1;     // 1 = hinge on the +X edge, -1 = hinge on the -X edge
string  OPEN_SOUND  = "";    // optional: a sound name in the door's Contents, or a sound UUID
string  CLOSE_SOUND = "";

integer  gOpen = FALSE;
vector   gClosedPos;
rotation gClosedRot;

openDoor()
{
    // remember where the closed door is, so the door can be moved and still work
    gClosedPos = llGetPos();
    gClosedRot = llGetRot();
    vector size = llGetScale();
    vector hinge = gClosedPos + <HINGE_SIDE * size.x * 0.5, 0.0, 0.0> * gClosedRot;
    rotation turn = llEuler2Rot(<0.0, 0.0, OPEN_ANGLE * DEG_TO_RAD>);
    llSetLinkPrimitiveParamsFast(LINK_THIS, [
        PRIM_POSITION, hinge + (gClosedPos - hinge) * turn,
        PRIM_ROTATION, gClosedRot * turn
    ]);
    if (OPEN_SOUND != "") llPlaySound(OPEN_SOUND, 1.0);
    gOpen = TRUE;
    if (AUTO_CLOSE > 0.0) llSetTimerEvent(AUTO_CLOSE);
}

closeDoor()
{
    llSetTimerEvent(0.0);
    llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POSITION, gClosedPos, PRIM_ROTATION, gClosedRot]);
    if (CLOSE_SOUND != "") llPlaySound(CLOSE_SOUND, 1.0);
    gOpen = FALSE;
}

default
{
    touch_start(integer total)
    {
        if (gOpen) closeDoor();
        else openDoor();
    }

    timer()
    {
        closeDoor();
    }
}

Frei nutzbar, änderbar und in eigenen Kreationen verwendbar, auch in solchen, die du verkaufst.

So richtest du es ein

  1. Baue oder rezze deine Tür. Sie muss aufrecht stehen und ein eigenes Objekt sein, nicht mit dem Haus verlinkt.
  2. Prüfe, ob die Breite der Tür entlang ihrer X-Achse verläuft (der rote Pfeil im Bearbeiten-Fenster). Falls nicht, drehe die Tür mit den Bauwerkzeugen oder tausche die Größenwerte.
  3. Öffne den Reiter Inhalt, klicke auf Neues Skript, füge das Skript ein und speichere.
  4. Berühre die Tür. Öffnet sie sich in die falsche Richtung, setze OPEN_ANGLE auf -90.0. Dreht sie sich um die falsche Kante, setze HINGE_SIDE auf -1.

Einstellungen

  • OPEN_ANGLE: wie weit die Tür schwingt, in Grad.
  • AUTO_CLOSE: Sekunden, bis die Tür sich von selbst schließt; 0.0 lässt sie offen, bis sie berührt wird.
  • HINGE_SIDE: welche senkrechte Kante das Scharnier ist.
  • OPEN_SOUND / CLOSE_SOUND: der Name eines Sounds im Inhalt der Tür oder eine Sound-UUID. Leer lassen für Stille.

Tipps

  • Bei Doppeltüren füge das Skript in beide Türen ein und setze eine auf OPEN_ANGLE 90.0 und die andere auf -90.0.
  • Türen, die Teil eines verlinkten Hauses sind, brauchen eine andere Methode. Am einfachsten ist es, die Tür zu entlinken und als eigenes Objekt zu behalten.

Häufig gestellte Fragen

Warum dreht sich meine Tür um ihre Mitte?

Das Skript dreht sich um eine Kante, die es aus der X-Größe der Tür ermittelt. Dreht sich die Tür um die Mitte, verläuft ihre Breite nicht entlang der X-Achse. Drehe die Tür so, dass der rote Pfeil entlang ihrer Breite verläuft.

Kann ich die Tür abschließen?

Diese Version öffnet sich für alle. Für eine verschlossene Tür füge am Anfang von touch_start eine Prüfung hinzu, zum Beispiel: if (llDetectedKey(0) != llGetOwner()) return;

Verursacht das Skript Lag?

Nein. Es läuft nur, wenn jemand die Tür berührt und wenn der Timer sie schließt.

Eigenes Skript prüfen: LSL-Syntaxprüfer →

Weitere SkripteAlle Skripte
LSL-Skript · 69 Zeilen

LSL sit and pose script for chairs and pose balls

Free LSL sit script for Second Life chairs, benches and pose balls: sit and play your own animation, set the sit position, hide the ball while in use.

LSL-Skript · 96 Zeilen

LSL tip jar script with thank-you message and total

Free LSL tip jar script for Second Life clubs, DJs, hosts and stores: quick pay buttons, a thank-you message, the total and last tipper in floating text.

LSL-Skript · 101 Zeilen

LSL-Geschenkverteiler-Skript für Freebies und Gruppengeschenke

Kostenloses LSL-Geschenkskript für Second-Life-Stores: Anklicken gibt alle Objekte als einen Ordner, für alle oder nur für Gruppenmitglieder mit Gruppentag.