LlPassTouches/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

関数: llPassTouches( integer pass );

プリム の項目 pass-touch を設定します。

• integer pass 真偽値。 TRUE であれば、タッチ情報が子から親に伝達されます。

タッチイベントに対して処理を行うスクリプトがない場合は、デフォルトで TRUE です。

警告

ルートプリムでは (TRUE が設定されても FALSE が設定されても) 何も起こりません。タッチ情報は、子に touch イベントのスクリプトがなければ、子のスクリプトの別のイベントで TRUE が設定されていても FALSE が設定されていても、常にルートプリムに伝達されます。子プリムからのタッチ情報をブロックしたければ、touch イベントがついた スクリプトを子プリムに加えなければなりません。これはデフォルトで 伝達しない となります。

All Issues ~ Search JIRA for related Bugs

サンプル

2 個のプリムからなる リンクセット (オブジェクト) を作成しましょう。ルートプリムを "Parent" とし、子プリムを "Child" とします。ルートプリムにこのスクリプトを追加しましょう。 -<lsl>integer told;

default {

   state_entry()
   {
       told = FALSE;
   }
   touch_start(integer total_number)
   {
       if(!(llDetectedLinkNumber(0) == llGetLinkNumber()))// このように条件文を使って、タッチが発生したプリムを除外します。
       {
           llSay(0, "あなたが触ったって、うちの子が言ってたの。 Abuse Report を出すわよ。");// 子プリムが 2 回タッチされた場合にのみ表示されます。
           told = TRUE;
       }
       else
       {
           if(!told)
           llSay(0, "どうぞお好きにお触りください。");// 知らない親はあなたを誘います。
           else
           llSay(0, "やろうと思ったらあなたの手なんか切り落としてしまえるんだからね!");// これ以上触るな
       }
   }

}</lsl>そして、子プリムにこのスクリプトを追加します -<lsl>integer once_is_too_often;

default {

   state_entry()
   {
       llPassTouches(FALSE);// 経験のない子は、最初は何を言えばいいかわかりません。
       once_is_too_often = FALSE;
   }
   touch_start(integer total_number)
   {
       if(llDetectedLinkNumber(0) == llGetLinkNumber())// 再び誰が触ったかチェックします。
       {
           if(!once_is_too_often)
           {
               llSay(0, "今度触ったら言いつけるぞ。");
               llPassTouches(TRUE); // しかし 2 回目は、言いつけます。
               once_is_too_often = TRUE;// そしておとなしくなります。
           }
       }
   }
}</lsl>

関連項目

イベント

•  touch_start
•  touch
•  touch_end

関数

•  llPassCollisions

特記事項

Search JIRA for related Issues

Signature

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