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

Screwing around with DEH\BEX

Recommended Posts

Patch File for DeHackEd v3.0
Doom version = 21
Patch format = 6

# Turn imp into a clipless trooper...
Thing 12 (Imp)
Initial frame = 174
Hit points = 20
First moving frame = 176
Injury frame = 187
Close attack frame = 0
Far attack frame = 184
Death frame = 189
Exploding frame = 194
Respawn frame = 203
Bits = SHOOTABLE + SOLID + COUNTKILL

Share this post


Link to post

Couldn't you also change the dropped ammo/weapon to a blank, invisible item and change a blank item to the corresponding ammo/weapon (for normal, manually placed pickups)? Or would that cause problems?

Share this post


Link to post
Phml said:

Couldn't you also change the dropped ammo/weapon to a blank, invisible item and change a blank item to the corresponding ammo/weapon (for normal, manually placed pickups)?

Not with DEH/BEX, pickups are hard-coded in the engine, so you could make the bullet clip invisible and untouchable but there is no way to make another item act as a bullet clip.

Share this post


Link to post

I'm not sure I understand. I made a bex patch where shotgunners dropped shells instead of shotguns (turning the shotgun into shells, all I did is change the item ID and sprite IIRC). It seems to work fine. Admittedly, I don't use the normal shotgun, so maybe that's why it works?

Share this post


Link to post

Yeah, you could swap the trooper's details with a different thing that doesn't drop items. Alternatively, you could make clips be invisible and un-pickupable, but that would have the adverse effect of breaking normal clips.

Share this post


Link to post

I've been attempting to convert some DECORATE monsters to DEH, and am starting to realize why people don't make dehacked monsters anymore.

I was very disappointed to find that monsters can't use player weapon codepointers :(

EDIT: Can I use something like SSWVA2A8 rather than seperate sprites for both? Also is it possible to have rotations for a sprite that originally did not have them?

Share this post


Link to post

Item dropping is determined by the thing type, as far as I know. The monsters can use whatever frames they want as long as the sprite exists, even sprite frames not present in the original game (you could use SHELB0 in DeHackEd for instance). And yes, it's possible to define full rotations for frames that have only one rotation or mirrored rotations.

In DeHackEd, you only specify the frame index (the letter). The engine takes care of the rest when loading sprites from the wad. Keep in mind, each frame must have a complete rotation, whether it be:

Single rotation: e.g. A0
Mirrored rotation: e.g. A1, A2A8, A3A7, A4A6, A5
Full rotation: e.g. A1, A2, A3, A4, A5, A6, A7, A8

Share this post


Link to post

Thanks for the info. I'm picking up on this pretty quickly. Just finished the Arachnophyte from realm667, going to try some others now.

I managed to get monsters to shoot BFG balls, but it's wonky and crash prone, and plasma rifle shots don't work at all :\

Share this post


Link to post
andrewj said:

Not with DEH/BEX, pickups are hard-coded in the engine, so you could make the bullet clip invisible and untouchable but there is no way to make another item act as a bullet clip.


Sure there is. In vanilla, item pickups are determined by the sprite name of the thing when you pick it up. If another item uses SHEL*, it will act like a Shell pickup. This however, isn't always the case with source ports though... some retain this behavior (ZDoom and Chocolate Doom afaik), while some don't. Here is a thread explaining it, where I'm trying to get the behavior corrected in ZDaemon.

Share this post


Link to post
Marcaek said:

Thanks for the info. I'm picking up on this pretty quickly. Just finished the Arachnophyte from realm667, going to try some others now.

I managed to get monsters to shoot BFG balls, but it's wonky and crash prone, and plasma rifle shots don't work at all :\

Monsters can't use the player's weapon codepointers, and vice versa. In some source ports it might be allowed, but in general you're most likely to get some combination of crashes and completely random, undefined behavior.

Share this post


Link to post

You can recreate them accurately enough, but it requires sacrificing something in order to gain something. Since all projectile-spawning codepointers are used by existing Doom monsters, you really only have the option of reusing those codepointers on new monsters. You can't add stuff with DeHackEd/BEX without giving something else up. That's the disadvantage of using it.

Share this post


Link to post

man that commander keen thing sure is useful

Didn't realize it was technically a monster, solves the item drop problem somewhat.

Share this post


Link to post

You can use any thing as a base for a monster, even a decoration. In particular, you might find the hanging marine corpses useful because they come in two flavors: blocking and non-blocking. There is also a duplicate player gibs decoration. You can transform any of these into monsters by assigning valid states to them, but just be aware that source ports that display an "obituary" message when the thing kills you might not work when you make a decoration into a monster. None of these decorations have item drops tied to them, so they're all for grabs without significantly impacting the game's variety.

Share this post


Link to post
EarthQuake said:

In vanilla, item pickups are determined by the sprite name of the thing when you pick it up. If another item uses SHEL*, it will act like a Shell pickup.

Ahh, you're right, thanks for the correction.

Share this post


Link to post
EarthQuake said:

You can use any thing as a base for a monster, even a decoration.


And here I had assumed that monster things were hardcoded, woohoo!

Share this post


Link to post

Why do many monsters use duplicate chase frames with a duration of 3 instead of 1 frame with a duration of 6?

Sorry about the doublepost but I have a feeling if I don't people will think I'm done with this thread.

Share this post


Link to post
Marcaek said:

Why do many monsters use duplicate chase frames with a duration of 3 instead of 1 frame with a duration of 6?

Sorry about the doublepost but I have a feeling if I don't people will think I'm done with this thread.


I asked this once, it's something to do with making the monsters move smoothly, as they move on each chase frame depending on their speed

Share this post


Link to post

Smoothness, yes, plus that their chance of attacking would be halved if A_Chase was only called half as often. Calling it even more often with shorter frames would cause them to attack even more frequently.

Share this post


Link to post

Ah.

It seems monsters can use the Saw codepointer, no problems so far. I finished converting the Cybruiser, so going to do the Chainsaw zombie now if no trouble arises.

I gave the Imp the FireShotgun2 pointer and noticed that the times it didn't crash, the imp appeared to turn into a stationary Player after firing. It's giving me some ideas about why player codepointers are incompatible with monsters.

Share this post


Link to post

Because it affects how often they can move. If A_Chase is only called once every 6 tics, then they only move once every 6 tics.

EDIT: woops I apparently had this open from 5 hours ago >_>

Share this post


Link to post

Still working at this stuff. Can anyone tell me what +TELEPORT does in plain English?

also monsters can't use saw heh

Share this post


Link to post

From what I understand, the TELEPORT flag is temporarily set when the thing teleports. It has something to do with collision detection and the ability to trigger linedef actions. I'm not sure how useful it is.

Share this post


Link to post

TELEPORT used to be called semi-noclipping, and it allows an actor to walk up steps even higher than 24, but unlike true noclipping, it doesn't make it phase through every wall. I think it also lets it pass linedefs where it would normally bump its head on the ceiling threshold, and that walkover triggers are ignored, like in NOCLIP. I think that monsters also need DROPOFF if the TELEPORT flag is to have any effect on them.

I wonder what side effects NOSECTOR has, apart from making them totally invisible even to the automap cheat. It prevents some data to be passed on the actor, but what are the effects?

JUSTHIT seems to make monsters trigger-happy on sight.

Judging from the Linux Doom source code, SLIDE is unused.

CORPSE is useful if you want to make any object with a resurrection state and -1 duration on their current frame be the object of an Archvile revive. In order to also fully have the corpse-sliding-on-ledges effect, the object also needs DROPOFF.

Judging from source code, SKULLFLY makes the monster act like a charging lost soul, including the way they don't feel pain when shot, but it also makes them do the collision damage, get amnesia and disable the SKULLFLY flag. I'm not sure if it's vanilla Doom stable.

Also from the source code, INFLOAT is used by floating monsters to control their vertical movement behaviour. It's enabled when it's important that cacodemons shouldn't lower to your level, which I assume happens when you try to melee into a cacodemon that chooses to climb a wall and go elsewhere. The INFLOAT flag is set and reset so often that it won't be noticeable if you use it in Dehacked. Judging from source code.

Share this post


Link to post

That's a good bit of info.

Found out that monster fireballs can use the BFG spray correctly, so that's great.

I'm trying to port over the screaming suicide zombie(AAAAAAA) but the sounds don't work\do a lot of hissing in PrBoom+.

Share this post


Link to post

Fire up WhackEd2, then select the Things tab. The Thing editor box will appear. Now hover your mouse over the different types of Flags. A brief description will be given.

Share this post


Link to post

Marcaek - I've used the kamikaze in PrBoom+ and had no problem. Here's a small wad with it if you want to have a look (I know so little about dehacked no guarantee it's done right, but it seems to work).

Edit: actually, I checked it out, which I probably should have done before posting, and it's definitely not done right as they sometimes don't die correctly, but at least the sound works.

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
×