LlGetInventoryType/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: integer llGetInventoryType( string name );インベントリアイテム name のタイプを integer で返します。
• string | name | – | インベントリアイテムの名前 |
name が存在しない場合、 INVENTORY_NONE が返されます (エラーやメッセージは生成されません) 。これは、インベントリの存在確認を行うのにふさわしい関数にしているためです。
|
|
サンプル
便利なスニペット
string InventoryName(string name, integer type)
{//指定されたタイプの大文字小文字を区別した名前でアイテムを見つけ、本当の名前を返します。
integer a = llGetInventoryType(name);
if(!~a)//a == INVENTORY_NONE
{// INVENTORY_NONE == INVENTORY_ALL == -1 です。これが '!~a' の動く理由です。
string lc_name = llToLower(name);
a = llGetInventoryNumber(type);
while(a)
{//(a = ~-a) は --a と同じですが、速く動作します。
if(llToLower(name = llGetInventoryName(type, a = ~-a)) == lc_name)
{//一致するものを見つけました ^_^
return name;
}
}
}
else if((a == type) ^ (!~type))// a == type or type == INVENTORY_ALL であれば名前を返します
{//既に a != INVENTORY_NONE であることは分かっていますが、念のため or の代わりに xor を使います。
return name;
}
return "";//見つかりませんでした ~_~
}
integer InventoryExists(string name, integer type)
{// 'type' の値が定数でない場合、どのようにこの手のチェックが行われるかを示したものです。INVENTORY_ALL となります。
return (llGetInventoryType(name) == type) ^ (!~type);
}// INVENTORY_ALL == INVENTORY_NONE のため、最後のほうで結果をひっくり返さなければなりません。
関連項目
関数
• | llGetInventoryName | – | インベントリアイテムの名前を返します | |
• | llGetInventoryNumber | – | インベントリの中の特定のタイプのアイテムの数を返します | |
• | llGetInventoryCreator | – | インベントリアイテムのクリエーターを返します | |
• | llGetInventoryPermMask | – | インベントリアイテムの権限を返します | |
• | llGetInventoryKey | – | インベントリアイテムの UUID を返します (フルパーミッションの場合) |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。