SecondLife Tutorial: Working Elevator

Comments 9 Standard

I found code from another person in the SL wiki and tweaked it to my liking. It had some issues with coming back down after the SL avatar was on top of the elevator platform. I’ve also changed it so you can touch the elevator to move it and once the elevator is has moved to it’s new position you can move the avatar around instead of being glued to the center of it.

// lift script, v 1.0 by timeless montreal
// modified by Jade Battery
//put it in any object to transform it into an elevator
//touch the object to move it up/downinteger

liftAmount = 4;//how far to move up

integer isUp = FALSE; //current position of the object

movePlatform()
{
//makes you appear to be standing
llStartAnimation("stand");

if(!isUp)
{
//move the elevator up
llSetPos(llGetPos() + <0, 0, liftAmount>);
llSay(0, "Going up!");
isUp = TRUE;
key avataronsittarget = llAvatarOnSitTarget();
llUnSit(avataronsittarget);
}
else
{
//move the elevator back down
llSetPos(llGetPos() + <0, 0, -1*(liftAmount)>);
llSay(0, "Going down!");
isUp = FALSE;
key avataronsittarget = llAvatarOnSitTarget();
llUnSit(avataronsittarget);
}
}

default
{
state_entry()
{
llSitTarget(<0,0,1>,<0,0,0,1>);
llSetTouchText("");
llSetSitText("Move");
}

//touch to move the elevator
touch_start(integer num)
{
key avataronsittarget = llAvatarOnSitTarget();

if( avataronsittarget != NULL_KEY )
{
if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)
&& llGetPermissionsKey() == avataronsittarget)
{
llStopAnimation("sit");
movePlatform();
}
else
llRequestPermissions(avataronsittarget, PERMISSION_TRIGGER_ANIMATION);
}
} //end touch

changed(integer change)
{
if(change & CHANGED_LINK)
{
key avataronsittarget = llAvatarOnSitTarget();
if( avataronsittarget != NULL_KEY )
{
if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && llGetPermissionsKey() == avataronsittarget) {
llStopAnimation("sit");
movePlatform();
} else {
llRequestPermissions(avataronsittarget, PERMISSION_TRIGGER_ANIMATION);
}
}
}
}

//request the permissions if need be
run_time_permissions(integer perm)
{
if(perm)
{
llStopAnimation("sit");
movePlatform();
}
} //end runtime permission
} //end default
Advertisements

9 thoughts on “SecondLife Tutorial: Working Elevator

  1. Hi does this work if u link it to something,im looking for a elivator for my spaceship i am creating,thanks 🙂

  2. Did you forget a end curly brace? Make sure you copied everything from the blue section, this is exactly what I had in my elevator object.

  3. This just doesn’t work.. you get a syntax error.
    It says the following

    (16, 15) : ERROR : Syntax error.

    Line 16 reads as
    llSay(0, “Going up!”);

    No idea what is wrong.. as I don’t do scripts myself.
    I copied everything from this page.. (cut/paste)
    It just doesn’t work.
    Suggest you check your script to ensure you haven’t left anything out.
    As this is open source I am posting this on LSLWiki to see if anyone there can resolve the problem

  4. You’re not using plain-text quotes in the example, Jade. Replace the “ and ” symbols with plain old ” symbols.

  5. Yeah, sorry about that sometimes I get wonky stuff like that when I copy/paste from places on one of my laptops.

  6. There is only one real error in the script. The liftAmount wasn’t declared as an integer. Should be written integer liftAmount = 4;
    or whatever the amount of distance you want the elevator to move. The other errors are because the result of copy and paste.
    I surmised it has something about the text format on this site
    I notice all the errors are associated with string errors concerning the following Linden Language functions:
    llSetSitText(“Move”);
    llStopAnimation(“sit”);
    liftAmount = 4;//how far to move up should be integer liftAmount = 4;
    llStartAnimation(“stand”);

    llSay(0, “Going up!”);

    The solution is to delete all the functions from the script inword,and to manually type them in the script. To operate the elevator t, placed yourself on the prim, right click , and select “move “from the pie chat in your view.

  7. correction: Only delete the functions that are associated with strings (” “) strings that I mentioned in my last post. Then manually typed them back in the script where they belong. Below is the list of functions that should be corrected:
    llSetSitText(“Move”);
    llStopAnimation(“sit”);

    llStartAnimation(“stand”);

    llSay(0, “Going up!”);

    Also, don’t forget to correct the iiftAmount variable. It should be
    interger liftAmount = 4;

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s