LlRezAtRoot
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: llRezAtRoot( string inventory, vector position, vector velocity, rotation rot, integer param ); |
参数:• string inventory – 这个脚本所在的prim目录中的一个对象
• vector position – 位置在区域坐标,以放置对象 • vector velocity – 初始速度 • rotation rot – 最初的旋转 • integer param – on_rez事件参数和llGetStartParameter在rezzed对象中返回的值(或合并对象中的每个项)。 |
返回值:使用param作为起始参数,实例化旋转到rot的inventory对象,其根位于位置,以速度移动
使用llRezObject对一个对象进行rez,使其中心位置(而不是根位置)。 |
注意事项 |
---|
这个函数使脚本休眠0.1秒。
如果prim的库存中缺少库存,或者它不是一个对象,那么DEBUG_CHANNEL将显示错误。 如果位置距离prim超过10米,尝试激活库存将会静默失败。 如果对象是独立的,并且对象的所有者没有对库存的复制权限,那么在重新zzed之后,该对象将不再出现在库存中(因此再次尝试rez(相同的对象)将失败);如果所有者确实拥有复制许可,那么副本将被重新分配,而原始库存仍保留在库存中。 如果对象是附加的,而对象的所有者对库存没有复制权限,则在DEBUG_CHANNEL上会显示一个错误:“不能从附加的对象复制对象。” 如果你没有在这片土地上进行线下建设的权利,你就会失败。要有这个权利,你的对象需要: 在你自己的土地上。 在允许任何人建造的陆地上,例如沙盒。 被转让给拥有土地的集团。 设置为拥有土地的同一组,而土地具有“允许组构建”标志设置。 组角色“总是允许‘创建对象’”将只在您在线、在该地区或在该地区有一个子代理时覆盖此功能。有关更多信息,请参阅Deep Notes下的问题。 有关如何在rezzing对象和新的prim之间建立通信的示例,请参阅object_rez。 |
示例 |
---|
示例1
//Rez an object on touch string object = "Object";//对象在库存 integer start_param = 10; rotation rot; default { state_entry() { rot = llEuler2Rot(< 0, 90, 90> * DEG_TO_RAD); } touch_start(integer a) { vector vec = llGetPos() + < 0.0, 0.0, 5.0>; // 在这上面5米 vector speed = llGetVel(); llRezAtRoot(object, vec, speed, rot, start_param); } } //Rez一个接触的物体,其相对位置、旋转和速度都在rezzing prim的坐标系中描述。 string object = "Object"; // 目录中对象的名称 vector relativePosOffset = <2.0, 0.0, 1.0>; // “向前”和稍微“高于”这种基本物体 vector relativeVel = <1.0, 0.0, 0.0>; // 以1米/秒的速度沿着这个基本物体的“前进”方向行进 rotation relativeRot = <0.707107, 0.0, 0.0, 0.707107>; // 在x轴上旋转90度 integer startParam = 10; default { touch_start(integer a) { vector myPos = llGetPos(); rotation myRot = llGetRot(); vector rezPos = myPos+relativePosOffset*myRot; vector rezVel = relativeVel*myRot; rotation rezRot = relativeRot*myRot; llRezAtRoot(object, rezPos, rezVel, rezRot, startParam); } } |
相关函数 |
---|
llRezObject |
相关事件 |
---|
object_rez - 当该对象从库存中重新映射一个对象时触发 |