2022/02/21

特設ワゴンセール

ベネチア SIM のサンマルコ広場にはたくさんのセールスワゴンが並んでいます。
lovemax のワゴンで売ってるのは3つ:
  1. 肩乗り飛行船 (無料)
  2. 画像切り替え絵画 (L$ 55)
  3. びっくり?宝箱 (L$ 340)
2. 画像切り替え絵画 はベネチアの景観をたくさん描いた18世紀の画家カナレット(wikipedia カナレット/Giovanni Antonio Canal/1697-1768)の4枚の絵と昔のベネチアの地図が一定時間で切り替わります。

切り替え時間の設定は中のスクリプトを編集します。秒数などで指定できるほか h:時間, d:日, w:週, m:月, s:季節, y:年のように文字も使えます。

切り替えを日付から調べるスクリプト:

integer getCycleDate()
{ // return 年:2022-, 季節:1-4, 月:1-12, 0:それ以外
  if (Cycle=="") return 0;
  integer i = llSubStringIndex("msy",Cycle);
  if (i<0) return 0;
  string date = llGetDate(); // 日付: YYYY-MM-DD
  list info = llParseString2List(date,["-"],[]); // 年,月,日に分解
  if (i==2) return (integer)llList2String(info,0); // 年
  else {
    integer month = (integer)llList2String(info,1);
    if (i==0) return month; // 1-12月
    if (month==12) month = 0; // 12月を0に, 1-11月はそのまま
    return 1 + month / 3; // 季節; 1:冬-4:秋
  }
}

月,季節,年は毎日チェックしてそれ以外は指定した秒数または時間:h→60x60秒, 日:d→24x60x60秒, 週:w→7x24x60x60秒で切り替えます:

timer() {
  integer date = getCycleDate();
  if (date) { // 月,季節,年
    if (Date==date) return; // 前と同じなら何もしない
    else Date = date; // 違ってたら更新
  }
  setPicture(); // 絵を切り替える
}