Texture Vendor

Written by Kitsune

You will need at least 3 prims for this project This script goes in the root prim:

integer price = 5; // price
float time = 0; // Enter a value if you want to auto scroll

string vendorname;
integer total;
integer counter;
integer change;

next()
{
    total=llGetInventoryNumber(INVENTORY_TEXTURE);
    vendorname = llGetObjectName();
    counter++;
    if(counter>=total)
    {
        counter=0;
    }
    llSetTexture(llGetInventoryName(INVENTORY_TEXTURE,    counter),ALL_SIDES);
    if (price > 0)
    {
        llSetText(vendorname + "\n" + llGetInventoryName(INVENTORY_TEXTURE,  counter) + "\n L$" + (string)price + "\n", <1,1,1>, 1);
    }
    else
    {
        llSetText(vendorname + "\n" + llGetInventoryName(INVENTORY_TEXTURE,  counter) + "\n Touch to recieve \n", <1,1,1>, 1);
    }
    llTriggerSound("Pressed", 1);
}
prev()
{
    total=llGetInventoryNumber(INVENTORY_TEXTURE);
    vendorname = llGetObjectName();
    if (counter > 0)
    {
        counter--;
    }
    else
    {
        counter=total - 1;
    }
    llSetTexture(llGetInventoryName(INVENTORY_TEXTURE,    counter),ALL_SIDES);
    if (price > 0)
    {
        llSetText(vendorname + "\n" + llGetInventoryName(INVENTORY_TEXTURE,  counter) + "\n L$" + (string)price + "\n", <1,1,1>, 1);
    }
    else
    {
        llSetText(vendorname + "\n" + llGetInventoryName(INVENTORY_TEXTURE,  counter) + "\n Touch to recieve \n", <1,1,1>, 1);
    }
    llTriggerSound("Pressed", 1);
}

default
{
    state_entry()
    {
        llRequestPermissions(llGetOwner(),PERMISSION_DEBIT  );
        next();
        llSetTimerEvent(time);
    }
    touch_start(integer total_number)
    {
        if ( llGetLinkName(llDetectedLinkNumber(0)) == "next" )
        {
            next();
        }
        else if ( llGetLinkName(llDetectedLinkNumber(0)) == "prev" )
        {
            prev();
        }
        else
        {
            if (price > 0)
            {
                llWhisper(0, "Pay L$" + (string)price + " to buy");
            }
            else
            {
                llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_TEXTURE,  counter));
            }
        }
    }
    timer()
    {
        next();
    }
    money(key giver, integer amount)
    {
        if (amount < price)
        {
            llSay(0, "Too little payed, refunding");
            llGiveMoney(giver, amount);
        }
        else if (amount > price)
        {
            change = amount - price;
            llSay(0, "Overpaid. vending item and giving L$" + (string)change + " change");
            llGiveMoney(giver, change);
            llGiveInventory(giver, llGetInventoryName(INVENTORY_TEXTURE,  counter));
            llInstantMessage(llGetOwner(), llKey2Name(giver) + " bought " + llGetInventoryName(INVENTORY_TEXTURE,  counter) + " for L$" + (string)price);
        }
        else if (amount == price)
        {
            llGiveInventory(giver, llGetInventoryName(INVENTORY_TEXTURE,  counter));
        llInstantMessage(llGetOwner(), llKey2Name(giver) + " bought " + llGetInventoryName(INVENTORY_TEXTURE,  counter) + " for L$" + (string)price);
        }
    }
    on_rez(integer start_param)
    {
        llResetScript();
    }
}

 name your back button 'prev' your forward button 'next' and link them to your root prim. drop your inventory and images in and your ready to go!