LSL-Lichtschalter-Skript: Berühren schaltet Lampe an und aus
Kostenloses LSL-Lichtskript für Second-Life-Lampen, Kerzen und Glühbirnen: Berühren schaltet echtes Licht, Glow und Full Bright an und aus, mit Farb- und Radius-Einstellungen.
Verwandle jede Lampe, Glühbirne, Kerze oder Neonreklame in ein funktionierendes Licht. Berühre sie, und dieses Lichtschalter-Skript schaltet echtes Second-Life-Licht, einen sanften Glow und Full Bright auf der gewählten Seite ein. Berühre sie erneut, um alles wieder auszuschalten.
// 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);
}
}
Frei nutzbar, änderbar und in eigenen Kreationen verwendbar, auch in solchen, die du verkaufst.
So richtest du es ein
- Lege das Skript in den Lampenschirm oder das Glühbirnen-Prim und speichere.
- Berühre die Lampe, um sie ein- und auszuschalten.
- Passe Farbe, Intensität und Radius an den Raum an.
Einstellungen
- LIGHT_COLOR: die Farbe des Lichts. <1.0, 0.9, 0.7> ist warmweiß, <0.7, 0.8, 1.0> ist kaltweiß.
- LIGHT_INTENSITY, LIGHT_RADIUS, LIGHT_FALLOFF: wie stark das Licht ist, wie weit es reicht und wie schnell es abnimmt.
- GLOW_AMOUNT: ein sanfter Glow auf der beleuchteten Seite; 0.0 schaltet den Glow aus.
- USE_FULLBRIGHT: lässt die beleuchtete Seite auch nachts hell wirken.
- LIGHT_FACE: die Seite, die leuchtet (zum Beispiel nur die Glühbirne), oder ALL_SIDES.
- START_ON: ob das Licht nach dem Start des Skripts an ist.
Tipps
- Besucher sehen das Licht selbst nur, wenn sie lokale Lichter in ihren Grafikeinstellungen aktiviert haben. Glow und Full Bright werden trotzdem angezeigt.
- Viele dicht beieinanderstehende Lichter können den Viewer ausbremsen. Nimm lieber wenige starke Lichter statt vieler kleiner.
Häufig gestellte Fragen
Warum sehe ich das Licht nicht an den Wänden?
Deine Grafikeinstellungen im Viewer begrenzen möglicherweise lokale Lichter. Erhöhe die Grafikqualität oder erlaube lokale Lichter und prüfe, ob LIGHT_RADIUS die Wände erreicht.
Kann ein Schalter mehrere Lampen steuern?
Dieses Skript steuert nur sein eigenes Prim. Um mehrere Lampen zu steuern, kann der Schalter mit llMessageLinked (verlinkt) oder llRegionSay (nicht verlinkt) eine Nachricht an die Lampen senden, und jede Lampe hört darauf.
Kann es sich nachts von selbst einschalten?
Ja. Prüfe den Sonnenstand mit llGetSunDirection in einem Timer und schalte das Licht, wenn die Sonne untergeht.