LlSetRegionPos/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

関数: integer llSetRegionPos( vector position );

ルートprimがpositionから0.1m以内に配置されるように、オブジェクト全体を移動しようとします。
boolean, positionから0.1m以内にオブジェクトが正常に配置された場合はTRUE、それ以外の場合はFALSE。詳細は#Specificationを参照してください。を integer で返します。

• vector position position in region coordinates

TRUEが返された場合のみオブジェクトが移動し、FALSEが返された場合はオブジェクトは位置を変更しません。

仕様

このスクリプトがあるオブジェクトは、ルートprimの位置を指定された場所に移動させます。位置はリージョン内の任意の位置です。位置が地面より下の場合、そのX、Yスポットの地面レベルに設定されます。この関数には遅延やスロットルはありません。

  • オブジェクトがpositionから0.1m以内に正常に配置された場合はTRUEを返します。
  • オブジェクトが動的(物理が有効)である場合、または...
    • positionがリージョンから10m以上離れているか、4096m以上の高さにある場合。
      • positionのxおよびy成分は[-10.0, 266.0]の範囲内である必要があります。[1]
      • z成分は[0.0, 4096]の範囲内である必要があります。
    • オブジェクトが位置に移動できない場合、これは地域/パーセルの制限(オブジェクトエントリールール、prim制限、禁止など)が原因です。
    • オブジェクトがアバターアタッチメントである場合。
  • オブジェクトが地面より下の場合、FALSEが返され、オブジェクトが移動します。

サンプル

default
{
    touch_start(integer num_detected)
    {
        vector currentPosition = llGetPos();

        // check whether the object has successfully been moved
        // to the center of the sim at the same height
        integer hasMoved = llSetRegionPos(<128.0, 128.0, currentPosition.z>);

        if (hasMoved)
        {
            llOwnerSay("My new position is now:\n"
                + "http://maps.secondlife.com/secondlife/" + llEscapeURL(llGetRegionName())
                + "/128/128/" + (string)llRound(currentPosition.z) + "/");
        }
        else if ( currentPosition.z < llGround(ZERO_VECTOR) )
        {
            llOwnerSay("My new position is now:\n"
                + "http://maps.secondlife.com/secondlife/" + llEscapeURL(llGetRegionName())
                + "/128/128/" + (string)llCeil(llGround(ZERO_VECTOR)) + "/");
        }
        else
            llOwnerSay("Move was not possible!");
    }
}

注意点

This function is intended to replace WarpPos.

関連項目

関数

•  llGetLocalPos/ja アタッチされているか非ルートの場合はprimのローカル位置を返します(それ以外の場合はグローバル位置を返します)
•  llGetRootPosition/ja ルートprimの位置を取得します
•  llGetPos/ja アタッチされているか非ルートの場合でもprimのグローバル位置を返します
•  llSetPos/ja
•  llEdgeOfWorld/ja

特記事項

経緯

  • Second Life Server 12.01.24.248357 に新しいLSL関数integer llSetRegionPos(vector position)が導入されました。
  • スクリプトがあるオブジェクトは、ルートprimの位置を指定された場所に移動させます。位置はリージョン内の任意の位置です。位置が地面より下の場合、そのX、Yスポットの地面レベルに設定されます。この関数には遅延やスロットルはありません。
    • positionから0.1m以内にオブジェクトが正常に配置された場合は1を返します。
    • positionがリージョンから10m以上離れているか、4096m以上の高さにある場合は、オブジェクトは移動せず0を返します。
    • オブジェクトが動的(物理が有効)である場合は、オブジェクトは移動せず0を返します。
    • オブジェクトがオブジェクトエントリールール、prim制限、禁止などの理由でpositionに移動できない場合は、オブジェクトは移動せず0を返します。
Search JIRA for related Issues

脚注

  1. ^ 記事中の範囲は、 実数空間 に記載されているものです。

Signature

function integer llSetRegionPos( vector position );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。