14.11.2024, 20:36
Licht erweitert für Lichtorgeln und so´n Zeugs.
PHP-Code:
// Farbwechsler, Lichorgel, Psycho
// Variablen für den Farbwechsel
float redValue = 0.0;
float greenValue = 0.0;
float blueValue = 0.0;
float mytime = 0.1;
float helligkeit = 0.1;
float transparenz = 1.0;
// Variablen für Licht Helligkeit und Reichweite etc.
integer anaus = TRUE; // TRUE Ein, FALSE Aus
vector lichtfarbe = <1.0, 1.0, 1.0>; // Lineare Farbe in RGB <R, G, B> (<0.0, 0.0, 0.0> = black, <1.0, 1.0, 1.0> = white) Zufall <redValue, greenValue, blueValue>
float intensiv = 1.0; // Einstellbereich 0.0 to 1.0
float radius = 20.0; // Einstellbereich 0.1 to 20.0
float abfallwert = 0.1; // Einstellbereich 0.01 to 2.0
// Flag, ob der Farbwechsel aktiv ist
integer isColorCycling = FALSE;
// Funktion, um die Farbe zufällig zu setzen
setRandomColor() {
// Zufällige Werte für Rot, Grün und Blau im Bereich von 0.001 bis 1.000
redValue = llFrand(0.999) + 0.001; // Zufälliger Wert für Rot im Bereich 0.001 bis 1.000
greenValue = llFrand(0.999) + 0.001; // Zufälliger Wert für Grün im Bereich 0.001 bis 1.000
blueValue = llFrand(0.999) + 0.001; // Zufälliger Wert für Blau im Bereich 0.001 bis 1.000
// Setzt die zufällige Farbe
llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_COLOR, ALL_SIDES, <redValue, greenValue, blueValue>, transparenz, PRIM_GLOW, ALL_SIDES, helligkeit ]);
// Licht an
llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_POINT_LIGHT, anaus, <redValue, greenValue, blueValue>, intensiv, radius, abfallwert ]);
}
default {
state_entry() {
// Initiale Farbe auf Schwarz setzen (alle Farben 0.0)
llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_COLOR, ALL_SIDES, <0.0, 0.0, 0.0>, transparenz, PRIM_GLOW, ALL_SIDES, helligkeit ]);
// Licht aus
llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_POINT_LIGHT, FALSE, <0.0, 0.0, 0.0>, intensiv, radius, abfallwert ]);
}
touch_start(integer total_number) {
// Umschalten des Farbwechselmodus
isColorCycling = !isColorCycling;
if (isColorCycling) {
// Zufällige Farbe sofort setzen
setRandomColor();
llSetTimerEvent(mytime); // Timer für kontinuierliche Farbänderung
} else {
llSetTimerEvent(0.0); // Timer stoppen
// Zurück auf schwarze Farbe setzen, wenn der Wechselmodus gestoppt wird
llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_COLOR, ALL_SIDES, <0.0, 0.0, 0.0>, transparenz, PRIM_GLOW, ALL_SIDES, helligkeit ]);
// Licht aus
llSetLinkPrimitiveParamsFast(LINK_ROOT, [ PRIM_POINT_LIGHT, FALSE, <0.0, 0.0, 0.0>, intensiv, radius, abfallwert ]);
}
}
timer() {
// Wenn der Farbwechselmodus aktiv ist, setze alle Farben zufällig
if (isColorCycling) {
setRandomColor(); // Zufällige Farbe setzen
}
}
}
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.