LlSetPayPrice

来自人工智能助力教育知识百科
Wzc讨论 | 贡献2020年8月13日 (四) 13:32的版本 (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetPayPrice( integer price, list quick_pay_buttons ); |…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: llSetPayPrice( integer price, list quick_pay_buttons );
参数:

•整数价格–支付常数或正值 •列出快速支付按钮–四个支付常量和/或正整数值

返回值:当有人选择支付此对象时,建议显示对话框的“支付”文本字段和“支付”按钮的默认金额。
注意事项
不应信任此函数来限制应向对象支付的金额;始终验证支付的金额是否为预期金额。

在一个对象的所有脚本中只使用一次对该函数的调用,以防止混淆使用了哪些值。您仍然需要在money事件中检查金额是否与预期相符。 此函数仅在从对象的根基元调用时有效。其效果适用于对象中的所有基本体。从一个幼稚的孩子那里叫它没有效果。 prim中的llSetPayPrice()设置可以阻止对prim的付款,即使删除了带有llSetPayPrice()的脚本,该设置也会持续。 请注意,pay选项将只在具有一个正在运行的脚本和money事件的prims中显示(或者,如果根用户有一个正在运行的脚本和money事件,则在对象的所有prims中)。 即使脚本在没有llSetPayPrice函数的情况下重新编译,即使脚本被替换为另一个包含money事件但不包含llSetPayPrice的脚本,这种效果似乎仍然存在。 金钱不能支付给附件;“支付”将直接支付给佩戴者。

示例
这将为用户提供一个没有price字段的对话框,只有一个值为150的按钮。
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
        {
            //insert your give code here.
            llInstantMessage(id, "You paid the right price");
        }
    }
}
相关函数
llGiveMoney
相关事件
money

附录:(表格)

header 1 header 2 header 3
row 1, cell 1 row 1, cell 2 row 1, cell 3
row 2, cell 1 row 2, cell 2 row 2, cell 3