Difference between revisions of "Event Driven Sounds"
Jump to navigation
Jump to search
Silent Mole (talk | contribs) (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) { …") |
Silent Mole (talk | contribs) |
||
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 06: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>