2009年9月15日火曜日

Sit multi animation Script

string anim;
integer total;
integer count;
 
default
{
state_entry()
{
vector pos=<0,0.3,-0.88>;//adjust the position to fit object
vector ang=<0,180,90>;//adjust angle
llSitTarget(pos,llEuler2Rot(ang*DEG_TO_RAD));
total=llGetInventoryNumber(INVENTORY_ANIMATION);
}
 
touch_start(integer total_number)
{
key id=llDetectedKey(0);
if (id == llAvatarOnSitTarget()) {
if (total > 1) {
count++;
if (count >= total) count=0;
llStopAnimation(anim);
anim=llGetInventoryName(INVENTORY_ANIMATION,count);
llStartAnimation(anim);
}
}
}
 
changed(integer change)
{
if (change & CHANGED_LINK)
{
key id=llAvatarOnSitTarget();
if (id) llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
else if (llGetPermissionsKey()) llStopAnimation(anim);
}
else if (change & CHANGED_INVENTORY) total=llGetInventoryNumber(INVENTORY_ANIMATION);
}
 
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
count=0;
anim=llGetInventoryName(INVENTORY_ANIMATION,count);
llStopAnimation("sit");
llStartAnimation(anim);
}
}
}
 

0 件のコメント:

コメントを投稿