Template:Needs Translation/
函数名
|
Function: vector llDetectedPos( integer number );
|
参数:检测信息号的整数索引不支持负索引。
|
返回值:返回一个向量,该向量是检测到的对象编号的位置(在区域坐标中)。
|
注意事项
|
注意事项
- 如果数字超出了界限,这个函数返回<0.0,0.0,0.0>,脚本继续执行,没有错误消息。
- 启用lldetect *函数的事件总是返回至少一个检测到的项。
- 如果没有检测到任何东西,则不引发检测事件。
- 检测事件的项检测参数最初不小于1。
|
示例
|
示例1
// Get position and distance of toucher
default
{
touch_start(integer total_number)
{
// get the position of the avatar touching this prim
vector pos = llDetectedPos(0);
// compute how far away they are
float dist = llVecDist(pos, llGetPos() );
llSay(0, "You are " + (string) dist + " metres from me, at coordinates " + (string) pos);
}
}
// get name and sim position of Avatars within "say" range
示例2
default
{
state_entry()
{
llOwnerSay( "Touch me to get the positions of avatars in 'Say' range" );
}
touch_start( integer vIntTouchCount )
{
// Do a one-off sensor sweep over a 20m radius sphere for avatars
llSensor( "", "", AGENT, 20, PI );
}
sensor( integer vIntFound )
{
integer vIntCounter = 0;
//-- loop through all avatars found
do
{
llOwnerSay( llDetectedName( vIntCounter )
// get the position of this detected avatar
+ (string) llDetectedPos( vIntCounter ) );
} while (++vIntCounter < vIntFound);
}
// sensor does not detect owner if it's attached
no_sensor()
{
llOwnerSay( "I couldn't find anybody" );
}
}
|