Placing a teleporter under a 3D floor.
Posted: Thu Dec 07, 2017 12:12 am
Is there a easy way, in UDMF, to have a teleporter under a 3D floor that only teleports when you're on the lower floor, but not upper floor?
That might work. Gonna test it out.ramon.dexter wrote:And what about connecting the teleport linedef action to a invisible actor and then trigger that action when player bumps this invisible actor?
I'm unfamiliar with sector actions.Gez wrote:What happens if you use a sector action: player enters sector on a 3D floor's control sector?
One piece of advice: Don't!Amuscaria wrote:Thanks. I'll just use something else.
EDIT:
That might work. Gonna test it out.ramon.dexter wrote:And what about connecting the teleport linedef action to a invisible actor and then trigger that action when player bumps this invisible actor?
Hi Graf, sorry to ask, but can you explain to me, what is exactly 'hacky' in this approach? Action special could be connected to actor, that is 100% legit approach and I really dont see how it could break anyhting. Also, it could leave the height check on the engine, without any supporting coding (like checking for palyers height). I just dont see any 'hack' approach in this. Just a little irregular approach, but nothing more.Graf Zahl wrote:One piece of advice: Don't!Amuscaria wrote:Thanks. I'll just use something else.
EDIT:
That might work. Gonna test it out.ramon.dexter wrote:And what about connecting the teleport linedef action to a invisible actor and then trigger that action when player bumps this invisible actor?
If you implement a hack, don't be surprised if it glitches a few years down the line, in case some quirk changes.
Regarding the other suggestions: Why are they even being made? The goal here is clear: You want to restrict the height at which the action triggers. So implement something that checks the position of the triggering object! Everything else is working around the issue.
And replacing a teleport action with a script action so that you can do the check isn't a hack or a workaround?Graf Zahl wrote:Regarding the other suggestions: Why are they even being made? The goal here is clear: You want to restrict the height at which the action triggers. So implement something that checks the position of the triggering object! Everything else is working around the issue.
You're replacing a trigger based around walking over a non-solid line with bumping into a solid actor. That alone should really illustrate how hacky this method is, but you also need to keep in mind that walk-over line specials don't trigger based on bounding boxes - they only trigger when the actor's center crosses the line. So actor collisions don't exactly make a good approximation, considering they're entirely based around bounding boxes.ramon.dexter wrote:Hi Graf, sorry to ask, but can you explain to me, what is exactly 'hacky' in this approach?
You give the control sector a tag and use GetSectorCeilingZ and GetSectorFloorZ to check its height. :PGez wrote:What if you need to change the 3D floor's height for some reason and forget to update the script? Heck, what if the 3D floor moves up and down?
You can "touch" a non-solid actor... And, besides being able to do z-height checks, the actor can be set up to trigger actions based on the horizontal distance between it's center and the bumpee/activator. If you have an action that should only take place when the player is within a certain radius of a specific point, then this gives you far better control than approximating the circle around the point with lines... Plus, if needed, you can write your own ZScript-based actions instead of relying on line specials or ACS.Arctangent wrote:You're replacing a trigger based around walking over a non-solid line with bumping into a solid actor. That alone should really illustrate how hacky this method is, but you also need to keep in mind that walk-over line specials don't trigger based on bounding boxes - they only trigger when the actor's center crosses the line. So actor collisions don't exactly make a good approximation, considering they're entirely based around bounding boxes.ramon.dexter wrote:Hi Graf, sorry to ask, but can you explain to me, what is exactly 'hacky' in this approach?