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

Mimicking Teleport: No Stop with Teleport: To Line

Question

I'm trying to replicate the feature "Teleport: No Stop" in odamex and zdaemon with "Teleport: to line" and I'm at a bit of a loss with what to do.

 

It mostly works but the biggest catch is the lack of sound and lack of teleport fog. Odamex and Zdaemon are both extremely limited in ACS scripts and neither support decorate. My question is how can I at least get a teleport sound (one that isn't global or purely local) and potentially a teleport fog to work? Format is "zdoom: doom in hexen" and this format cannot be changed.

Share this post


Link to post

19 answers to this question

Recommended Posts

  • 0

I'm really not sure to what extent the ACS capabilities go, but if you can spawn actors then try spawning the TeleportFog actor as that will take care of the fog effect.

As for the sound, maybe you can apply the same concept? Spawn something that plays the teleport sound? That's the only thing I can think of at the moment.

Share this post


Link to post
  • 0
5 hours ago, jdagenet said:

As for the sound, maybe you can apply the same concept? Spawn something that plays the teleport sound? That's the only thing I can think of at the moment.

Don't know about these ports in particular, but ZDoom plays the teleport sound when you spawn a TeleportFog.

Share this post


Link to post
  • 0

I was unable to spawn a teleport fog. I don't think spawning an actor is supported by odamex. I tried spawning an item (health bonus) to get the fog to appear but that didn't work. Granted, that was using SpawnSpot as opposed to Spawn, since I am incapable of scripting and didn't quite get how Spawn worked. I think I may be screwed in this instance.

Share this post


Link to post
  • 0

Maybe make a DEH "monster" that goes through the teleport fog sequence (and plays the "wakeup" sound) when "alerted" (when it sees the player)?

I might be wrong though.

Share this post


Link to post
  • 0
14 hours ago, Decay said:

I was unable to spawn a teleport fog. I don't think spawning an actor is supported by odamex. I tried spawning an item (health bonus) to get the fog to appear but that didn't work. Granted, that was using SpawnSpot as opposed to Spawn, since I am incapable of scripting and didn't quite get how Spawn worked. I think I may be screwed in this instance.

It's possible that the player is in the way when it tries to spawn, and as a result nothing happens. You could try using SpawnSpotForced instead.

Share this post


Link to post
  • 0

@Ichor i had placed the mapspot in front of the teleport in testing rather than on it so i could actually see if it worked or not, nothing showed up.

 

@bzzrak i gave some thought to this earlier, if i can get something to teleport to the destination (say, a DEH replacement for dead lost soul), this could be feasible. However, I have never worked with DEH. I could also put this replacement in a dummy sector and teleport it in, which could work if it's a healthbonus or something, maybe. Would an item respawn in its original location if it was used as a teleport gimmick? Can i adjust respawn times for that particular item (iirc i don't think so)?

Share this post


Link to post
  • 0

Not sure if this helps, but I've played around before trying to achieve something similar with Boom's 'teleport to line' action. Here's a quick knock-up of one solution, using a health potion (just since you mentioned them - I'd probably want to use something invisible and non-pickupable). I'd imagine it would be possible to set up something similar - or even simpler, if you can just spawn a new potion to a scroller after each teleport - in ZDoom format. This is set to be repeatable 4 times - obviously this could be extended.

 

linepuff.zip

Edited by durian : Archive was empty for some reason.

Share this post


Link to post
  • 0

@Ichor

The first attempt was

 

#include "zcommon.acs"

script 1 ENTER
{
    SpawnSpot("teleportfog", 1);
}

 

Further attempts

 

Thing_Spawn(1, "T_HEALTHBONUS", 0); (also tried teleport fog)

"Spawn" didn't work either

 

@durian I put some thought into that, but a problem comes up when multiple people start using the teleport rapidly. I'd probably have to muck around with several lines for separate walls going up and down instantly, and online this could cause breakage.

 

I'm starting to think trying to use some scrolling instead, like sector_setcurrent (though this is not supported in odamex). This way, I could use a standard teleport but the player will still be pushed out of the sector (preventing telefragging)

Sector_copyscrolling isn't supported

sector_wind isn't supported

 

The only feasible way to use scrolling while hiding the ugly scrolling would be a transfer_height floor 1 unit over top the scrolling floor, but then this requires some modification and frankly i'm not sure it's worth it.

 

Is there some other sector effect that pushes players out?

 

Share this post


Link to post
  • 0

Hmm...try changing 'ENTER' to '(void)' and see if that works.

Share this post


Link to post
  • 0

No dice. SpawnSpot is flat out not supported, neither is Spawn. Both return "unknown p_code" errors.

Thing_spawn works but nothing actually spawns... or at least it doesn't return a p_code error.

Share this post


Link to post
  • 0

So Thing_Spawn actually does work. Ok, there's that. I think when you go through the teleporter, the thing tries to spawn, but your solidness gets in the way. How about this then? Maybe if you spawned the thing a split second before you used the teleport script, it could work.

Share this post


Link to post
  • 0

The thing is though, I'm not actually spawning anything on the destination. I deliberately put it 128 units in front of the destination so I could see if it was spawning anything, and there is nothing there to block it.

Share this post


Link to post
  • 0

Ok, plan b. Maybe upload the map somewhere so we can see what the problem might be.

Share this post


Link to post
  • 0

https://www.sendspace.com/file/77xb6x

 

Here's a demo wad. The silver tele-pad immediately in-front of the player is action 80: script execute. The script is

#include "zcommon.acs"

script 1 (void)
{
    Thing_spawn(1, "t_healthbonsu", 0, 0);
}

 

The mapspot is on the red tele-pad.

 

The further silver telepad (adjacent to the red one) currently has no purpose, i put it there for the inevitable multiple tests i will conduct.

Share this post


Link to post
  • 0

Hopefully this will work. Funny thing though...it took a while for me to get it working, and even then I had to use SpawnSpotForced. I still don't know why it wasn't working.

teleportdemo2.zip

Share this post


Link to post
  • 0

What port are you testing in? Odamex returns an error "unknown p_code 240 in script 1" = spawnspotforced is not supported at all.

Share this post


Link to post
  • 0

I was using ZDoom. Anyway, that is strange. Thing_Spawn should have worked, and for some reason, it was spawning shotgun guys instead of health potions when I was using t_healthbonus. And now wne I do use Odamex, it says there no player 1 start.

Share this post


Link to post
  • 0

Well, Odamex is drawing on *parts* of zdoom 1.22 and zdaemon draws on zdoom 1.23b iirc, so testing in zdoom isn't going to help. A ton of stuff that should be supported isn't, and it's a total gamble if it works online if it's even supported offline. I think I'll just have to call it a day on this - it's a lot of effort for just a couple maps with teleports, I just need to decide whether or not I should keep silent but moving teleports or signalling but stopping teleports. Thanks for the attempts and previous advice from everybody though.

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
×