LlRequestPermissions/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

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

特定の種類の関数の実行を許可するか、アバターに問い合わせます。

• key agent 同一 地域 にいるアバターの UUID
• integer perm 権限マスク (要求する権限を含んでいる "Wikipedia logo"ビットフィールド) 。

アバターの回答を待たずに、スクリプトは処理を続行します。回答があった時点で、 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 オーナー, グループオーナー

警告

  • 上表で示した自動的に許可されるパターン以外は、エージェントに許可を求めるダイアログがビューアに表示されます。
  • オブジェクトがアバターに装着されているものであれば、「自動付加される」権限はリクエストに対する通知なく許可されます。
  • 権限はステート遷移後も維持されます。
  • 権限が自動/手動いずれであろうと、常に run_time_permissions イベントでの処理が必要です。許可を得るまでには時間がかかります。 run_time_permissions ハンドラが呼ばれるまでにはすっかり許可されているはずだと思いこまないようにしましょう。
  • 権限は重ねていくことができません。
    • 前回この関数を呼び出してある権限をリクエストし、許可された場合、次の呼び出しでその権限をリクエストしないと、その権限は解放されます (消失します) 。
    • 複数の権限を同時に要求するには、次のように OR (|) 演算子でビット加算します: <lsl>llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS

サンプル

アバターにアニメーション適用の許可を求めます ---

default
{
    touch_start(integer detected)
    {
        llRequestPermissions(llDetectedKey(0), PERMISSION_TRIGGER_ANIMATION);
    }
    run_time_permissions(integer perm)
    {
        if (perm & PERMISSION_TRIGGER_ANIMATION)
        {
            llStartAnimation("sit");
            llOwnerSay("アニメーションは 5 秒で終わります");
            llSetTimerEvent(5.0);
        }
    }
    timer()
    {
        llSetTimerEvent(0.0);
        llStopAnimation("sit");
    }
}

複数の異なった権限を同時に要求するには、OR (|) を使ったビット加算を行なうか、あらかじめその合計値を計算しておいてください。

llRequestPermissions(AvatarID, PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION);

integer perms = PERMISSION_TAKE_CONTROLS | PERMISSION_TRIGGER_ANIMATION;
llRequestPermissions(AvatarID, perms);

注意点

エージェントが自動付加されない権限をスクリプトに与えると、(チャットで) 通知を受け取ることになります - 権限が与えられたスクリプトの入っているオブジェクトの 名前、オブジェクトのオーナーの名前、オブジェクトの座標が順に - 地域名と 位置、そして与えられた権限についての説明が表示されます。権限をもつスクリプトが子プリムの中にある場合、名前 は (オブジェクト (ルート) ではなく) 子プリムのものになり、位置 は (ルートに対する) ローカル 座標になります。

関連項目

イベント

•  run_time_permissions 権限受信イベント

関数

•  llGetPermissions 付与された権限を取得する
•  llGetPermissionsKey 権限が付与されたアバターを取得する

記事

•  スクリプトの権限

特記事項

All Issues

~ Search JIRA for related Issues
   スクリプトの権限 を剥奪することができない

脚注

Signature

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