Site search

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

2008年6月13日金曜日

アイテムキャンプのスクリプト

今回は簡単なアイテムキャンプ(プライズキャンプ)のスクリプトです。
一定時間座るとアイテムを渡すだけですから結構簡単にできますね^^



6月13日〜6月15日 SL-Shopping.net-Mall店でセール開催中です。宜しくお願いします。
http://beta.slmame.com/e271319.html



キャンプ終了時に渡すアイテムは忘れないようコンテンツに入れておいてくださいね^^

// プライズキャンプ
string prize="Tote bag";  // アイテム
integer camptime=15;  // キャンプ時間
integer min;
key av=NULL_KEY;

text_unsit()
{
    // フローティングテキスト
    string s="Prize camp\nSit here for "+(string)camptime+" min to\n get "+prize+".";
    llSetText(s,<1,1,1>,1.0);
}

text_sit()
{
    // キャンプ中のフローティングテキスト
    string s="Prize camp\n"+(string)min+" min left";
    llSetText(s,<1,1,1>,1.0);
}

default
{
    state_entry()
    {
        // 座る位置
        llSitTarget(<0.2,0,0.55>,llEuler2Rot(<0,0,0>*DEG_TO_RAD));
        llSetSitText("Camp"); // パイメニュー
        text_unsit();
    }

    changed(integer change)
    {
        if (change & CHANGED_LINK)
        {
            key agent=llAvatarOnSitTarget();
            if (agent) {
                if (av) return;
                // キャンプ開始
                av=agent;
                min=camptime;
                text_sit();
                llSetTimerEvent(60);
            }
            else {
                llSetTimerEvent(0);
                av=NULL_KEY;
                text_unsit();
            }
        }
    }

    timer()
    {
        if (min <= 1) {
            // キャンプ終了
            llSetTimerEvent(0);
            llGiveInventory(av,prize);
            llInstantMessage(av,"Thank you for camping.");
            llUnSit(av);
            av=NULL_KEY;
            text_unsit();
        }
        else {
            // キャンプ時間の表示
            min--;
            text_sit();
        }
    }
}

2009年1月21日4時30分頃追記: キャンプ中をチェックする処理が一ヶ所抜けてたので修正しました。

0 件のコメント:

コメントを投稿