Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
baja blast rd.

*** The "ask a miscellaneous editing question" thread ***

Recommended Posts

If it helps to explain the entire scenario, then this is what I'm trying to accomplish: I want to put a Cyberdemon in the center of the room, and have him fire at the player. The player must dodge while attempting to complete the map. The player will only be capable of killing the Cyberdemon by telefragging him, which is where the end will be.

Share this post


Link to post

Most maps that use this gimmick don't do anything to prevent the player from attacking the cyberdemon except possibly ammo starvation. If the player isn't equipped to kill the cyberdemon they won't try. If they do well, good for them, they've got to go Tyson-style through the rest of the map! :P

That said, my previous advice still stands as a functional solution if you are using ZDoom based ports.

Share this post


Link to post

I've a limit-removing map I'm creating for the Doonmworld 2017 Community project, and was wondering about the best approach for a couple of things.

I have a custom MIDI for the music and a custom texture for the sky.

Both of these can be easily handled my MAPINFO, but obviously that stops the map being pure limit-removing.

What I was wondering is: what is the closet to vanilla (if that makes sense) I can get while implementing those two?

For the music, the file is over 64Kb so it's truely vanilla compatible, but is it the case that every limit-removing source port can handle MIDIs anyway?

The sky is more tricky. I've been reading up on Sky Transfer for Boom, but that seems to have to be done on a per sector basis, and my map is an outdoor map with plenty of sectors using tags and triggers. Is there any simpler way of changing the sky (I can't change SKY1 itself) without requiring MAPINFO?

Share this post


Link to post
Bauul said:

For the music, the file is over 64Kb so it's truely vanilla compatible, but is it the case that every limit-removing source port can handle MIDIs anyway?

Yes. In fact, even vanilla can handle MIDIs (if they aren't too big).

Bauul said:

The sky is more tricky. I've been reading up on Sky Transfer for Boom, but that seems to have to be done on a per sector basis, and my map is an outdoor map with plenty of sectors using tags and triggers. Is there any simpler way of changing the sky (I can't change SKY1 itself) without requiring MAPINFO?

A simple solution is to use a prefab structure that will provide sky transfers to pretty much every tag you might use.

Share this post


Link to post
Gez said:

That sounds like the first map of Ancient Aliens.

If I recall correctly, that Cyberdemon could be shot at, and the telefrag was basically handed to you due to the area being so small. I'm probably recalling very poorly, though. It wasn't the main source of inspiration for my map. Mere coincidence at best.

As for Dragonfly: Fair enough. It wouldn't be too big a deal to do away with hitscans or just set the Cyberdemon invulnerable. If anything, I could probably put a vertically scrolling transparent texture to illuminate the invisible wall to show the player he can't be hit. I would like to know: Does invulnerable still allow for telefragging?

Share this post


Link to post

Yes, you could waste your ammo on the cyberdemon, but that was definitely not the optimal strategy especially for a MAP01 where you can't come up stocked with a lot of ammo from previous maps.

But the central idea of having to perform actions around the map while harassed by a cyberdemon that you can get rid of at the end through telefragging? That's it.

Another similar idea would be Valiant MAP30, where there were invulnerable towers shooting at you repeatedly. You had to run from cover to cover, ignoring them while tackling the monsters that you could kill.

Telefragging does a ton of damage in one go, so it does bypass invulnerability (as you can test by using god mode and camping in a monster spawning spot of MAP30: Icon of Sin: as soon as a spawn cube goes your way, you'll see that god mode doesn't save you from telefrag death).

Share this post


Link to post
LuridRequiem said:

If I recall correctly, that Cyberdemon could be shot at, and the telefrag was basically handed to you due to the area being so small. I'm probably recalling very poorly, though. It wasn't the main source of inspiration for my map. Mere coincidence at best.

As for Dragonfly: Fair enough. It wouldn't be too big a deal to do away with hitscans or just set the Cyberdemon invulnerable. If anything, I could probably put a vertically scrolling transparent texture to illuminate the invisible wall to show the player he can't be hit. I would like to know: Does invulnerable still allow for telefragging?


Another simple trick is to used Dehacked (or Decorate) to make the Cyb puff instead of bleed when shot. Also drop his pain chance down to 0. The player will very quickly understand you can't kill it, as it's pretty hardwired into every Doom player's brain that if something takes damage, it bleeds. If it doesn't, it puffs.

Edit
I.e. do this: create a new text lump in your wad called DEHACKED and paste this into it:

Patch File for DeHackEd v3.0
# Created with WhackEd4 1.1.1 BETA
# Note: Use the pound sign ('#') to start comment lines.

Doom version = 19
Patch format = 6


Thing 22 (Cyberdemon)
Bits = 4718598
Pain chance = 0
Et voila - no pain chance puffing Cyberdemon! Note this affects all Cybs in the wad, so use Decorate if you want to use more than one.


Edit 2: And thanks for your advice Gez! I'll set up a separate section of the map with a sector for every tagged outdoor sector in the map (which is a hundred or so) and give them each a Linedef 271 and the relevant upper texture. It'll take a little while but should work fine.

Share this post


Link to post
LuridRequiem said:

I would like to know: Does invulnerable still allow for telefragging?


You could make the teleporter that performs the telefragging script based, and then on the line before the teleport occurs, deactivate the invulnerability state.

Script 2 (void) {
    SetActorProperty(1, APROP_Invulnerable, 0); // Note how the 3rd argument is zero this time, this means 'switch this flag off'.

    Teleport(2, 2, 0); //Obviously, change the numbers for the sector/thing tags appropriately.
}

Share this post


Link to post

Okay, so feeling like even more of a noob, I switched over to UDMF. Upon trying to build a teleporter, I can't get it to work. Despite the fact that all linedefs are pointing to a teleporter destination, something isn't working. What exactly am I doing wrong? I apologize for what feels like harassment at this point. Thank you for being patient, lol

Share this post


Link to post
LuridRequiem said:

Okay, so feeling like even more of a noob, I switched over to UDMF. Upon trying to build a teleporter, I can't get it to work. Despite the fact that all linedefs are pointing to a teleporter destination, something isn't working. What exactly am I doing wrong?

The typical case here is when you forget to set the activation method for the line. With Doom format the activation is built-in (there are lines you activate by crossing them, using them, or shooting them) but in Hexen format or UDMF-ZDoom you have to specify how it works. Presumably for a teleporter you'll want "player cross".

I know that, personally, I always forget it.

Share this post


Link to post
Gez said:

The typical case here is when you forget to set the activation method for the line. With Doom format the activation is built-in (there are lines you activate by crossing them, using them, or shooting them) but in Hexen format or UDMF-ZDoom you have to specify how it works. Presumably for a teleporter you'll want "player cross".

I know that, personally, I always forget it.

I'm not quite getting what you mean. The linedefs work when assigned level-end, so I know they're working somewhat.

Edit: Before asking my question, "Repeatable Action" and "When Player Walks Over" have been enabled since I've been trying to accomplish this.

Share this post


Link to post
LuridRequiem said:

"Repeatable Action" and "When Player Walks Over" have been enabled

Good. And the linedef's action has number 70, is called Teleport by the editor, and its first argument matches the destination thing's tag (not its sector's tag), OR its second argument matches the destination sector's tag (not tag of the thing itself), right?

Share this post


Link to post
scifista42 said:

And the action has number 70, is called Teleport by the editor, and its first argument matches the destination thing's (not its sector's) tag, right?

Correct. The teleporter-destination-thing is set to a tag of 1, as are the linedef target teleporter-destination-tag, which are shown here.

Share this post


Link to post

Do make sure that the teleport destination thing is flagged to appear on all difficulty levels.

Share this post


Link to post
LuridRequiem said:

it didn't work at first.

I take it as "it did work at last". As for why it didn't work at first, that could happen if you didn't save the map after making the change and tested it from outside the editor, as opposed to testing via the editor's own Test Mode.

Share this post


Link to post
scifista42 said:

I take it as "it did work at last". As for why it didn't work at first, that could happen if you didn't save the map after making the change and tested it from outside the editor, as opposed to testing via the editor's own Test Mode.

That's most likely the case, not saving and thinking I did, lol!

I've been overriding MAP01 through ZDL to prevent a bunch of garbage entries piling up in the external files directory. Seems more proficient that way.

Edit: I want to make it clear that I was saving while making changes. I was making small map changes to make sure running the teleporter test WAD through ZDL wasn't the issue. Obviously, the map changes were happening when launching GZDoom.

Share this post


Link to post
LuridRequiem said:

That's most likely the case, not saving and thinking I did, lol!

I've been overriding MAP01 through ZDL to prevent a bunch of garbage entries piling up in the external files directory. Seems more proficient that way.

Edit: I want to make it clear that I was saving while making changes. I was making small map changes to make sure running the teleporter test WAD through ZDL wasn't the issue. Obviously, the map changes were happening when launching GZDoom.


try "Target Sector Tag" to put the number in. Not "Target Teleport Dest. Tag" to put the tag assignment number in. & then of course have a teleport destination thing "type 14" in things mode type "14" on the keyboard where the "type" number goes.

Share this post


Link to post

I've been at this for hours trying to figure out what's wrong with this incredibly simple little line that produces nothing but errors. I know it's missing the #include "zcommon.acs", but with that, it only tells me that's an error too and won't let me do anything until I remove it. I can get the print thing to work but the print only holds the text up for a second and then disappears. I'm going to need this text to be up for at least 10-15 seconds.



Edit: I copied letter by letter, character by character from a guy who did it and had it work without any problems whatsoever. This makes no sense lol

Share this post


Link to post

You've doubled up on { curly braces }. You didn't need to do this. See below.

Script 1 (void) {
    HudMessage(s:"Tist"; HUDMSG_PLAIN, 0, CR_DARKRED, 0.5, 0.5, 1);
}

Also, welcome to Doomworld. :)

Share this post


Link to post
aussj4link said:

I can get the print thing to work but the print only holds the text up for a second and then disappears. I'm going to need this text to be up for at least 10-15 seconds.

As explained here (though I know that function is especially confusing), the sixth parameter after the text is the hold time, which is how long the message should stay on. Your code has a hold time of 1, so it stays on for one second. If you want 15 seconds, replace it by 15.

Script 1 (void)
{
    HudMessage(s:"Tist"; HUDMSG_PLAIN, 0, CR_DARKRED, 0.5, 0.5, 15);
}

Share this post


Link to post
Dragonfly said:

Script 1 (void) {
    HudMessage(s:"Tist"; HUDMSG_PLAIN, 0, CR_DARKRED, 0.5, 0.5, 1);
}

There are two types of programmers...

Script 1 (void)
{
    HudMessage(s:"Tist"; HUDMSG_PLAIN, 0, CR_DARKRED, 0.5, 0.5, 1);
}
If you see it, then you know... :D

Share this post


Link to post
Nevander said:

There are two types of programmers...

There are 10 types of programmers actually.

Spoiler

Those who use binary, and those who don't.

Share this post


Link to post

Is there any way to have a low-res sky for Boom ports and a high-res sky for ports that support it in the same map?

I'm using Sky Transfer (as per my post above) for Boom compatibility, but I'd like to override my vanilla-suitable sky with a nice hi-res one for ZDoom and the like players.

Is there any way to override Sky Transfer? I tried MAPINFO, but Sky Transfer takes precedence over that it seems. Perhaps some kind of script?

This is for the Doomworld Community Project, so I can't override any stock textures.

Share this post


Link to post

I know it's deprecated, but perhaps a hirestex lump would be the trick?
Alternately it might be achievable with a LOADACS lump which has a script to change the sky in ZDoom ports?

Share this post


Link to post

Let's say your custom sky (that you put it through sky transfer) is called MYSKY. You have your low-res MYSKY defined in TEXTURE1 or TEXTURE2, as usual.

Now create two marker lumps called HI_START and HI_END. Put your high-res sky there, called MYSKY.

What happens now:

  • vanilla/strict Boom don't see the high-res MYSKY and they don't see the sky transfer, you get default sky.
  • PrBoom+ and other MBF-compatible ports see the sky transfer and apply it, but they don't necessarily see the high-res MYSKY.
  • ZDoom, GLBoom+, and other ports compatible with both high-res replacements and sky transfer see the sky transfer and see the high-res MYSKY and use it.
So depending on what port is used, you can get the high-res custom sky, but this setup will degrade gracefully to just the regular-res custom sky or even the default sky in more limited engines.

Share this post


Link to post

Awesome, thank you! that's exactly what I was hoping for! The rest of the map is plain old limit-removing so it seemed silly to mandate advanced ports just for a pretty sky. Thanks again!

Share this post


Link to post

Thanks for the responses. The reason for the second set of brackets is because I had some other stuff in there before I started getting nothing but errors. So what I had been doing was just removing lines trying to narrow down where the errors were coming from until I finally got to that line with the hudmessage. Also, I know about the holdtime at the end and the reason why that's a 1 is because if I set that to any other number, doom would just tell me I made a runaway script. I tried to be extremely meticulous and do exactly as tutorials said and the info on the wiki but all of it seems to produce nothing but errors. I couldn't help but tear my hair out when I saw other people do the exact same thing I was without any trouble at all.

Share this post


Link to post

Man I just keep coming up with questions today! Ok, new one, unrelated to the above.

If I have an ambient sound defined in SNDINFO as having a random starting time (as opposed to continuous or periodic) and I place two separate ambient sound actors in my map that draw from the same sound, will they play at different random intervals, or is the random activation of the sound calculated globally (i.e. affects all ambient sound actors for that sound in the same way)?

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
×