Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Finnthemapmaker

Help with Teleport traps

Recommended Posts

Posted (edited)

Hey how can i make monster teleport when player crosses a line or picks up a item ? And don't link me the doom wiki, this is as useful as me shooting my own foot.

Edited by Finnthemapmaker

Share this post


Link to post

What complat/map format are you working with first? There are several ways to do it based on whether or not you are going for zdoom'isms or just plain old vanilla or boom.

Share this post


Link to post
6 hours ago, Fuzzball said:

What complat/map format are you working with first? There are several ways to do it based on whether or not you are going for zdoom'isms or just plain old vanilla or boom.

UDMF format Gzdoom

Share this post


Link to post
Posted (edited)

Well, you need to make few things at start:

1) Create a box sector which is not connected to anything on your regular map. This box must contain your monsters

2) Your teleportation spot must be the "Map Spot" item on map

You need to create an ACS script like this:

script 1 (void)
{
   TeleportOther (3, 2, 1);
}

 

3 means monster tag (you need to tag your monster/monsters as "3").

2 means MapSpot tag (teleport destination)

1 means teleport green fog (enable fog)

 

If you want to make "teleporting" monster when you'll pick up an item - make an "action on pickup". Your action must be #80 (ACS Execute).

Share this post


Link to post

On the linedef to be crossed specify an action special

 

76:TeleportOther (tid, destination_tid, fog) or

77:TeleportGroup (tid, source, destination, movesource, fog)

 

Or instead use a script.

Set the action special

80:ACS_Execute (script, map, s_arg1, s_arg2, s_arg3)

on the linedef and make a textfile with the actions you want to

accomplish and compile that.

 

I would link you to the examples on the WIKI, but you don't like that.

Share this post


Link to post

This is all overly complex. If you want to make a teleport trap, the easiest way to do it is precisely what id Software did in Doom:

 

* Create a small "sound tunnel" leading from the area you want monsters to teleport into, off to a room outside the level filled with monsters, that will wake up when they hear gunfire noise being transmitted down the sound tunnel

* Put teleport lines in that room that lead to teleport points in the sectors you want the monsters to teleport to, then tag the lines and sectors appropriately

* Have the teleport lines not be crossable until the player walks over a line and triggers a door opening inside the monster room and lets them reach the teleport lines while trying to walk towards the player

 

Look at Doom 2 Map16 for an example of how this is done. Once you have the most simple sort of teleport trap working you can start to get more involved with actually using scripting features or what have you. But it's as likely that putting in the simplest sort of teleport trap will be Good Enough.

Share this post


Link to post

Why use sound tunnels, which potentially get in the way later, when you can just merge sectors (See "back to saturn X") in order to make the sound propagate into the "teleport battery"? It's easier and faster than making an actual sound tunnel in my opinion.

I like the "oldschool" method, but I also think that merging the sectors, instead of employing sound tunnels, makes it even better than it already is.

Share this post


Link to post
15 hours ago, Finnthemapmaker said:

UDMF format Gzdoom

In that case, use the simplest method: spawn directly with ACS with a function such as Thing_SpawnFacing.

Share this post


Link to post
6 hours ago, Đeⓧiaz said:

2) Your teleportation spot must be the "Map Spot" item on map

You need to create an ACS script like this:


script 1 (void)
{
   TeleportOther (3, 2, 1);
}

 

It doesn't have to be a map spot, a normal telport destination works just fine.

 

The script has the problem that it doesn't keep trying to teleport the thing when the destination is blocked. For that you have to use something like

 

script 1 (void)
{
	while(!TeleportOther(3, 2, TRUE))
		Delay(1);
}

 

1 hour ago, Nevander said:

In that case, use the simplest method: spawn directly with ACS with a function such as Thing_SpawnFacing.

The advantage of placing the monsters in your map and not spawning them at runtime is that you can see right from the start how many monsters are in your map, if the player choses to display that information.

Share this post


Link to post

Make a room for them to teleport from, join it to a room where you know the player will be shooting so the monsters will wake up, put a door in their way that will open when the player crosses a line, and set the front wall of the teleport closet to repeatedly teleport the monsters when they bump it. That will work reliably.

Share this post


Link to post
6 hours ago, Nine Inch Heels said:

Why use sound tunnels, which potentially get in the way later, when you can just merge sectors

 

Because I wanted to give a simple set of instructions a person can follow that don't involve any complicated procedures or advanced knowledge of the game engine. That's why I said if they can get that working then they could start looking at more advanced methods of doing a teleport trap, but they might as well start with the "simple way" so they know how to do it at all.

Share this post


Link to post

Well imo you don't need to "know the complicated procedures or advanced knowledge of the engine" to figure out how to merge sectors, that was pretty easy tp grasp when I first started mapping, its literally just selecting 2 sectors and hitting a shortcut in the editor.]\ (at least that's how it goes for modern editors like eureka and gzdoom builder bugfix). Though I do remember screwing things up a few times and putting the monster closets facing the wrong direction which is less obvious than merging the sectors, and using W1 instead of WR :D It isn't hard to explain to someone that doom's sound is sector based so if you merge sectors then they will be all part of the same sector so the monsters in the teleport room will hear you when you shoot inside the main area it is merged with or an area adjacent to it that isn't being affected by sound block lines, and it isn't that hard to understand either

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×