2010年07月24日

xyzzytext

表札を作りたいと思い、検索したサイトを見て、xyzzytextを使って文字を表示させることは出来ました。
でも、そちらのサンプルの文字設定用のスクリプトでは、スクリプトで指定した文字しか表示できないので
表示させる文字や文字色をノートで設定できるようにしたいのです。

文字設定用のスクリプト
integer DISPLAY_STRING = 204000;
default {
state_entry() {
llMessageLinked( LINK_THIS, DISPLAY_STRING, "testtest", "0" );
}

}

たぶんこのスクリプトを変更するの?。。かな?と思うのですが
ノートカードに関する記事を読んでも理解できず、実際どこをどうすればいいかわかりません。
教えていただけないでしょうか。
よろしくお願いします。



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

この記事へのコメント
xyzzytextは使ったことがないのですが、ノートからデータを読み込んで文字を更新したいのでしたら、下のようにしてみてはいかがでしょう。

文字設定用のスクリプト
integer DISPLAY_STRING = 204000;
integer SET_COLOR = 204007;

string NOTE_NAME = "text";
integer read_line;
key query_id;

load(){
if(llGetInventoryType(NOTE_NAME)==INVENTORY_NOTECARD){
read_line = 0;
query_id = llGetNotecardLine(NOTE_NAME,0);
}
}

default {
state_entry() {
load();
}
changed(integer change){
if(change & CHANGED_INVENTORY){
load();
}
}
dataserver(key id,string data){
if(id==query_id){
if(data!=EOF){
if(read_line==0){
llMessageLinked( LINK_THIS, SET_COLOR, data, "");
}else if(read_line==1){
llMessageLinked( LINK_THIS, DISPLAY_STRING, data, "0");
}
query_id = llGetNotecardLine(NOTE_NAME,++read_line);
}
}

「text」というノートカードを作り、1行目に色の情報(白なら<1.0,1.0,1.0>)と、2行目に表示テキストを書きます。
後は「text」の内容を書き換えるたびに情報が更新される・・・はずです。

実際にテストしてみたわけではないのでwikiを見ながら想像しただけですが、参考になりましたら幸いです。
Posted by natsu at 2010年07月24日 17:20
早速のお返事ありがとうございます。
おかげさまで思い通りにテキストを変更することが出来るようになり、嬉しいです。
ありがとうございましたm(_ _)m
Posted by みなみん at 2010年07月24日 19:58
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。