LlSetPayPrice/ja

From Second Life Wiki
Jump to: navigation, search

Emblem-important-red.png 警告 セキュリティ

常に (常に!) money() イベントで支払われた額を確認しましょう。この UI 要素はモーダルではなく、過去に脆弱性のバグがありました。この関数だけで支払い手段を制限しようとしないようにしましょう。クライアントソフトウェアが安全であると絶対に 信用しないようにしましょう。常に支払われた額が期待していた額と一致しているか確認しましょう。

要約

関数: llSetPayPrice( integer price, list quick_pay_buttons );

このオブジェクトで支払いが選択されたときに表示されるダイアログの、デフォルトの支払額テキストと支払いボタンを設定します。

• integer price PAY_* 定数または正の数
• list quick_pay_buttons 4 つの PAY_* 定数や整数値
定数 解説
PAY_HIDE -1
0
簡易支払いボタンを隠します。
PAY_DEFAULT -2 簡易支払いボタンに初期値を使用します。
ボタンの並び
1
2
3
4
初期値
$1 $5
$10 $20

警告

  • この関数でオブジェクトに支払うことのできる金額を制限できるものだと思わないようにしましょう。 常に 支払われた額が期待していた額と一致しているか確認しましょう。
  • money イベントを実装していない場合、この関数を呼び出しても何も起こりません。

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   llSetPayPrice doesn't work on Child Prims, default box used instead.

サンプル

price フィールドばなく、 150 というボタンを 1 個だけあるユーザダイアログを表示します。

llSetPayPrice(PAY_HIDE, [150,PAY_HIDE,PAY_HIDE,PAY_HIDE])
integer price = 10;
 
default
{
    state_entry()
    {
        llSetPayPrice(PAY_HIDE, [PAY_HIDE ,PAY_HIDE, PAY_HIDE, PAY_HIDE]);
        llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
    }
    run_time_permissions(integer perm)
    {
        if(perm & PERMISSION_DEBIT)
            state cash;
    }
}
 
state cash
{
    state_entry()
    {
        llSetPayPrice(price, [price ,PAY_HIDE, PAY_HIDE, PAY_HIDE]);
    }
    money(key id, integer amount)
    {
        if(amount != price)
        {
            llGiveMoney(id, amount);
            llInstantMessage(id, "You paid "+(string)amount+", which is the wrong price, the price is: "+(string)price);
        }
        else
        {
            //ここにものを配達するコードを入れましょう
            llInstantMessage(id, "You paid the right price");
        }
    }
}

関連項目

イベント

•  money

関数

•  llGiveMoney

特記事項

All Issues

~ Search JIRA for related Issues
   llSetPayPrice doesn't work on Child Prims, default box used instead.
   llSetPayPrice causes "When Left Clicked: Pay Object" to break

Signature

function void llSetPayPrice( integer price, list quick_pay_buttons );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。