Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Request: llGiveMoney()

Do you want a return value on llGiveMoney

Yes it would be Great !
20 (95.2%)

No ! I like it the way it is !
1 (4.8%)

I don't Care ! it's irrelevant !
0 (0.0%)

Total votes: 21
Roberto Salubrius
Registered User
Join date: 11 Feb 2007
Posts: 4
03-11-2007 12:14
Please I have a request, since the grid is unstable sometimes ( we all know that ), I really would appreciate if llGiveMoney() could return a TRUE or a FALSE at least to see if the transaction was done, if not do it again, money transfer stale are a big problem, Chairs not paying, Casinos the same, etc.

I think this is needed, since we deal with real money, we can't really have money going stale, we need to REALLY veryfy and take care of money transfers, I don't know but I guess this is a comprehensible request.

I would like to see if other scripters support this request and maybe LL, could add a return value on llGiveMoney.

Thank You.

Roberto Salubrius
Buxton Malaprop
Mad Physicist
Join date: 8 Jun 2005
Posts: 118
03-12-2007 06:21
There isn't one because they're unable to provide one for architectural reasons - see this post from kelly linden. As far as I understand it, the region sim (where the script is executing) simply doesn't have immediate knowledge/control of everyone's L$ balances in the necessary manner.
_____________________
Phillip and Griefers Sitting In A Tree
K-I-S-S-I-N-G
JT Dagger
meeps
Join date: 2 Feb 2007
Posts: 23
03-12-2007 12:09
I agree wholeheartedly. I understand the architectural obstacles to implementing this, but then we could get into a discussion of why we need many more merchant features.

I suppose in some circles, the separation of the region sims and the L$ databases would be considered a form of security...

But it's just bad business to be dealing with money and not be able to verify the success of electronic transactions. (But it's probably a worse problem that llGiveInventory and llGiveMoney are unreliable, the former being the major culprit.)

So, as of May 5, 2005, we have:
From: Kelly Linden
It is not possible for llGiveMoney to return a meaningful value, the data is simply not available when and where it would be needed to make that happen. As Cory has said, we are looking at providing better and more complete merchant features, we know they are needed.


*scowls... does some math... that's a long development pipeline.
Learjeff Innis
musician & coder
Join date: 27 Nov 2006
Posts: 817
03-12-2007 13:02
From: Buxton Malaprop
There isn't one because they're unable to provide one for architectural reasons - see this post from kelly linden. As far as I understand it, the region sim (where the script is executing) simply doesn't have immediate knowledge/control of everyone's L$ balances in the necessary manner.


That's a weak argument. Imagine RL money transfers using an unconfirmed, unreliable communications service! haha.

The region sim does not need to know the balance. It is only necessary for the protocol used by llGiveMoney() to use a confirmed communications service: where there is a reply from the server indicating that the transfer succeeded. The llGiveMoney() would timeout if the server fails, and return the error.

llGiveInventory needs to return an error as well.

These things are really necessary for commerce. SL commerce limps on without it, with great frustration on the part of merchants and consumers.
Kenn Nilsson
AeonVox
Join date: 24 May 2005
Posts: 897
03-13-2007 08:29
If llGiveMoney() would return a TRUE/FALSE value...I'd die a happy man.

If llGiveInventory() or llGiveInventoryList() also returned TRUE/FALSE values...I'd be so happy I wouldn't know what to do with myself.

You know...even if we could just llGiveMoney to an object...that object would be able to verify an amount as it passed the L$ directly to its owner.
_____________________
--AeonVox--

Computer games don't affect kids; I mean if Pac-Man affected us as kids, we'd all be running around in darkened rooms chasing ghosts, eating magic pills, and listening to repetitive, addictive, electronic music.
Peekay Semyorka
Registered User
Join date: 18 Nov 2006
Posts: 337
03-13-2007 11:16
From: Learjeff Innis
That's a weak argument. Imagine RL money transfers using an unconfirmed, unreliable communications service! haha.


In fact, many if not most RL money transfers *are* done using unconfirmed (and often unreliable) services -- from a real-time perspective -- for several technical & non-technical reasons. The name of the game is detecting and handling "exception" cases after the fact, which is quite a pain. I should know, since I architected an EFT interface for a major North American bank last year...

-peekay
Thomas Conover
Registered User
Join date: 11 May 2006
Posts: 7
03-14-2007 09:48
From: Learjeff Innis
That's a weak argument. Imagine RL money transfers using an unconfirmed, unreliable communications service! haha.

The region sim does not need to know the balance. It is only necessary for the protocol used by llGiveMoney() to use a confirmed communications service: where there is a reply from the server indicating that the transfer succeeded. The llGiveMoney() would timeout if the server fails, and return the error.

llGiveInventory needs to return an error as well.

These things are really necessary for commerce. SL commerce limps on without it, with great frustration on the part of merchants and consumers.


I totally agree. THere is already confirmation of money-transfer in the SL client itself. If you try to pay another avatar, and the payment fails, you always get a alert-window that the payment did infact fail. So its to my big wonder why the SL client can get it when LSL cant.

If its not possible to retur a confirmation with like:

integer result = llGiveMoney(blahlbah);

Then a sollution could be:

key requestID = llGiveMoney(blahblah);

dataserver(blahblah)
{
if (id = requestID)
{money-shit-confirmed-or-whatever;}
}
JT Dagger
meeps
Join date: 2 Feb 2007
Posts: 23
03-14-2007 12:06
From: Thomas Conover
THere is already confirmation of money-transfer in the SL client itself. If you try to pay another avatar, and the payment fails, you always get a alert-window that the payment did infact fail. So its to my big wonder why the SL client can get it when LSL cant.


The SL client has apparently been authorized to communicate directly the servers that handle the accounting records...lets call this the money cluster.

So individual clients, as well as the website have the functionality to talk to Money Cluster. You're asking why scripts can't talk to Money Cluster. The answer to this is the whole point of this thread: scripts live on the region sim, the region sim doesn't talk much with Money Cluster. In fact, you could say that regions sims are allowed to pass on notes to Money Cluster, but Money Cluster is not allowed to say anything back.

This could be for any number of multiple reasons, including:
1. Money Cluster is already maxed during peak hours. Opening up more communications with all those little scripts out there living on the region sims would cause Money Cluster to die in a fire, horribly.

2. Money Cluster cannot be scaled easily.

3. Money Cluster was not designed very well, and we're lucky that it functions at all. Forget about scaling. Just keep her up dammit.

4. Money Cluster, were it hacked, would cause RL riots in the streets, sending residents fleeing in droves, straight to LL's offices armed with pitchforks. And because Money Cluster must never be hacked, god forbid we allow scripts to talk to it, even if just minimally. First, major improvements to the system must be implemented to ensure the needed level of security. The necessary major improvements to the system are "TO BE IMPLEMENTED REAL SOON" (SM)

5. Splitting the functionality in the sim server software that would handle financial transactions would require significant design changes, i.e. architectural changes, which are "TO BE IMPLEMENTED REAL SOON" (SM), so let's just wait till this gets done before shuffling around servers and stuff.

6. Money Cluster doesn't really exist. The amount of L$ in your sl-wallet is actually handled by an army of extremely quick fingered, and ridiculously underpaid, Chinese, South East Asian, and Indian teenagers, who are actually calculating the transactions on abacuses.

7. All Your L$ Are Belong To Us. Ha Ha Ha Ha Ha.


Explicitly excluded from this list are emo favorites such as:

1. LL hates Me.

2. LL wants me to quit SL.

3. LL doesn't care about SL merchants. They secretly laugh at me behind my back, ridiculing me for my continued faith in their pathetically underdeveloped merchant software.

4. LL staffers are a bunch of lazy idiots who are resting on their laurels.


Keep the faith, Shiny People of Light and Mirth. The necessary perspective to maintain optimism begins with taking stock of the scope of what LL HAS delivered so far, which is absolutely unique, and quite extraordinary, given the somewhat pedestrian state of today's computing technology (pedestrian, when compared to the scale of the actual ambitions of SL's creators).

Yes SL's merchant features suck, hard, yes it's hard to run a casino or a business the way things are, but if you're in SL because you want to run a casino or sell virtual clothes or something like that.... just think it over mmkay?
Gaius Goodliffe
Dreamsmith
Join date: 15 Jan 2006
Posts: 116
03-14-2007 18:41
Why is it that every time I see an online poll, whoever wrote the question and answer choices invariably biases it by making sure answers include commentary, frequently commentary that makes sure no choice can be made honestly?

My answer would be "No" if that was an option, but the only option close is, "No, I like it the way it is" and that's definitely false; I don't like it the way it is, I just know that fixing the problem requires a different solution than a return value from the function. So "No" would be my answer if it didn't say "I like it the way it is", but since it does, none of the three answers are a possible answer I could choose.

The proper way to handle this is, as has been noted, with a callback along the lines of dataserver or http_response or the like. Asking for a return value to the function will get you nothing because it's just not possible or really not a good idea in any case, given that that would make the time it takes to execute the function completely unpredictable and possibly massive. If the things going to idle for 30 seconds waiting for a response, I don't want it sitting there so it can give me a return value, I want it to let me go on processing timer events and so on while I wait for the answer. So, no, a return value is definitely a bad idea, but it would be nice to get a response event of some sort.