Difference between revisions of "Attach/ja"

From Second Life Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by 2 users not shown)
Line 4: Line 4:
|event=attach
|event=attach
|p1_type=key|p1_name=id
|p1_type=key|p1_name=id
|p1_desc=装着された場合はアバターの名前、装着されなくなった場合は {{LSL_Constant/NULL_KEY/ja}}
|p1_desc=装着された場合はアバターの UUID、装着されなくなった場合は {{LSL_Constant/NULL_KEY/ja}}
|p1_hover=装着された場合はアバターの名前、装着されなくなった場合は NULL_KEY.
|p1_hover=装着された場合はアバターの UUID、装着されなくなった場合は NULL_KEY.
|event_desc=オブジェクトがエージェントに {{LSLG|attachment|装着}} されたか、エージェントから取り外されたときにオブジェクト内部で発生します。
|event_desc=オブジェクトがエージェントに {{LSLG|attachment|装着}} されたか、エージェントから取り外されたときにオブジェクト内部で発生します。
|constants
|constants
Line 17: Line 17:
#* 地面の上に落としたとき
#* 地面の上に落としたとき
#* 持ち物にしまったとき
#* 持ち物にしまったとき
#* オブジェクトを装着したアバターがログアウトしたとき
#* <s>オブジェクトを装着したアバターがログアウトしたとき</s>(現在のバージョンでは発生しませんが、スクリプト作成者は可能性を予測する必要があります)


===発生しません===
===発生しません===
Line 27: Line 27:
|examples=
|examples=
以下は attach イベントを単純化した例です。変数 id はスクリプトが入っているオブジェクトを装着したアバターのキーか、 {{LSL_Constant/NULL_KEY/ja}} となります。 {{LSLG/ja|if}} 条件式を使って、変数 id の値を調べています。
以下は attach イベントを単純化した例です。変数 id はスクリプトが入っているオブジェクトを装着したアバターのキーか、 {{LSL_Constant/NULL_KEY/ja}} となります。 {{LSLG/ja|if}} 条件式を使って、変数 id の値を調べています。
<lsl>default
<source lang="lsl2">default
{   
{   
     attach(key id)
     attach(key id)
Line 40: Line 40:
         }
         }
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_header
|also_header

Latest revision as of 08:47, 21 February 2016

説明

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