Script:Random Sounds

From Second Life Wiki
Revision as of 10:30, 11 July 2012 by Silent Mole (talk | contribs) (Created page with "<lsl> →‎This script will play the sounds in the object's inventory randomly.: float MinimumSeconds = 10.0; float MaximumSeconds = 30.0; float volume = 0.5; // How loud? Bet…")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

<lsl> /*

 This script will play the sounds in the object's inventory randomly.
  • /

float MinimumSeconds = 10.0; float MaximumSeconds = 30.0; float volume = 0.5; // How loud? Between 0 and 1.

/////////////////////////////////////////////////////////////////////// integer sounds = 0; // # sounds in inventory list soundnames; // names of sounds in inventory /////////////////////////////////////////////////////////////////////// LoadSounds() {

   soundnames = [];
   sounds = llGetInventoryNumber( INVENTORY_SOUND );
   integer n;
   for ( n=0; n < sounds; ++n )
   {
       soundnames += llGetInventoryName( INVENTORY_SOUND, n );
   }

} /////////////////////////////////////////////////////////////////////// default {

   state_entry()
   {
       LoadSounds();
       
       if ( sounds > 0 )
           llSetTimerEvent( 0.1 );
       else
           llOwnerSay("No sounds.");
   }
   
   timer()
   {
       integer random = (integer) llFrand ( sounds );
       string sound = llList2String( soundnames, random );
       llTriggerSound( sound, volume );
       
       llSetTimerEvent( MinimumSeconds + (llFrand( MaximumSeconds - MinimumSeconds)) );
   }
   
   changed (integer change)
   { 
       if (change & CHANGED_INVENTORY)
       {
           llResetScript();
       }
   }

} </lsl>