0

我需要一个脚本,当有人触摸对象时会收到对象内部的项目,但里面的项目没有副本,没有修改,转移权限,我什么也找不到......请帮忙

4

1 回答 1

0

如果您对要交付的内容没有复制权限,则必须一次交付每一个,如下所示:

DeliverContents(key receiver)
{
    integer item = llGetInventoryNumber(INVENTORY_ALL);
    while (item--)
    {
        string inv_name = llGetInventoryName(INVENTORY_ALL, item);
        if (llGetInventoryType(inv_name)!=INVENTORY_SCRIPT)
        {
            llGiveInventory(receiver, inv_name);

        }
    }
}

default
{
    touch_start(integer num_detected)
    {
        key toucher = llDetectedKey(0);
        DeliverContents(toucher);
    }
}

但是,如果它们不是下一个所有者的副本,但您确实具有复制权限,则可以将它们作为文件夹交付,如下所示:

DeliverContentsFolder(key receiver)
{
    integer item = llGetInventoryNumber(INVENTORY_ALL);
    list folder;
    while (item--)
    {
        string inv_name = llGetInventoryName(INVENTORY_ALL, item);
        if (llGetInventoryType(inv_name)!=INVENTORY_SCRIPT)
        {
            folder+=inv_name;
        }
    }

    if (llGetListLength(folder))
    {
        string folder_name = llGetObjectName();
        llGiveInventoryList(receiver, folder_name, folder);
    }
}

default
{
    touch_start(integer num_detected)
    {
        key toucher = llDetectedKey(0);
        DeliverContentsFolder(toucher);
    }
}
于 2020-04-14T12:50:24.993 回答