Inventory Give or Drop

Written by: Headmaster
//  Inventory Give or Drop
//  Created by Water Rogers for IBM/Opensource

//  Purpose
//  --------------------------------------------------------------
//  This is a simple example of how an object can give inventory
//  or how somoene without modify permissions can give the object
//  inventory.

//  Requirements
//  --------------------------------------------------------------
//  A single prim is all that is necessary for this example.

//  Usage
//  --------------------------------------------------------------
//  Click on the object, and it will give a notecard.  Drop something
//  on the object (other then a script), and it will put it into
//  the object's inventory.


//  EVENTS
//  --------------------------------------------------------------

string      g_InventoryName     = "Test Card";  //  Name of the inventory we're giving


default
{
    state_entry()
    {
        //  This function is what allows people to drop inventory into
        //  an object even if they don't have modify permissions.  This
        //  is nice if you want to create a suggestion box, for example.
        llAllowInventoryDrop(TRUE);
    }

    touch_start(integer total_number)
    {
        //  If anyone touches the object, they'll receive inventory from
        //  the object.
        llGiveInventory(llDetectedKey(0), g_InventoryName);
    }
    
    changed(integer change)
    {
        //  Changed is used to detect something that changed with the
        //  object.  Textures, links, size, locations, inventory are all
        //  examples of what can be detected on change.  Since we're only
        //  interested in what's been changed in the inventory, we'll use
        //  the following check.  Also, since we're working with bit masks,
        //  we need to use bitwise opperands in conditional statements.
        if(change & (CHANGED_INVENTORY | CHANGED_ALLOWED_DROP))
        {
            //  This will whisper whenever anything in the inventory
            //  changes.
            llWhisper(0, "Thanks!");
        }
    }
}