From Second Life Wiki
SetPayPrice
llSetPayPrice
| Security Warning!
|
|
Always (ALWAYS!) check the amount paid in your money() event. This UI element isn't modal, and has had bugs exploited in the past.
Do not use this function as the only limiting method for payment.
Never trust the client software to be secure. Always validate the value paid is a value expected.
|
Summary
Function: llSetPayPrice( integer price, list quick_pay_buttons );
Sets the default amount for the pay text field and pay buttons of the appearing dialog when someone chooses to pay this prim.
| • integer
| price
| –
| PAY_* constant or positive value
|
|
| • list
| quick_pay_buttons
| –
| Four PAY_* constants and/or positive integer values
|
|
This function has no effect if called from a state that does not implement the money event.
| Constant
| Alt
| Description
|
| PAY_HIDE
| -1
| 0
| Hides this quick pay button.
|
| PAY_DEFAULT
| -2
|
| Use the default value for this quick pay button.
|
|
|
|
Examples
This will give the user a dialog box without the price field and only one button with a value of 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");
}
}
}