2008年06月03日
【スクリプト】で取得するパーミッションについて
スクリプト中でllRequestPermissionsでパーミッションを取得していろいろな事を可能にするわけですが、関数の使い方等は他のきちんと説明しているサイトを見てもらうとして、いくつか疑問に思っていたことを実験してみた結果を残しておきます。
(LSL Wikiに記述されている内容に不足がある・・・という理由もあります。)
《パーミッション取得に関する条件等》
・通常は青色のダイアログが表示されるが、PERMISSION_DEBITの場合は黄色いダイアログが表示される。
・一度取得したパーミッションを、再度要求して拒否された場合、そのパーミッションを失う。
・1つのスクリプトで保持できるパーミッションは1人のアバターに関するものだけで、複数のアバターのパーミッションを保持したければ、その人数分のスクリプトが必要になる。(モジュール化)
・同一スクリプト内でステートが変わっても、パーミッションは保持する。
・パーミッションの許可/拒否はrun_time_permissionsイベントで確認する。(拒否してもイベントは発生する。)
・sitまたはattachしている場合、いくつかのパーミッションはダイアログが表示されずに無条件に許可となる。(表参照)
(空白が出来てしまいましたが、この下に表があります。)
(タグを全部小文字にしたり、改行を抜いてみたりしましたが、表示確認すると戻ってしまう・・・)
《複数のパーミッションを同時に要求する場合》
・通常は一つのダイアログに複数の要求が併記されていて、すべてに対して許可/拒否しかできない。(個別に許可/拒否出来ない)
・通常は青色のダイアログが表示されるが、複数のパーミッション要求の中にPERMISSION_DEBITが含まれている場合、ダイアログは黄色いダイアログとなる。(要求内容は併記される)
・sitまたはattachしている場合は、無条件に許可するパーミッションだけで組み合わせた場合は、ダイアログは表示しない
・sitまたはattachしている場合は、無条件に許可しないパーミッションを含んだ組合せの場合は、すべての条件が併記されているダイアログが表示される
・sitまたはattachしている状態で、PERMISSION_DEBITとPERMISSION_CONTROL_CAMERAを組み合わせた場合のパーミッション要求ではダイアログが出ない。(許可/拒否出来ない)
(これはバグか?)
<2008.06.10追記>
PERMISSION_DEBITとPERMISSION_CONTROL_CAMERAを組み合わせたパーミッションの要求については別のWikiに記述がありました。エラーとなるようです。
(LSL Wikiに記述されている内容に不足がある・・・という理由もあります。)
《パーミッション取得に関する条件等》
・通常は青色のダイアログが表示されるが、PERMISSION_DEBITの場合は黄色いダイアログが表示される。
・一度取得したパーミッションを、再度要求して拒否された場合、そのパーミッションを失う。
・1つのスクリプトで保持できるパーミッションは1人のアバターに関するものだけで、複数のアバターのパーミッションを保持したければ、その人数分のスクリプトが必要になる。(モジュール化)
・同一スクリプト内でステートが変わっても、パーミッションは保持する。
・パーミッションの許可/拒否はrun_time_permissionsイベントで確認する。(拒否してもイベントは発生する。)
・sitまたはattachしている場合、いくつかのパーミッションはダイアログが表示されずに無条件に許可となる。(表参照)
(空白が出来てしまいましたが、この下に表があります。)
(タグを全部小文字にしたり、改行を抜いてみたりしましたが、表示確認すると戻ってしまう・・・)
| パーミッションの種類 | 取得対象 | sitしている場合は 無条件に許可する | attachしている場合は 無条件に許可する (ルートプリムのみ) | 備考 |
| PERMISSION_DEBIT オーナーからの支払を許可する | オーナー | × | × | |
| PERMISSION_TAKE_CONTROLS キーコントロールを許可する | 誰でも | ○ | ○ | |
| PERMISSION_TRIGGER_ANIMATION アニメーションを許可する | 誰でも | ○ (Wiki無記載) | ○ | |
| PERMISSION_ATTACH アタッチ/デタッチを許可する | オーナー | × | ○ | |
| PERMISSION_CHANGE_LINKS リンクの変更を許可する | オーナー | × | × | |
| PERMISSION_TRACK_CAMERA カメラ位置の取得を許可する | 誰でも | ○ | ○ (Wiki無記載) | |
| PERMISSION_CONTROL_CAMERA カメラの制御を許可する | 誰でも | ○ (Wiki無記載) | ○ (Wiki無記載) | sitまたはattachしている時のみ要求可 (Wiki無記載) |
《複数のパーミッションを同時に要求する場合》
・通常は一つのダイアログに複数の要求が併記されていて、すべてに対して許可/拒否しかできない。(個別に許可/拒否出来ない)
・通常は青色のダイアログが表示されるが、複数のパーミッション要求の中にPERMISSION_DEBITが含まれている場合、ダイアログは黄色いダイアログとなる。(要求内容は併記される)
・sitまたはattachしている場合は、無条件に許可するパーミッションだけで組み合わせた場合は、ダイアログは表示しない
・sitまたはattachしている場合は、無条件に許可しないパーミッションを含んだ組合せの場合は、すべての条件が併記されているダイアログが表示される
・sitまたはattachしている状態で、PERMISSION_DEBITとPERMISSION_CONTROL_CAMERAを組み合わせた場合のパーミッション要求ではダイアログが出ない。(許可/拒否出来ない)
(これはバグか?)
<2008.06.10追記>
PERMISSION_DEBITとPERMISSION_CONTROL_CAMERAを組み合わせたパーミッションの要求については別のWikiに記述がありました。エラーとなるようです。
この記事へのトラックバックURL
http://sasapy.slmame.com/t261733
この記事へのコメント
パーミッションは、むずかすぃ…(ノД`)シクシク
精進します<(_ _)>
精進します<(_ _)>
Posted by redzaku Kayo こと 赤ザク
at 2008年06月03日 14:40
at 2008年06月03日 14:40