key owner; default { state_entry() { owner=llGetOwner(); llListen(0,"",owner,""); llListen(34,"","","first"); llListen(34,"","","second"); llSetStatus(STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z,FALSE); } listen(integer a, string n, key id, string m) { // When the object hears align, it will grab the base position, and after which, all moves will be made by adjusting the z-coordinate of the base position. if(m=="align") { pos=llGetPos(); llSetStatus(STATUS_PHYSICS,TRUE); llMoveToTarget(pos,1.5); } // For the first floor, we want the elevator to be at its base position, so end(final resting place of the elevator) is the same as pos. I showed the addition of the vector <0,0,0> merely for continuity. The same comments about tau that apply to the llSetHoverHeight, apply to llMoveTarget. if(m=="first") { end=pos; llMoveToTarget(end,1.5); } if(m=="second") { end=pos+<0,0,3.29>; llMoveToTarget(end,1.5); } } }