Pointing Stick: Difference between revisions

From Second Life Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{LSL Pointing Stick}}
 


Made this to point at folk when its their turn at games lolz right. the useful tidbit is how it  goes in the direction of what ever angle its pointing in.
Made this to point at folk when its their turn at games lolz right. the useful tidbit is how it  goes in the direction of what ever angle its pointing in.

Revision as of 09:51, 12 March 2011


Made this to point at folk when its their turn at games lolz right. the useful tidbit is how it goes in the direction of what ever angle its pointing in.



<lsl> integer on = TRUE;


default {

   state_entry()
   {  
 
     llSetText("Touch to activate",<0,1,0>,1);
   }
 changed(integer change)
  {
      if(change & (CHANGED_OWNER | CHANGED_INVENTORY))
          llResetScript();
  }
       

on_rez(integer x)

     {
         llResetScript();
   

} touch_start(integer y)

   {
      if (on == TRUE)
      {
          llRequestPermissions(llDetectedKey(0),
             PERMISSION_TAKE_CONTROLS);
             on = FALSE;
   }
   else if (on == FALSE)
   {
      
       llReleaseControls();
       on = TRUE;
             
   }

}

   run_time_permissions(integer perm)
   {
       if (perm & PERMISSION_TAKE_CONTROLS)
   {
           llTakeControls( CONTROL_FWD|CONTROL_BACK|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT,TRUE,FALSE);
  }

}

   control(key id, integer level, integer edge)
   {
         
     
       
       
      
   if (level & CONTROL_FWD)
       {
          llSetLinkPrimitiveParamsFast(-4,[ PRIM_POSITION, llGetPos() +<0,00,0.25> * llGetLocalRot()]);
   }
     if (level & CONTROL_BACK)
   {
          llSetLinkPrimitiveParamsFast(-4,[ PRIM_POSITION, llGetPos() +<0,00,-0.25> * llGetLocalRot()]);

}

   if(level & CONTROL_ROT_LEFT)
  {
               llSetLinkPrimitiveParamsFast(-4,[PRIM_ROT_LOCAL, llGetLocalRot() * llEuler2Rot(<0,0,5>*DEG_TO_RAD)]);

}

    if (level& CONTROL_ROT_RIGHT)

{

               llSetLinkPrimitiveParamsFast(-4,[PRIM_ROT_LOCAL, llGetLocalRot() * llEuler2Rot(<0,0,-5>*DEG_TO_RAD)]);

}

       }
     
   
   

}