LlGiveMoney/ja

From Second Life Wiki

Jump to: navigation, search

関数: integer llGiveMoney( key destination, integer amount );

スクリプトのオーナからdestinationのアバターへとamountL$のお金を譲渡します。

常に0のinteger値を返します。

• key destination アバターkey.
• integer amount number of L$の数は0より多くすべきです。(amount > 0)


実行するにはownerにPERMISSION_DEBITの権限が必要です。

警告

  • スクリプトに権限PERMISSION_DEBITが不足している場合、スクリプトはDEBUG_CHANNEL上でエラーを報告して、演算に失敗するでしょう。(しかしスクリプトは実行し続けます。)
  • owner以外の誰かにPERMISSION_DEBITが付与された場合、関数はDEBUG_CHANNEL上で報告されるエラーを呼び出します。
  • オブジェクトからほかのオブジェクトへ払うことはできません。
  • グルーブに譲渡したオブジェクトは、お金を渡すことができません。(権限は付与されません)
  • 一度PERMISSION_DEBIT権限を持ったスクリプトは、アカウントのL$を空にできます。
  • リージョン上で、各住民へ30秒間に30回の支払い上限が適用されます。上限を超えての継続はスクリプトエラーと、回数が過剰な間の支払い中止を起こします。履歴上、速すぎる支払いは断続的に失敗します。

 
integer AMOUNT = 10;
integer STASH = 50;
 
update()
{
    if(STASH >= AMOUNT)
        llSetText("I have L$"+(string)STASH + " to give away!");
    else
        llSetText("I have no L$ to give away :(");
}
 
default
{
    state_entry()
    {
        llRequestPermissions(llGetOwner(), PERMISSION_DEBIT );  
    }
 
    run_time_permissions (integer perm)
    {
        if(perm & PERMISSION_DEBIT)
        {
            state ready;     
        }
    }
}
 
state ready
{
    state_entry()
    {
        update();
    }
    touch_start(integer num)
    {
        if(STASH >= AMOUNT)
        {
            llGiveMoney(llDetectedKey(0), AMOUNT);
            STASH -= AMOUNT;
            update();
        }
        else
        {
            llWhisper(0, "No more money to give away :(");
        }
    }
    money(integer m)
    {
        STASH += m;
        update();
    }
}
 

関連項目

イベント

•  run_time_permissions 権限で受信するイベントです
•  money

関数

•  llGetPermissions 付与されている権限を取得します
•  llGetPermissionsKey 権限が付与されているエージェントを取得します
•  llRequestPermissions 権限を要求します
•  llSetPayPrice

項目

•  スクリプトの権限
Personal tools