Script LSL de interruptor de luz: toque para ligar e desligar uma lâmpada
Script LSL grátis para lâmpadas, velas e lâmpadas de Second Life: toque para ligar e desligar luz real, brilho e full bright, com ajustes de cor e raio.
Transforme qualquer lâmpada, lampada, vela ou letreiro de neon em uma luz que funciona. Toque nele e este script de interruptor de luz liga a luz real do Second Life, um brilho suave e full bright na face que você escolher. Toque de novo para desligar tudo.
// 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);
}
}
Livre para usar, alterar e colocar nas suas criações, inclusive nas que você vende.
Como configurar
- Coloque o script no prim do abajur ou da lâmpada e salve.
- Toque na lâmpada para ligar e desligar.
- Mude a cor, a intensidade e o raio para combinar com o ambiente.
Configurações
- LIGHT_COLOR: a cor da luz. <1.0, 0.9, 0.7> é branco quente, <0.7, 0.8, 1.0> é branco frio.
- LIGHT_INTENSITY, LIGHT_RADIUS, LIGHT_FALLOFF: quão forte é a luz, até onde ela alcança e a rapidez com que ela diminui.
- GLOW_AMOUNT: um brilho suave na face iluminada; 0.0 desliga o brilho.
- USE_FULLBRIGHT: faz a face iluminada parecer brilhante mesmo à noite.
- LIGHT_FACE: a face que brilha (por exemplo, só a lâmpada), ou ALL_SIDES.
- START_ON: define se a luz fica ligada assim que o script começa.
Dicas
- Os visitantes só veem a própria luz se tiverem as luzes locais ativadas nas configurações gráficas do viewer. O brilho e o full bright continuam aparecendo.
- Muitas luzes próximas umas das outras podem deixar o viewer mais lento. Use poucas luzes fortes em vez de muitas pequenas.
Perguntas frequentes
Por que não consigo ver a luz nas paredes?
As configurações gráficas do seu viewer podem limitar as luzes locais. Aumente a qualidade gráfica ou permita as luzes locais, e confira se LIGHT_RADIUS alcança as paredes.
Um único interruptor pode controlar várias lâmpadas?
Este script controla apenas o próprio prim. Para controlar várias lâmpadas, o interruptor pode enviar uma mensagem às lâmpadas com llMessageLinked (linkados) ou llRegionSay (não linkados), e cada lâmpada escuta essa mensagem.
Dá para fazer a luz ligar sozinha à noite?
Dá sim. Verifique a posição do sol com llGetSunDirection em um timer e troque a luz quando o sol se puser.