LlSetRegionPos

来自人工智能助力教育知识百科
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: integer llSetRegionPos( vector position );
参数:

返回一个整数布尔值,如果对象成功放置在距离位置0.1米的范围内,则返回TRUE;否则返回FALSE。详见规范。 •矢量位置–区域坐标中的位置 只有当返回TRUE时,对象才会移动;如果返回FALSE,则对象不会改变位置。

返回值:尝试移动整个对象,使根prim位于位置的0.1m范围内。
注意事项
带有脚本的对象将根prim位置移动到给定位置。位置是区域内的任何位置。如果位置低于地面,它将被设置为X,Y点的地面高度。该功能没有延迟或油门。

如果对象成功放置在距离位置0.1 m的范围内,则返回TRUE。 如果。。。 位置偏离区域10m以上或4096m以上。 位置的x和y分量必须在范围[-10.0,266.0]内。[1] z分量必须在[0.0,4096]范围内。 对象是动态的(启用了物理)。 由于地块/区域限制(对象输入规则、主要限制、禁止等),对象无法移动到位置。 对象是一个化身附件。 如果z位置低于地面,则返回FALSE并移动对象。

示例
示例1
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!");
    }
}
相关函数
llGetLocalPos –返回prim的本地位置(如果是附加的或非根的)(否则返回全局位置)

llGetRootPosition –获取根prims位置

llGetPos –返回prim的全局位置,即使它是附加的还是非根的

llSetPos

llEdgeOfWorld

相关事件