2012年09月27日

与えるスクリプト

スクリプト初心者です。
こんにちは。^^

しばらく探してみたのですが
見つからなくて…。

タッチした人に物を与えるスクリプトなんですが

default
{
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);
llGiveInventory(avatar, "itemname");
}
}

1m以内に来ないと与えられないようにするするにはどうしたら
いいのか教えてください。^^:

よろしくお願いします。


同じカテゴリー(スクリプト関連)の記事画像
オブジェクトのリンクとタッチで開く扉
自動チャットを止めたい
テレポートするとアニメーションが解除される
同じカテゴリー(スクリプト関連)の記事
 テクスチェンジの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 雷神  at 14:49 │Comments(5)スクリプト関連

この記事へのコメント
llDetectPos,llVecDistを使ってみてはいかがでしょうか。

default
{
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);

//アバターの位置を取得
vector avetorPos = llDetectedPos(0);

//オブジェクトの位置を取得
vector objectPos = llGetPos();

//2点間の距離を算出
float dist = llVecDist(avetorPos, objectPos);

//距離が1m以内だったら渡す
if(dist <= 1.0){
llGiveInventory(avatar, "itemname");
}
}
}
Posted by 通りすがり at 2012年09月27日 16:57
llSensor("",key avatar,AGENT,1.0,PI)
を使う手もありますね。
Posted by fusabue at 2012年09月27日 17:14
こんにちは。^^
教えて頂いて有難うございます。
早速、アイテムのところに入れる名前をかえて
スクリプトを組んでみたのですが…

教えていただいたとおりに
これを箱の中に物と一緒にいれてみたのですが…

default
{
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);

//アバターの位置を取得
vector avetorPos = llDetectedPos(0);

//オブジェクトの位置を取得
vector objectPos = llGetPos();

//2点間の距離を算出
float dist = llVecDist(avetorPos, objectPos);

//距離が1m以内だったら渡す
if(dist <= 1.0){
llGiveInventory(avatar, "A2");
}
}
}

どうしたことか…
動きません。 (;;)
何か他に変えないといけない箇所があるのでしょうか?
よろしくお願いします。
Posted by 雷神 at 2012年09月28日 08:41
通りすがりさんのスクリプトでちゃんと動きますよ。

float dist = llVecDist(avetorPos, objectPos);

の後に
llOwnerSay("distance is " + (string)dist);

追加すると実際の検出距離が表示されます。
Posted by fusabue at 2012年09月28日 09:39
どうもありがとうございました。

誕生日の人に近くにきて、タッチしてもらおうと
思って作ったのですが…

できました~ ^^

通りすがりさん、fusabue at さん、
本当に、感謝しています。 ^^
Posted by 雷神雷神 at 2012年09月28日 13:13
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。