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

Synchronized Monster Teleport Gauntlet Issue

Question

Hello! On my map I have an arena that forces the player into an elevator, where they have to wait for it to raise before they can access a teleporter. While it is raising, my plan is for monsters to spawn in three waves on opposite sides of the room at certain intervals of time of the elevator's raising. My currently solution works per se, but the monsters aren't arriving synchronized like I had intended. Here is my current solution. Note that the monsters in the above sectors are all temporary, I have yet to decide what actual monsters to send in. 

 

614660529_Monsterelevator1.png.bab36ac19b4c52bb93e8dbfad8f46059.png

image.png.b55b837ba7206f673aa708d5f4bfd547.png

 

Here's the script I have. It is activated by the switch on the opposite side of the teleporter:

 

Floor_MovetoValue(49,1,24,0);
Floor_MovetoValue(75,1,24,0);
Floor_MovetoValue(76,1,24,0);
Floor_MovetoValue(77,1,24,0);
Floor_MovetoValue(63,1,56,0);
Floor_MovetoValue(64,1,24,0);
Floor_MovetoValue(78,1,0,0);

 

Sectors, 49, 75,76, and 77 are the four seperate sections. 78 is the sectors in the monster sectors. That sector lowers to the level of the monsters, where they can access the teleporter linedef at it's edge. The teleporters in the 6 sectors above are divided as follows: The upper two, and right two teleport to 49 and 76, and the bottom left two teleport to 75 and 77.

 

The monster sectors are joined with a sector outside of the arena, where the player fights some imps, that way they will wake up.

 

The issue I am having is that monsters don't teleport in sequence when the teleporter reaches their level. Sometimes only one monster will enter on one side while the other takes a moment or two to get inside. Often I've noclipped to their sectors to see them fuck around inside of their closet, sometimes walking over the teleport linedef without even teleporting. 

 

I'm editing in Zdoom hexen format and am using GZDoom to test.

 

If anyone has a fix for my solution, or a better solution let me know please! It would really help to make this area pretty darn cool!


bonus question:

Spoiler

 

I have another question that pertains to this room.

 

The elevator room is supposed to strobe while raising, but sectors 49 and 63 strobe at a different interval to the other three. 

Here's my script (activates on the same switch as mentioned above):

Light_Strobe(49,160,48,6,40);
Light_Strobe(75,160,48,6,40);
Light_Strobe(76,160,48,6,40);
Light_Strobe(77,160,48,6,40);
Light_Strobe(64,160,48,6,40);
Light_Strobe(63,160,48,6,40);

 

It looks scripted well to me, but I don't know why the sequence is broken. If you answer this bonus question, you get brownie points :)

 

 

Edited by BluePineapple72 : Added a bonus question. 2: Fixed the grammar of the title.

Share this post


Link to post

4 answers to this question

Recommended Posts

  • 1
9 hours ago, BluePineapple72 said:

The issue though, is that when practicing with spawning things using scripting, I've often had issues of that thing not spawning at all. For example, there is a souldsphere that spawns in a room while the player walks around that room, but the soulsphere wouldn't spawn in the center for whatever reason

That can happen if there's not enough physical space for it to spawn, even for items with no collision. Either give it more room to spawn or use a forceful spawning function, such as SpawnSpotFacingForced.

 

https://zdoom.org/wiki/SpawnSpotFacingForced

 

9 hours ago, BluePineapple72 said:

Another issue I faced was when using a map point to spawn in a chaingunner, and then a revenant in that same spot but later in the level. The revenant wouldn't spawn.

Assuming the MapSpot isnt blocked, I don't know why it wouldn't spawn. Make sure you are using the correct TID of the MapSpot. You may also need to use MapSpotGravity if the MapSpot is placed on a sector which moves.

 

9 hours ago, BluePineapple72 said:

How would I be able to change the scripting to match the difficulty. Part of the reason I did it with the lifts was so that I could change the monsters based on skill level.

Simply use the GameSkill function to check the difficulty with an if/else and choose different actions.

 

https://zdoom.org/wiki/GameSkill

Share this post


Link to post
  • 1

Since you are using ACS, I'd just forcefully spawn the monsters into the area when you want instead of relying on them moving into teleport lines on their own. That can cause some inconsistencies with the timing but ACS is exact.

 

Another thing to keep in mind, certain monsters are bigger so it's possible they can't cross the teleport line, which is why they would still be in the room.

 

Or, yet another possibility is that they were blocked from teleporting and the line won't work again or they can't cross it again.

 

Using a spawn function, such as my favorite Thing_SpawnFacing allows me to do what I want. Also since they are spawned instead of teleported, if you happen to block the spawn, it won't affect the kill count and also won't break scripts which rely on all of a TID being killed assuming you set up your script correctly.

 

https://zdoom.org/wiki/Thing_SpawnFacing

https://zdoom.org/wiki/SpawnSpotFacing

 

I'm not sure about the light strobe. It's been a while since I did light strobe with ACS and I seem to recall having a similar problem but I don't remember all the details.

Share this post


Link to post
  • 0
26 minutes ago, Nevander said:

Since you are using ACS, I'd just forcefully spawn the monsters into the area when you want instead of relying on them moving into teleport lines on their own. That can cause some inconsistencies with the timing but ACS is exact.

 

Another thing to keep in mind, certain monsters are bigger so it's possible they can't cross the teleport line, which is why they would still be in the room.

 

Or, yet another possibility is that they were blocked from teleporting and the line won't work again or they can't cross it again.

 

Using a spawn function, such as my favorite Thing_SpawnFacing allows me to do what I want. Also since they are spawned instead of teleported, if you happen to block the spawn, it won't affect the kill count and also won't break scripts which rely on all of a TID being killed assuming you set up your script correctly.

 

https://zdoom.org/wiki/Thing_SpawnFacing

https://zdoom.org/wiki/SpawnSpotFacing

 

I'm not sure about the light strobe. It's been a while since I did light strobe with ACS and I seem to recall having a similar problem but I don't remember all the details.

Ah, sweet! That seems so much more simple!

 

The issue though, is that when practicing with spawning things using scripting, I've often had issues of that thing not spawning at all. For example, there is a souldsphere that spawns in a room while the player walks around that room, but the soulsphere wouldn't spawn in the center for whatever reason. (that room is where the player spawns, and gets the shotgun, and the soulsphere is supposed to spawn in the same spot.)

 

I managed to get it to work when I moved the spawn point away from where any monsters could die on it/where the shotgun isn't, but I didn't like that it wasn't in the center.


Another issue I faced was when using a map point to spawn in a chaingunner, and then a revenant in that same spot but later in the level. The revenant wouldn't spawn.

 

If I were to use map points to mark where the things spawn, how can I grantee that they would spawn 100% of the time where I want them

 

AND

 

How would I be able to change the scripting to match the difficulty. Part of the reason I did it with the lifts was so that I could change the monsters based on skill level.

 

Share this post


Link to post
  • 0
10 hours ago, Nevander said:

That can happen if there's not enough physical space for it to spawn, even for items with no collision. Either give it more room to spawn or use a forceful spawning function, such as SpawnSpotFacingForced.

 

https://zdoom.org/wiki/SpawnSpotFacingForced

 

Assuming the MapSpot isnt blocked, I don't know why it wouldn't spawn. Make sure you are using the correct TID of the MapSpot. You may also need to use MapSpotGravity if the MapSpot is placed on a sector which moves.

 

Simply use the GameSkill function to check the difficulty with an if/else and choose different actions.

 

https://zdoom.org/wiki/GameSkill

Ah, thank you very much! I had both map spots on moving platforms. I'd reckon that's what has been giving me issues.

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
×