2010年8月27日金曜日

First Step Shopping Mallリニューアル

8月28日、First Step Shopping Mallがリニューアルオープンします。日本時間の0時からだと思うので、もうあと数時間ですかね?

オープン当日の22〜23時にはBBOY-DANさんのダンスイベントも開催されます^^
http://firststep.slmame.com/e953642.html


http://slurl.com/secondlife/First%20Step/164/201/23
うちのブースはこの辺りになります。オープン当日まではTP制限で仮設モールのほうにテレポートされますのでオープンしてからお越しくださいね。宜しくお願いします^^

2010年8月17日火曜日

メインランドで孤立してしまったSIM

今日ログインしたら(メールで通知が来てた)届いてるはずのIMが来てなくて、持ち物の1階層下のフォルダはクリックしても読み込み中になったままで開かなかったんですね。

それで今いるSIMのサーバーが接続悪いのかなって思って、テレポートしようとしたんですがテレポートも全然できませんでした。でもまあ場所はメインランドにあるサンドボックスだったので、隣のSIMまで行ったらOKだと思ってSIMの端を目指して飛んで行ったんですよ。そしたらそこで切れてて隣のSIMが無くなってました@@;

マップを開くと東西南北ともSIMがあるんですが、ミニマップや実際周囲を見て回ったら周りのSIMが全く表示されないんですよ。。。何かこのSIMだけが切り離されて隔離されてしまってるみたいな感じですかね?

障害が起きてるっていう情報もないし、結局どう頑張ってもそのSIMから出られなかったので、一度ログアウトして、ログイン位置を自宅(ホーム)に切り替えてログインし直しました。そしたらその時に届いてなかったIMが届きました。。。んー、やっぱりあのSIMだけ調子悪くなってたんですね^^;

2010年8月14日土曜日

Animation vendor V2.2.0

アニメーションベンダーを少し改良しました。アニメーションのパーミッションを調べてフローティングテキストに表示できるようにしたのと、アニメーション試用中にキーボードの矢印キー↑↓を押すとカメラがズームイン/ズームアウトするようにしました。まあ、ちょっとした改造なんですが少し使い勝手良くなったかなって思います^^

お値段はL$130に値上げしました。旧バージョン購入者様は、ご連絡頂ければ最新版お渡しできますので宜しくお願いします^^

2010年8月11日水曜日

スクリプト禁止領域でも動くスクリプト

今回はスクリプトを禁止されてる場所でも動くスクリプトです。装着するものに使います^^

仕組みはスクリプトがllTakeControlsでコントロールを取得すると、スクリプト禁止場所でも動くようになるので、それを利用するって感じですね。(禁止してる場所に行く前に装着する必要があります)

今回のサンプルは現在位置の座標を表示するHUDのスクリプトをスクリプト禁止の場所でも動くように改造してみました。乗り物とかみたいなコントロールイベントは不要なのでありません。
// 現在位置の座標を表示(スクリプト禁止領域でも動作)

string get_pos(string s)
{
    vector pos=llGetPos();  // 現在位置取得
    // 値を整数にして文字列に変換
    string x=(string)((integer)pos.x);
    string y=(string)((integer)pos.y);
    string z=(string)((integer)pos.z);
    return x+s+y+s+z;  // 引数sで区切ってリターン
}

init()
{
    llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS);  // コントロールの権限をリクエスト
}

default
{
    state_entry()
    {
        if (llGetAttached()) init();  // 装着されてたらinit実行
        llSetTimerEvent(0.1);  // 最初は0.1後にタイマー開始
    }

    attach(key id)
    {
        if (id) init();  // 装着されたらinitへ
    }

    run_time_permissions(integer perm)
    {
        if (perm & PERMISSION_TAKE_CONTROLS)
        {
            llTakeControls(-1,FALSE,FALSE);  // スクリプト禁止領域でも動作させる
        }
    }

    timer()
    {
        llSetTimerEvent(1);  // 1秒おきにタイマーをセット
        string str=llGetRegionName()+"\n("+get_pos(", ")+")";  // SIM名と座標を表示用に整形
        llSetText(str,<1,1,1>,1.0);  // フローティングテキストに表示
    }

    touch_start(integer total_number)
    {
        if (llDetectedKey(0) == llGetOwner()) {  // オーナーがタッチしたらSLURLをチャット
            llOwnerSay("http://slurl.com/secondlife/"+llEscapeURL(llGetRegionName())+"/"+get_pos("/"));
        }
    }
}

最近ビューワー2が何かイヤになってきたので、SLURLはビューワー1用のslurl.comに変えてます。これのほうが互換あっていいと思うしw

でもスクリプトを改造するんだったら、llTakeControlsの注意点に書かれてるように、同じプリムに入ってるスクリプトには効果があるので、下記のように「禁止領域でも動作する部分」だけ独立させて、他のスクリプトと同じプリムに入れたほうが簡単でいいかもですねw
// 同じプリム内のスクリプトをスクリプト禁止領域でも動作させる

init()
{
    llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS);  // コントロールの権限をリクエスト
}

default
{
    state_entry()
    {
        if (llGetAttached()) init();  // 装着されてたらinit実行
    }

    attach(key id)
    {
        if (id) init();  // 装着されたらinitへ
    }

    run_time_permissions(integer perm)
    {
        if (perm & PERMISSION_TAKE_CONTROLS)
        {
            llTakeControls(-1,FALSE,FALSE);  // スクリプト禁止領域でも動作させる
        }
    }
}

llTakeControlsのCONTROLフラグの値は、何となく使われてない値にしようと思ったんですが、0にしたらエラー出たので-1にしました。(別に使われてる値でも問題ないですけど)

2010年8月10日火曜日

Animation pack vendor新発売♪

商品パッケージの画像を作って何度も見直ししてですね、やっとできたーって思ってインワールドにアップロードしたら、アップ直後によくミス(プリム数書くの忘れてたとか)に気が付いて10L$損した気分になる千尋です^^;;

ポーズやアニメーションは何点かセットにしてまとめ売りっていうのもあると思うので、今回たぶんそれに適したベンダーを作ってみました^^

普通のアニメーションベンダーと違って、購入するとコンテンツ内のアニメーションを全部渡します。それからたくさん設置すると思うので、ベンダー本体は壁に設置できるようなタイプにして、各アニメーションはベンダーの再生ボタンをタッチで試用することができるようになってます。それでフローティングテキストは普段はありませんが、ボタンを操作したときだけ数秒間表示されるようにしました。また1つのパック商品しか売れないので、セールスリスト記録やIM通知機能は付けてません。

今回作ったベンダーは最初に作り始めたのが半年くらい前でしょうかね。。。結構放置してたんですよw お値段はL$100にしました。宜しくお願いします^^

2010年8月6日金曜日

ベルローズ改装中

先週かもう少し前くらいからでしょうか、お世話になってるベルローズ総合楽器店さんが改装してたんですね。

それで現在もまだ改装中だそうなんですが、一応うちの仮ブースの位置のSLURL載せときますね。たぶん最終的にまた移動するんじゃないかなって思うんですけど^^;
http://slurl.com/secondlife/Artsebarsky/170/233/22

11月10日追記: 現在の位置はこの辺です。
http://slurl.com/secondlife/Artsebarsky/173/203/22

2010年8月2日月曜日

メール通知オプションスクリプト発売

うちで発売のIM通知機能のある機種のみに対応ですが、メール通知用に SHOP CHIHIRO device option, E-mail notification script を作ってみました。

llEmailは色々うざい制限があるので、あまり使いたくない関数なんですけどねw なのでその対策で、すぐにはメールしないようにしてあります。初期状態でログが入ってから1時間~最大で20時間ぐらい(20時間はまずないと思うけど計算上)待機してからの通知になります。また、装置本体のIM通知機能とは別に動作します。

対応機種一覧です。
Vendor (全機種)
Prize camp (全機種) V1.1.9以上
Lucky letter/Lucky letter one/Lucky letter LE
Group gift giver
Profile picks gift giver
LM giver (無料品以外) V2.0.6以上
NC giver
Welcome mat
Greeter V1.1.3以上

装置のバージョンが古い場合は、新しいのを送りたいと思いますのでご連絡ください。

お値段は特価L$5にしました。パーミッションはコピー可、転送不可なので、1つ買えば複数の装置でご使用になれます^^
Mansion Mall店Market Beach Mall East店FS Shopping Mall店(仮設店舗)に置いてきました。オフライン中のIMが多くなってお困りの方などいかがでしょうか?^^

8月4日追記: Greeterはバージョンが抜けてたので書き加えました。V1.1.3以上が対応です^^;
メール以外の処理などを自分でやってみたい方用にデータの取り出し方を簡単に書いときますね。ログが記録されるときに llMessageLinked(LINK_THIS,0,"l:日付 時間 ... ",""); て感じのリンクメッセージが出てるのでそれを拾って処理してます。装置によってちょっと違いはありますが、最初の l: は全機種共通なのでそれを頼りにメッセージを選別したらオッケーです。あと一部の古い機種は勘違いしてメッセージの最後に改行(\n)を付けてるバージョンがあったような気がするので一応llStringTrimしてます。
l:2010-08-03(Tue) 22:00:05, Item Name, L$100, Buyer Name\n
CSV形式みたいなデータですけど、もしアイテム名にカンマが含まれてても""で括ったりとか丁寧な処理はしません^^;;