ユーザ定義の権限(UDP)

nPose V3.10 以上

ユーザー定義の権限(UDP)は ボタンの権限 の拡張機能であり、これによりすべてのスクリプトが独自のボタン権限を登録し、メニュー スクリプトによって処理されるようになります。
そのためには、メニューは次の 3 つのことを知っておく必要があります:

  1. UDP の名前
  2. UDP の種類
  3. 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[| ...]]