2022/01/22

繰り返しで説明文を表示

ベネチアSIMにはやはりというかいろんな国の方が来られます。

案内看板の説明が日本語だけだとなにか不親切な感じがします。
国際語の英語はもちろん ここはベネチアなのでイタリア語もほしいところ。
でもいっぺんに表示するとごちゃごちゃしてすっきりしないし 読みたいのは 3ヶ国語全部じゃなくひとつでいいはず。

というわけで 説明文を分けてそれを繰り返しで表示するスクリプトを作りました。
表示が次々変わるので 見た人の気を引く効果もありそうです。

スクリプトはこちら:

// Cycle Text v1.2
list Msgs = [
  "Tocca/Siediti al Porto del Dirigibile Turistico.",
  "Touch/Sit to Airship Sightseeing Port.",
  "タッチ/座って遊覧飛行船の出発地へ"];
float TimeCycle = 7; // 秒ごとに切り替え
integer Stride = 1; // 1度に表示する行数
integer Index = 0;

default {
  state_entry() {
    llSetText("",<1,1,1>,1);
    llSetTimerEvent(TimeCycle);
  }
  timer() {
    list lines = llList2List(Msgs,Index,Index+Stride-1); // 表示する文
    string text = llDumpList2String(lines,"\n"); // 2行以上なら改行でつなぐ
    llSetText(text,<1,1,1>,1); // テキスト表示
    Index += Stride; // 次の表示
    if (llList2String(Msgs,Index)=="") Index = 0; // 終わりなら先頭に戻る
  }
}

表示を1度に何行かまとめて出せるようにもしてあります。
Stride=1 になってますがこれを 2 にすれば2行づつ 4にすれば4行づつというわけです。