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

Adding a custom monster in dehacked

Recommended Posts

So I'm trying to add a new monster into my wad. It's an orange cacodemon that shoots arachnotron plasma (I'm using the cacolantern sprites). I'm replacing the SS nazi and I've already renamed the sprites to SSWV. I'll use pain elemental resurrection sprites or something like that for the attack sprites but for now I'm just trying to figure out how to get the sprites working like a regular orange cacodemon. So can someone finish defining the sprites so that what I have works like a regular cacodemon? And I'll be able to figure out how to change the attack later.

Here's a link to the wad: http://speedy.sh/YmuMb/resonance.zip

Share this post


Link to post

I'm going to answer your second question first, since a) it's harder; and b) I don't have time at the moment to download the WAD, so I can't see what you're doing with the sprites anyway.

You can't use the pain elemental resurrection frames for a new attack because they don't have code pointers (the things that tell the game what to actually "do" on each frame) and you can't add a code pointer to a frame that doesn't already have one (or remove a code pointer from one that does). In order to create a new attack, you need to replace frames that have code pointers. Since you're already replacing the SS guy, why not use his attack frames for the new attack? I've whipped up a DEH patch to demonstrate how it's done (warp to MAP31 or MAP32 to see the new monster in action).

Patch File for DeHackEd v3.0

# Note: Use the pound sign ('#') to start comment lines.

Doom version = 20
Patch format = 6


Thing 24 (Cacotron)
#I'm using the original cacodemon frames here, just to demonstrate the new attack
Initial frame = 502
Hit points = 400
First moving frame = 503
Alert sound = 42
Injury frame = 507
Pain chance = 128
Pain sound = 26
#We don't need to change the far attack frame, since we're re-using the SS guy's frames for the new attack
Death frame = 510
Exploding frame = 0
Death sound = 65
Width = 2031616
Mass = 400
Action sound = 77
Bits = 4211206
Respawn frame = 516

#These frames replace the SS guy's frames to use the original cacodemon attack sprites; if you've already replaced the original SS guy sprites, change the sprite numbers to 51 (SS guy)
#Change the Duration of these frames to change the rate of fire (lower = faster)

Frame 736
Sprite number = 40
Sprite subnumber = 32770
Duration = 3

Frame 737
Sprite number = 40
Sprite subnumber = 32771
Duration = 4

Frame 738
Sprite number = 40
Sprite subnumber = 32770
Duration = 1
Next frame = 736

#Now to change the code pointers for the attacks frames, to replace the SS guy's attack with the arachnotron attack
#There is no need to change the code pointer for Frame 736, since the original one (which makes monsters aim at you before attacking) is what we want anyway

#This code pointer is from the arachnotron attack frames, and is the one that shoots the actual plasma ball
Pointer 414 (Frame 737)
Codep Frame = 648

#This code pointer is from the spider mastermind attack frames and reused for the arachnotron, as makes the monster stop shooting and start chasing you again if you break the line of sight (I think? Whatever, it works anyway)
Pointer 415 (Frame 738)
Codep Frame = 618

Share this post


Link to post

Oh yeah and I also forgot to mention that I am working in limit removing compatibility, NOT vanilla. So I don't have the same restrictions. Look at the green cacodemon, I used some of the pain elemental resurrection sprites to do his attack. Although you may be right about me not having to do that again with the orange cacodemon. Also I'd like the cacodemon to just shoot 5 arachnotron plasma cells and then go back to chase.

Share this post


Link to post
odysseyofnoises said:

Oh yeah and I also forgot to mention that I am working in limit removing compatibility, NOT vanilla. So I don't have the same restrictions. Look at the green cacodemon, I used some of the pain elemental resurrection sprites to do his attack.

Oh yeah, another good reason to not reuse the resurrection sprites is that pain elementals can in fact be resurrected, if its corpse is crushed before it finishes exploding.

odysseyofnoises said:

Also I'd like the cacodemon to just shoot 5 arachnotron plasma cells and then go back to chase.

Done.

Patch File for DeHackEd v3.0

# Note: Use the pound sign ('#') to start comment lines.

Doom version = 20
Patch format = 6


Thing 24 (Cacotron)
Initial frame = 502
Hit points = 400
First moving frame = 503
Alert sound = 42
Injury frame = 507
Pain chance = 128
Pain sound = 26
Death frame = 510
Exploding frame = 0
Death sound = 65
Width = 2031616
Mass = 400
Action sound = 77
Bits = 4211206
Respawn frame = 516

Frame 736
Sprite number = 40
Sprite subnumber = 32770
Duration = 4

Frame 737
Sprite number = 40
Sprite subnumber = 32771
Duration = 4

Frame 738
Sprite number = 40
Sprite subnumber = 32771
Duration = 4

Frame 739
Sprite number = 40
Sprite subnumber = 32771
Duration = 4

Frame 740
Sprite number = 40
Sprite subnumber = 32771
Duration = 4

Frame 741
Sprite number = 40
Sprite subnumber = 32771
Duration = 4
Next frame = 503
#This is the cacodemon's chase frame; don't forget to change it to whatever you use for your monster's chase frame, or it'll turn into a cacodemon between shots


Pointer 414 (Frame 737)
Codep Frame = 648

Pointer 415 (Frame 738)
Codep Frame = 648

Pointer 416 (Frame 739)
Codep Frame = 648

Pointer 417 (Frame 740)
Codep Frame = 648

Pointer 418 (Frame 741)
Codep Frame = 648

Share this post


Link to post

The pain elemental actually being resurrected is one of the rarest phenomena in all of the doom universe. I only saw it happen for the first time in my life just recently.

The cacotron seems to be working, except that it's not using the orange cacolantern sprites I provided. How do I change that?

Share this post


Link to post

I still haven't seen your WAD, but assuming your SSWV* sprites correspond exactly with HEAD* sprites, this works:

Patch File for DeHackEd v3.0

# Note: Use the pound sign ('#') to start comment lines.

Doom version = 20
Patch format = 6


Thing 24 (Green Armor)
ID # = 2018
Initial frame = 802
Hit points = 1000
First moving frame = 0
Alert sound = 0
Injury frame = 0
Pain chance = 0
Pain sound = 0
Far attack frame = 0
Death frame = 0
Exploding frame = 0
Death sound = 0
Speed = 0
Height = 1048576
Action sound = 0
Bits = 1
Respawn frame = 0

Thing 44 (Cacotron)
ID # = 84
Initial frame = 726
Hit points = 400
First moving frame = 727
Alert sound = 42
Injury frame = 742
Pain chance = 128
Pain sound = 26
Far attack frame = 736
Death frame = 752
Death sound = 65
Speed = 8
Width = 2031616
Height = 3670016
Mass = 400
Action sound = 77
Bits = 4211206
Respawn frame = 756

Frame 726
Next frame = 726

Frame 727
Sprite subnumber = 0
Duration = 3
Next frame = 727

Frame 736
Sprite subnumber = 32770
Duration = 3

Frame 737
Sprite subnumber = 32771
Duration = 4

Frame 738
Sprite subnumber = 32771

Frame 739
Sprite subnumber = 32771
Duration = 4

Frame 740
Sprite subnumber = 32771

Frame 741
Sprite subnumber = 32771
Duration = 4
Next frame = 727

Frame 742
Sprite subnumber = 4

Frame 743
Sprite subnumber = 4
Next frame = 744

Frame 744
Sprite subnumber = 5
Duration = 6
Next frame = 727

Frame 745
Sprite subnumber = 7
Next frame = 749

Frame 746
Next frame = 748

Frame 747
Sprite subnumber = 9
Next frame = 746

Frame 748
Sprite subnumber = 11

Frame 749
Sprite subnumber = 8
Next frame = 747

Frame 752
Sprite subnumber = 6
Next frame = 745

Frame 756
Sprite subnumber = 11
Next frame = 758

Frame 758
Sprite subnumber = 10

Frame 759
Sprite subnumber = 9

Frame 760
Sprite subnumber = 8

Frame 761
Sprite subnumber = 7

Frame 762
Sprite subnumber = 6
Next frame = 727

Pointer 404 (Frame 727)
Codep Frame = 176

Pointer 414 (Frame 737)
Codep Frame = 648

Pointer 415 (Frame 738)
Codep Frame = 648

Pointer 416 (Frame 739)
Codep Frame = 648

Pointer 417 (Frame 740)
Codep Frame = 648

Pointer 418 (Frame 741)
Codep Frame = 648
You'll notice that the Cacotron now replaces the Green Armor, and the Green Armor replaces the SS guy (in the Thing table, not the Frame table; Cacotron still uses SS guy frames). This is because I just realised that if you replace an SS guy with another enemy, it'll still drop a clip when killed, and there is no way around this. The Cacotron still has the same Map ID as the SS guy, and the Armor still has its original Map ID, so from a mapping perspective everything is the same, the only difference is that Armor now drops clips when killed (a non-issue because Armor can't be killed).

Aside from that, all I've done is change the Sprite subnumbers and Next frames to match the cacodemon's animation (and changed the thing to use these frames).

Share this post


Link to post

Aha! Now it works. I didn't have the sprites correspond to the HEAD sprites at first, so I renamed them and it seems to work now without conflicting with any of my other stuff, just have to test it a little more to be 100% sure.

hahaha that'd be funny: an armor monster that drops clips.

Share this post


Link to post

I only see one minor issue: The death and attack sequences look like they are skipping a sprite. Like for the attack, it looks like the cacotron is opening its mouth too quickly and without the first mouth opening sprite, and for the death frame it just looks too quick. They're both pretty small issues though, or it could just be me.

EDIT: just found that the resurrection frames look weird

Share this post


Link to post
odysseyofnoises said:

I only see one minor issue: The death and attack sequences look like they are skipping a sprite. Like for the attack, it looks like the cacotron is opening its mouth too quickly and without the first mouth opening sprite, and for the death frame it just looks too quick. They're both pretty small issues though, or it could just be me.

EDIT: just found that the resurrection frames look weird

Oops. You're right, I skipped a frame on the attack animation. And I forgot to change the duration on the death/resurrection frames. This should work perfectly now:

Patch File for DeHackEd v3.0

# Note: Use the pound sign ('#') to start comment lines.

Doom version = 20
Patch format = 6


Thing 24 (Green Armor)
ID # = 2018
Initial frame = 802
Hit points = 1000
First moving frame = 0
Alert sound = 0
Injury frame = 0
Pain chance = 0
Pain sound = 0
Far attack frame = 0
Death frame = 0
Exploding frame = 0
Death sound = 0
Speed = 0
Height = 1048576
Action sound = 0
Bits = 1
Respawn frame = 0

Thing 44 (Cacotron)
ID # = 84
Initial frame = 726
Hit points = 400
First moving frame = 727
Alert sound = 42
Injury frame = 742
Pain chance = 128
Pain sound = 26
Far attack frame = 736
Death frame = 752
Death sound = 65
Speed = 8
Width = 2031616
Height = 3670016
Mass = 400
Action sound = 77
Bits = 4211206
Respawn frame = 756

Frame 726
Next frame = 726

Frame 727
Sprite subnumber = 0
Duration = 3
Next frame = 727

Frame 736
Sprite subnumber = 1
Duration = 4
Next frame = 753

Frame 737
Sprite subnumber = 32771
Duration = 4

Frame 738
Sprite subnumber = 32771

Frame 739
Sprite subnumber = 32771
Duration = 4

Frame 740
Sprite subnumber = 32771

Frame 741
Sprite subnumber = 32771
Duration = 4
Next frame = 727

Frame 742
Sprite subnumber = 4

Frame 743
Sprite subnumber = 4
Next frame = 744

Frame 744
Sprite subnumber = 5
Duration = 6
Next frame = 727

Frame 745
Sprite subnumber = 7
Duration = 8
Next frame = 749

Frame 746
Duration = 8
Next frame = 748

Frame 747
Sprite subnumber = 9
Duration = 8
Next frame = 746

Frame 748
Sprite subnumber = 11

Frame 749
Sprite subnumber = 8
Duration = 8
Next frame = 747

Frame 752
Sprite subnumber = 6
Duration = 8
Next frame = 745

Frame 753
Sprite subnumber = 2
Duration = 4
Next frame = 737

Frame 756
Sprite subnumber = 11
Duration = 8
Next frame = 758

Frame 758
Sprite subnumber = 10
Duration = 8

Frame 759
Sprite subnumber = 9
Duration = 8

Frame 760
Sprite subnumber = 8
Duration = 8

Frame 761
Sprite subnumber = 7
Duration = 8

Frame 762
Sprite subnumber = 6
Duration = 8
Next frame = 727

Pointer 404 (Frame 727)
Codep Frame = 176

Pointer 414 (Frame 737)
Codep Frame = 648

Pointer 415 (Frame 738)
Codep Frame = 648

Pointer 416 (Frame 739)
Codep Frame = 648

Pointer 417 (Frame 740)
Codep Frame = 648

Pointer 418 (Frame 741)
Codep Frame = 648

Share this post


Link to post

For editing DeHackEd patches it's probably no easier than using Notepad, unless Gez snuck something in I haven't noticed.

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
×