SecondLife Tutorial: Working Elevator
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
Hi does this work if u link it to something,im looking for a elivator for my spaceship i am creating,thanks 🙂
i got a syntax error while trying to use this code 🙁
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.
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
You’re not using plain-text quotes in the example, Jade. Replace the “ and ” symbols with plain old ” symbols.
…and your declaration of liftAmount is messed up – need another line break at line 4.
Yeah, sorry about that sometimes I get wonky stuff like that when I copy/paste from places on one of my laptops.
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.
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;