スクリプターズカフェ/ログ/作成して編集していないノートカードについて
出典: Second Life in Japan
[編集] 08/09/13
プリムのインベントリに入れたノートカードをLSLから読み込む場合のエラーチェックに関連した話です。
ノートカードを自分のインベントリで新規作成して、内容を何も編集・保存していない場合、やや特殊な状態になっています。
- インベントリで当該ノートカードのアセットUUIDをコピーして調べるとNULL_KEYになっている。
- プリムのインベントリに入れてスクリプトからllGetInventoryKeyでキーを調べるとNULL_KEYが返ってくる。
- このノートカードの行数を調べようとしたり、読み込もうとしたりすると「Could not find notecard 'New Note'.」というエラーがDEBUG_CHANNELに出力される。
- 行数取得:llGetNumberOfNotecardLines
- 読み込み:llGetNotecardLine
[編集] ノートカード読み込み前の存在チェック
スクリプトでノートカードを読み込む場合、
- 対象ノートカードがプリムのインベントリに存在しない
- ノートカードが存在するが、上で述べたような作成したばかりのノートカード
という状況だとエラーになってしまうため、読み込む前にチェックしたいところです。
1.の場合は、他のインベントリアイテムと同様にllGetInventoryTypeにて存在チェックを行います。
そして2.の場合は上の検証結果から、llGetInventoryKeyを使用してNULL_KEYでないかチェックします。
このページのTinyURL:http://tinyurl.com/SC-Notecard-Errorcheck
