<div dir="ltr"><div>Assuming you can overcome all of the "other obstacles" and have the latitude to reset the config params in OpenSim.ini, then there is no reason why you can't have a single script animate multiple avatars across your region. You will need access to the INI file if you want to overcome the current
limit on linkset sizes ( how far you can move a linked object from its
root prim ). In my experience, trying to get an admin to enable the OSSL functions (especially the ones marked Threat level : HIGH ) is harder than the coding involved. <br><br>As for "No pose balls" .. People are more likely to understand the concept of "sitting on a ball to dance" than they are to comprehend instructions on how and when to touch something new. The visible feedback also eliminates playing partner roulette when laggy touches to the dance machine seat you with the last/next avatar to touch it. Pose balls also have the advantage of being convenient "handles" when you are trying to position avatars to build your animation configuration notecards/database.<br>
<br></div>I'm not sure I understand why a new function is required, since you can set the default action on the linked objects to "sit". The trick will be to get the first object to the location before the first partner of the couple is seated on it, or you may see avatars zipping between the dance machine and the locations on the floor. As long as you move a pair of objects to the approximate location, the second avatar should just be able to sit on the object and be in position. There is another major issue with letting couples "randomly" choose where to dance.. Many are not familiar with the space required and opt to rez the pose balls right next to their neighbors, causing the animations to move the couples on top of/through each other. A simple solution to this is to have the 'couples dancing' locations identified by the presence of the pose balls. <br>
<div><br>The operations sequence could be as simple as; <br>The dance machine with the scripting is set out. <br>The linked pose balls are rezzed and re-located to the positions in the sim you want. <br>Couples can touch the dance machine to be deposited on the "next" location, or touch the pose balls to sit/dance at the "couples" location they want.<br>
</div><div><div><div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Sep 2, 2014 at 8:16 AM, Aine <span dir="ltr"><<a href="mailto:aine.caoimhe@rogers.com" target="_blank">aine.caoimhe@rogers.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div link="blue" vlink="purple" lang="EN-CA"><div><p>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.<u></u><u></u></p>
<p><u></u> <u></u></p><p>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 *<b>possible</b>* 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.<u></u><u></u></p>
<p><u></u> <u></u></p><p>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.<u></u><u></u></p>
<p><u></u> <u></u></p><p>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.<u></u><u></u></p>
<p><u></u> <u></u></p><p>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.<u></u><u></u></p>
<p><u></u> <u></u></p><p>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?<u></u><u></u></p>
<p><u></u> <u></u></p><p>Cheers!<span class=""><font color="#888888"><u></u><u></u></font></span></p><span class=""><font color="#888888"><p><u></u> <u></u></p><p>Aine<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p>
</font></span></div></div><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br></div></div></div></div></div></div></div>