Attach/ja

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

説明

イベント: 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の関連した項目が参考になるかもしれません。