Event Driven Sounds: Difference between revisions
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 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>