Site search

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

2008年8月30日土曜日

お金を拾われるスクリプト

今回はお金みたいなオブジェクトを作って、誰かに拾ってもらうスクリプトですwww 
拾われると(タッチされると)オブジェクトは消滅して、オーナーの口座からタッチしたアバターに設定した金額が振り込まれます^^ マネーツリーのお金みたいな感じですかね。

用途は。。。人を集めるイベントなんかにいいかもw


オブジェクトの色は最初は黒になりますが、口座引き落とし許可されると白に変わるようにしてます。
紙幣やコインなどのテクスチャを貼ってお金って感じにしてくださいね^^
// お金オブジェクト
integer amount=1;  // お金の金額

default
{
    state_entry()
    {
        llSetColor(<0,0,0>,ALL_SIDES);  // 最初は黒
        llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);  // 口座引き落としリクエスト
    }

    touch_start(integer total_number)
    {
        key agent=llDetectedKey(0);  // タッチしたアバターのキー
        if (llGetColor(0) == <1,1,1>) {  // 色が白なら
            string name=llDetectedName(0);  // アバター名取得
            llGiveMoney(agent, amount);  // お金渡す
            llSay(0,name+" got L$"+(string)amount+".");  // チャットでアナウンス
            llDie();  // 消滅
        }
        else if (agent == llGetOwner()) {  // 色が白でなくてオーナーがタッチしたとき
            llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);  // 口座引き落としリクエスト
        }
    }

    on_rez(integer start_param)
    {  // rezのときリセット
        llResetScript();
    }

    run_time_permissions(integer perm)
    {  // 口座引き落とし許可されると色を白にする
        if (perm & PERMISSION_DEBIT)
            llSetColor(<1,1,1>,ALL_SIDES);
    }
}

9月9日19時半頃追記: 上手くいかないって質問ありました。よくみると使い方をはっきり書いてなかったので書いときますね^^;
最初オブジェクトの色が黒い状態になります。オーナーがrezまたはタッチすると黄色のダイアログが出ますので、それで口座引き落とし許可すると色が白に変わります。この状態で置いとくと、それをタッチしたアバターにお金が振り込まれます。

0 件のコメント:

コメントを投稿