10-16-2011 01:20 PM
I had a quick browse of the forums and couldn't find anything that would answer my query, so I am going to post my specific problem.
I am trying to create an elevator at around 1500m up (I know height probably won't matter) with floors approximately 150 meters apart. I am aware that llMovetoTarget will only work for distances of 64m and that llSetPos only works to 10 meters. If I had only two floors, this wouldn'tbe an issue, however, my elevator has four floors and my rudimentry knowledge of scripts sadly doesn't cover this situations. I would rather have a non phys lift as it's inside a square shaft and I found my early experiments ended up at all sorts of angles, but phys is still an option.
Preferably it would work from a menu, which I don't have any trouble making, the issues I am having is the four floors issue. Any help would be appreciated, thank you in advance!
10-16-2011 03:01 PM
When it is finally available, the new llSetKeyFramedAnimation function may be your bet bet for smooth motion with a non-physical object. It's in LC sims now, I believe, in beta. Failing that, you could maybe use something like safe_jumpPos to make a hop most of the way between floors and then do a series of small llSetPos steps to make a graceful decelleration over the last 10m or so, just for the effect.
10-16-2011 06:05 PM
honestly with floors that far apart, I'd go with posJump (found on the LSL_Portal)... just be sure NOT to use the "Fast" version of the function if you immediately unseat the riders, as it doesn't give physics enough time to catch up and the avs are likely to bounce around a bit if you do (for non-avatar uses "Fast" is fine)
llSetKeyframeAnimation llSetKeyframeMotion is available on LeTigre right now, but still has a few bugs.
10-17-2011 01:26 AM
Thank you for those suggestions, they are not functions I have ever used (My scripting tends to be limits to doors, airlock sequences and other sci-fi-ish stuff!) so I will certianly have to look into them.
In the meantime however, I found an interesting script that I totally don't understand, but that I found able ot adapt to my own means by putting all of the destinations in my own sim. Specifically the post on the following page by Travis Lambert. I added more buttons to the dialog and ifs to function as each floor. It's hardly graceful, but it does move between distant floors.
10-25-2011 07:49 AM - edited 10-25-2011 07:51 AM
I have had an elevator script-set for builders on the market since 2008. In that time the product matured and this very feature was requested by one customer, so I set about writing a method to overcome the 64m distance limitation.
The methods mentioned so far are for non-physical movement, which requires the person be seated in the elevator. You can get around the seated animation by stopping it and using a stand animation instead, but in my opinion this deviates from the fun and purpose of an elevator.
My elevator script-set was based around physical movement, which was limited by the 64m distance from A to B. I got around it by having the script divide the distance into more manageable spurts, but due to the nature of physical movement (acceleration and deceleration), the movement was slightly herky jerky. I was able to buffer this to not be so dramatic using distance checking. It all seemed to work great... UNTIL...
One of my customers tried to make a space needle. Going up the elevator worked fine, but on the way down the elevator would gain so much momentum that it would free-fall. What I hadn't known up until that point was that gravity, downward movement speed and distance caused the elevator object to accelerate to the point of breaking free from the move function and plummeting to the ground. I worked on methods to buffer the effects of gravity with speed modifiers, but I was never able to get it to work right.
Ultimately, I removed the limitation bypass code completely and reversed the product back to 64m limitation. Is it possible to get it working correctly? Maybe, with the proper math, but to be honest the limitation is there for a reason, possibly LL foresaw the loss of control of physical objects moving at great distances, especially from a high point to a low point.
At distances greater than 64m, I suggest non-physical movement. You lose the elevator ride effect, but it gets you where you need to go, which is the ultimate goal.