LlDetectedRot/ja
From Second Life Wiki
メインページ > LlDetectedRot > LlDetectedRot/ja
警告
- number が正常なインデックス範囲を外れていても、スクリプトはエラー表示を出さずに処理を続けます。
- llDetected* 関数が有効になるイベントは、常に少なくとも 1 個以上の探知結果を返します。
- 何も探知されなかった場合、探知イベントは発生しません。(no_sensor イベントはある意味例外ですが、llDetected* 関数はそこでは無効です。)
- イベントの探知個数を表す引数は、決して 1 未満にはなりません。
例
//--// get compass facing of Avatar that touches this object //--// //-- @@ = Contains code optimizations, see the following page for details //-- wiki.secondlife.com/wiki/User:Void_Singer/Optimizations //-- list of compass directions starting at North, rotated clockwise list gLstCompassPoints = [ "North", "NorthEast", "East", "SouthEast", "South", "SouthWest", "West", "NorthWest" ]; //-- convert rotation to z-axis compass direction string CompassDirection( rotation rRotBase ) { integer iCountCompassPoints = llGetListLength(gLstCompassPoints); //-- convert rotation to a direction vector vDirection = <0.0, 1.0, 0.0> / rRotBase; //-- take the direction and determine the z rotation float fAngle = llAtan2(vDirection.x, vDirection.y); //-- take the angle and find the compass point integer iCompassPoint = llRound(fAngle * iCountCompassPoints / TWO_PI); //-- convert to string return llList2String( gLstCompassPoints, iCompassPoint ); } 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 + CompassDirection( llDetectedRot( vIntCounter ) ) ); } while ( ++vIntCounter < vIntTouchCount ); } }
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。

