Okay, so I'm trying to get this elevator to work. I've followed the tutorial on the Developer Wiki: [url]https://developer.valvesoftware.com/wiki/Multi-stop_elevators[/url] . But, the tutorial is just... ugh. None of it works. So I'm wondering if anybody has a better way to make a proper multi-stop elevator. Thanks.
For some reason trains always misallign with multiple stops (correct me if i'm wrong but this is a very well known problem).
I figure a move linear would be best with multiple hight positions but i have no idea how
Eh, well, I knew about the misalignment problem. What's more of a problem to me is the tutorial itself on the wiki. It's telling me to give the path_tracks a "Trigger" input, but path_tracks don't have such a thing.
I tried the train method and wanted to die after a while. If all your floors are equally spaced, this method is WAYYY easier. Also, you can avoid the weird shake when it starts and stops, which is nice if you don't want it.
[URL="https://www.youtube.com/watch?v=y9Slc6oqrLY"]https://www.youtube.com/watch?v=y9Slc6oqrLY[/URL]
[B]edit[/B] I suppose the biggest drawback with this is the waiting and organization of what floor to go when. I suppose it could be tweaked to work properly though.
Would it be possible to make an elevator through lua_run?
Or rather, I think the main problem here is that the I/O system Hammer uses is disgusting. Anybody know if there's a thing like Unreal Engine's Kismet, but for Hammer?
VIDE used to be able to force a hidden entity logical flowchart on one of the viewports, but I haven't been able to get it to work anymore. I'm not sure if it was actually functional either, since I never actually tried doing anything past looking at the pretty screen.
Regardless, you're not working with Unreal, so you best get used to Hammer's ~wonderful~ IO.
Well, I used VIDE and it did seem to make the flowchart show up, but it's kind of a clusterfuck to the point where it doesn't help.
So instead of going through all of that, maybe I can make an elevator through lua_run and a Lua script? (this is for Gmod)
[url]http://www.mediafire.com/download/vu3ct367d9yjx8f/elevator.zip[/url]
You need CS:S for textures and Goldeneye:Source content for the elevator control panel.
[QUOTE=GiGaBiTe;44692196][url]http://www.mediafire.com/download/vu3ct367d9yjx8f/elevator.zip[/url]
You need CS:S for textures and Goldeneye:Source content for the elevator control panel.[/QUOTE]
Not to be mean, but did you even read what my problem was?
Did you even download the file and check what was in it? Because he did you a pretty big favor there.
You couldn't figure out that tutorial on the Valve Wiki so I posted a VMF of a working multi-floor elevator I made for you to learn from.
The tutorial on that Wiki is bad and results in a severely glitchy elevator that doesn't work properly. I'd figure you'd learn better from seeing the working thing rather than lengthy and confusing instructions.
My elevator also has several additional sanity checks to prevent abuse by spamming the request buttons to get the elevator stuck.
[QUOTE=Rammelslakje;44676334]For some reason trains always misallign with multiple stops (correct me if i'm wrong but this is a very well known problem).
I figure a move linear would be best with multiple hight positions but i have no idea how[/QUOTE]
I've managed to fix this issue by making the train stop via input with 0.10s delay, worked perfectly for me.
[QUOTE=GiGaBiTe;44692930]You couldn't figure out that tutorial on the Valve Wiki so I posted a VMF of a working multi-floor elevator I made for you to learn from.
The tutorial on that Wiki is bad and results in a severely glitchy elevator that doesn't work properly. I'd figure you'd learn better from seeing the working thing rather than lengthy and confusing instructions.
My elevator also has several additional sanity checks to prevent abuse by spamming the request buttons to get the elevator stuck.[/QUOTE]
Damn, excuse me for that. I'll check it out. I assumed there were just stuff like textures and such in it from what you said in that post.
Okay, so I checked out the VMF you gave me, it definitely made it less confusing, so thanks. :) I tried to do the same with the I/O on my elevator, but this happens (excuse the missing textures):
[video=youtube;xzRF9ONmJK8]http://www.youtube.com/watch?v=xzRF9ONmJK8[/video]
Any ideas as to what I might be missing?
[QUOTE=TFlippy;44693039]I've managed to fix this issue by making the train stop via input with 0.10s delay, worked perfectly for me.[/QUOTE]
Yes but if you have 5 stories or more and some are on different distances from eachother i'm pretty sure it will always keep missalligning at some point, maybe after it's been used for 3 times. I've spend days slightly moving the path's. Movelinear but with 5 different height positions not possible?
Func_movelinear has an input called SetPosition that can be used to:
[QUOTE]Move the brush to a specific position between 0.0 and 1.0, where 0 is the starting position and 1 is the starting position + (move direction * move distance).[/QUOTE]
I haven't used it for an elevator before, but I'd imagine if you have 3 floors, you could send it the input SetPosition 0.5 to make it go to the middle floor.
For 5 stories, just do the math to move it to the right position using a number between 0 and 1.
[QUOTE=Matt2468rv;44695013]Func_movelinear has an input called SetPosition that can be used to:
I haven't used it for an elevator before, but I'd imagine if you have 3 floors, you could send it the input SetPosition 0.5 to make it go to the middle floor.
For 5 stories, just do the math to move it to the right position using a number between 0 and 1.[/QUOTE]
Oh dang, I'll experiment with that tomorrow.
Some help with the issue I'm having in the video I posted would still be helpful, though.
[QUOTE=BlueAndGray;44694379]Okay, so I checked out the VMF you gave me, it definitely made it less confusing, so thanks. :) I tried to do the same with the I/O on my elevator, but this happens (excuse the missing textures):
[video=youtube;xzRF9ONmJK8]http://www.youtube.com/watch?v=xzRF9ONmJK8[/video]
Any ideas as to what I might be missing?[/QUOTE]
Can you post the VMF so I can see it?
[QUOTE=Rammelslakje;44676334]I figure a move linear would be best with multiple hight positions but i have no idea how[/QUOTE]
It baffles me how often people say things like this that seem so obvious and yet I never seem to think of them. What Rammelslakje has recommended would likely be the ideal solution to a multi-stop elevator, and the simplest. Train elevators also have the issue of sometimes cycling through several stops before coming to the requested one, I'm not sure why that is.
[QUOTE=Magman77;44701623]Train elevators also have the issue of sometimes cycling through several stops before coming to the requested one, I'm not sure why that is.[/QUOTE]
Because the track is in a loop. The track starts at the first floor and has a stop on every floor. When the train gets to the last stop, the next stop after that is the first floor again.
So since the train can't go in reverse without flipping out, if you're on a higher floor and want to go to a lower floor, it has to cycle through all of the floors and come back around to the lower floor. This can be ignored on small numbers of floors, but it quickly becomes annoying if you have say a 15 story building to deal with and a slow elevator.
It does it for me even with a linear track that doesn't loop back on itself. Also the "flipping out" issue is easily solved with the fixed orientation flag.
[editline]1st May 2014[/editline]
For instance, if the elevator is at the second of three floors, and I select to go to the first floor, it will sometimes do what I can only describe as a "zig-zag", it'll go down to the first floor, go up to the *third* floor, then go back to the first floor and stop. It's really bizarre, I have no explanation.
[QUOTE=Magman77;44701714]It does it for me even with a linear track that doesn't loop back on itself. Also the "flipping out" issue is easily solved with the fixed orientation flag.[/QUOTE]
"flipping out" being that it starts bouncing between floors, getting stuck, spamming sounds, etc. I've never had it start randomly rotating.
Oh, I've never had it get stuck or spam sounds before. I have had it's sound loop get stuck playing though.
I actually managed to get the func_movelinear method working. I can make it move properly now, but I have just one problem. I can't get it to tell where it is, so the doors can't open automatically. How can I check the position of a func_movelinear? Or at least tell whether it's moving or not? There doesn't seem to be an output for either of those.
It may be a bit convoluted, but what I'd do is make the player pass through a trigger_multiple at each floor. When the player is in the trigger, it fires onstarttouch to start a timer, and when the timer hits zero (or the upper value, whatever) the doors open. That way if the player is just passing through the trigger, you can have it fire onendtouch, and make it reset and turn off the timer. That's one way you could approach it.
[QUOTE=Magman77;44705172]It may be a bit convoluted, but what I'd do is make the player pass through a trigger_multiple at each floor.[/QUOTE]
what if the elevator is empty?
it's better to attach something to the elevator itself that fires outputs.
Well I was assuming that you wouldn't want the doors to open if the elevator were empty, I had originally considered just using the elevator or a brush that is a part of the elevator being used to trigger the volume, and upon further thought this would have to be the solution used. I'm not sure which brush entities can activate trigger volumes mind you.
Would it be possible to do it through filters? Like filter_activator_class? If I can use filter_activator_class, I could use a trigger_proximity. Place it at the origin of the elevator, make the radius the same as the longest the elevator goes, and bam, you've got the distance from the first floor.
You could use that to restrict it to only being triggered by the entity you're using, but said entity still has to be able to be able to activate a trigger volume. I'd just try with func_brushes, some entities you think might work, etc until you find one that works.
In my map ttt_nuclear_power, I have a func_brush parented to the elevator and triggers that detect where it is. Works just fine! For the top and bottom floors, you can use the outputs OnFullyOpen and OnFullyClosed.
You can parent things to the func_movelinear but be sure not to have the func_movelinear parented to anything else, or it will bug out every time.
Sorry, you need to Log In to post a reply to this thread.