llSetStatus/ja

From Second Life Wiki
< LlSetStatus
Revision as of 13:46, 25 February 2016 by SakuraNoel Fayray (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Summary

Function: llSetStatus( integer status, integer value );

オブジェクト状態の status で指定された属性について、その値を value に設定します。

• integer status STATUS_* フラグのビットマスク
• integer value boolean

定数 初期値 意味
STATUS_PHYSICS 0x001 FALSE オブジェクトは物理です
STATUS_ROTATE_X 0x002 TRUE この軸周りの回転ができます
STATUS_ROTATE_Y 0x004 TRUE この軸周りの回転ができます
STATUS_ROTATE_Z 0x008 TRUE この軸周りの回転ができます
STATUS_PHANTOM 0x010 FALSE オブジェクトはファントムです
STATUS_SANDBOX 0x020 FALSE オブジェクトを10mの範囲、かつ同じ地域に居続けさせます
定数 初期値 意味
STATUS_BLOCK_GRAB 0x040 FALSE プリムに対するクリック&ドラッグ操作を無効にします
STATUS_DIE_AT_EDGE 0x080 FALSE 地域の外にオブジェクトが出た場合、返却せずに消去します
STATUS_RETURN_AT_EDGE 0x100 FALSE 地域の外にオブジェクトが出た場合、オーナーに返却します
STATUS_CAST_SHADOWS 0x200 TRUE 現在使用されていません
STATUS_BLOCK_GRAB_OBJECT 0x400 FALSE オブジェクトのプリム全てに対するクリック&ドラッグ操作を無効にします
STATUS_DIE_AT_EDGE - オブジェクトがスクリプトによって Rez された場合、初期値は TRUE です。

Caveats

  • 状態とはオブジェクトの属性です。オブジェクトに属する全プリムは同じ状態を共有します。
    • ただし STATUS_BLOCK_GRAB は例外で、これはスクリプトの入っているプリムにのみ作用し、その他の子プリムには作用しません。

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   llGetStatus(STATUS_ROTATE_Z); will not work on child prims on freshly rezzed objects.

Examples

default
{
    state_entry()
    {
        llSetStatus( STATUS_DIE_AT_EDGE | STATUS_PHYSICS, TRUE);
        llSetStatus( STATUS_ROTATE_X | STATUS_ROTATE_Y, FALSE);
    }
}

SVC-1773 により、リンクセットにまとめて Grab 不可に設定するときには、オブジェクト全体のリンクを解除し (このとき、必ず物理属性を外してから行ってください) 、このスクリプトを各プリムに入れ (スクリプトは自動で削除されます) 、リンクセットを再リンクしてください。

default 
{
    state_entry() {
        llSetStatus(STATUS_BLOCK_GRAB,TRUE);           // プリムに 'Grab 不可' フラグを設定します。
        llOwnerSay("'No Grab' was set!");
        llRemoveInventory(llGetScriptName());
    }
}
この問題が解決されるまでは、詳細を JIRA のコメント SVC-1773 から得てください。

See Also

Functions

•  llGetStatus オブジェクトの状態を取得します

Deep Notes

All Issues

~ Search JIRA for related Issues
   llGetStatus(STATUS_ROTATE_Z); will not work on child prims on freshly rezzed objects.
   STATUS_BLOCK_GRAB only affects individual prims in a linkset
   Create STATUS_TRANSLATE_* flags for llSetStatus
   New constant STATUS_BLOCK_SIT

Signature

function void llSetStatus( integer status, integer value );