Script LSL interrupteur de lumière : toucher pour allumer et éteindre une lampe
Script LSL gratuit pour lampes, bougies et ampoules Second Life : un clic allume ou éteint la vraie lumière, le halo et le full bright, avec couleur et rayon réglables.
Transformez n'importe quelle lampe, ampoule, bougie ou enseigne néon en vraie source de lumière. Touchez-la et ce script d'interrupteur de lumière allume une véritable lumière Second Life, un halo doux et le full bright sur la face de votre choix. Touchez à nouveau pour tout éteindre.
// Light Switch - free LSL script from WhatSL (https://whatsl.com/scripts/lsl-light-switch-script)
// Free to use, change and put in your own creations, also ones you sell.
//
// Put this script in a lamp, bulb or candle. Touch to turn the light on and off.
// The prim gives real light, and can glow and be full bright while it is on.
vector LIGHT_COLOR = <1.0, 0.9, 0.7>; // warm white
float LIGHT_INTENSITY = 1.0; // 0.0 to 1.0
float LIGHT_RADIUS = 10.0; // metres, up to 20.0
float LIGHT_FALLOFF = 0.75; // 0.0 to 2.0
float GLOW_AMOUNT = 0.1; // 0.0 = no glow
integer USE_FULLBRIGHT = TRUE;
integer LIGHT_FACE = ALL_SIDES; // the face that glows, or ALL_SIDES
integer START_ON = FALSE;
integer gOn = FALSE;
setLight(integer on)
{
float glow = 0.0;
if (on) glow = GLOW_AMOUNT;
llSetLinkPrimitiveParamsFast(LINK_THIS, [
PRIM_POINT_LIGHT, on, LIGHT_COLOR, LIGHT_INTENSITY, LIGHT_RADIUS, LIGHT_FALLOFF,
PRIM_FULLBRIGHT, LIGHT_FACE, on && USE_FULLBRIGHT,
PRIM_GLOW, LIGHT_FACE, glow
]);
gOn = on;
}
default
{
state_entry()
{
setLight(START_ON);
}
touch_start(integer total)
{
setLight(!gOn);
}
}
Libre d’utilisation, de modification et d’intégration dans vos créations, même celles que vous vendez.
Comment l'installer
- Placez le script dans le prim de l'abat-jour ou de l'ampoule, puis enregistrez.
- Touchez la lampe pour l'allumer et l'éteindre.
- Modifiez la couleur, l'intensité et le rayon pour les adapter à la pièce.
Réglages
- LIGHT_COLOR : la couleur de la lumière. <1.0, 0.9, 0.7> donne un blanc chaud, <0.7, 0.8, 1.0> un blanc froid.
- LIGHT_INTENSITY, LIGHT_RADIUS, LIGHT_FALLOFF : la puissance de la lumière, sa portée et la vitesse à laquelle elle s'estompe.
- GLOW_AMOUNT : un halo doux sur la face éclairée ; 0.0 désactive le halo.
- USE_FULLBRIGHT : rend la face éclairée lumineuse, même la nuit.
- LIGHT_FACE : la face qui brille (par exemple seulement l'ampoule), ou ALL_SIDES.
- START_ON : indique si la lumière est allumée au démarrage du script.
Astuces
- Les visiteurs ne voient la lumière elle-même que si les lumières locales sont activées dans leurs paramètres graphiques. Le halo et le full bright restent visibles.
- Beaucoup de lumières rapprochées peuvent ralentir le viewer. Préférez quelques lumières puissantes à de nombreuses petites.
Questions fréquentes
Pourquoi je ne vois pas la lumière sur les murs ?
Les paramètres graphiques de votre viewer limitent peut-être les lumières locales. Augmentez la qualité graphique ou autorisez les lumières locales, et vérifiez que LIGHT_RADIUS atteint les murs.
Un seul interrupteur peut-il commander plusieurs lampes ?
Ce script ne contrôle que son propre prim. Pour commander plusieurs lampes, l'interrupteur peut envoyer un message aux lampes avec llMessageLinked (si elles sont liées) ou llRegionSay (si elles ne le sont pas), et chaque lampe écoute ce message.
Peut-on faire qu'elle s'allume toute seule la nuit ?
Oui. Vérifiez la position du soleil avec llGetSunDirection dans un timer, puis changez l'état de la lumière lorsque le soleil se couche.