Difference between revisions of "Animation triggered sound loop"
Jump to navigation
Jump to search
BETLOG Hax (talk | contribs) m |
m (<lsl> tag to <source>) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 5: | Line 5: | ||
You want a specific animation (thats already handled by your AO) to play a special sound. | You want a specific animation (thats already handled by your AO) to play a special sound. | ||
<br> | <br> | ||
This script does the sound bit. | |||
This script does the sound bit. (LOOPS the sound FOR AS LONG AS you play the animation) | |||
<br> | <br> | ||
< | <source lang="lsl2"> | ||
//============================================================== | //============================================================== | ||
// BETLOG Hax | // BETLOG Hax | ||
Line 20: | Line 21: | ||
// -Supply my original script with your modified version. | // -Supply my original script with your modified version. | ||
// -Retain the original scripts' SL permissions. [+c/+m/+t] | // -Retain the original scripts' SL permissions. [+c/+m/+t] | ||
// -Exception for Eln ALter to protect the commercial viability of his animations' UUID | |||
// Or: | // Or: | ||
// -Link to the wiki URL from which you copied this script. | // -Link to the wiki URL from which you copied this script. | ||
Line 80: | Line 82: | ||
} | } | ||
//============================================================== | //============================================================== | ||
</ | </source> | ||
====Animation triggered sound NOloop==== | |||
--[[User:BETLOG Hax|BETLOG Hax]] UTC+10: 20091011 1615 [SLT: 20091010 2315] | |||
You want a specific animation (thats already handled by your AO) to play a special sound. | |||
<br> | |||
This script does the sound bit. (Plays the sound ONCE each time you start the animation) | |||
<br> | |||
<source lang="lsl2"> | |||
//============================================================== | |||
// BETLOG Hax | |||
// UTC+10: 20091011 1601 [SLT: 20091010 2301] | |||
// For Eln Alter | |||
//---------------------------------- | |||
// **** LICENCE START **** | |||
// http://creativecommons.org/licenses/by-sa/3.0/ | |||
// Attribution licence: | |||
// You must: | |||
// -Include this unaltered licence information. | |||
// -Supply my original script with your modified version. | |||
// -Retain the original scripts' SL permissions. [+c/+m/+t] | |||
// -Exception for Eln ALter to protect the commercial viability of his animations' UUID | |||
// Or: | |||
// -Link to the wiki URL from which you copied this script. | |||
// https://wiki.secondlife.com/wiki/Animation_triggered_sound_loop | |||
// -Document: "Uses parts of <scriptname> by BETLOG Hax" | |||
// **** LICENCE END **** | |||
//============================================================== | |||
string gAnimUUID = "";//***THIS HAS TO BE INSERTED BY YOU*** | |||
string gSound = "";//having a sound in contents will override | |||
//---------------------------------- | |||
integer gAnimState; | |||
//---------------------------------- | |||
f_perms() //make it still operate when entering no script areas | |||
{ if(llGetAttached()) | |||
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); | |||
} | |||
//============================================================== | |||
default | |||
{ state_entry() | |||
{ if(llGetAttached())//DEV | |||
f_perms(); | |||
else | |||
llOwnerSay("You must be wearing me for this to operate."); | |||
} | |||
attach(key id) | |||
{ f_perms(); | |||
} | |||
run_time_permissions(integer perm) | |||
{ if(perm & PERMISSION_TAKE_CONTROLS) | |||
llSetTimerEvent(0.444444); | |||
} | |||
control(key id, integer pressed, integer change) | |||
{ //make it still operate when entering no script areas | |||
} | |||
timer() | |||
{ if(-1<llListFindList(llGetAnimationList(llGetOwner()), [(key)gAnimUUID])) | |||
{ if(!gAnimState) | |||
{ string n = llGetInventoryName(INVENTORY_SOUND,0);//not ideal-meh | |||
if(n!="") | |||
gSound=n; | |||
if(gSound!="") | |||
{ gAnimState=TRUE; | |||
llPlaySound(gSound,1.0); | |||
} | |||
else | |||
llOwnerSay("ERROR: No sound defined in script and none in object contents. | |||
Without one or the other I cant work."); | |||
} | |||
} | |||
else if(gAnimState) | |||
gAnimState=FALSE; | |||
} | |||
} | |||
//============================================================== | |||
</source> | |||
[[Category:LSL Examples]] | [[Category:LSL Examples]] |
Latest revision as of 12:56, 24 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Animation triggered sound loop
--BETLOG Hax UTC+10: 20091011 1615 [SLT: 20091010 2315]
You want a specific animation (thats already handled by your AO) to play a special sound.
This script does the sound bit. (LOOPS the sound FOR AS LONG AS you play the animation)
//==============================================================
// BETLOG Hax
// UTC+10: 20091011 1601 [SLT: 20091010 2301]
// For Eln Alter
//----------------------------------
// **** LICENCE START ****
// http://creativecommons.org/licenses/by-sa/3.0/
// Attribution licence:
// You must:
// -Include this unaltered licence information.
// -Supply my original script with your modified version.
// -Retain the original scripts' SL permissions. [+c/+m/+t]
// -Exception for Eln ALter to protect the commercial viability of his animations' UUID
// Or:
// -Link to the wiki URL from which you copied this script.
// https://wiki.secondlife.com/wiki/Animation_triggered_sound_loop
// -Document: "Uses parts of <scriptname> by BETLOG Hax"
// **** LICENCE END ****
//==============================================================
string gAnimUUID = "";//***THIS HAS TO BE INSERTED BY YOU***
string gSound = "";//having a sound in contents will override
//----------------------------------
integer gAnimState;
//----------------------------------
f_toggle(integer on)
{ if(on)
{ string n = llGetInventoryName(INVENTORY_SOUND,0);
if(n!="")
gSound=n;
if(gSound!="")
llLoopSound(gSound,1.0);
else
llOwnerSay("ERROR: No sound defined in script and none in object contents.
Without one or the other I cant work.");
}
else
llStopSound();
}
//----------------------------------
f_perms() //make it still operate when entering no script areas
{ if(llGetAttached())
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
}
//==============================================================
default
{ state_entry()
{ if(llGetAttached())//DEV
f_perms();
else
llOwnerSay("You must be wearing me for this to operate.");
}
attach(key id)
{ f_perms();
}
run_time_permissions(integer perm)
{ if(perm & PERMISSION_TAKE_CONTROLS)
{ f_toggle(gAnimState=FALSE);
llSetTimerEvent(0.444444);
}
}
control(key id, integer pressed, integer change)
{ //make it still operate when entering no script areas
}
timer()
{ if(-1<llListFindList(llGetAnimationList(llGetOwner()), [(key)gAnimUUID]))
{ if(!gAnimState)
f_toggle(gAnimState=TRUE);
}
else if(gAnimState)
f_toggle(gAnimState=FALSE);
}
}
//==============================================================
Animation triggered sound NOloop
--BETLOG Hax UTC+10: 20091011 1615 [SLT: 20091010 2315]
You want a specific animation (thats already handled by your AO) to play a special sound.
This script does the sound bit. (Plays the sound ONCE each time you start the animation)
//==============================================================
// BETLOG Hax
// UTC+10: 20091011 1601 [SLT: 20091010 2301]
// For Eln Alter
//----------------------------------
// **** LICENCE START ****
// http://creativecommons.org/licenses/by-sa/3.0/
// Attribution licence:
// You must:
// -Include this unaltered licence information.
// -Supply my original script with your modified version.
// -Retain the original scripts' SL permissions. [+c/+m/+t]
// -Exception for Eln ALter to protect the commercial viability of his animations' UUID
// Or:
// -Link to the wiki URL from which you copied this script.
// https://wiki.secondlife.com/wiki/Animation_triggered_sound_loop
// -Document: "Uses parts of <scriptname> by BETLOG Hax"
// **** LICENCE END ****
//==============================================================
string gAnimUUID = "";//***THIS HAS TO BE INSERTED BY YOU***
string gSound = "";//having a sound in contents will override
//----------------------------------
integer gAnimState;
//----------------------------------
f_perms() //make it still operate when entering no script areas
{ if(llGetAttached())
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
}
//==============================================================
default
{ state_entry()
{ if(llGetAttached())//DEV
f_perms();
else
llOwnerSay("You must be wearing me for this to operate.");
}
attach(key id)
{ f_perms();
}
run_time_permissions(integer perm)
{ if(perm & PERMISSION_TAKE_CONTROLS)
llSetTimerEvent(0.444444);
}
control(key id, integer pressed, integer change)
{ //make it still operate when entering no script areas
}
timer()
{ if(-1<llListFindList(llGetAnimationList(llGetOwner()), [(key)gAnimUUID]))
{ if(!gAnimState)
{ string n = llGetInventoryName(INVENTORY_SOUND,0);//not ideal-meh
if(n!="")
gSound=n;
if(gSound!="")
{ gAnimState=TRUE;
llPlaySound(gSound,1.0);
}
else
llOwnerSay("ERROR: No sound defined in script and none in object contents.
Without one or the other I cant work.");
}
}
else if(gAnimState)
gAnimState=FALSE;
}
}
//==============================================================