Difference between revisions of "User:Daemonika Nightfire/Scripts/Animation Sit"

From Second Life Wiki
Jump to navigation Jump to search
(Created page with "==*DS* ~ Animation Sit with Show/Hide for Balls== To set the Position & Rotation of the Avatar, edit the following Line in each Script. <lsl> llSitTarget(<-0.1,0.1,-0.43>,llEuler…")
 
Line 2: Line 2:
To set the Position & Rotation of the Avatar, edit the following Line in each Script.
To set the Position & Rotation of the Avatar, edit the following Line in each Script.
<lsl>
<lsl>
llSitTarget(<-0.1,0.1,-0.43>,llEuler2Rot(<00,-90,-90>*DEG_TO_RAD));
llSitTarget("Position in meters" <x,y,z>,llEuler2Rot("Rotation in degrees" <x,y,z>*DEG_TO_RAD));
</lsl>
</lsl>
'''<font color="red">This Script must be placed together with a Pose / Animation in the Object.</font>'''
'''<font color="red">This Script must be placed together with a Pose / Animation in the Object.</font>'''

Revision as of 15:25, 16 December 2010

*DS* ~ Animation Sit with Show/Hide for Balls

To set the Position & Rotation of the Avatar, edit the following Line in each Script. <lsl> llSitTarget("Position in meters" <x,y,z>,llEuler2Rot("Rotation in degrees" <x,y,z>*DEG_TO_RAD)); </lsl> This Script must be placed together with a Pose / Animation in the Object.

Sctipt Time ~0.002 ms

<lsl> string anim; integer sitting; show() {

   llSetPrimitiveParams([PRIM_TEXT,"SIT HERE",<0.9,0.6,0.2>,1.0, PRIM_COLOR, ALL_SIDES,<1,1,1>,1.0]);

} hide() {

   llSetPrimitiveParams([PRIM_TEXT,"",ZERO_VECTOR,0.0, PRIM_COLOR, ALL_SIDES,ZERO_VECTOR,0.0]);

} default {

   state_entry()
   {
       show();
       sitting = 0;
       anim = llGetInventoryName(INVENTORY_ANIMATION, 0);
       llSitTarget(<-0.1,0.1,-0.43>,llEuler2Rot(<00,-90,-90>*DEG_TO_RAD));
   }
   run_time_permissions(integer perm)
   {
       if(perm & PERMISSION_TRIGGER_ANIMATION)
       {
           sitting = 1;
           llStopAnimation("sit_generic");
           llStopAnimation("sit");
           llStartAnimation(anim);
           hide();
       }
   }
   changed(integer change)
   {
       if(change & CHANGED_LINK)
       {
           key avatar = llAvatarOnSitTarget();
           if(llKey2Name(avatar) != "")
           {
               llRequestPermissions(avatar, PERMISSION_TRIGGER_ANIMATION);
           }
           else
           {
               show();
               if((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && sitting && llKey2Name(avatar) != "")
               {
                   llStopAnimation(anim);
               }
               sitting = 0;
           }
       }
       if(change & CHANGED_OWNER + CHANGED_REGION_START + CHANGED_INVENTORY)
       {
           llResetScript();
       }
   }
   on_rez(integer start_param)
   {
       llResetScript();
   }

} </lsl>

*DS* ~ Animation Sit without Show/Hide for Furniture

This Script must be placed together with a Pose / Animation in the Object.

Sctipt Time ~0.002 ms

<lsl> string anim; integer sitting; default {

   state_entry()
   {
       sitting = 0;
       anim = llGetInventoryName(INVENTORY_ANIMATION, 0);
       llSitTarget(<-0.1,0.1,-0.43>,llEuler2Rot(<00,-90,-90>*DEG_TO_RAD));
   }
   run_time_permissions(integer perm)
   {
       if(perm & PERMISSION_TRIGGER_ANIMATION)
       {
           sitting = 1;
           llStopAnimation("sit_generic");
           llStopAnimation("sit");
           llStartAnimation(anim);
       }
   }
   changed(integer change)
   {
       if(change & CHANGED_LINK)
       {
           key avatar = llAvatarOnSitTarget();
           if(llKey2Name(avatar) != "")
           {
               llRequestPermissions(avatar, PERMISSION_TRIGGER_ANIMATION);
           }
           else
           {
               if((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && sitting && llKey2Name(avatar) != "")
               {
                   llStopAnimation(anim);
               }
               sitting = 0;
           }
       }
       if(change & CHANGED_OWNER + CHANGED_REGION_START + CHANGED_INVENTORY)
       {
           llResetScript();
       }
   }
   on_rez(integer start_param)
   {
       llResetScript();
   }

} </lsl>