Brock Posted January 2, 2019 (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 January 2, 2019 by Finnthemapmaker 0 Share this post Link to post
Fuzzball Posted January 2, 2019 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. 2 Share this post Link to post
Brock Posted January 3, 2019 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 0 Share this post Link to post
Dexiaz Posted January 3, 2019 (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). 1 Share this post Link to post
Kappes Buur Posted January 3, 2019 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. 0 Share this post Link to post
Linguica Posted January 3, 2019 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. 8 Share this post Link to post
Nine Inch Heels Posted January 3, 2019 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. 2 Share this post Link to post
Nevander Posted January 3, 2019 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. 2 Share this post Link to post
boris Posted January 4, 2019 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. 2 Share this post Link to post
Empyre Posted January 4, 2019 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. 0 Share this post Link to post
Linguica Posted January 4, 2019 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. 5 Share this post Link to post
therektafire Posted January 12, 2019 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 0 Share this post Link to post