LlSetRegionPos
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
| 函数名 |
|---|
| 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的全局位置,即使它是附加的还是非根的 |
| 相关事件 |
|---|