llDetectedRot

From Second Life Wiki
Revision as of 00:58, 15 October 2007 by Void Singer (talk | contribs) (Added Example)
Jump to navigation Jump to search

Summary

Function: rotation llDetectedRot( integer number );

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.
All Issues ~ Search JIRA for related Bugs

Examples

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

 //-- 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-159
  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

Search JIRA for related Issues

Signature

function rotation llDetectedRot( integer number );