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

Vileattack projectile (more dehacked foolery)

Recommended Posts

I've got some more dehacked inquiries that maybe someone can help me out with :)

Now that I've got a working projectile replacing the Lost Soul, I'm looking to rework the behavior of the boss monster for Supplice (which will use this new projectile). I'm trying my best to think of ways to make him interesting and challenging. The RandomJump codepointer that MBF gives me is definitely giving me some interesting ideas (which I've put to use in some other monsters already). But I really want to make this new projectile for the boss a bit different from the stock projectiles.

So I decided to see if it would be possible to create a projectile that acts somewhat like the trailing fireballs that the Motherdemon fires in Doom 64. Not so much to create trailing fireballs per se, but the effect they have when they hit the player; they cause you to jump into the air much like an Archvile attack.

I tried a couple of things like tossing the Archvile attack codepointer in the death states of test projectiles and then also making a melee state and doing a similar thing there. But those didn't work, which didn't surprise me. Interestingly one of those methods actually hurt the attacker instead of the player (which doesn't help me, but was funny to see).

Here's a test I threw together: http://mekworx.the-powerhouse.net/mekastuff/wads/archprojtest.zip

I'm not sure if this is possible because the attack is a targeted attack (like a hitscan perhaps?) and not really an effect that can be applied willy-nilly. Perhaps there is a way to hack around that and get it to work on the death of a projectile, but I'm not sure what else to try. If I can't get it to work though, I've got some other ideas I should be able to get working without any problems.

Anyways, thanks in advance for any insight anyone can shed!

Share this post


Link to post

What about replacing the Spawn Cubes with a monster that dies when it hits you and has VileAttack in it's death states? From what I see the VileAttack codepointer only works with enemies. I recall a boss monster in 32 Inch Nails that uses VileAttack in it's pain frames, which might be a good place to start.

I wish I could be a little more help, but I'm still getting to grips with DeHackEd myself. ;)

Share this post


Link to post

IIRC, the spawn cubes must have the NOCLIP flag in Vanilla Doom, or else the game will crash on spawning one.

I don't know if MBF and all ports (some ports do fix it) fix that.

Share this post


Link to post
Mechadon said:

Interestingly one of those methods actually hurt the attacker instead of the player (which doesn't help me, but was funny to see).

It's because it was a monster codepointer, not a projectile codepointer. Mobjs have a "target" pointer which monsters use to store their enemy, but missiles use it to store their shooter. So the arch-vile has an attack codepointer that directly inflicts damage on its target, and if you put that on the projectile, it'll directly inflict damage on the monster that shot it.

Share this post


Link to post
Obsidian said:

What about replacing the Spawn Cubes with a monster that dies when it hits you and has VileAttack in it's death states? From what I see the VileAttack codepointer only works with enemies. I recall a boss monster in 32 Inch Nails that uses VileAttack in it's pain frames, which might be a good place to start.

Actually this works! My tests were using a regular projectile (the Imp fireball) but I forgot that my new projectile is actually a monster-turned projectile (the Lost Soul in this case). So in this particular case it works!

Well sort of...there's a tiny oversight with this entire idea that I didn't realize until after I tried it out. I was hoping for the projectile to only do the VileAttack when it hits the player/other monsters. In fact, it will do it anytime it enters its death state, regardless of it hitting the player or a wall. So if it hits a wall, your going to get tossed up in the air and take damage seemingly out of nowhere. I kind of forgot about that...oops :P. I'm pretty sure there is no way to get around that.

I have another idea I'm hoping to try involving the VileAttack codepointer that should work, thankfully. It would have been neat to see if this idea would have been possible in dehacked (well, I guess it kind of is!), but this was still an interesting thing to experiment with.

Thanks for the help again guys!

Share this post


Link to post

Just another idea...what about having it like this:

First meelee attack frame: VileAttack
Second meelee attack frame: Explode

As soon as it gets to you it'll launch you into the air and hit you with explosion damage while simultaneously killing itself. Try that out. :)

Share this post


Link to post

Indeed, melee… I haven't tested it out, but what about it? In order to enter melee, monsters would have to be using Chase states. Normally this is useless on projectiles, because chases use different scales to projectile movement. But in case of this particular setup, the Lost Soul speed is independent of monster speed. Maybe you can set speed to 0 and make this "projectile" call Chase every moment, and enter a melee sequence on enemy proximity?

Do note that vanilla Doom is particularly sensitive about this and may crash. MBF (vanilla) might be more robust, but modern ports are even more robust and tend to fix bugs that would crash vanilla MBF.

Share this post


Link to post
printz said:

Indeed, melee… I haven't tested it out, but what about it? In order to enter melee, monsters would have to be using Chase states. Normally this is useless on projectiles, because chases use different scales to projectile movement. But in case of this particular setup, the Lost Soul speed is independent of monster speed. Maybe you can set speed to 0 and make this "projectile" call Chase every moment, and enter a melee sequence on enemy proximity?

Do note that vanilla Doom is particularly sensitive about this and may crash. MBF (vanilla) might be more robust, but modern ports are even more robust and tend to fix bugs that would crash vanilla MBF.


It's fortunate that Supplice is for Boom then. :)

I was also thinking something else: monsters usually follow a somewhat zigzag pattern while in Chase, but maybe you could substitute every second Chase parameter with FaceTarget. It's probably a similar setup to the Doom64 Lost Soul, come to think of it. The result would be a "projectile" that tracks the player, launches them up in the air and hits them with an explosion.

*Evil scientist laugh*

Share this post


Link to post

I'm getting quite good at this DeHackEd foolery. =D

http://www.mediafire.com/?ps43ki2hh03w0db

This compiles some of the ideas I've had. The constant FaceTarget one didn't work how I planned, but the other ideas seem to work nicely. You can still shoot the projectile ATM, I was too lazy to set the Shootable flag off. Hopefully this helps.

Share this post


Link to post

I was ready to write this off, but good idea on using the melee state for this! I can't seem to get it to work using the code printz sent me (it seems to be set up different), but your method seems to work very well. I wonder if it's possible to get this to work with this code - http://www.doomworld.com/vb/showthread.php?s=&postid=1138056#post1138056. Your hack is like a kamakazie Lost Soul, which is cool in itself, but it doesn't act like a projectile once it hits a wall.

In my fallback idea, I actually ran into another problem where the projectile wouldn't always explode in certain situations. The most prominent being if it hit a weird spot like the top of a stair. This just seems to be a side effect of using the Lost Soul as a projectile unfortunately. I thought this might be another deal breaker, but I was able to get around it by setting up a RandomJump codepointer and having it go to it's death state eventually. This has lead me to create a sort of bomb projectile that will die when it hits a wall or a target OR go off a bit prematurely while in flight (or if it gets stuck). Now I'm not so sure how this setup will work with the VileAttack codepointer, although I guess I could set the RandomJump to skip that frame so it doesn't deal out-of-nowhere damage in those instances (only at melee).

At any rate, yea I guess I'm stuck since I can't get it to work with my current projectile dehacked :P

Share this post


Link to post
Obsidian said:

It's fortunate that Supplice is for Boom then. :)

Nope, it's for MBF.

Mechadon said:
Supplice is a Boom-compatible megawad for Doom II with the base port compatibility being MBF.


MBF features aren't included in Boom, therefore it's an MBF mod. The RandomJump codepointer certainly won't work in Boom!

Fortunately, PrBoom[+], [G]ZDoom, and Eternity (maybe Risen3D too?) are all compatible with the MBF dehacked features, so it shouldn't be a problem for most people.

Share this post


Link to post

Yea, I escalated the base compatibility to MBF recently. Since we were already using MBF sky transfers, I didn't see much of a reason to stay with pure Boom. Some bonuses were new MBF dehacked features :)

I haven't updated the project thread saying this yet because of lazy :P

Share this post


Link to post

^ See, it's his fault. :P

There is one way you could use this idea decently: resprite the Lost Soul so it looks like a missile and call it a "Smart Missile". Heck, you could make a map where you're followed by a swarm of missiles and you have to get to the end before you're blown to smithereens. =D

Share this post


Link to post
esselfortium said:

I just thought of a problem with the lost soul projectile: it'll be stopped by impassible and block monster lines.


Good point. Are there any flags in DeHackEd that can alter it decently? All I can think of is the "No clipping" flag or maybe the "Projectile" flag(although I suspect that'd wreck the rest of the DeHackEd stuff). Argh...

Share this post


Link to post
esselfortium said:

I just thought of a problem with the lost soul projectile: it'll be stopped by impassible and block monster lines.

Yea that is true. There are also other issues with it like how they will get stuck on items, they can hurt their owner, they won't cause infighting, and there might be more limitations (like how they tend to get stuck on short ledges...something I noticed in my last few tests). This makes it really impracticable to use in anything other than controlled situations (ie. it would cause a ton of problems in more general situations if you used it on a monster like an Imp, etc). I was going to attempt to use this on a normal monster, but it would create a bunch of problems just for those reasons. So that's why I'm going to limit it to the boss only and craft the map and encounter around it the best I can.

I guess my usage is more of a special case in this instance. It wouldn't work very well at all on normal monsters (although Obsidian's method is interesting and would be sort of a kamikaze monster, which I like and wouldn't suffer as bad from the limitations I think).

Anyways, I'll have to keep on tweaking the monster to see what sort of projectile behavior I'm ultimately interested in. I still really like the VileAttack idea, but the other behavior I'm working on right now also seems to be pretty damn cool (it would be awesome if I could merge the two though...). I appreciate your help Obsidian!

Share this post


Link to post

Welcome. :) By the way, how's Supplice progressing? It sounds like you're doing some awesome stuff with it. Let me know if you need a helping hand.

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
×