corrade-lsl-templates

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 3  →  ?path2? @ 4
/sit-and-animate/sit-and-animate.lsl
@@ -0,0 +1,50 @@
///////////////////////////////////////////////////////////////////////////
// Copyright (C) Wizardry and Steamworks 2014 - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
 
default {
state_entry() {
llSetTimerEvent(1);
}
timer() {
// If someone is sitting, hide the poseball.
key a = llAvatarOnSitTarget();
if(a == NULL_KEY) {
llSetAlpha(1, ALL_SIDES);
return;
}
llSetAlpha(0, ALL_SIDES);
}
run_time_permissions(integer perm) {
if(perm & PERMISSION_TRIGGER_ANIMATION) {
string o = llGetInventoryName(INVENTORY_ANIMATION, 0);
if(llGetInventoryType(o) != INVENTORY_ANIMATION) return;
key a = llAvatarOnSitTarget();
if(a == NULL_KEY) {
if(perm & PERMISSION_TRIGGER_ANIMATION) {
// DEBUG
llOwnerSay("Animation stopped...");
llSetAlpha(1, ALL_SIDES);
llStopAnimation(o);
}
return;
}
if(perm & PERMISSION_TRIGGER_ANIMATION) {
// DEBUG
llOwnerSay("Animation started...");
llSetAlpha(0, ALL_SIDES);
llStartAnimation(o);
}
}
}
changed(integer change) {
if((change & CHANGED_INVENTORY) || (change & CHANGED_REGION_START)) {
llResetScript();
}
if(change & CHANGED_LINK) {
key a = llAvatarOnSitTarget();
if(a == NULL_KEY) return;
llRequestPermissions(a, PERMISSION_TRIGGER_ANIMATION);
}
}
}