2009年03月14日

エレベーターとフローティングテキスト

いつもここではお世話になっていますm(_ _)m
今回はエレベーターとフローティングテキストについての質問です。

まずはエレベーターです。
良くあるSITしてテレポートするタイプではなく、アバターや乗り物を乗せてUP or DOWNボタンを押すと動くエレベーターが欲しいのです。
距離的には4~5mの移動ですし、2F、3Fなどの選択がない単純なものなのですが、検索しても使えそうなものがなかなか見つからないのでここに相談します。

いちおう、綺麗に動くエレベーターは
http://kappa.slmame.com/e10461.html
こちらのが大変スムーズに動いたのですが、なぜか到着地点でガクガク動いて斜めになってしまいます><
到着地点で周りには接触しないよう、隙間を空けてはあるのですが、何故かそれでも周りに引っ掛かっているみたいです。
周りになにもなければスムーズに動くのですが…

こちらのものほど綺麗に動かなくても良いので(移動距離が短いので)なにか良いスクリプトをお教えいただけませんでしょうか?



次にフローティングテキストです。
ノートに書いた文章をフローティングテキストで表示するにはどうしたらよいのでしょうか?
自分なりに調べてみましたら、llGetNotecardLineを使うのではないかな?とは思うのですが…
例がチャットコマンドにノートの内容を表示するスクリプトでしたのでどこを変更したらよいのかよく分かりませんでした。



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

この記事へのコメント
vector pos;
vector end;
default
{
state_entry()
{
llSetStatus(STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z,FALSE);
llSetStatus(STATUS_PHYSICS,TRUE);
pos=llGetPos();
llMoveToTarget(pos,1.5);
}
changed(integer change)
{
if(change & CHANGED_INVENTORY)
{
llResetScript();
}
}

on_rez(integer num){
llResetScript();
}

touch_start(integer total_number)
{
integer i = llDetectedLinkNumber(0);

if(i==2)
{
end=pos;
llMoveToTarget(end,1.5);
}

if(i==3)
{
end = pos+<0,0,20>;//2F 60mまで
llMoveToTarget(end,1.5);
}

}
}
//////////////////////////////////////////////

物理のエレベーターです。60mまでしか登りません。
Shiftを押しながらUPボタンDOWNボタン、ルートの順番にクリックしてからリンクしてください。

//////////////////////////////////////////////
default
{
state_entry()
{
llGetNotecardLine("Memo",0);
}

dataserver(key queryid, string data)
{
llSetText(data,<1,1,1>,1.0);
}
changed(integer change)
{
if(change & CHANGED_INVENTORY)//ノートカードの中身を変更したら
{
llResetScript();//リセット
}
}
}
//////////////////////////////////////////////
Memoという名前のノートカードを入れてください。
必ず1行目に書いてください。
Posted by shirayukihime Writer at 2009年03月14日 16:41
changed(integer change)
{
if(change & CHANGED_INVENTORY)
{
llResetScript();
}
エレベーターのここは↑ いりません><

ノートカードで高さを変更するときに入れてください><
Posted by shirayukihime Writer at 2009年03月14日 16:44
ありがとうございます!早速試してみます! m(_ _)m
Posted by まおまお at 2009年03月14日 19:30
ノートカードの全てを読み込むにはどうしたらいいのでしょうか?
最初はノートの方に/nで改行を入れてみたのですがうまくいきませんでした。
次に、
llGetNotecardLine("ノート名",0);
llGetNotecardLine("ノート名",1);
llGetNotecardLine("ノート名",2);
としてみたのですが、当然ながら最後のラインしか表示されず…orz

全てを読み込む関数がどこを調べてもわからなかったのもので…TT
どこのHPを見ても読み込みラインの事しか書いてないんですよね。

llGetNotecard(ノート名);
なのかなー?と思ってみたのですがどうも違うみたいです…
Posted by まおまお at 2009年03月14日 20:50
ノートカードの扱い方はこちらを見ていただいて・・。
http://pao.slmame.com/e557670.html

参考になるサイト
http://www21.atwiki.jp/mizcremorne/pages/277.html
Posted by pao at 2009年03月14日 22:16
>paoさま
スクリプト素人の私ですが、何とか改行がうまくいきました。
リンク先のpaoさまのフローティングテキスト例は他の時に大変参考になりそうです^^
ありがとうございました!
Posted by まおまお at 2009年03月15日 03:38
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。