LlPassTouches/ja
Jump to navigation
Jump to search
All Issues ~ Search JIRA for related Bugs
そして、子プリムにこのスクリプトを追加します -
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llPassTouches( integer pass );警告
ルートプリムでは (TRUE が設定されても FALSE が設定されても) 何も起こりません。タッチ情報は、子に touch イベントのスクリプトがなければ、子のスクリプトの別のイベントで TRUE が設定されていても FALSE が設定されていても、常にルートプリムに伝達されます。子プリムからのタッチ情報をブロックしたければ、touch イベントがついた スクリプトを子プリムに加えなければなりません。これはデフォルトで 伝達しない となります。
サンプル
2 個のプリムからなる リンクセット (オブジェクト) を作成しましょう。ルートプリムを "Parent" とし、子プリムを "Child" とします。ルートプリムにこのスクリプトを追加しましょう。 -
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, "やろうと思ったらあなたの手なんか切り落としてしまえるんだからね!");// これ以上触るな
}
}
}
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 Wikiの関連した項目が参考になるかもしれません。