llDetectedRot

From Second Life Wiki
Revision as of 21:54, 16 October 2007 by Void Singer (talk | contribs) (optimization and link to explanation added to my previous example)
Jump to navigation Jump to search

Summary

Function: rotation llDetectedRot( integer number );
0.0 Forced Delay
10.0 Energy

Returns a rotation that is the rotation of detected object number.

• integer number

number does not support negative indexes. Returns <0.0, 0.0, 0.0, 1.0> if number is not valid sensed object.

Caveats

  • If number is out of bounds the script continues to execute without an error message.

Examples

//--// get compass facing of Avatar that touches this object //--//

//-- @@ = Contains code optimizations, see the following page for details
//-- wiki.secondlife.com/wiki/User_talk:Void_Singer#Coding_Practices_Part_2_.28optimizations.29

 //-- list of compass directions starting after West, rotated counterclockwise
list gLstCompassPoints = ["SouthWest","South","SouthEast","East","NorthEast","North","NorthWest"];

 //-- convert rotation to z-axis compass direction
string vfCompassDirection( rotation vRotBase )
{
   //-- convert rotation to dgrees
  vector vVecBase = llRot2Euler( vRotBase ) * RAD_TO_DEG;
   //-- covert to range [0, 360)
  vVecBase.z += 180;
  if ( vVecBase.z < 22.5 || vVecBase.z > 337.5)
  {
    return "West";
  }
  else
  {
     //--ofset to the end or west range
    vVecBase.z -= 22.5;
     //-- divide by range (45 deg) and round to get index of direction
    return llList2String( gLstCompassPoints, llRound( vVecBase.z - 11.25 ) / 45 );
  }
}

default{
  state_entry()
  {
    llSay( 0, "Touch me to get your compass facing" );
  }

  touch_start( integer vIntTouchCount )
  {
    integer vIntCounter = 0;
    do
    {
      llSay( 0,
             llDetectedName( vIntCounter )
             + " is facing "
              //-- next line gets avatar rotation and converts to compass direction
             + vfCompassDirection( llDetectedRot( vIntCounter ) ) );
    }while ( ++vIntCounter < vIntTouchCount ); //-- @@
  }
}
Void Singer 00:58, 15 October 2007 (PDT)

See Also

Articles

•  Detected

Deep Notes

Signature

function rotation llDetectedRot( integer number );