2012年08月06日

スクリプトで困ってます

タッチで頭上にオブジェクトが落ちてくるスクリプトなのですが、タッチした人だけに落ちてきて欲しいのですが近くに居る人全員に落ちてきます。
下のスクリプトです。
default
{
touch_start(integer t)
{
llSensor("","",AGENT,10,PI);
}
sensor(integer t)
{
for(--t;0<=t;--t)
{
vector v = llDetectedPos(t);

v.z += 2;
llRezObject(llGetInventoryName(INVENTORY_OBJECT,0), v, ZERO_VECTOR, ZERO_ROTATION, 0);
}
}
}

AGENTのところを、いろいろ入れ替えてみましたが、エラーが出たりで、うまくいかなかったです。
スクリプトのことは、ほとんど分かりません。
どうすれば、タッチした人にだけ落ちてくるのでしょうか?
どなたか教えてください、お願いします!


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジのHUDについて (2015-07-01 04:51)
 モール用のプリムカウンターを探しています (2014-11-29 20:09)
 連続するアニメーションの処理 (2014-08-24 03:23)
 オブジェクトの上にフローティングテキストを出す。 (2014-08-22 16:46)
 チャットログの盗聴について (2014-02-03 03:43)
 椅子に座った後で位置調整できるスクリプト (2013-03-24 16:37)

Posted by Kachua  at 01:13 │Comments(2)スクリプト関連

この記事へのコメント
default
{
touch_start(integer t)
{

llSensor("",llDetectedKey(0),AGENT,10,PI);

}

sensor(integer t)
{
vector v = llDetectedPos(0);

v.z += 2;
llRezObject(llGetInventoryName(INVENTORY_OBJECT,0), v, ZERO_VECTOR, ZERO_ROTATION, 0);
}

}

【説明】
llDetectedKey(0)という関数は、そのイベントの中で検出されたキー(この場合はアバターのキー)を取得するものです。
 イベントで検出するキーは、同時にいくつかある場合がありますが、特にtouch_startの場合は、同時に複数がタッチということはないと思いますので、関数のかっこの中は0でよいです。
 センサーのAGENTを変更してみたとのことですが、このAGENTは、検出対象の種類を指定するものです。ここではこのままで。

前のスクリプトだと周囲10Mのアバター全員をセンサーで探して、落としていましたが、私のスクリプトでは、タッチしたひとりを指定して、センサーを動かしています。
Posted by ありあどね at 2012年08月06日 02:51
ありがとうございました!
AGENTのところじゃなかったんですね><
llDetectedKey(0)を、AGENTのところに入れ替えたりもしてました。
Posted by Kachua at 2012年08月06日 08:40
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。