Placing a teleporter under a 3D floor.

Ask about mapping, UDMF, using DoomBuilder/editor of choice, etc, here!
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.

Placing a teleporter under a 3D floor.

Postby Amuscaria » Thu Dec 07, 2017 1: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?
User avatar
Amuscaria
The Sentient Mushroom
 
Joined: 26 Jul 2004
Location: Growing from mycelium near you.

Re: Placing a teleporter under a 3D floor.

Postby Nevander » Thu Dec 07, 2017 3:04 am

I don't think it's possible but I'm not positive. I wish GZDoom/UDMF had an "actor enters thing radius" thing which only triggers when an actor touches said thing. So you could place one and it would trigger when an actor touches it. Doom 64 has one that gets used for several triggers in some maps.
User avatar
Nevander
The Doomslayer
 
Joined: 06 Jan 2014
Location: United States

Re: Placing a teleporter under a 3D floor.

Postby Graf Zahl » Thu Dec 07, 2017 3:05 am

No easy way. Walkover linedefs always cover the entire height. Your only chance is a script that checks the actor's z-position before triggering the action you want.
User avatar
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Placing a teleporter under a 3D floor.

Postby Mr.Enchanter » Thu Dec 07, 2017 3:17 am

This ^

While working on Kino Der Toten for NZDE, this problem came up but with scripted sectors.
That being said, ActorHitsFloor in sector actors may work but I doubt it.
User avatar
Mr.Enchanter
Certified Shitposter
 
Joined: 21 Mar 2015
Location: USA
Discord: Enchanter#5420

Re: Placing a teleporter under a 3D floor.

Postby ramon.dexter » Thu Dec 07, 2017 5:56 am

And what about connecting the teleport linedef action to a invisible actor and then trigger that action when player bumps this invisible actor?
User avatar
ramon.dexter
My hovercraft is full of eels
 
Joined: 20 Oct 2015
Location: Kozolupy, Bohemia

Re: Placing a teleporter under a 3D floor.

Postby Amuscaria » Thu Dec 07, 2017 12:58 pm

Thanks. I'll just use something else.

EDIT:

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?


That might work. Gonna test it out.
Last edited by Amuscaria on Fri Dec 08, 2017 12:21 pm, edited 1 time in total.
User avatar
Amuscaria
The Sentient Mushroom
 
Joined: 26 Jul 2004
Location: Growing from mycelium near you.

Re: Placing a teleporter under a 3D floor.

Postby Gez » Thu Dec 07, 2017 1:54 pm

What happens if you use a sector action: player enters sector on a 3D floor's control sector?
Gez
 
 
 
Joined: 06 Jul 2007

Re: Placing a teleporter under a 3D floor.

Postby Amuscaria » Sat Dec 09, 2017 1:39 am

Gez wrote:What happens if you use a sector action: player enters sector on a 3D floor's control sector?


I'm unfamiliar with sector actions.
User avatar
Amuscaria
The Sentient Mushroom
 
Joined: 26 Jul 2004
Location: Growing from mycelium near you.

Re: Placing a teleporter under a 3D floor.

Postby Graf Zahl » Sat Dec 09, 2017 3:16 am

Amuscaria wrote:Thanks. I'll just use something else.

EDIT:

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?


That might work. Gonna test it out.


One piece of advice: Don't!
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.
User avatar
Graf Zahl
Lead GZDoom Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Placing a teleporter under a 3D floor.

Postby Nash » Sat Dec 09, 2017 3:22 am

The only little nuisance by implementing height checks in the script is you need to provide an absolute Z coordinate to check against, and if for whatever reason the map's floor height is altered, you'd have to recompile the script...
User avatar
Nash
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia

Re: Placing a teleporter under a 3D floor.

Postby ramon.dexter » Sat Dec 09, 2017 3:42 am

Graf Zahl wrote:
Amuscaria wrote:Thanks. I'll just use something else.

EDIT:

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?


That might work. Gonna test it out.


One piece of advice: Don't!
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.


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.

(I'm asking because explanaition like "Don't" is not explanatory enough for me.)
User avatar
ramon.dexter
My hovercraft is full of eels
 
Joined: 20 Oct 2015
Location: Kozolupy, Bohemia

Re: Placing a teleporter under a 3D floor.

Postby Gez » Sat Dec 09, 2017 9:00 am

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.

And replacing a teleport action with a script action so that you can do the check isn't a hack or a workaround? :P

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?
Gez
 
 
 
Joined: 06 Jul 2007

Re: Placing a teleporter under a 3D floor.

Postby Arctangent » Sat Dec 09, 2017 9:14 am

ramon.dexter wrote:Hi Graf, sorry to ask, but can you explain to me, what is exactly 'hacky' in this approach?

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.
User avatar
Arctangent
squawky
 
Joined: 06 Nov 2014
Discord: SquawkyAtan#2371

Re: Placing a teleporter under a 3D floor.

Postby phantombeta » Sat Dec 09, 2017 9:20 am

Gez 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 give the control sector a tag and use GetSectorCeilingZ and GetSectorFloorZ to check its height. :P
I wonder if CheckSwitchRange would do anything to teleport lines... Probably not, but worth checking, I guess...
User avatar
phantombeta
In the meadow of sinful thoughts, every flower's a perfect one
 
Joined: 02 May 2013
Location: The United Soviet Socialist Dictatorship of Hueland (BRASIL CARAI)
Discord: phantombeta#2461

Re: Placing a teleporter under a 3D floor.

Postby AFADoomer » Sat Dec 09, 2017 12:34 pm

Arctangent wrote:
ramon.dexter wrote:Hi Graf, sorry to ask, but can you explain to me, what is exactly 'hacky' in this approach?

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.


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.
User avatar
AFADoomer
 
Joined: 15 Jul 2003

Next

Return to Mapping

Who is online

Users browsing this forum: No registered users and 1 guest