Event Driven Sounds: Difference between revisions
Silent Mole (talk | contribs) |
Silent Mole (talk | contribs) |
||
| Line 1: | Line 1: | ||
== Event Driven Sounds == | == Event Driven Sounds == | ||
=== Touched === | === Touched === | ||
| Line 73: | Line 74: | ||
} | } | ||
</lsl> | </lsl> | ||
=== Scripting comments === | |||
This gets the name of the first sound in the object's inventory. You can replace it with the name of a sound or its UUID. | |||
<lsl> | |||
string soundname = llGetInventoryName( INVENTORY_SOUND, 0 ); | |||
</lsl> | |||
You can replace llPlaySound() with llTriggerSound() in the scripts above. The latter plays sounds unattached, so consider carefully if you're using it on a moving object. | |||
Revision as of 08:02, 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>
Scripting comments
This gets the name of the first sound in the object's inventory. You can replace it with the name of a sound or its UUID.
<lsl> string soundname = llGetInventoryName( INVENTORY_SOUND, 0 ); </lsl>
You can replace llPlaySound() with llTriggerSound() in the scripts above. The latter plays sounds unattached, so consider carefully if you're using it on a moving object.