Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Elevator + Horizontal move?

Ceera Murakami
Texture Artist / Builder
Join date: 9 Sep 2005
Posts: 7,750
02-21-2006 20:38
Is it possible to script an 'elevator' that will take you up a set distance, like 400 to 700 Meters, and also move you a set distance to one side, to the skybox you end up in is not straight over the starting point?

Am looking for a way to make a ready access between my home and my art studio /workshop in the sky, which is over the open area of land to the side of my home. Not far to the side, just a fair ways up, and maybe 30 meters on the diagonal from the starting point's Z-axis, at one corner of ther house.

It's over 300 Meters up, so a regular teleporter's out, right? I suppose I could stage it, with a smaller platform or even floating 'hallway', halfway up...

Would also like to be able to make something to go pretty much sideways, between my home and my neigbor's home (same household and group, on same parcel), 100 M or less away.

All this is within a single sim. Not trying to cross sim boundries, or to go onto someone else's parcel of land.
Barbarra Blair
Short Person
Join date: 18 Apr 2004
Posts: 588
02-21-2006 20:45
Moving sideways is just as easy as moving up and down, so sure, you can script that. Just use llSetPos (read up on it here):

http://secondlife.com/badgeo/wakka.php?wakka=llSetPos
_____________________
--Obvious Lady
Osgeld Barmy
Registered User
Join date: 22 Mar 2005
Posts: 3,336
02-21-2006 21:15
just a happy reminder 300m doesnt include where your teleporting from so if your teleporter's axis is 68.xxxm you have 300m above that (368m) or to the left or whatever
Ordinal Malaprop
really very ordinary
Join date: 9 Sep 2005
Posts: 4,607
02-22-2006 04:31
This sounds like the transit chairs in my home area - they move to a hardcoded location using repeated llSetPos calls when you sit on them, then unsit you and move back to where they started. It doesn't matter where the start and end positions are. (Well, at the moment they have to be in the same sim, but it could work on global co-ordinates in theory.)

I prefer these to teleports. I don't like the hack that they use, and I prefer actually moving.
Zapoteth Zaius
Is back
Join date: 14 Feb 2004
Posts: 5,634
02-22-2006 04:34
Definatly possible with a sit elevator, not sure about a physics elevator.
_____________________
I have the right to remain silent. Anything I say will be misquoted and used against me.
---------------
Zapoteth Designs, Temotu (100,50)
---------------
Ordinal Malaprop
really very ordinary
Join date: 9 Sep 2005
Posts: 4,607
02-22-2006 04:52
Actually, what you really want is an av cannon and a big net.
Sky Honey
Coder
Join date: 16 May 2005
Posts: 105
02-22-2006 06:28
I modified Seagel Neville's free elevator /54/3b/78775/1.html to take a vector target instead of just a height. It uses llSetPos until the target is reached so there's no need for it to just go up and down. I needed it because I travel further than 300 meters, but now I agree with Ordinal, it's nicer to zoom around than to do the funky teleport/unsit thing. IM me in world for the script if you want it.
_____________________
Ordinal Malaprop
really very ordinary
Join date: 9 Sep 2005
Posts: 4,607
02-22-2006 06:43
Here's a quick skeleton of the one I used for the chairs:
CODE
// Simple transit chair script
// Ordinal Malaprop
// 2006-02-22

vector gStart;
// Hardcode gEnd to be the destination point
vector gEnd = <128,128,128>;

move_to(vector pos)
{
do {
llSetPos(pos);
} while (llVecMag(pos - llGetPos()) > 0.001);
}

default
{
on_rez(integer p)
{
llResetScript();
}

state_entry()
{
// Reset start location to current location
gStart = llGetPos();
// Tweak sit target as appropriate
llSitTarget(<0.3,0.0,0.5>, ZERO_ROTATION);
// Best to have this displaying the destination
llSetText("Sit on me to move", <0.0,1.0,0.0>, 1.0);
}

changed(integer change)
{
key id = llAvatarOnSitTarget();
if ((change & CHANGED_LINK) && id != NULL_KEY) {
// Someone has sat on me
string name = llKey2Name(id);
llWhisper(0, "Hello, " + name + "! Moving now...");
move_to(gEnd);
// Reached end, unsit them
llUnSit(id);
llWhisper(0, "Goodbye, " + name + "! Going home now...");
llSleep(0.5);
// and go home again
move_to(gStart);
}
}
}

I just knocked that up at work so I don't know whether it's 100% correct, but it looks okay to me. In practice the chairs also do other stuff like turn you around so you can see what's going on.

You do need to have a "return" chair if you want people to be able to go back! But it means that you can have an interesting combination of links... needing to go to point A to get to B, which is the only place that will take you to C and so on.
Ceera Murakami
Texture Artist / Builder
Join date: 9 Sep 2005
Posts: 7,750
02-22-2006 07:43
Thanks everyone!

I'll play with this when I get in-world this evening, and will certainly try to contact you, sky Honey, for that script.

Ideally, I have a 'trap door' that is a one-prim platform that a person can stand on for the transport, and I plan to put one at each end. (In RP conventions, it would be a 'tunnel' that you go through to get from one place to the other). So a sit-elevator that they stand on and which un-sits them at the far end, and then returns, would be perfect! And it's easy to check the coordinates of the platform prim at each end, to get the destination points.

Looking forward to setting this up. Many thanks!
Agiev Hyun
Registered User
Join date: 1 Dec 2007
Posts: 1
It's Graet
08-14-2008 12:45
A Very Good Alevator But Need To Be Able To Slow It Down.
Is It Possible???
Tanx
Destiny Niles
Registered User
Join date: 23 Aug 2006
Posts: 949
08-14-2008 12:48
From: Ordinal Malaprop
Actually, what you really want is an av cannon and a big net.


"The Future" sim have a nice system like that.