Jump to content

sales menu

Lyra Blackthorne

You are about to reply to a thread that has been inactive for 2779 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

You could offer them three different payment amounts with llSetPayPrice(), and then deliver product according to which amount was received in the money() event.

One reason pretty much nobody does such a thing is that, once folks click "Pay", the script has no way of communicating with them -- they'll just get the payment amounts, with no explanation for what they'll get for the different prices, and a script can't know they're even interacting with the payment menu until they've chosen a price and confirmed payment. So, basically, this is asking for an endless stream of customer complaints about getting the wrong product.

It's also possible to engage in some a priori menu dialogue with the customer and then set a single corresponding pay price, but that's never done either because, once set, that price applies to anybody using Pay, not necessarily the one who made the product selection. The script can know it got paid by the wrong person and refund the money, but it's just far too confusing for users, and infinitely simpler to have distinct prims for the different product offerings.

Link to comment
Share on other sites

you could do this if you use flags...

one flag would be set when the user clicks the package...."inUse"

then, if anyone else clicks the package, if the InUse flag is true,

it wont let them do anything......


you could name all your items to include a keyword.....i . e .

"mesh Hair ( package)"

"mesh hair ( partial)"

"mesh hair ( demo)"

and then use a loop to check for the sub string in your listen event

(the message from the dialog)

  else if(msg == "DEMO")        {             integer inventoryNumber = llGetInventoryNumber(INVENTORY_OBJECT);                integer index;                string itemName;                 do                {                    itemName = llGetInventoryName(INVENTORY_OBJECT, index);                    string CHECKitemName =  llToLower(itemName);                    integer isDEMO = ~llSubStringIndex(CHECKitemName,"demo");                     if(isDEMO)                    {                     llGiveInventory(user, itemName);//  2.0 seconds delay                     llSay(0,"DEMO SENT");                    }                }                 while(++index < inventoryNumber);                 init();        } 

 this snippet sends any item with the word "demo" in it... then

sets the package back to normal in the user made Init()   ... function



if your customer has chosen the option to buy something,

you can change the click action to pay....and a pay box will come up...

 if(msg == "Buy")        {            recipient = user;            llInstantMessage(user, "\nPlease touch again to buy, you have 30 seconds...");            llSetPayPrice(PAY_HIDE, [price, PAY_HIDE, PAY_HIDE, PAY_HIDE]);            llSetClickAction(CLICK_ACTION_PAY);            llSetTimerEvent(30);        }

 a note: ... you should set hover text to show that the package is in use,

as anyone who left clicks & chooses pay, can still bypass the touch event

"inUse" flag.

finally, use flags & loops to get your items into lists, using the

keywords in their names, and when all done, reset the flags & click actions etc....


definately do-able.... tho i think not too many people use this method?

 i agree with Qie on using seperate prims for each offering :)


Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 2779 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...