Multi-stop elevators
Due to the lack of a good article explaining the functionality of multi-stop elevators, and because I recently used HAMMER to design a theoretical building for one of my engineering classes which required such an elevator, I have decided to share my method with the Valve Developer Community. A warning: This will be a long tutorial, as creating a multi-stop elevator is a long process. The design and programming of the original elevator alone (first following tutorials found online, then by trial-and-error when none of those tutorials were what I needed) took upwards of twenty-two hours. That's not including the time spent designing and constructing the building around it.
I will eventually upload a working example map file, but as the original elevator is part of a university project I do not want to upload that. (It's also an eleven-story elevator, which is far more than most people will ever need to create.)
Any citation of this work needs only include my screen name ("newinfinite"), but I would appreciate credit if this elevator is used in any map releases. Thank you.
Now, let's begin.
Start by opening up HAMMER and creating a new map, then save your map. Call the map whatever you want, but remember the name of the file. I'm going to use the example name of "ni_elev_demo.vmf".
Construct your elevator the way you want it to look. This tutorial assumes you want a realistic, fully-enclosed elevator with opening and closing doors, so that is what I will build. Do not build or cut a hole for the doors yet.
Here is what I've created (exploded view on the right). :Note that I haven't cut a hole for the doors yet. That will come later.
Now that you've got your box (for that's all it is at this point), you need to determine how big your doors will be. I'm going to make mine 32 inches wide each, for a total door width of 64 inches. The doors will be 112 inches tall.
Make your doors 2 inches thick (assuming the walls of your elevator are 8 inches thick, like mine) and arrange them in a staggered pattern.
<IMAGE TO COME> :Top view of staggered doors.
Don't put them inside the elevator's wall yet. Cut a hole in the wall big enough for your doors, and place them so that they are centered between the two faces of the cut wall.
These doors will be parented to the elevator later. For now, select them individually and tie them to func_door entities. Leave them alone for now, we'll get back to them later.
Select your elevator's walls, ceiling and floor. Tie it all to a func_tracktrain entity. I've named mine "ni_elev" but you can name yours whatever you wish. Place the doors in their proper location inside the door frame you've cut into your elevator. If you've done the same as me, you can use my numbers for the door settings, but if you haven't, the idea is to get the first door (topmost in the "step 2" view) to have one inch sticking out when it is fully open (the "lip" should be 1 regardless of your door size) and for the second door to stick out one inch farther (so your lip should be [(individual door width) - 2] * [-1], or -30, if you're following my dimensions.
MORE TO COME. BE PATIENT.