Wzc(讨论 | 贡献)2020年8月13日 (四) 13:32的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
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");
}
}
}
|
附录:(表格)
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
|