[Opensim-dev] Feature Request: osAvatarSit(key avatar, key object, integer options)

Aine aine.caoimhe at rogers.com
Tue Sep 2 15:16:37 UTC 2014


I've been considering scripting a new couples dance ball for clubs in busy
regions where keeping the script count to a minimum and script efficiency to
a maximum is key.

 

The current most popular couples dance machine currently is the venerable
"Franks Couples Dance System" and its assorted permutations which can handle
multiple couples but requires one script per *possible* dancer (so often
this has 12-16 animation handler scripts), plus the master controller
script, etc...not very efficient at all. The version I envision would be a
single script that uses OSSL animation functions to handle all users
simultaneously. The only hurdle to overcome in scripting this is the
positioning of the couples in x,y axis in the region since they need to be
effectively on poseballs but I want to make it a completely poseball-free
system by having them "sit" on the machine itself and then use
llSetLinkPrimitiveParamsFast() for the positioning.

 

Frank's machine rezzes a pair of poseballs near the initial toucher's
location, then the pair sits and the poseballs are moved to do the
positioning for each dance. To eliminate the poseball usage but maintain the
same basic functionality I would need some way to know the couple's
approximate location *prior* to "sitting" on the dance machine (which then
makes them part of the linkset and lets me do all the positional dance
controls). The only solution I can come up with using existing functions is
one where one dancer has to first touch the machine to say ""I want to dance
so store my position and then when I sit put me back there" and then a
right-click sit to actually sit on the machine....not something that's very
intuitive or user-friendly plus requires multiple clicks. The easiest
solution I can think of is a function that allows me to "force sit" the
toucher rather than having him/her have to do so, allowing the first dancer
to touch the device which then checks the location and then force-sits the
avi before immediately putting them right back where they were. Then the
partner touches the machine which repeats the process but puts them in the
correct location based on the dance selected. Obviously there would be a few
little tricks to correctly matching couples but I can manage all of that
stuff with existing functions so the only stumbling block is the lack of a
force-sit command for avatars.

 

The "force sit" function I'm proposing would be identical to the existing
osNpcSit() function but work on regular agents. You'd specify the UUIDs of
the avatar, the UUID of the target to sit on, and use the equivalent of
OS_NPC_SIT_NOW as its option. Since the function exists already in NPC form,
I was hoping that it might require minimal additional coding to enable it to
work on a regular avatar -- possibly as simple as commenting out the
presumable check in the current code that makes sure the agent is an NPC
before allowing osNpcSit() to do its thing.

 

I can envision other applications where this function could very useful (to
be able to seat someone who touches an object). Needless to say it would
need to be assigned at least a VeryHigh or even Severe threat level due to
its potential for abuse unless it initiated a permission request check of
some sort.

 

Is this feasible and is there any interest from someone with the necessary
coding expertise to implement it? Of can someone think of a clever way
around this hurdle using existing functions?

 

Cheers!

 

Aine

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20140902/856ea70f/attachment.html>


More information about the Opensim-dev mailing list