Difference between revisions of "Attach/ja"

From Second Life Wiki
Jump to navigation Jump to search
(New page: {{LSL_Event |event_id=23 |event_delay |event=attach |p1_type=key |p1_name=id |p1_desc=装着されていたなら該当アバタ、装着されていなかった場合には{{LSL_Constant/...)
 
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{LSL_Event
{{LSL_Event/ja
|event_id=23
|event_id=23
|event_delay
|event_delay
|event=attach
|event=attach
|p1_type=key
|p1_type=key|p1_name=id
|p1_name=id
|p1_desc=装着された場合はアバターの UUID、装着されなくなった場合は {{LSL_Constant/NULL_KEY/ja}}
|p1_desc=装着されていたなら該当アバタ、装着されていなかった場合には{{LSL_Constant/NULL_KEY/ja}}
|p1_hover=装着された場合はアバターの UUID、装着されなくなった場合は NULL_KEY.
|p1_hover=装着されていたなら該当アバタ、装着されていなかった場合にはNULL_KEY。
|event_desc=オブジェクトがエージェントに {{LSLG|attachment|装着}} されたか、エージェントから取り外されたときにオブジェクト内部で発生します。
|event_desc=オブジェクトがエージェントに装着もしくは取り外す時に作動します。
|constants
|constants
|spec
|spec=
===発生します===
# オブジェクトがアバターに装着されたとき
#* 地面の上にあるものを装着したとき
#* 持ち物から装着したとき
#* オブジェクトを装着したアバターがログインしたとき
# オブジェクトが取り外されたとき ('''id''' == {{LSL_Constant/NULL_KEY/ja}})
#* 地面の上に落としたとき
#* 持ち物にしまったとき
#* <s>オブジェクトを装着したアバターがログアウトしたとき</s>(現在のバージョンでは発生しませんが、スクリプト作成者は可能性を予測する必要があります)
 
===発生しません===
# オブジェクトを装着したアバターがテレポートしたとき
#* {{LSLG/ja|CHANGED_TELEPORT}} でアバターがテレポートしたことを検出します
# オブジェクトを装着したアバターが違う地域に移ったとき
#* {{LSLG/ja|CHANGED_REGION}} でアバターが地域を移ったことを検出します
|caveats
|caveats
|examples=
|examples=
以下はattachイベントの簡易例です。上の変数idは、用意されたオブジェクトがのアバターのキーAs explained above the variable id that will be the key of the avatar when the scripted object is attached to otherwise that  it will take on the value of {{LSL_Constant/NULL_KEY}}. The conditional [[if]] statement is used to determine if the value of the variable id.
以下は attach イベントを単純化した例です。変数 id はスクリプトが入っているオブジェクトを装着したアバターのキーか、 {{LSL_Constant/NULL_KEY/ja}} となります。 {{LSLG/ja|if}} 条件式を使って、変数 id の値を調べています。
上の変数idから{LSL_Constant/NULL_KEY}}以外のアバターのキーを受け取ったときに、用意されたオブジェクトが装着される、という説明です。
<source lang="lsl2">default
 
<lsl>default
{   
{   
     attach(key id)
     attach(key id)
     {
     {
         if(id)//tests if it is a valid key and not NULL_KEY
         if(id)//有効なキーか NULL_KEY かを調べます
         {
         {
             llSay(PUBLIC_CHANNEL,"I have been attached!");
             llSay(PUBLIC_CHANNEL,"装着されました!");
         }
         }
         else
         else
         {
         {
             llSay(PUBLIC_CHANNEL,"I have been detached!");
             llSay(PUBLIC_CHANNEL,"取り外されました!");
         }
         }
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_header
|also_header
|also_events
|also_events=
{{LSL DefineRow|{{LSLG/ja|on_rez}}}}
|also_functions=
|also_functions=
{{LSL DefineRow|[[llAttachToAvatar/ja|llAttachToAvatar]]}}
{{LSL DefineRow|{{LSLG/ja|llAttachToAvatar}}}}
{{LSL DefineRow|[[llDetachFromAvatar/ja|llDetachFromAvatar]]}}
{{LSL DefineRow|{{LSLG/ja|llDetachFromAvatar}}}}
{{LSL DefineRow|[[llGetAttached/ja|llGetAttached]]}}
{{LSL DefineRow|{{LSLG/ja|llGetAttached}}}}
|also_articles=
|also_articles=
{{LSL DefineRow|{{LSLGC|Attachment/ja}}}}
{{LSL DefineRow|{{LSLGC/ja|Attachment}}}}
|also_footer
|also_footer
|notes
|notes=
==={{LSLG/ja|on_rez}} と {{LSLG/ja|attach}}===
持ち物の中から装着したときや、ログイン時には、 {{LSLG/ja|on_rez}} は {{LSLG/ja|attach}} の前に発生します。
 
===取り込みタイミング===
取り込みの間、オブジェクトには attach イベントを実行するだけの時間が与えられます。スクリプトが取り込まれる瞬間、これらのイベントを実行中でまだ完了していない場合、オブジェクトが次に rez されたときに実行を完了させます (これは望んでいないことかもしれません) 。取り外し時の処理をシンプルにすることをお薦めします。
 
{{LSLG/ja|attach}} は、最後に rez されたときにスクリプトがループしていた場合には発生'''しません'''。 ({{LSLG/ja|on_rez}} と同じです)
|mode
|mode
|deprecated
|deprecated
|cat1=Attachment/ja
|cat1=Attachment
|cat2
|cat2
|cat3
|cat3
|cat4}}
|cat4}}

Latest revision as of 09: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の関連した項目が参考になるかもしれません。