llSetPayPrice
Revision as of 19:13, 25 October 2008 by Strife Onizuka (talk | contribs)
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
![]() |
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 );0.0 | Forced Delay |
10.0 | Energy |
Sets the default amount for pay text field and pay buttons of the appearing dialog when someone chooses to pay this object.
• 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.
|
|
|
Caveats
- This function should not be trusted to limit the values of money payable to the object.
Examples
This will give the user a dialog box without the price field and only one button with a value of 150. <lsl>llSetPayPrice(PAY_HIDE, [150,PAY_HIDE,PAY_HIDE,PAY_HIDE])</lsl>
<lsl>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"); } }}</lsl>