LlRequestPermissions/ja

From Second Life Wiki
< LlRequestPermissions
Revision as of 01:51, 18 September 2008 by Asuka Neely (talk | contribs) (New page: {{LSL_Function/avatar/ja|agent|sim=*}}{{LSL_Function/ja |func=llRequestPermissions|sort=RequestPermissions |func_id=136|func_sleep=0.0|func_energy=10.0 |p1_type=key|p1_name=agent|p1_desc |...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

要約

関数: llRequestPermissions( key agent, integer perm );

複数種の関数を正確に動かすためのパーミッションをエージェントに問い合わせます。

• key agent 同一 地域 にいるアバターの UUID
• integer perm パーミッションマスク(要求するパーミッションを含んでいるビットフィールド)。

スクリプトの実行は非同期で継続します。レスポンスが与えられた時、イベントキューにrun_time_permissionsイベントが置かれます。

定数 挙動 カテゴリ 付与対象 自動付与
PERMISSION_DEBIT 0x2 アバターの口座からお金を徴収します お金 オーナー
PERMISSION_TAKE_CONTROLS 0x4 アバターのコントロールを取得します コントロール 誰でも sit 時、装着時
PERMISSION_TRIGGER_ANIMATION 0x10 アバターのアニメーションを再生/停止します アニメーション 誰でも sit 時、装着時
PERMISSION_ATTACH 0x20 アバターにアタッチ/デタッチします 装備 オーナー 装着時
PERMISSION_CHANGE_LINKS 0x80 リンクを変更します リンク オーナー
PERMISSION_TRACK_CAMERA 0x400 アバターのカメラ位置回転を追跡します カメラ 誰でも sit 時、装着時
PERMISSION_CONTROL_CAMERA 0x800 アバターのカメラを制御します (sit か装備が必須) カメラ 誰でも sit 時、装着時
PERMISSION_TELEPORT 0x1000 アバターのテレポートを制御します テレポート 誰でも[1]
PERMISSION_SILENT_ESTATE_MANAGEMENT 0x4000 llManageEstateAccess without notifying the owner of changes Estate オーナー
PERMISSION_OVERRIDE_ANIMATIONS 0x8000 configure the overriding of default llStartAnimation on agent アニメーション 誰でも 装着時
PERMISSION_RETURN_OBJECTS 0x10000 Used by llReturnObjectsByOwner and llReturnObjectsByID to return objects from parcels Cleanup/ja オーナー, グループオーナー

警告

  • パーミッションは蓄積しません。
    • パーミッションが以前にこの関数の呼び出しで要求されて付与された場合、その後の呼び出しでは要求されずパーミッションは解放されます(消失)。
    • 同時に2つ(以上)の異なるパーミッションを要求するには、ビット演算か、<lsl>llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS
All Issues ~ Search JIRA for related Bugs

サンプル

アバターにアニメのパーミッションを要求します。 <lsl>default{

   touch_start(integer detected)
   {
       llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
   }
   run_time_permissions(integer perm)
   {
       if (perm & PERMISSION_TRIGGER_ANIMATION)
       {
           llStartAnimation("sit");
           llOwnerSay("animation will end in 5 seconds");
           llSetTimerEvent(5.0);
       }
   }
   timer()
   {
       llSetTimerEvent(0.0);
       llStopAnimation("sit");
   }

} </lsl>

To request two (or more) different permissions at the same time you can using the bitwise OR (|) or precompute the value.

<lsl>llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS

注意点

ダイアログは、予想される少数のケースで、これらの権限を付与するアバターに表示されます。

  • エージェントがオブジェクトに座っている場合、コントロールとカメラ追跡のパーミッションは要求上の通告からは除外されて付与されます。
  • オブジェクトがエージェントにアタッチされている場合、コントロール、アタッチ、そしてアニメのパーミッションは、ルートプリム内のスクリプトである限りは要求上の通告から除外されて付与されます。スクリプトがルートプリム内にない場合、ユーザは確認ダイアログをみるでしょう。
  • パーミッションはステートの変更を越えて持続します。あなたはスクリプト内の各ステートのstate_entry()でパーミッションを要求する必要はありません。それに関わらずダイアログが表示される場合、この予測できない状況上ではむしろrun_time_permissionsを常につかうべきでしょう。

関連項目

イベント

•  run_time_permissions パーミッション受信イベント

関数

•  llGetPermissions 付与されたパーミッションを取得する
•  llGetPermissionsKey パーミッションが付与されたアバターを取得する

記事

•  Script permissions

特記事項

Search JIRA for related Issues

脚注

Signature

function void llRequestPermissions( key agent, integer perm );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。