Besoin d'un script pour un son

Répondre
Partager Rechercher
Bonjour.
Merçi à ceux qui pourront m'aider =)

Voilà j'ai un object auquel je rajoute un menu pour changer de couleur ,jusque là j'ai trouvé le menu ,les couleurs ect...mais sur ce menu je voudrais rajouter un menu on off pour activer ou désactivé un son.
Je n'ai pas trouvé et je suis nulle en script.
Voilà le script.
Je l'ai trouvé ici j'ai juste rajouté des couleurs:

integer channel;
list menu_couleurs;
vector white;
vector red;
vector green;
vector aquamarine;
vector yellow;
vector pink;
vector purple;
vector cobaltgreen;
vector black;
vector lightskyblue;
initialisations()
{
channel = 27;
menu_couleurs = ["white", "red", "green", "aquamarine", "yellow", "pink", "purple", "cobaltgreen", "black", "lightskyblue"];
white = <1.0,1.0,1.0>;
red = <1.0,0.0,0.0>;
green = <0.0,1.0,0.0>;
aquamarine = <0.439,0.859,0.576>;
yellow = <1.000,1.000,0.000>;
pink = <1.000,0.753,0.796>;
purple = <0.502,0.000,0.502>;
cobaltgreen = <0.239,0.569,0.251>;
black = <0.000,0.000,0.000>;
lightskyblue = <0.529,0.808,0.980>;
}
couleur (vector coul)
{
llSetColor(coul, ALL_SIDES);
}
default
{
state_entry()
{
initialisations();
llListen(channel, "", NULL_KEY, "");
}
touch_start(integer total_number)
{
llDialog(llDetectedKey(0), "Choisissez une couleur", menu_couleurs, channel);
}
listen(integer channel, string name, key id, string message)
{
if (message == "white")
couleur(white);
else if (message == "red")
couleur(red);
else if (message == "green")
couleur(green);
else if (message == "aquamarine")
couleur(aquamarine);
if (message == "yellow")
couleur(yellow);
if (message == "pink")
couleur(pink);
if (message == "purple")
couleur(purple);
if (message == "cobaltgreen")
couleur(cobaltgreen);
if (message == "black")
couleur(black);
if (message == "lightskyblue")
couleur(lightskyblue);
}
}
finalement j'ai trouvé je vais juste rajouter un diffuseur de son en cliquant sur le prims:

default
{
touch_start(integer num)
{
if (llGetInventoryNumber(INVENTORY_SOUND) > 0)
{
llTriggerSound(llGetInventoryName(INVENTORY_SOUND, 0), 1.0);
}
}
}
je viens d'avoir un nouveau petit probleme

quand le menu s'affiche je ne peux pas mettre plus de 12 boutons donc douzes couleurs.
Comment puis je faire pour en mettre plus ?
Citation :
Publié par IsaHaas
je viens d'avoir un nouveau petit probleme

quand le menu s'affiche je ne peux pas mettre plus de 12 boutons donc douzes couleurs.
Comment puis je faire pour en mettre plus ?
Et pour compléter ce qu'a dit Gally , tu as la possibilité de construire tes menus "dialog" avec l'outil de Bestmomo Lagan :

http://script.lsl.free.fr/dialog.htm

Très simple à employer
Me revoilà avec mon script!

J'ai bidouillé , celà m'annonce aucune erreur mais marche pas :
Qu'est ce qui cloche ?

integer ecoute;
integer delai = 60;
integer canal = 91267072;
list menu0;
list menu1;
list menu2;

default{

touch_start(integer total_number){
// Creation des menus
menu2 = ["COLOR 1","COLOR 2"];
menu0 = ["green","pink","black","white"];
menu1 = ["blue","light blue","yellow","purpple"];

// Ecoute
ecoute = llListen(canal, "",llGetOwner(), "");
// Dialogue
llDialog(llDetectedKey(0), "Choisissez une option", menu2, canal);
// Timer
llSetTimerEvent(delai);
}
listen(integer channel, string name, key id, string message){
if (message == "COLOR 1"){
llDialog(id, "Choisissez une option",menu0, canal);
}
else if (message == "COLOR 2"){
llDialog(id, "Choisissez une option",menu1, canal);
}
else if (message == "green"){
//llSetColor (<0.0, 1.0, 0.6>,ALL_SIDES);
}
else if (message == "pink"){
//llSetColor (<1.0, 0.2, 1.0>,ALL_SIDES);
}
else if (message == "black"){
//llSetColor (<0.0, 0.0, 0.0>,ALL_SIDES);
}
else if (message == "white"){
//llSetColor (<1,1,1>,ALL_SIDES);
}
else if (message == "blue"){
//llSetColor (<0.0, 0.2, 1.0>,ALL_SIDES);
}
else if (message == "light blue"){
//llSetColor (<0.2, 0.8, 1.0>,ALL_SIDES);
}
else if (message == "yellow"){
//llSetColor (<0.8, 1.0, 0.2>,ALL_SIDES);
}
else if (message == "purpple"){
//llSetColor (<0.4, 0.0, 1.0>,ALL_SIDES);
}
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
timer(){
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
}
Comme tu mets :

llSetTimerEvent(0.0);
llListenRemove(ecoute);

dans ton listen tu désactives l'écoute pour le deuxième menu, donc le message de la couleur n'est pas intercepté. Sans chercher à afiner le code voilà un truc qui devrait marcher :

Code:
integer ecoute;
integer delai=60;
integer canal=91267072;
list menu0;
list menu1;
list menu2;
 
default{
 
touch_start(integer total_number){
// Creation des menus
menu2=["COLOR 1","COLOR 2"];
menu0=["green","pink","black","white"];
menu1=["blue","light blue","yellow","purpple"];
 
// Ecoute
ecoute=llListen(canal,"",llGetOwner(),"");
// Dialogue
llDialog(llDetectedKey(0),"Choisissez une option",menu2,canal);
// Timer
llSetTimerEvent(delai);
}
listen(integer channel, string name, key id, string message){
if(message=="COLOR 1"){
llDialog(id,"Choisissez une option",menu0,canal);
}
elseif(message=="COLOR 2"){
llDialog(id,"Choisissez une option",menu1,canal);
}
elseif(message=="green"){
llSetColor(<0.0,1.0,0.6>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
elseif(message=="pink"){
llSetColor(<1.0,0.2,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
elseif(message=="black"){
llSetColor(<0.0,0.0,0.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
elseif(message=="white"){
llSetColor(<1,1,1>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
elseif(message=="blue"){
llSetColor(<0.0,0.2,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
elseif(message=="light blue"){
llSetColor(<0.2,0.8,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
elseif(message=="yellow"){
llSetColor(<0.8,1.0,0.2>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
elseif(message=="purpple"){
llSetColor(<0.4,0.0,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
}
timer(){
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
}
C'est du lourd mais j'avais pas envie de remanier le code...
J'arrive a ça mais toujour pareil,un menu mais pas de changement de couleur





integer ecoute;
integer delai = 60;
integer canal = 91267072;
list menu0;
list menu1;
list menu2;

default{

touch_start(integer total_number){
// Creation des menus
menu2 = ["COLOR 1","COLOR 2"];
menu0 = ["green","pink","black","white"];
menu1 = ["blue","light blue","yellow","purpple"];

// Ecoute
ecoute=llListen(canal,"",llGetOwner(),"");
// Dialogue
llDialog(llDetectedKey(0),"Choisissez une option",menu2,canal);
// Timer
llSetTimerEvent(delai);
}
listen(integer channel, string name, key id, string message){
if(message=="COLOR 1"){
llDialog(id,"Choisissez une option",menu0,canal);
}
else if(message == "COLOR 2"){
llDialog(id,"Choisissez une option",menu1,canal);
}
else if(message == "green"){
llSetColor(<0.0,1.0,0.6>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
else if(message == "pink"){
llSetColor(<1.0,0.2,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
else if(message == "black"){
llSetColor(<0.0,0.0,0.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
else if(message == "white"){
llSetColor(<1,1,1>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
else if(message == "blue"){
llSetColor(<0.0,0.2,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
else if(message == "light blue"){
llSetColor(<0.2,0.8,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
else if(message == "yellow"){
llSetColor(<0.8,1.0,0.2>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
else if(message == "purpple"){
llSetColor(<0.4,0.0,1.0>,ALL_SIDES);
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
}
timer(){
llSetTimerEvent(0.0);
llListenRemove(ecoute);
}
}
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés