2008年12月21日

再度教えてくださいm(_ _)m

度々すいません~
タッチで数字がUp・Downは無事成功したのですが
どうしても同じオブジェクトを与えて装備している
人も同じようにUp・Downしてしまいます~
理想はタッチした人のみUp・Down出来たらと
教えていただいたヒントを元にいろいろ試して
いるのですがうまくいきません。
更なるヒントorアドバイスお願いします~



Posted by Tsubaki  at 10:39 │Comments(6)

この記事へのコメント
以前の投稿もちょっと見てみましたが、Listenでカウントしてるようですが、これはタッチするオブジェクトとカウントするオブジェクトは別という事で良いのでしょうか?

タッチされたら、-10channel に発言して、受信したオブジェクトでカウントという感じですよね?

もしそうだとするとチャンネルが全て同じであれば、全てのカウントが上がるのは当然かもしれません。


また、if ( llDetectedKey(0) == llGetOwner())

という記述がlistenイベントの中にありましたけど、これは無視されると思いますよ。

Detected系の関数は touch,collision,sensor あたりでないと使えないと思います。


なのでこれを受信側でなく送信側のtouchイベントに挿入すれば大丈夫な気がしますが、的外れだったらごめんなさい。
Posted by Tako★MASARU at 2008年12月21日 16:42
touchしたらllListenするようにして
UP DOWNがおわったら llListenRemove するようにすれば

タッチしてないオブジェクトを装着している人には反応されないとおもいます。
Posted by it at 2008年12月21日 19:00
お~ 神よ~
ちょっとわかったような~ ちんぷんかんぷんのような~
素人なりに再度チャレンジしてみます~
助かりました~
出来るかどうかは神のみぞ知る~って感じ~
このスクリプトに、もう二週間ぐらいかかりっきりだな~
でもこのような場があってほんと助かりです~
ではがんばります~
Posted by Tsubaki Rau at 2008年12月21日 21:28
ありがとうございました~
なかなか苦労しましたが
完成しました~

参考までに^^

integer hit = 0 ;
string txt;

default
{
state_entry()
{
llListen(-10,"",llDetectedKey(0),"");
}
on_rez(integer num)
{
llListen(-10,"",llDetectedKey(0),"");
}

listen(integer channel , string name , key id , string message){
list listMessage = llCSV2List(message);
if (message == (string)llGetOwner() + "," + "LvUp"){
if(hit < 100){
hit += 1;
txt = (string)hit;
(string)hit;
llSetText("Lv."+txt,<1.0,0.0,1.0>,1.0);}
}else if (message == (string)llGetOwner() + "," + "LvDown"){
llList2String(listMessage, 0) == "LvDown";
if(hit > 0){
hit--;
txt = (string)hit;
(string)hit;
llSetText("Lv."+txt,<1.0,0.0,1.0>,1.0);
}
llListenRemove(0);
}
}
}
Posted by Tsubaki Rau at 2008年12月22日 00:46
上記スクリプトの state_entry, on_rez イベントのListen のkey id のフィルタは意味がないですよ。

先にも書きましたが、llDetectedKey()はタッチした、衝突した、センサーに引っ掛かった等でないと アバタのUUIDを検出出来ないと思います。

key id のところは NULL_KEY で良いと思います。たぶん現状ではllDetectedKey()が検出出来ないので NULL_KEYという扱いになり、ちゃんと機能しているという感じがします。
Posted by Tako★MASARU at 2008年12月22日 13:13
ありがとうございます。
一応もう一つのオブジェクトのスクリプトに
llDetectedKey()が含まれていまして
そちらをタッチor激突で使用します。
上記をベースにして、まだいくつか作成予定です。
他のスクリプトも山積みになっていますので、
引き続きがんばります~
Posted by Tsubaki Rau at 2008年12月22日 21:28
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。