LlAttachToAvatarTemp/ja

From Second Life Wiki
Jump to: navigation, search

要約

関数: llAttachToAvatarTemp( integer attach_point );

ユーザーに新しい持ち物を作らないという点を除けば、llAttachToAvatarと同じ規則に従います。デタッチしたり接続を切ったりした場合にはオブジェクトは消滅します。

• integer attach_point ATTACH_* 定数または適当な値 (下表参照)

実行するには、llRequestPermissions による PERMISSION_ATTACH 権限が必要です。 ユーザーは一時的に装着されたオブジェクトを '取る' や '下に落とす' ことが出来ない点に注意してください。

  • オブジェクトをアタッチしたユーザーが、そのオブジェクトの所有者でないかもしれません。実際、オブジェクトを贈与したり、所有権を移すためにユーザーにオブジェクトを取らせることに使うには、この関数はほとんど役に立ちません。
定数 解説
ATTACH_CHEST 1
ATTACH_HEAD 2
ATTACH_LSHOULDER 3 左肩
ATTACH_RSHOULDER 4 右肩
ATTACH_LHAND 5 左手
ATTACH_RHAND 6 右手
ATTACH_LFOOT 7 左足
ATTACH_RFOOT 8 右足
ATTACH_BACK 9 背中
ATTACH_PELVIS 10 へそ
ATTACH_MOUTH 11
ATTACH_CHIN 12 あご
ATTACH_LEAR 13 左耳
定数 解説
ATTACH_REAR 14 右耳
ATTACH_LEYE 15 左目
ATTACH_REYE 16 右目
ATTACH_NOSE 17
ATTACH_RUARM 18 右上腕
ATTACH_RLARM 19 右下腕
ATTACH_LUARM 20 左上腕
ATTACH_LLARM 21 左下腕
ATTACH_RHIP 22 右尻
ATTACH_RULEG 23 右腿
ATTACH_RLLEG 24 左膝
ATTACH_LHIP 25 左尻
ATTACH_LULEG 26 左腿
定数 解説
ATTACH_LLLEG 27 左膝
ATTACH_BELLY 28 お腹
ATTACH_LEFT_PEC 29 左胸筋
ATTACH_RIGHT_PEC 30 右胸筋
ATTACH_HUD_CENTER_2 31 HUD 中心部 2
ATTACH_HUD_TOP_RIGHT 32 HUD 右上部
ATTACH_HUD_TOP_CENTER 33 HUD 上部
ATTACH_HUD_TOP_LEFT 34 HUD 左上部
ATTACH_HUD_CENTER_1 35 HUD 中心部
ATTACH_HUD_BOTTOM_LEFT 36 HUD 左下部
ATTACH_HUD_BOTTOM 37 HUD 下部
ATTACH_HUD_BOTTOM_RIGHT 38 HUD 右下部

警告

  • 権限の自動付与に頼らないようにしましょう。常に run_time_permissions イベントを使用しましょう。
  • スクリプトに PERMISSION_ATTACH の権限が不足していると、スクリプトはエラーを DEBUG_CHANNEL で叫び、操作に失敗します (しかしスクリプトは処理を続けます)。
  • いったん PERMISSION_ATTACH 権限が付与されると、スクリプトの中で (例えば、新しい llRequestPermissions 呼び出しなどにより) 権限をはく奪することができません。スクリプトはオブジェクトが derez (削除、取り外し、取り込み) されない限り権限が失われません。
  • この方法により装着が成功したとき、装着する以前に与えられた権限が、PERMISSION_ATTACHも含めてダンプされます。(可能なセキュリティ対策)
    • この方法により装着が成功するまで、それまでに許可された権限は正常のまま保持されます。
  • あなたが譲渡の権限を持っていないオブジェクトの中で llAttachToAvatarTemp を使うと、たとえあなた自身へ装着しようとしていたとしても、関数は No permission to transfer エラーで失敗します。
  • 装着ポイントには複数のアタッチメントを装着できます。[1]
    • 以前はattach_point がふさがっている場合、2つのオブジェクトを同時に同じ装着ポイントに装着することはできず、既にあるオブジェクトが取り外され、新しいアタッチメントが乗っ取りました。
  • 頭に (首から上の全ての装着ポイント) 装着されたオブジェクトは、"show attachments in mouselook" が無効になっている場合、一人称視点 (別名 マウスルック) では表示されません。
  • attach_point がゼロだがオブジェクトが装着されたことがない場合、デフォルトで右手に装着されます (ATTACH_RHAND)。
  • オブジェクトが既に装着されていると、attach_point が異なる 装着ポイント かどうかに関わらず、関数がエラーを出さずに失敗します。
All Issues ~ Search JIRA for related Bugs

サンプル

//-- rez object on ground, drop in this script, it will request permissions to attach,
//-- and then attach to the left hand if permission is granted. if permission is denied,
//-- then the script complains.
default
{
    state_entry()
    {
        llRequestPermissions( llGetOwner(), PERMISSION_ATTACH );
    }
 
    run_time_permissions( integer vBitPermissions )
    {
        if( vBitPermissions & PERMISSION_ATTACH )
        {
            llAttachToAvatarTemp( ATTACH_LHAND );
        }
        else
        {
            llOwnerSay( "Permission to attach denied" );
        }
    }
 
    on_rez(integer rez)
    {
        if(!llGetAttached())
        { //reset the script if it's not attached.
            llResetScript();
        }
    }
 
    attach(key AvatarKey)
    {
        if(AvatarKey)
        {//event is called on both attach and detach, but Key is only valid on attach
            integer test = llGetAttached();
            if (test) {
                llOwnerSay( "The object is attached" );
            } else {
                llOwnerSay( "The object is not attached");
            }
        }
    }
}
//-- This example can demonstrate ownership transfer of an object on a temporary basis using llAttachToAvatarTemp()
//-- Whoever touches will be asked for permission to attach, and upon granting permission will have the item attach,
//-- But not appear in Inventory.
default
{
    touch_start(integer num_touches)
    {
        llRequestPermissions( llDetectedKey(0), PERMISSION_ATTACH );
    }
 
    run_time_permissions( integer vBitPermissions )
    {
        if( vBitPermissions & PERMISSION_ATTACH )
        {
            llAttachToAvatarTemp( ATTACH_LHAND );
        }
        else
        {
            llOwnerSay( "Permission to attach denied" );
        }
    }
 
    on_rez(integer rez)
    {
        if(!llGetAttached())
        { //reset the script if it's not attached.
            llResetScript();
        }
    }
}

関連項目

イベント

•  run_time_permissions 権限取得イベント

関数

•  llGetPermissions 付与されている権限を取得します
•  llGetPermissionsKey 権限を許可したエージェントを取得します
•  llRequestPermissions 権限を要求します
•  llDetachFromAvatar アバターからオブジェクトを外します
•  llGetAttached 装着ポイント番号を取得します

記事

•  権限/スクリプト

特記事項

Search JIRA for related Issues

脚注

  1. ^ SCR-277により1つの装着ポイントに複数装着できるようになりました

Signature

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