transmettre l'uuid d'un son d'un hud vers un prim porté

Répondre
Partager Rechercher
Bonjour tout le monde!

j'ai eu l'occasion de modifier un script de son en HUD , le but en reste simple , je porte le HUD et mème si je ne suis pas scripteur il suffit d'ajouter ou supprimer les sons dans le contenue du HUD pour que la liste dans le menu dialogue sois réviser automatiquement , jusque la tout va bien, par la suite j'ai remarqué que les sons dans un HUD sont entendue de façon beaucoup plus faible par les personnes autour de moi , donc pour moi, solution simple,il faut que je garde ma base de script du HUD , que je récupère l'UUID du son sélectionné et que je transmette le tout a un prim porté sur l'avatar ou seras joué le son .....oui mais comment faire ?

Voila ma base de script :

Cliquez ce bouton ou survolez le contenu pour afficher le spoiler


integer use_group = FALSE; // Set TRUE to Enable Group Only Access or FALSE for Anyone to Use

float menu_timeout = 30.0;
integer being_used = FALSE;
integer inventory_type = INVENTORY_SOUND;

key user;
list inventory_list;
integer menu_channel;
integer menu_handle;
integer menu_counter;
integer menu_parts;

set_listen()
{
llListenRemove(menu_handle);
llSetTimerEvent(menu_timeout);
menu_handle = llListen(menu_channel, "", "", "");
}

inventory_load()
{
integer i;
menu_parts = 0;
inventory_list = [];
for(i=0; i <= -1 + llGetInventoryNumber(inventory_type);i++)
{
inventory_list += [llGetInventoryName(inventory_type,i)];
menu_parts++;
}
}

inventory_menu()
{
list menu_buttons;
integer i;
menu_buttons = [];

string DialogText = "\nChoose notecard to view:\n\n";

for(i = menu_counter * 8; (i <= menu_counter * 8 + 8) && (i <= menu_parts - 1); i++)
{
DialogText += (string)i + ". " + llGetInventoryName(inventory_type, i) + "\n";
}

if(menu_counter > 0)
{
menu_buttons += ["<< Prev."];
menu_buttons += ["Close"];
}
else
{
menu_buttons += ["-"];
menu_buttons += ["Close"];
}

if(menu_counter * 8 + 8 < menu_parts - 1)
{
menu_buttons += ["Next >>"];
}
else
{
menu_buttons += ["-"];
}

for(i = menu_counter * 8; (i <= menu_counter * 8 + 8) && (i <= menu_parts - 1); i++)
{
menu_buttons += [(string)i];
}
llDialog(user, DialogText, menu_buttons, menu_channel);
}

default
{
state_entry()
{
menu_channel = (integer)(llFrand(-1000000000.0) - 1000000000.0);
inventory_load();
}

changed(integer c)
{
if(c & CHANGED_OWNER) llResetScript();
if(c & CHANGED_INVENTORY) inventory_load();
}

touch_start(integer total_number)
{
if(being_used && user != llDetectedKey(0))
{
llInstantMessage(llDetectedKey(0),"Sorry, I'm currently being used by someone else.");
return;
}

if (use_group == TRUE)
{
if (llSameGroup(llDetectedKey(0)) == TRUE)
{
being_used = TRUE;
user = llDetectedKey(0);
set_listen();
inventory_menu();
}
else
{
// llInstantMessage(llDetectedKey(0), "Sorry, you need to change your active group to be able to use the library.");
}
}
else
{
being_used = TRUE;
user = llDetectedKey(0);
set_listen();
inventory_menu();
}
}

listen(integer chan, string who, key id, string msg)
{
if(llGetOwnerKey(id) != user) return;

if(chan == menu_channel)
{
llSetTimerEvent(menu_timeout);

if(msg == "<< Prev.")
{
menu_counter--;
inventory_menu();
}

else if(msg == "Close" || msg == "-")
{
being_used = FALSE;
user = NULL_KEY;
llSetTimerEvent(0.0);
llListenRemove(menu_handle);
}

else if(msg == "Next >>")
{
menu_counter++;
inventory_menu();
}

else if(llListFindList(inventory_list, [llList2String(inventory_list, (integer)msg)]) != -1)
{


llPlaySound( llList2String(inventory_list, (integer)msg),1.0);


llSetTimerEvent(0.1);
}
}
}

timer()
{
being_used = FALSE;
user = NULL_KEY;
llSetTimerEvent(0.0);
llListenRemove(menu_handle);
}
}



Merci a vous !
Répondre

Connectés sur ce fil

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