Difference between revisions of "How do I make a donation box?"

From Second Life Wiki
Jump to navigation Jump to search
m (added comment)
(Removed pointless do-nothing changed event. A public llSay on touch was inappropriate in this application.)
Line 11: Line 11:
default
default
{
{
    changed(integer change)
    {
    //  note it's bitwise & and not &&
        if (change & (CHANGED_OWNER | CHANGED_INVENTORY))
            return;
    }
     touch_start(integer num_detected)
     touch_start(integer num_detected)
     {
     {
    //  PUBLIC_CHANNEL has the integer value 0
         llRegionSayTo(llDetectedKey(0), 0, "Please right-click me and select 'Pay...' to donate.");
         llSay(PUBLIC_CHANNEL, "Please right-click me and select 'Pay...' to donate.");
     }
     }



Revision as of 17:46, 18 December 2012

A donation box is a scripted object that Resident can right-click (CMD-click on Macintosh) and pay without receiving a service or object in return. You can make any object a donation box by adding a small script to it. To do so:

  1. Right-click the object inworld and choose Edit.
  2. Click on the Content tab. (Click More if you don't see it.)
  3. Click the New Script button.
  4. Delete everything in the script. Copy and paste the text in the box below.
  5. Click Save. If the compile is complete, close the script window and editing window. The Pay option should now appear in the pie menu when a Resident right-clicks on the object. Sample Donation Script:

<lsl> default {

   touch_start(integer num_detected)
   {
       llRegionSayTo(llDetectedKey(0), 0, "Please right-click me and select 'Pay...' to donate.");
   }
   money(key id, integer amount)
   {
       string name = llKey2Name(id);
       key owner = llGetOwner();
       llInstantMessage(id, "Thank you for your donation, " + name + "!");
       llInstantMessage(owner, name + " has donated " + (string)amount + " L$.");
   }

} </lsl>

Once the script is installed, you can easily change the donation box's properties to accept left-clicks as well.

  1. If you've closed the editing window, right-click the object and choose Edit again.
  2. Make sure you're on the General tab in the Editor. (Click More if you don't see it.)
  3. At the bottom left, you'll see a dropdown list labeled When Left-Clicked:
  4. Set the option to Pay and close the editing window.