User:Bobbyb30 Swashbuckler/Example

From Second Life Wiki
< User:Bobbyb30 Swashbuckler
Revision as of 09:36, 19 March 2010 by Bobbyb30 Swashbuckler (talk | contribs) (some code)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.