Difference between revisions of "LlSetPayPrice"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 9: Line 9:
|func_desc=Sets the default amount for pay text field and pay buttons of the appearing dialog when someone chooses to pay this object.
|func_desc=Sets the default amount for pay text field and pay buttons of the appearing dialog when someone chooses to pay this object.
|func_footnote=This function has no effect if called from a state that does not implement the [[money]] event.
|func_footnote=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.
|caveats=*This function should not be trusted to limit the values of money payable to the object; ''always'' verify the value paid 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.
|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>llSetPayPrice(PAY_HIDE, [150,PAY_HIDE,PAY_HIDE,PAY_HIDE])</lsl>

Revision as of 14:48, 15 June 2009

Emblem-important-red.png 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.

Constant Alt Description
PAY_HIDE -1
0
Hides this quick pay button.
PAY_DEFAULT -2 Use the default value for this quick pay button.
Button Order
1
2
3
4
Defaults
$1 $5
$10 $20

Caveats

  • This function should not be trusted to limit the values of money payable to the object; always verify the value paid 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>

See Also

Events

•  money

Functions

•  llGiveMoney

Deep Notes

Tests

•  llSetPayPrice Test

Signature

function void llSetPayPrice( integer price, list quick_pay_buttons );