Difference between revisions of "Event Driven Sounds"

From Second Life Wiki
Jump to navigation Jump to search
(Created page with "== Event Driven Sounds == === Touched === Would you like your creation to make noise when someone clicks on it? <lsl> default { touch_start(integer total_number) { …")
 
Line 46: Line 46:


=== Sat on ===
=== Sat on ===
Would you like your horse to neigh, or your chair to creak when someone sits on it?
<lsl>
vector sit_position = <-0.0,0.0,-0.1>;
vector sit_rotation = <0,0,0>;
default
{
   
    state_entry()
    {
        llSitTarget(sit_position, llEuler2Rot(sit_rotation * DEG_TO_RAD));
    }
   
    changed(integer change)
    {
        if (change & CHANGED_LINK)
        {
            key avatar = llAvatarOnSitTarget();
            if ( avatar != NULL_KEY ) 
            {
                llPlaySound( llGetInventoryName( INVENTORY_SOUND, 0 ), 1.0 );
            }
        }       
    } 
}
</lsl>

Revision as of 07:46, 16 July 2012

Event Driven Sounds

Touched

Would you like your creation to make noise when someone clicks on it?

<lsl> default {

   touch_start(integer total_number)
   {
       llPlaySound( llGetInventoryName( INVENTORY_SOUND, 0 ), 1.0 );
   }

} </lsl>

Near

If someone is nearby, this script will play a sound.

<lsl> float DISTANCE = 3.0; // in meters. float SECONDS = 1.0; // how often to check

default {

   state_entry()   { llSetTimerEvent( SECONDS ); }
   
   sensor( integer n )
   {
       llPlaySound( llGetInventoryName( INVENTORY_SOUND, 0 ), 1.0 );
       llSetTimerEvent( SECONDS );
   }
   
   no_sensor()     { llSetTimerEvent( SECONDS ); }
   
   timer()
   {
       llSetTimerEvent( 0 );
       llSensor( "", NULL_KEY, AGENT, DISTANCE, PI );
   }

} </lsl>

Collided

Sat on

Would you like your horse to neigh, or your chair to creak when someone sits on it? <lsl> vector sit_position = <-0.0,0.0,-0.1>; vector sit_rotation = <0,0,0>;

default {

   state_entry()
   {
       llSitTarget(sit_position, llEuler2Rot(sit_rotation * DEG_TO_RAD));
   } 
   
   changed(integer change) 
   {
       if (change & CHANGED_LINK) 
       {
           key avatar = llAvatarOnSitTarget();
           if ( avatar != NULL_KEY )  
           {
               llPlaySound( llGetInventoryName( INVENTORY_SOUND, 0 ), 1.0 );
           }
       }        
   }   

} </lsl>