Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Dialog box for age verification?

Ricky Shaftoe
Owner, "Rickymations"
Join date: 27 May 2005
Posts: 366
08-03-2006 10:36
I intend to add the new scripting feature llRequestAgentData(llGetOwner(), DATA_PAYINFO) to my vendors that sell arguably "mature" content. (I sell a wide variety of animations, some of which are on the naughty side.) But I'm also considering whether I should add a dialog box asking the buyer to confirm that they are 18 or over. (Yes, it may be overkill, but I'd rather err on the side of caution.)

Can this be done without the use of a listen, which might add lag? llDialog() seems to require that I use a listen to evaluate the user's input. llRequestPermissions() might be useful, but I'd have to request "permission" for something I don't really intend to do, like attaching or animating, and label it simply as "yes" or "no". Any advice on how to approach this?
Eaglebird Cameron
YTMND *********
Join date: 1 Jul 2006
Posts: 68
08-03-2006 10:38
Since the Main Grid is 18+ only, there's no point. Even if a 14 year old is lying, what's stopping him from lying again?
It's pointless.
Ricky Shaftoe
Owner, "Rickymations"
Join date: 27 May 2005
Posts: 366
08-03-2006 10:41
Well, you're probably right, but I feel strongly that I should take every practicable step to prevent sale of arguably mature material to minors.

I'd still like some advice on my technical question. How best to implement a dialog box that will stop a sale if someone says "no, I'm under 18"? (I've already got code to stop a sale if someone doesn't have a verified account.)
Aodhan McDunnough
Gearhead
Join date: 29 Mar 2006
Posts: 1,518
08-03-2006 10:43
From: Ricky Shaftoe
Well, you're probably right, but I feel strongly that I should take every practicable step to prevent sale of arguably mature material to minors.

I'd still like some advice on my technical question. How best to implement a dialog box that will stop a sale if someone says "no, I'm under 18"? (I've already got code to stop a sale if someone doesn't have a verified account.)


Legally, that part is sufficient to protect you. As eaglebird said what's stopping the kid from lying a second time?
_____________________
Aodhan's Forge shop at slurl.com/secondlife/Rieul/95/213/107
Ricky Shaftoe
Owner, "Rickymations"
Join date: 27 May 2005
Posts: 366
08-03-2006 10:47
Well, of course the kid would have had to have lied once to get on the grid. But that wasn't a lie to *me* personally. If I implement my dialog box, I now can show that the kid has defrauded me in particular. And yes, my verification-code is enough to protect me legally, but this is not just about protecting me: I believe strongly that LL erred in relaxing its verification policies, and I want to remind my users that mature content is for adults only.

If a dialog box proves to be too unwieldy or adds lag, or if my customers hate it, I'll take it down. But I at least want to see if it's technically feasible without using a listen. Anyone?
Aodhan McDunnough
Gearhead
Join date: 29 Mar 2006
Posts: 1,518
08-03-2006 10:53
Check this out Ricky.

/139/19/126754/1.html

As I suspected, it's no error. The SL world is changing.
_____________________
Aodhan's Forge shop at slurl.com/secondlife/Rieul/95/213/107
Eaglebird Cameron
YTMND *********
Join date: 1 Jul 2006
Posts: 68
08-03-2006 10:57
just find out how people make those dialog boxes that pop up from the upper right corner, make a question: "Are you above 18?"
and make two options
Yes and No
Joannah Cramer
Registered User
Join date: 12 Apr 2006
Posts: 1,539
08-03-2006 12:40
From: Eaglebird Cameron
just find out how people make those dialog boxes that pop up from the upper right corner, make a question: "Are you above 18?"
and make two options
Yes and No

I'd suggest to just provide single "Yes" as answer, and skip the whole listen() and check routine.

Lesser load on the sim, and it's not like anyone would ever press "No" there... :s
Adriana Caligari
Registered User
Join date: 21 Apr 2005
Posts: 458
08-03-2006 12:53
You could have an extra prim that is invisible above the vendor.

When they press pay it turns visible with the texture "touch to confirm you are over 18".

If they dont touch it in a specified time they get their money back.

If they touch it they get the item and you are happy that you asked them.

That would require a few link messages and some checking - nothing too much.


( however personally i still think it is OTT - anyone on the main grid is already implying they are 18 or over )
_____________________
Maker of quality Gadgets
Caligari Designs Store
Ron Overdrive
Registered User
Join date: 10 Jul 2005
Posts: 1,002
08-03-2006 12:59
Personally I think if they aren't verified they shouldn't be able to scroll past your shop logo if you're selling adult material.
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
08-03-2006 13:10
You can't receive the response from a dialog box without a listen. So, no, there is no technical way to do that.

You could do what Joannah suggested and have the dialog box be for info only - say something like "If you are under 18, please click ignore and go away and don't buy this. If you are above 18 click Ignore and then buy it". Or something along those lines.

I'm not sure how bad it is to have a listener for this situation. Maybe in a sim with lots of vendors... not sure. But if you want the user to actively say that they are over 18 (which is what it sounds like you want), then you'll need a listener. Use a high negative channel, turn the listener on just before you present the dialog box, set the listener to the key of the person you're asking the question to, and turn it off as soon as you hear what he selected, and also run a (say 30 second) timer and kill the listener if he doesn't click anything in that time. That's how I would do it.

Or use prims linked to the main vendor, that was suggested too.
Jack Harker
Registered User
Join date: 4 May 2005
Posts: 552
08-03-2006 13:27
From: Aodhan McDunnough
Check this out Ricky.

/139/19/126754/1.html

As I suspected, it's no error. The SL world is changing.


That's scary. Children should not be in SL, flat out should *not* be.

(And spammy pregnant people, and prim babies should stay the hell off of my land.)
Ricky Shaftoe
Owner, "Rickymations"
Join date: 27 May 2005
Posts: 366
08-03-2006 13:50
Thanks for the replies. You pretty much confirmed my intuition on the technical issue. It may be more trouble than it's worth, especially given the general sentiment here that it's overkill anyway. I don't like using listens, and indeed one of my outlets is in a sim that mostly prohibits listens.

I hadn't thought of using an invisible prim; of course, that means adding prims to the sim, and also means I have to hope it rezzes clearly.

I think I'm inclined instead just to add a whisper to the transaction. Something like "by clicking Pay, you agree that you are 18 years or older." A whisper doesn't degrade sim performance much, and it would more or less achieve what I want.

Thanks again.
Fa nyak
>(O.o)<
Join date: 8 Oct 2004
Posts: 342
08-04-2006 01:25
just don't listen on channel 0. i think people are overly paranoid about the whole "listens cause lag" thing. it's not parsing what it's not hearing, and on some random high number channel, it's not hearing anything but the occasional "yes" "no" from your dialog.
Pale Spectre
Registered User
Join date: 2 Sep 2005
Posts: 586
08-04-2006 02:03
Something to bear in mind about llDialog is that it can communicate on 'exotic' (ie. negative number) channels. In other words their scripts are very unlikely to 'hear' anything except the Dialog. llDialog is also 'keyed' to a specific person. Lastly, you can also time-out the llListen handle.

I've always assumed that this must carry a pretty low overhead.

CODE

mnuDialog(key uKey)
{
llListenRemove(mnuHandle);
mnuChannel = llRound(llFrand(900000) + 100000) * -1;
mnuHandle = llListen(mnuChannel, "", uKey, "");
llDialog(uKey, mnuTitle, mnuOptions, mnuChannel);
//llListenRemove(mnuHandle); <--- if you don't even want to bother with the reply
llSetTimerEvent(15); // <--- or time-out after 15 seconds
}

:
:

touch_start(integer total_number)
{
mnuDialog(llDetectedKey(0));
}

timer()
{
llSetTimerEvent(0);
llListenRemove(mnuHandle);
}
As someone already pointed out channel 0 is the one to really avoid.