2010年7月29日木曜日

ラッキーレター、グループジョイナー、オンラインインジケータのアップデートサービス

オートアップデートが動かなくなったLucky letter V1.6.6、Lucky letter one V1.0.10までのバージョン購入者様と、アバタープロフィール、グループプロフィールのウェブページ仕様変更で正しくセットアップできなくなったGroup joiner V1.0.2、Online indicator V1.1.3までの購入者様用に、タッチで最新版を受け取れる看板をMansion Mall店とMarket Beach Mall East店に設置しました^^

以下の対象バージョンをお持ちの方、是非ご利用頂けたらと思います。
Lucky letter V1.6.6 以前、Lucky letter one V1.0.10 以前(2010年6月15日まで販売)
Group joiner (type1/type2) V1.0.2 以前(2010年7月10日まで販売)
Online indicator V1.1.3 以前(2010年7月10日まで販売)

転送可能版のオンラインインジケータ(Online indicator V1.1.3(MT)、Online status LCD monitor V1.0.4以前)は交換とさせて頂きますので、お手数ですがご連絡くださいね。宜しくお願いします。

2011年3月21日追記: 昨年12月にアップデートデリバリーサーバーを引越しさせた際にXML-RPCのチャンネル設定ミスで動かなくなったまま3ヶ月以上(?)も気がつきませんでした。現在は修正済です。。。申し訳ありません><;

2012年12月16日追記: アップデートボードによるアップデートサービス終了しました。ご利用ありがとうございました。

2010年7月27日火曜日

マルチパネルベンダーLMV6発売

旧マルチパネルベンダーシリーズの後継機種に当たる、Multi-panel vendor LMV6を発売しました^^

このベンダーはグループ限定割引機能などの主要な機能は旧マルチパネル4機種と大体同じなんですが、ボディとサブパネルのフレーム部分が一体になったスカルプで作って、旧機種で売上の良かった7パネルベンダーと同じパネル数のものだけにしました。プリム数は4プリムになります。他に大きな違いはアイテムの表示方式です。

6枚のサブパネルは周囲にフレームが付いてるので、ありがちなマルチパネル低プリムベンダーと違って、商品写真の区切り目っていうか境界がとてもわかりやすいんですね。それから旧マルチパネルベンダーはサブパネルで選択したアイテムはメインパネルのアイテムと場所が入れ替わるような表示にしてたんですが、この機種は普通によくあるタイプと同じようにサブパネルで選択したアイテムが単純にメインパネルに表示されるようにしました。なので各ページ(ページ数表示も廃止してアイテム数にしました)に6アイテムずつ表示って感じになります。

お値段はL$400にしました。Mansion Mall店、Market Beach Mall East店、KIYOMIZU店などでは実物を稼働させてますので一度ご覧くださいね。宜しくお願いします^^

2010年7月23日金曜日

ベンダー全機種バージョンアップとマルチパネル4機種販売終了

去年Xstreetに登録してから、すごく売れ出したマルチパネルベンダーシリーズ(4~9パネル)だったんですが、今年になってからだんだん売れ行きが落ちてきて、最近はホント全然売れてなかったので先週ぐらいに販売を終了しました。もう市場は低プリムベンダーに取って代わられてきたってことでしょうかね?

それで新しく低プリム化したマルチパネルベンダーを開発してテスト中なんですが、それに伴ってベンダー全機種も気がついた部分とかを修正しました。

グループキャッシュバック機能のある機種(1プリムベンダー、スマートベンダー、マルチパネル4機種)で、キャッシュバックされたときIM通知やセールスリストにはキャッシュバックされた金額が反映されてなかったので修正しました^^;

フリーベンダー以外は、売れたときのIM通知を「L$0を除く」を初期値に変更しました。

以下修正後の各機種のバージョンです。
1prim vendor V2.4.0
Smart vendor V1.1.0
4panels vendor V1.5.0(販売終了)
5panels vendor V1.5.0(販売終了)
7panels vendor V1.5.0(販売終了)
9panels vendor V1.5.0(販売終了)
Nine vendor V1.5.2
Sixteen vendor V1.2.2(メタコマース限定販売)
Animation vendor V2.1.9

スマートベンダーV1.0.2以前とマルチパネル4機種V1.4.7以前の機種はオートアップデート搭載ですが先月から機能しなくなったので、近日中に修正版をお送りする予定にしてます^^;


写真はテスト中の新型マルチパネルベンダーです。4プリムで6枚のサブパネルがあります。(テスト中ですが現在KIYOMIZU店にも設置中)

7月24日追記: スマートベンダー、4,5,7,9パネルベンダーの発送完了しました。それから1プリムベンダーはグループキャッシュバック機能が付いたV2.3.0~2.3.4をお買い上げのお客様に修正版送らせて頂きました。IMが貯まってて受け取れなかったとかありましたら再送しますのでご連絡くださいね。
ちなみにマルチパネルベンダーは7パネルが一番人気でした。以下は4機種で比較した販売台数の割合です。
4panels vendor 12.2%
5panels vendor 9.1%
7panels vendor 57.4%
9panels vendor 21.3%

2010年7月22日木曜日

Viewer 2.1.0に失望

ビューワー2.1.0が出てたのでアップデートしたんですね。文字入力欄のあるウィンドウが非アクティブになったとき入ってた文字が消えるとかの不具合は修正されてるし、別のスキンみたいにサイドバーが視界の上に重なる感じで表示できるよう設定で選べたり、画面下に検索やミニマップなどのボタンも表示できるようにユーザーインターフェースも改善されてますね^^

でも、スクリプトを開くと暫くビューワー全体が固まるんですけど? スクリプトの大きさに比例して固まってる時間が長くなるみたいです。。。ううぅ、イライラして使えない;;

2010年7月20日火曜日

ピックギフトのスクリプト

今回はプロフィールのピックに土地を登録して頂いてる方にオブジェクトを渡す、簡単なピックギフト配布装置のスクリプトです^^ LSLだけでは無理なのでPHPなどが使える外部サーバーをご用意くださいね。

http://blogs.secondlife.com/community/technology/blog/2010/07/08/search-todays-release
ピック登録はもうサーチランクに影響しなくなったんですが、ピックを見て来てくれる人もいるし、沢山の方のピックに登録されてれば知名度とかは上がるんじゃないかなって思います。

今月、プロフのウェブページの仕様が変わってピックの部分だけ独立したページになりました。それでうちで販売してた装置も動作不能に陥ったんですが、購入者様は現在修正版をご入手可能です。

ピックの出てるアドレスはhttp://world.secondlife.com/resident/アバターUUID/picksなので、このページをチェックする部分を外部サーバーに置いたスクリプトで処理します。まずLSLスクリプトです。土地のUUIDはllGetParcelDetailsにサーバー1.36で追加されたPARCEL_DETAILS_IDで調べます。
// Profile picks gift
string url="http://○○○.××/picks.php";  // 外部サーバーに置いたスクリプトのアドレス

default
{
    touch_start(integer total_number)
    {
        key id=llDetectedKey(0);  // タッチしたアバターのキー
        if (id) {
            key place=llList2Key(llGetParcelDetails(llGetPos(),[PARCEL_DETAILS_ID]),0);  // 土地のUUID取得
            llHTTPRequest(url,[HTTP_METHOD,"POST", HTTP_MIMETYPE,"application/x-www-form-urlencoded"],"place="+(string)place+"&id="+(string)id);  // 外部サーバーにデータを送ってチェック
        }
    }

    http_response(key request_id, integer status, list metadata, string body)
    {  // HTTPレスポンス
        if (status != 200) llWhisper(0,"Error - status "+(string)status);  // ステータス200以外はエラー表示
        else {
            body=llStringTrim(body,STRING_TRIM);  // 改行コードを除去
            list l=llCSV2List(body);  // カンマで分割してリストに格納
            key id=llList2Key(l,0);  // アバターのキー
            string result=llList2String(l,1);  // 結果
            if (id) {
                if (result == "OK") {  // OKだったら
                    llGiveInventory(id,llGetInventoryName(INVENTORY_OBJECT,0));  // コンテンツ内の最初のオブジェクトを渡す
                    llInstantMessage(id,"Thank you for having our place in your picks.");
                }
                else {  // NGのとき
                    llInstantMessage(id,"Our place not found in your picks. ('Show in search' must be enabled) Please add this place in your picks and try again 1 or 2 days later.");
                }
            }
            else llOwnerSay("Data error!");
        }
    }
}

そして外部サーバーに設置するPHPスクリプトです。ピックに土地のキーが載ってれば「アバターUUID,OK」、載ってなかったら「アバターUUID,NG」を出力します。
<?php
// picks.php

// フォームデータ取得
$id=isset($_REQUEST['id'])? $_REQUEST['id']:"";  // アバターのキー
$place=isset($_REQUEST['place'])? $_REQUEST['place']:"";  // 土地のキー

if (!$id || !$place) exit;  // フォームデータがなかったら終了

// プロフィールのピックページからデータ取得
$data=implode("",file("http://world.secondlife.com/resident/".$id."/picks"));

// 土地のキーの有無を調べて結果を出力
if (strpos($data,'/place/'.$place.'">')) echo $id.",OK";
else echo $id.",NG";
?>

PHP対応してないサーバー用に一応Python版も書いてみました。うちで借りてるサーバーはPython対応じゃなかったので、きちんと動作テストできてないですけどw
#!/usr/bin/env python

# picks.py

import sys,urllib,cgi

form=cgi.FieldStorage()
id=form.getvalue("id")
place=form.getvalue("place")

print "Content-Type: text/plain; charset=UTF-8\n\n"

if id == None or place == None:
  sys.exit()

fp=urllib.urlopen("http://world.secondlife.com/resident/"+id+"/picks")

if fp.read().find('/place/'+place+'">') > -1:
  print id+",OK"
else:
  print id+",NG"


え? Perlですか? Perlはちょっと文法が嫌いなので。。。す、すみません>< 今度できたら載せたいと思います。;

2時10分頃追記: Pythonは500エラー出たので日本語のコメント行消しました。たぶんコメントでも日本語を入れるときは文字コード指定みたいなのがいるんですかね?

22時20分頃追記: Pythonの文字列検索部分に>が抜けてたので付け加えました。

7月21日追記: Perlも書けたので載せます^^
#!/usr/bin/perl

# picks.pl

use CGI;
use LWP::Simple;

# フォームデータ取得
$q=new CGI;
$id=$q->param('id');
$place=$q->param('place');

# サーバー用ヘッダ
print "Content-Type: text/plain; charset=UTF-8\n\n";

# フォームデータがなかったら終了
if ($id eq "" || $place eq "") {
  exit;
}

# プロフィールのピックページからデータ取得
$data=get("http://world.secondlife.com/resident/$id/picks");

# 土地のキーの有無を調べて結果を出力
if (index($data,'/place/'.$place.'">') > -1) {
  print "$id,OK";
}
else {
  print "$id,NG";
}



2012年1月5日追記: Pythonですが、Google App Engineを使用する場合はurllibが使えないので urllib.urlopen の代わりに urlfetch.fetch を使用します。

2010年7月18日日曜日

仔猫モールがリニューアル

お世話になってるショッピングモールKONEKOがネオ仔猫モール(暫定)になったので、うちも新店舗に引越しさせてもらいました^^

前とはガランと変わって、いい感じの和風のモールになってるんですよ。うちの借りた店舗はこんな感じの建物です。

新店舗のSLURLはこちらです。宜しくお願いします^^
http://slurl.com/secondlife/Little%20Cat%20Japan/61/241/3301

それから、まだテナントさんも募集してるみたいなので、興味ある方はSelphieさんのブログをご覧くださいね^^ モールの写真なども掲載されてます。
http://selphie.slmame.com/e928415.html

7月20日追記: ネオ仔猫モールはShop-mall KIYOMIZUっていう名前に決まったようです。いつの間にか五重の塔とか出来てるし@@
http://atoropos.slmame.com/e930493.html

2010年7月17日土曜日

FS Shopping Mall改装

First Step SIMのFS Shopping Mallが改装するので、FS Shopping Mall店は仮設店舗のほうに引越ししました。

http://slurl.com/secondlife/First%20Step/96/97/539
建物が大きくて写真が変な構図になってますねw こちらでの営業は8月いっぱいまでの予定です。宜しくお願いします^^