Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2008年10月17日金曜日

床下収納のスクリプト

今日は、OnRezやメタコマースの通販が上手く動作してないみたいで凹んでる千尋です。SIMのサーバーが調子悪いのかなって思ってるんですけどね。。。よくわかりません;;

10月18日9時40分頃追記: 昨夜22時頃には直ってたみたいで、その後は問題なく販売できてます^^


ところで、通販用のボックスはショップや家に置いてると思いますが、ちょっと人目につかないような場所に置きたいですよね?
今回は、そんなアイテムの置き場に最適な床下収納のスクリプトです^^


床のプリムにスクリプトを入れて、タッチで床が開くようにします。
簡単なスクリプトなんですが結構実用的で便利じゃないですかねw


開けたときはタイマーをセットして10分すると自動的に閉まるようにしてみました^^
set_hollow(float f)の引数が穴(プリムの中空)の大きさになるので、0を入れて呼んだときに穴が閉じます。
それから、床のプリムの向きが横向いてたら横に穴が開いたりしますので注意してくださいねw
// 床下収納
float size=0.2;  // 中空のサイズ
float time=600;  // 閉じるまでの時間
float hollow=0;  // 中空値の保存用

set_hollow(float f)  // 引数は中空の値
{
    // プリム(ボックス)の中空を設定
    llSetPrimitiveParams([PRIM_TYPE,PRIM_TYPE_BOX,PRIM_HOLE_DEFAULT,<0,1,0>,f,<0,0,0>,<1,1,0>,<0,0,0>]);
    if (f > 0) llSetTimerEvent(time);  // 開いてる(中空がある)ときはタイマー始動
    else llSetTimerEvent(0);  // そうでないときタイマー停止
    hollow=f;  // 変数に中空の値を保持
}

default
{
    touch_start(integer total_number)
    {
        if (llDetectedKey(0) == llGetOwner()) {  // オーナーがタッチしたら
            if (hollow > 0) set_hollow(0);  // 開いてるときは閉じる
            else set_hollow(size);  // そうでないときは開く
        }
    }

    timer()
    {  // タイマーイベント発生したら
        set_hollow(0);  // 閉じる
    }
}

中空のサイズを0.95とか大きくして、touch_startじゃなくてcollision_startで動くようにしたら落とし穴とかできそうですねwww

0 件のコメント:

コメントを投稿