// Simple controleur de lumiere par commande dans le chat local // Ecrire allumer pour donner de la lumiere et eteindre pour l'enlever.
vector vLightColor = <1.0, 1.0, 0.5>; //La couleur de la lumière émise (pas la couleur de la lampe) float fIntensity = 1.0; // Agit comme un variateur de lumière pour ajuster le flux float fRadius = 3.0; //C'est la distance de pleine intensité mesurée à partir de l'ampoule float fDimming = 1.0; //C'est l'atténuation de la lumière ; 0.0 pleine lumière quelque soit la distance ; 2.0 très atténuée par la distance //En ajustant les 3 paramètres on obtient le bon effet
float fGlow = 0.02; //C'est la brillance de la lampe, ne pas abuser!
vector vColorOn = <1.0, 1.0, 1.0>; //C'est un ajout de couleur quand on allume vector vColorOff = <0.7, 0.7, 0.7>; //C'est la'jout de couleur quand on éteint
key kOwner; //la clé unique du propriétaire de la lampe ; ça sert à empêcher les autres de jouer avec
default { state_entry() { llWhisper(0, "Lumière allumée"); //au lancement du script, indique que l'on démarre avec la lampe allumée //Cette instruction paramètre la lampe lorsqu'elle est allumée ; les commande sont à l'intérieure d'une liste, d'où les [...] llSetPrimitiveParams ([PRIM_POINT_LIGHT, TRUE, vLightColor, fIntensity, fRadius, fDimming, PRIM_FULLBRIGHT, ALL_SIDES, TRUE, PRIM_GLOW, ALL_SIDES, fGlow]); //PRIM_POINT_LIGHT : définit la lumière projetée par la lampe sur le reste du décor ; correspond à la partie lumière de l'onglet Attributs de la fenêtre de modification //PRIM_FULLBRIGHT : définit la luminosité de la lampe ; correspond à la case Lumineux de l'onglet Texture de la fenêtre de modification //PRIM_GLOW : définit le rayonnement de la lampe ; correspond à la case Rayonnement de l'onglet Texture de la fenêtre de modification //TRUE : c'est quand la case correspondante est cochée //FALSE : c'est quand la case correspondante n'est pas cochée //ALL_SIDES : affecte toutes les faces de l'objet //autres paramètres : voir en début de programme
llSetColor(vColorOn,ALL_SIDES); //place une ajout de couleur blanche quand la lampe est allumée kOwner = llGetOwner(); //La clé unique du propriétaire est mémorisée llListen(0,"",kOwner,"allumer"); // on écoute sur le chat publique le mot "allumer" llListen(0,"",kOwner,"eteindre"); // on écoute sur le chat publique le mot "eteindre" } //L'initialisation du script est terminée ; plus rien ne se passe tant que l'un des 2 mots n'est pas écrit
listen(integer iChannel, string sName, key kId, string sMessage) //un des 2 mots a été détecté { if (sMessage == "allumer") //si c'est "allumer" { llSetColor(vColorOn,ALL_SIDES); //place une ajout de couleur blanche quand la lampe est allumée llSetPrimitiveParams ([PRIM_POINT_LIGHT, TRUE, vLightColor, fIntensity, fRadius, fDimming, PRIM_FULLBRIGHT, ALL_SIDES, TRUE, PRIM_GLOW, ALL_SIDES, fGlow]); //voir la même instruction plus haut } if (sMessage == "eteindre") //si c'est "eteindre" { llSetColor(vColorOff,ALL_SIDES); //place une ajout de couleur grise quand la lampe est allumée llSetPrimitiveParams ([PRIM_POINT_LIGHT, FALSE, vLightColor, fIntensity, fRadius, fDimming, PRIM_FULLBRIGHT, ALL_SIDES, FALSE, PRIM_GLOW, ALL_SIDES, 0.0]); //voir la même instruction plus haut } } on_rez(integer iPNumb) //lorsque la lampe est sortie de l'inventaire { llResetScript(); //le script est réinitialisé } } //Il existe d'autres moyens pour éteindre/allumer la lampe ; en la touchant avec l'évènement touch ; en fonction du jour et de la nuit //En fouillant la Librairie Scripts de http://www.avatars-3d.com/index.php/fr/script-lsl/lsl-script-tutoriel vous trouverez de tels scripts.
|