ここ数日、面白くてスクリプトの実験を繰り返しています。
ゴールゲートのスクリプト。
結果:ゴールのオブジェクトを通過すると、通過した順番に、読み上げる。
いろんなアプローチのしかたがあるみたいで
LSLBBSでもトピックスにあがっています
今回の条件:
ジェットスキー(グループ共有)、オブジェクトのオーナーと乗り手は違う人
センサーを使う方向でいたのですが、ちょっと軌道修正。
友人の案:
登録ゲートはセンサーをつかって、ジェットスキーのUUIDとアバター名を抜く
それをリストに格納してゴールに送る。ゴールは衝突判定で、リストとゴールしたオブジェクトを比較。
マッチした順番にリストの名前を抜き出してシャウトする。(2プリム使用)
私の案:
ゴールゲートはエントリーしている人が最初に各自タッチ。そのときにアバターとオブジェクトのUUIDを抜く。リストに格納。ゴール時の判定は上記と同じ。(1プリム使用)
4回レースがあるので、リセット機能があるといいかも。
リストの使い方をマスターするのにいい練習だと思われ。
確認したこと:
list entry_list;
string avname;
integer i;
default
{
touch_start(integer total_number)
{
avname = llDetectedName(0);
llWhisper(0,avname);
//タッチでアバター名を取得、whisperで名前を確認
entry_list += [avname];
//リストentry_listに名前を追加
i = llListFindList(entry_list,[avname]);
//リストに格納されているか確認。(空だと-1がかえってくる)
llWhisper(0, (string)i);
}
}
リストの理解を少しずつ@@;
追記:
サーフボードのったまま(つまり乗り物にSit)でタッチしても名前は抜けたぞっと
2 件のコメント:
バウンディングボックスを使ったトライだけど ちょっとおかしい部分があるから再検討します。
ごめんね
おお~、了解。
ま、のんびり推理でもしていきましょうw
コメントを投稿