LSL ışık anahtarı scripti: lambayı dokunarak aç ve kapat
Second Life lambalar, mumlar ve ampuller için ücretsiz LSL ışık scripti: dokunarak gerçek ışığı, parıltıyı ve full bright'ı aç kapat, renk ve yarıçap ayarlarıyla.
Her lambayı, ampulü, mumu ya da neon tabelayı çalışan bir ışık kaynağına dönüştürün. Dokunduğunuzda bu ışık anahtarı scripti seçtiğiniz yüzeyde gerçek Second Life ışığını, yumuşak bir parıltıyı ve full bright'ı açar. Tekrar dokunarak hepsini kapatın.
// 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);
}
}
Ücretsizdir: kullanabilir, değiştirebilir ve sattıkların dahil kendi yapımlarına koyabilirsin.
Nasıl kurulur
- Scripti lambanın abajurunun ya da ampulünün prim'ine koyun ve kaydedin.
- Lambayı açmak ve kapatmak için ona dokunun.
- Renk, yoğunluk ve yarıçapı odaya uyacak şekilde değiştirin.
Ayarlar
- LIGHT_COLOR: ışığın rengi. <1.0, 0.9, 0.7> sıcak beyaz, <0.7, 0.8, 1.0> ise soğuk beyazdır.
- LIGHT_INTENSITY, LIGHT_RADIUS, LIGHT_FALLOFF: ışığın ne kadar güçlü olduğu, ne kadar uzağa ulaştığı ve ne kadar hızlı söndüğü.
- GLOW_AMOUNT: yanan yüzeyde yumuşak bir parıltı; 0.0 parıltıyı kapatır.
- USE_FULLBRIGHT: yanan yüzeyin gece bile parlak görünmesini sağlar.
- LIGHT_FACE: parlayan yüzey (örneğin yalnızca ampul) veya ALL_SIDES.
- START_ON: script başladıktan sonra ışığın açık olup olmayacağı.
İpuçları
- Ziyaretçiler ışığın kendisini ancak grafik ayarlarında yerel ışıklar açıksa görür. Parıltı ve full bright yine görünür.
- Birbirine yakın çok sayıda ışık viewer'ı yavaşlatabilir. Çok sayıda küçük ışık yerine birkaç güçlü ışık kullanın.
Sık sorulan sorular
Neden ışığı duvarlarda göremiyorum?
Viewer'ınızın grafik ayarları yerel ışıkları sınırlıyor olabilir. Grafik kalitesini artırın ya da yerel ışıklara izin verin ve LIGHT_RADIUS değerinin duvarlara ulaştığını kontrol edin.
Tek bir anahtar birden fazla lambayı kontrol edebilir mi?
Bu script yalnızca kendi prim'ini kontrol eder. Birden fazla lambayı kontrol etmek için anahtar, bağlı nesneler için llMessageLinked, bağlı olmayanlar için llRegionSay ile lambalara mesaj gönderebilir ve her lamba bu mesajı dinler.
Gece kendiliğinden açılmasını sağlayabilir miyim?
Evet. Bir timer içinde llGetSunDirection ile güneşin konumunu kontrol edin ve güneş battığında ışığı değiştirin.