User:Bobbyb30 Swashbuckler/Example

From Second Life Wiki
Jump to navigation Jump to search

The following is an example of how to take and release controls of the owner on touch regardless of the prim this is in: <lsl> integer currentstate;//true have permissions, false do not have pemrissions

default { state_entry() { llPassTouches(TRUE);//any prim that is touched will trigger the touch here }

   touch_start(integer ab)
   {
       if(llDetectedKey(0) == llGetOwner())//check if owner
       {
           currentstate = ~currentstate;//switch state

if(currentstate)

           	llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);//request permissions
           else
               llReleaseControls();//release controls
       }    
   }
   run_time_permissions (integer permission)
   {
       if(permission & PERMISSION_TAKE_CONTROLS)//if we were given permission
       {
           llOwnerSay("I've got control");
           //llTakeControls(.....);//take controls
           //do stuff here
       }
       else//if we weren't given permission
       {
           llOwnerSay("I haven't gotten control");
           //do stuff here
       }
       
   }

} </lsl>

The following is an example of how to take and release controls of the owner on touch of the prim that this script is in: <lsl> integer currentstate;//true have permissions, false do not have pemrissions

default {

   touch_start(integer ab)
   {
       if(llDetectedKey(0) == llGetOwner())//check if owner
       {
           if(llDetectedLinkNumber(0) == llGetLinkNumber())//check if this prim
           {
               currentstate = ~currentstate;//switch state
               if(currentstate)
                   llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);//request permissions
               else
                   llReleaseControls();//release controls
           }
       }    
   }
   run_time_permissions (integer permission)
   {
       if(permission & PERMISSION_TAKE_CONTROLS)//if we were given permission
       {
           llOwnerSay("I've got control");
           //llTakeControls(.....);//take controls
           //do stuff here
       }
       else//if we weren't given permission
       {
           llOwnerSay("I haven't gotten control");
           //do stuff here
       }
       
   }

} </lsl>

The following code will kill a prim after 5 seconds and will also change the color of the prim to random one. <lsl> //Modified by Bobbyb30 Swashbuckler March 19, 2009

//take note that llSetPrimitiveParams has a built in delay of .2 seconds //you can have several different params in one call float time = 5.0;//the time default {

   on_rez(integer param)
   {
       llResetScript();
   }
   state_entry()
   {
       llSetTimerEvent(time);
       //llSetPrimitiveParams([PRIM_PHYSICS, TRUE, PRIM_TEMP_ON_REZ, TRUE]);
       //llSetPrimitiveParams([PRIM_COLOR, ALL_SIDES, <llFrand(1),llFrand(1),llFrand(1)>, 1.0]);
       llSetPrimitiveParams(
       [PRIM_PHYSICS, TRUE, PRIM_TEMP_ON_REZ, TRUE,
       PRIM_COLOR, ALL_SIDES, <llFrand(1),llFrand(1),llFrand(1)>, 1.0
       ]);    
   }
   timer()
   {
       llDie();
       llSleep(.1);
       llDie();//sometimes it doesn't die...so do it again
   }

} </lsl>

License

All samples, code, documentation on this page are released into public domain.