2013/09/18

簡単登録スタッフボード

友だちの依頼で作った「スタッフボード」です。
カフェとかによくある、チップを入れられるやつですね。
オンライン表示、ノートももらえて、IM連絡もできます。
一番気に入ってもらったのは、スタッフの登録が超簡単なことです。
未登録のボードに、スタッフがタッチするだけで、名前とIDとプロフの写真が登録されます。

登録部分のスクリプトはこんな感じ:
default { 
  touch_start(integer num) {
    if (llGetObjectName()
        !="Staff Board") return;
      // すでに名前が登録済みなら無視
    key id=llDetectedKey(0);
      // タッチした人
    if (llSameGroup(id)==FALSE) return;
      // スタッフでないなら無視
    llSetObjectName(llDetectedName(0)); // 名前をオブジェクト名に登録
    llSetObjectDesc((string)id); // IDをオブジェクト説明に登録
    llHTTPRequest("http://world.secondlife.com/resident/"
        +(string)id,[HTTP_METHOD,"GET"],"");
      // プロフの写真を設定するために問合せ
  }
  http_response(key query,integer status,list meta,string body) {
    // 問合せの応答
    string find="<meta name='imageid' content='";
      // 応答内容から特定の文字列を見つける
      // (「'」は実際には「"」で「\"」のように書く)
    integer head=llSubStringIndex(body,find)+llStringLength(find);
      // 画像IDの先頭
    string texture=llGetSubString(body,head,head+35);
      // 画像ID(35字)
    if ((key)texture) llSetTexture(texture,Face);
      // IDが有効ならそのテクスチャーを貼る
  }
}

プロフィール写真は、本人の了解なしに使うのは問題があるわけですが、この場合はスタッフ登録のときに了解があったということでOKにしましょう(^^)

参考にしたサンプルスクリプト:
http://wiki.secondlife.com/wiki/Get_Profile_Picture

このスタッフボードは、「MyStaffBoard」という名前で売ってます:
SLマーケットプレイス
https://marketplace.secondlife.com/p/lovemax-Online-Tip-Board-MyStaffBoard/5177159
築地場外市場(SLurl)
http://slurl.com/secondlife/TSUKIJI/80/55/22/
LOVEHO Dmart(SLurl)
http://slurl.com/secondlife/LOVEHO/189/180/23/