“LlGetInventoryType”的版本间的差异

来自人工智能助力教育知识百科
跳转至: 导航搜索
Qmf讨论 | 贡献
 
(未显示1个用户的2个中间版本)
第3行: 第3行:
  
 
{{函数详情
 
{{函数详情
|函数名=Function:Function: string llList2CSV( list src );
+
|函数名 = Function: integer llGetInventoryType( string name )
|参数= 参数:src
+
|参数= 参数:string name–name of an inventory item
更准确地说,这些值用逗号和空格(“,”)分隔。
+
|返回值= 返回值:返回一个整数,该整数是库存项名称的类型
此函数的功能相当于llDumpList2String(src,“,”);
 
此函数的结果或多或少是CSV格式,但它的所有细节都不一致。
 
要反转进程,请使用llCSV2List。但请看注意事项。
 
|返回值= 返回值:返回按src顺序获取的逗号分隔值字符串。
 
  
 +
|注意事项=
 +
注意事项
  
|注意事项=如果原始字符串中有逗号或奇怪匹配的尖括号(<和>),llCSV2List将不会反转进程。有关详细信息,请参阅文章llCSV2List。
 
解决此问题的一种方法是,在将用户提供的字符串添加到列表之前,首先对它们使用llEscapeURL。llUnescapeURL将反转llEscapeURL。
 
如果字符串可能包含逗号,但不是不匹配的尖括号,则可以用尖括号(<and>)将字符串括起来,就像在字符串周围使用双引号一样,然后使用llGetSubString从1开始到-2结束来删除它们。
 
  
|示例=   
+
|示例=
示例1
+
<pre>
<pre>  
+
string get_type_info(integer inputInteger)
 +
{
 +
    if (inputInteger == INVENTORY_TEXTURE)
 +
        return "INVENTORY_TEXTURE";
 +
 +
    else if (inputInteger == INVENTORY_SOUND)
 +
        return "INVENTORY_SOUND";
 +
 +
    else if (inputInteger == INVENTORY_LANDMARK)
 +
        return "INVENTORY_LANDMARK";
 +
 +
    else if (inputInteger == INVENTORY_CLOTHING)
 +
        return "INVENTORY_CLOTHING";
 +
 +
    else if (inputInteger == INVENTORY_OBJECT)
 +
        return "INVENTORY_OBJECT";
 +
 +
    else if (inputInteger == INVENTORY_NOTECARD)
 +
        return "INVENTORY_NOTECARD";
 +
 +
    else if (inputInteger == INVENTORY_SCRIPT)
 +
        return "INVENTORY_SCRIPT";
 +
 +
    else if (inputInteger == INVENTORY_BODYPART)
 +
        return "INVENTORY_BODYPART";
 +
   
 +
    else if (inputInteger == INVENTORY_ANIMATION)
 +
        return "INVENTORY_ANIMATION";
 +
 +
    else if (inputInteger == INVENTORY_GESTURE)
 +
        return "INVENTORY_GESTURE";
 +
 +
    else if (inputInteger == INVENTORY_SETTING)
 +
        return "INVENTORY_SETTING";
 +
 +
//  else
 +
        return "<!-- inventory type unknown --!>";
 +
}
 +
 
default
 
default
 
{
 
{
     state_entry()
+
     touch_start(integer num_detected)
 
     {
 
     {
         list my_list = [FALSE, PI, "a string", ZERO_VECTOR, ZERO_ROTATION, NULL_KEY];
+
         integer totalItems = llGetInventoryNumber(INVENTORY_ALL);
        llOwnerSay(llList2CSV(my_list));      
+
 +
        integer index;
 +
        while (index < totalItems)
 +
        {
 +
            string itemName = llGetInventoryName(INVENTORY_ALL, index);
 +
            integer type = llGetInventoryType(itemName);
 +
 +
            // PUBLIC_CHANNEL has the integer value 0
 +
            llSay(PUBLIC_CHANNEL,
 +
                "'" + itemName + "' (" + get_type_info(type) + ")");
 +
 +
            ++index;
 +
        }
 
     }
 
     }
 
}
 
}
 
</pre>
 
</pre>
  
 +
|相关函数=
 +
[[llGetInventoryName]] -返回库存项的名称
 +
[[llGetInventoryNumber]] -返回库存中特定类型的项目的数量
 +
[[llGetInventoryCreator]] -返回库存物品的创建者
 +
[[llGetInventoryPermmask]] -返回库存项的权限
 +
[[llGetInventoryKey]] -返回库存项的UUID(如果是完整的perm)
  
 
+
|相关事件=
|相关函数=  
+
[[llCSV2List]]
 
[[llDumpList2String]]
 
[[llParseString2List]]
 
[llParseStringKeepNulls]
 
 
 
 
 
文献
 
 
 
 
 
Typecast
 
 
 
  
 
}}
 
}}

2021年1月25日 (一) 08:33的最新版本

Template:Needs Translation/


函数名
Function: integer llGetInventoryType( string name )
参数:string name–name of an inventory item
返回值:返回一个整数,该整数是库存项名称的类型
注意事项
注意事项
示例
string get_type_info(integer inputInteger)
{
    if (inputInteger == INVENTORY_TEXTURE)
        return "INVENTORY_TEXTURE";
 
    else if (inputInteger == INVENTORY_SOUND)
        return "INVENTORY_SOUND";
 
    else if (inputInteger == INVENTORY_LANDMARK)
        return "INVENTORY_LANDMARK";
 
    else if (inputInteger == INVENTORY_CLOTHING)
        return "INVENTORY_CLOTHING";
 
    else if (inputInteger == INVENTORY_OBJECT)
        return "INVENTORY_OBJECT";
 
    else if (inputInteger == INVENTORY_NOTECARD)
        return "INVENTORY_NOTECARD";
 
    else if (inputInteger == INVENTORY_SCRIPT)
        return "INVENTORY_SCRIPT";
 
    else if (inputInteger == INVENTORY_BODYPART)
        return "INVENTORY_BODYPART";
 
    else if (inputInteger == INVENTORY_ANIMATION)
        return "INVENTORY_ANIMATION";
 
    else if (inputInteger == INVENTORY_GESTURE)
        return "INVENTORY_GESTURE";
 
    else if (inputInteger == INVENTORY_SETTING)
        return "INVENTORY_SETTING";
 
//  else
        return "<!-- inventory type unknown --!>";
}
 
default
{
    touch_start(integer num_detected)
    {
        integer totalItems = llGetInventoryNumber(INVENTORY_ALL);
 
        integer index;
        while (index < totalItems)
        {
            string itemName = llGetInventoryName(INVENTORY_ALL, index);
            integer type = llGetInventoryType(itemName);
 
            // PUBLIC_CHANNEL has the integer value 0
            llSay(PUBLIC_CHANNEL,
                "'" + itemName + "' (" + get_type_info(type) + ")");
 
            ++index;
        }
    }
}
相关函数
llGetInventoryName -返回库存项的名称

llGetInventoryNumber -返回库存中特定类型的项目的数量 llGetInventoryCreator -返回库存物品的创建者 llGetInventoryPermmask -返回库存项的权限 llGetInventoryKey -返回库存项的UUID(如果是完整的perm)

相关事件