Taking the player on a tube ride
Since all of my questions thus far have been answered quickly and efficiently, I'm starting to feel pretty good about coming here for advice and whatnot. Because of this, an Interesting Problem? follows.
I'd like to take the player on a short yet important ride between two different test chambers, using the pneumatic tubes. The idea is that they press a button and are whisked away to another portion of the level, fairly quickly. I know how to actually make a Pneumatic Diversity Vent, but...it doesn't seem like the player can actually fit into a tube.
Is there a way to allow a player to temporarily not abide by clipping and therefore be affected by the func_push to the point where they can move through the tubes with ease, or is there an even better solution to this predicament that I'm not thinking of?
Thanks!
but if somehow you can't get through the tube you can always disable the collision on it and make a larger tube with invisible brushes...
*edit
now that I think about it I might have crouched when I got sucked, not sure though...
CraigChrist wrote:
*editnow that I think about it I might have crouched when I got sucked, not sure though...
Heh, yeah, I can see this. Crouching at different times has become something of an involuntary reaction at times.
back on topic..
I don't know if it exists in portal but in l4d there was a trigger that forced a player to crouch. maybe that could be used? if it exists in portal of course.
Hello again.
I set up a trigger_push chain for the tubes, along with a point_push to push the player into it. There's a point_clientcommand set up to fire +crouch and +jump when User1 is fired, and that happens via a trigger_once (that also enables the point_push).
The problem is, it doesn't seem to be working. :< Upon touching the trigger, nothing happens whatsoever. I've tried a couple different chains, but so far I can't seem to make heads or tails of it.
transition_tube_trigger: OnTrigger -> transition_tube_push -> Enable
transition_tube_trigger: OnTrigger -> command_crouch -> FireUser1
command_crouch: OnUser1 -> !Player -> Command -> +crouch
command_crouch: OnUser1 -> !Player -> Command -> +jump
Wsterfury wrote:
```
transition_tube_trigger: OnTrigger -> transition_tube_push -> Enable
transition_tube_trigger: OnTrigger -> command_crouch -> FireUser1command_crouch: OnUser1 -> !Player -> Command -> +crouch
command_crouch: OnUser1 -> !Player -> Command -> +jump
Ah, here's your issue--the point_clientcommand itself doesn't actually fire any outputs. Instead, put the following outputs on the trigger_once that the player touches just before entering the PDV:
OnStartTouch-->[name of point_clientcommand]-->Command-->+crouch
OnStartTouch-->[name of point_clientcommand]-->Command-->+jump
And on the trigger touched upon exiting:
OnStartTouch-->[name of point_clientcommand]-->Command-->-crouch
```
The point_clientcommand entity receives an output from other entities; it then runs what's in the output's "Parameter" field as though you had typed that into the console.
I got the clientcommand working just fine. The push itself, however, is sadly not running. Even the point_push stopped enabling from the trigger_once. The push triggers have "physics objects" flagged, and when I threw a test cube in the map the push did affect it; is there another flag I should have enabled?
As much of a hassle as this has been, this is one of those things I think I need to learn, and I think the map as a whole will be a lot cooler if I can get it to work.
Also, you should have the 'Client' flag enabled.
If you want to decompile the maps and take a look, the relevent maps are "sp_a2_bts5.bsp" for the initial part with the vent that sucks you in, and "sp_a2_bts6.bsp" for the tube ride. The maps are quite complex though, so you may be a bit overwhelmed if you are new to mapping. You should be able to figure it out by looking at the relevent entities though, and following their I/O comands through the chain of events that they use.
NocturnalGhost wrote:
The game cheats a bit when it comes to this effect. The setup that they use consists of a point_viewproxy, which is set to freeze the player and shift your view to follow a func_tracktrain which travels through the pipes.If you want to decompile the maps and take a look, the relevent maps are "sp_a2_bts5.bsp" for the initial part with the vent that sucks you in, and "sp_a2_bts6.bsp" for the tube ride. The maps are quite complex though, so you may be a bit overwhelmed if you are new to mapping. You should be able to figure it out by looking at the relevent entities though, and following their I/O comands through the chain of events that they use.
So I've noticed! It's taken some time and a little bit of learning into how func_tracks actually work, but I've got the track set up and it looks like this might just be doable yet. :> I'll probably edit this post in a bit if anything changes on that route though.