Control/ja - Second Life Wiki

Control/ja

From Second Life Wiki

Jump to: navigation, search

イベント: control( key id, integer level, integer edge ){ ; }

llTakeControlsライブラリ関数の呼び出しとユーザの入力の結果です。

• key id
• integer level
• integer edge
定数 解説
CONTROL_FWD 0x00000001 前進移動する制御です
CONTROL_BACK 0x00000002 後退移動する制御です
CONTROL_LEFT 0x00000004 左に移動する制御です
CONTROL_RIGHT 0x00000008 右に移動する制御です
CONTROL_ROT_LEFT 0x00000100 左回転する制御です
CONTROL_ROT_RIGHT 0x00000200 右回転する制御です
CONTROL_UP 0x00000010 上移動の制御です
CONTROL_DOWN 0x00000020 下移動の制御です
CONTROL_LBUTTON 0x10000000 マウス左クリックの制御です
CONTROL_ML_LBUTTON 0x40000000 マウスルック中のマウス左クリックの制御です

default
{
    state_entry()
    {
        llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
    }
    run_time_permissions(integer perm)
    {
        if(PERMISSION_TAKE_CONTROLS & perm)
        {
            llTakeControls(
                            CONTROL_FWD |
                            CONTROL_BACK |
                            CONTROL_LEFT |
                            CONTROL_RIGHT |
                            CONTROL_ROT_LEFT |
                            CONTROL_ROT_RIGHT |
                            CONTROL_UP |
                            CONTROL_DOWN |
                            CONTROL_LBUTTON |
                            CONTROL_ML_LBUTTON |
                            0, TRUE, TRUE);
        }
    }
    control(key id, integer level, integer edge)
    {
        integer start = level & edge;
        integer end = ~level & edge;
        integer held = level & ~edge;
        integer unheld = ~(level | edge);
        llOwnerSay(llList2CSV([level, edge, start, end, held, unheld]));
    }
}

ノート

アタッチメントのmouselookでのllGetRotは、アバタの見ている視角から返ります。

llMinEventDelayがこのイベントの遅延の倍くらいに設定される場合、このイベントはllMinEventDelayのあたかも半分だったかのように扱わるでしょう。言い換えれば、このイベントはllMinEventDelayが0.1より大きい場合、他のイベントと同じくしばしば2回作動する可能性があります。

私のテストは、エージェントのコントロールがそのエージェントではないキーを取得してしまったときに返すキーを決定的にしましたが、それはオーナのキーでした。一つ以上のスクリプトが一斉に複数のエージェントの同じオブジェクトの固有の権限を使用する場合、コントロールは全てのスクリプトで作動されるかもしれませんが、どのエージェントが実際に作動する要因となったか知る術はありません。Anthony Reisman 09:59, 14 February 2007 (PST)

関連項目

イベント

•  run_time_permissions

関数

•  llTakeControls
•  llReleaseControls
•  llRequestPermissions