Difference between revisions of "Event Driven Sounds"
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 07: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.