Second Life aujourd’hui en un seul endroit Cadeaux et freebies mis à jour chaque heure 7 langues Gratuit pour inscrire votre boutique
Incident grille
  • Prévu: Scheduled Billing Maintenance, lun. 16 nov. 09:30–10:30 SLT
  • État de la grille: Unscheduled Group Chat Maintenance (investigating)
  • En ce moment: Office du samedi Unitarian Universalist à UUtopia
  • En ce moment: The Dharma of Community : société bouddhiste et householder
  • En ce moment: SLCS Harvest Fest : jeux, musique et amusement
  • 14:00 SLT: NAD GOUGH en live au Moondance à Cascadia, 14 h SLT
  • Actus: REZZ MALL : les marques Second Life dans un centre commercial web
  • Viewer: Second Life Viewer 26.5 modernise le chat
  • Prévu: Scheduled Billing Maintenance, lun. 16 nov. 09:30–10:30 SLT
  • État de la grille: Unscheduled Group Chat Maintenance (investigating)
  • En ce moment: Office du samedi Unitarian Universalist à UUtopia
  • En ce moment: The Dharma of Community : société bouddhiste et householder
  • En ce moment: SLCS Harvest Fest : jeux, musique et amusement
  • 14:00 SLT: NAD GOUGH en live au Moondance à Cascadia, 14 h SLT
  • Actus: REZZ MALL : les marques Second Life dans un centre commercial web
  • Viewer: Second Life Viewer 26.5 modernise le chat
Script LSL

Script de porte LSL : toucher pour ouvrir, se referme seule

Script de porte LSL gratuit pour Second Life. Touchez pour ouvrir et fermer, la porte pivote sur ses gonds et se referme toute seule après quelques secondes. Sons facultatifs.

55 lignes ·

Un script de porte simple et fiable pour Second Life. Touchez la porte et elle s'ouvre en pivotant sur ses gonds ; touchez à nouveau pour la fermer, ou laissez-la se refermer toute seule après quelques secondes. Elle retient la position de la porte fermée à chaque ouverture, donc vous pouvez déplacer la porte plus tard et elle fonctionnera toujours.

lsl-door-script.lsl · 55 lignes Vérifier ce script
// 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();
    }
}

Libre d’utilisation, de modification et d’intégration dans vos créations, même celles que vous vendez.

Comment l'installer

  1. Créez ou rezzez votre porte. Elle doit être debout et être un objet à part entière, non lié à la maison.
  2. Vérifiez que la largeur de la porte suit son axe X (la flèche rouge dans la fenêtre Modifier). Sinon, faites pivoter la porte avec les outils de construction ou échangez les valeurs de taille.
  3. Ouvrez l'onglet Contenu, cliquez sur Nouveau script, collez le script et enregistrez.
  4. Touchez la porte. Si elle s'ouvre dans le mauvais sens, mettez OPEN_ANGLE à -90.0. Si elle tourne autour du mauvais bord, mettez HINGE_SIDE à -1.

Réglages

  • OPEN_ANGLE : l'amplitude d'ouverture de la porte, en degrés.
  • AUTO_CLOSE : nombre de secondes avant que la porte ne se referme toute seule ; 0.0 la laisse ouverte jusqu'à ce qu'on la touche.
  • HINGE_SIDE : le bord vertical qui sert de gond.
  • OPEN_SOUND / CLOSE_SOUND : le nom d'un son dans le Contenu de la porte, ou un UUID de son. Laissez vide pour un silence.

Astuces

  • Pour une double porte, placez le script dans les deux portes et réglez l'une sur OPEN_ANGLE 90.0 et l'autre sur -90.0.
  • Les portes faisant partie d'une maison liée demandent une autre méthode. La solution la plus simple consiste à délier la porte et à la garder comme objet indépendant.

Questions fréquentes

Pourquoi ma porte tourne-t-elle autour de son milieu ?

Le script fait pivoter la porte autour d'un bord qu'il calcule à partir de la taille X de la porte. Si la porte tourne autour du milieu, sa largeur n'est pas alignée sur l'axe X. Faites pivoter la porte pour que la flèche rouge suive sa largeur.

Puis-je verrouiller la porte ?

Cette version s'ouvre pour tout le monde. Pour une porte verrouillée, ajoutez une vérification au début de touch_start, par exemple : if (llDetectedKey(0) != llGetOwner()) return;

Le script provoque-t-il du lag ?

Non. Il ne s'exécute que lorsqu'on touche la porte et lorsque le minuteur la referme.

Vérifier votre propre script: Vérificateur de syntaxe LSL →

Autres scriptsTous les scripts
Script LSL · 69 lignes

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.

Script LSL · 96 lignes

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.

Script LSL · 101 lignes

Script LSL de cadeaux gratuits pour freebies et cadeaux de groupe

Script LSL gratuit pour boutiques Second Life : un clic livre tous les articles en un dossier, à tous ou seulement aux membres du groupe portant le tag.