Typing linkset alpha toggle
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Typing linkset alpha toggle
--BETLOG Hax UTC+10: 20090928 1705 [SLT: 20090928 0005]
Put script in root prim of your fancy "i am typing now" novelty prim keyboard.
Start typing -> prims become visible
Stop typing -> prims become INvisible
Only one script required.
I just wrote it, didn't test much, It's trivial but there will probably be a glaring oversight in there somewhere.
<lsl>
//==============================================================
// BETLOG Hax
// UTC+10: 20090928 1642 [SLT: 20090927 2342]
// For Jullalana Mornington because I saw the ye-olde one she was using had a script in every prim. This sort of script does NOT need a script in every prim. Yes realy.
//----------------------------------
// **** 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]
// Or:
// -Link to the wiki URL from which you copied this script.
// https://wiki.secondlife.com/wiki/Typing_linkset_alpha_toggle
// -Document: "Uses parts of <scriptname> by BETLOG Hax"
// **** LICENCE END ****
//==============================================================
integer gVisible;
//----------------------------------
f_toggle(integer visible)
{ llSetLinkAlpha(LINK_SET, (float)visible, ALL_SIDES);
}
//----------------------------------
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(gVisible=FALSE); llSetTimerEvent(0.444444); } } control(key id, integer pressed, integer change) { //make it still operate when entering no script areas } timer() { if(AGENT_TYPING & llGetAgentInfo(llGetOwner()) ) { if(!gVisible) { f_toggle(gVisible=TRUE); } } else { if(gVisible) { f_toggle(gVisible=FALSE); } } }
} //============================================================== </lsl>