LlSameGroup
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials | 
| 函数名 | 
|---|
| Function: integer llSameGroup( key uuid ); | 
| 参数:• key uuid – group, avatar or prim UUID that is in the same region | 
| 返回值:如果uuid和脚本所在的prim属于同一组,则返回一个布尔值(整数),否则为FALSE。 这个函数将包含脚本的prim的组-uuid与uuid描述的组-uuid进行比较。它回答了两个问题: 脚本的prim是否与uuid在同一组? 脚本的prim的group-uuid是否等于uuid? | 
| 注意事项 | 
|---|
| 不太明显的是,如果对象没有设置为组(例如,它会返回TRUE)。"(none)"),并且具有给定键的AV没有组活动,或者使用NULL_KEY调用函数。 
  Specification
 脚本所在的基本物体组是……
 • 将基本物体组设为
 • 原语所属的组
 • 除此之外,基本物体组还归其所有
 • 如果没有设置组信息,则为此使用的组uuid为NULL_KEY。
 uuid的组为…
 • 如果uuid是一个prim(已知的区域)…
   • 它是一个附件,所有者的活动组*
   • 将基本物体组设为
   • 原语所属的组
   • 除此之外,基本物体组还归其所有
   • 如果没有设置组信息,则为此使用的组uuid为NULL_KEY。
 • 如果uuid是一个avatar(该地区已知)…
   • 化身的活跃组。
   • 如果没有设置组信息,则为此使用的组uuid为NULL_KEY。
 • 否则,将uuid视为组uuid。
   • 这意味着不再执行“脚本的prim是否与uuid在同一组?”,而是执行“脚本的prim的group-uuid是否等于uuid?”
 注意:没有组、prim或avatar共享相同的uuid。
 在伪代码:
     integer llSameGroup(key uuid){
        key group = getGroupKey(llGetKey());
        if(uuid == group)
           return TRUE;
        if(getGroupKey(uuid) == group)
           return TRUE;
        return FALSE;
} | 
| 示例 | 
|---|
| 示例1 //只将库存对象提供给具有相同活动组的代理
default
{
    touch_start(integer total_number)
    {
        key id = llDetectedKey(0);
 
        integer sameGroup = llSameGroup(id);
//同llDetectedGroup(i)(有llDetectedGroup,检测到的不需要在sim中)
 
        if (sameGroup)
        {
            integer numberOfObjectsInPrim = llGetInventoryNumber(INVENTORY_OBJECT);
 
            if (numberOfObjectsInPrim)
                llGiveInventory(id, llGetInventoryName(INVENTORY_OBJECT, 0));
        }
        else
        {
            llRegionSayTo(id, 0, "Wrong active group!");
        }
    }
}
 | 
| 相关函数 | 
|---|
| llDetectedGroup - 与检测事件一起使用 llGetAttachedList - 与llGetObjectDetails和OBJECT_GROUP一起,它可以用于确定佩戴至少一个非hud附件的avatar的活动组。 | 
| 相关事件 | 
|---|
| 无 | 
