Attach/ja

From Second Life Wiki
Jump to: navigation, search

説明

イベント: attach( key id ){ ; }

オブジェクトがエージェントに 装着 されたか、エージェントから取り外されたときにオブジェクト内部で発生します。

• key id 装着された場合はアバターの UUID、装着されなくなった場合は NULL_KEY

仕様

発生します

  1. オブジェクトがアバターに装着されたとき
    • 地面の上にあるものを装着したとき
    • 持ち物から装着したとき
    • オブジェクトを装着したアバターがログインしたとき
  2. オブジェクトが取り外されたとき (id == NULL_KEY)
    • 地面の上に落としたとき
    • 持ち物にしまったとき
    • オブジェクトを装着したアバターがログアウトしたとき(現在のバージョンでは発生しませんが、スクリプト作成者は可能性を予測する必要があります)

発生しません

  1. オブジェクトを装着したアバターがテレポートしたとき
    • CHANGED_TELEPORT でアバターがテレポートしたことを検出します
  2. オブジェクトを装着したアバターが違う地域に移ったとき
    • CHANGED_REGION でアバターが地域を移ったことを検出します

サンプル

以下は attach イベントを単純化した例です。変数 id はスクリプトが入っているオブジェクトを装着したアバターのキーか、 NULL_KEY となります。 if 条件式を使って、変数 id の値を調べています。

default
{  
    attach(key id)
    {
        if(id)//有効なキーか NULL_KEY かを調べます
        {
            llSay(PUBLIC_CHANNEL,"装着されました!");
        }
        else
        {
            llSay(PUBLIC_CHANNEL,"取り外されました!");
        }
    }
}

注意点

on_rezattach

持ち物の中から装着したときや、ログイン時には、 on_rezattach の前に発生します。

取り込みタイミング

取り込みの間、オブジェクトには attach イベントを実行するだけの時間が与えられます。スクリプトが取り込まれる瞬間、これらのイベントを実行中でまだ完了していない場合、オブジェクトが次に rez されたときに実行を完了させます (これは望んでいないことかもしれません) 。取り外し時の処理をシンプルにすることをお薦めします。

attach は、最後に rez されたときにスクリプトがループしていた場合には発生しません。 (on_rez と同じです)

参考情報

イベント

• on_rez

関数

• llAttachToAvatar
• llDetachFromAvatar
• llGetAttached

記事

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