ユーザ定義の権限(UDP)
nPose V3.10 以上
ユーザー定義の権限(UDP)は ボタンの権限 の拡張機能であり、これによりすべてのスクリプトが独自のボタン権限を登録し、メニュー スクリプトによって処理されるようになります。
そのためには、メニューは次の 3 つのことを知っておく必要があります:
- UDP の名前
- UDP の種類
- UDP の値
UDP 名
名前はあなたが選びます。 それはユニークでなければなりません。 したがって、登録された UDP 名のリスト (UDP の登録)を維持します。
UDP を独自の目的で使用したい場合 (スクリプトを他人に渡したくない場合)、UDP 名の前にmyを付ける必要があります。myプレフィックスが付いた UDP 名を登録する必要はありません。
UDP 種別と値
現在、ユーザー定義のアクセス許可にはboolタイプとlistタイプの 2 つのタイプがあります。
boolタイプの UDP
bool型は、udpValueとして単純なブール値を期待します:
0:FALSE
他のすべての値:TRUE
このタイプを使用すると、メニューボタンのオン/オフを簡単に切り替えることができます。
listタイプの UDP
list タイプは、アバター UUID のリスト (文字列に集約された) を udpValue として期待します。 「,」と「|」、「=」以外の任意の区切り文字を使用できます。メニューを使用するアバターの UUID がこの「list」内にある場合、対応する UDP は「TRUE」と評価されます (ボタンが表示されます)。
例
nPose DayNight Plugin
これは bool 型の使用法を示しています。ここでも見つけることができます:
https://github.com/LeonaMorro/nPose-DayNight-plugin
これはトグルボタンにbool 型を使用する方法を示しています。
nPose AccessControlList Plugin
これは、listタイプの使用法(および新しいノートカードリーダーの使用法)を示しています。 ここでも見つけることができます:
https://github.com/LeonaMorro/nPose-AccessControlList-plugin
カスタムスクリプトのコードフラグメント
UDPBOOL を用いた LSL の例:
integer UDPBOOL=-804; string UDP_NAME="*** the name ***"; string udpValue="*** the value ***"; //must not contain a "," or "|" or "=" llMessageLinked(LINK_SET, UDPBOOL, UDP_NAME + "=" + udpValue, NULL_KEY);
UDPLIST を用いた LSL の例:
integer UDPLIST=-805; string UDP_NAME="*** the name ***"; string udpValue="*** the value ***"; //must not contain a "," or "|" or "=" llMessageLinked(LINK_SET, UDPLIST, UDP_NAME + "=" + udpValue, NULL_KEY);
udpValue が変更されるたびに、この linkMessage を送信する必要があります。
linkmessage の文字列部分の構文:
UDP_NAME1=udpValue1[|UDP_NAME2=udpValue2[| ...]]