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

Headshots?

Recommended Posts

Is it possible to make certain actors more damage sensitive in specific areas of the space they occupy? I know something like this was made in Brutal Doom, but I'm not sure if they did it via actors or whatever. I don't know much about actor coding, but if someone can tell me where to look, I can manage.

Share this post


Link to post

Yes, it is possible.

In these two threads, Gez even talks a little about Brutal Doom:

http://www.doomworld.com/vb/source-ports/66694-headshots-etc-possible-in-zdoom/

http://www.doomworld.com/vb/doom-editing/59467-head-shots-and-location-damage/

These two are a little bit older, but hopefully you'll find them useful:

http://www.doomworld.com/vb/doom-editing/40700-headshots-edge-ddf/

http://forum.zdoom.org/viewtopic.php?t=13182 (unfortunately it seems the download link doesn't work, maybe you'll have more luck)

If you want a more technical answer or a step-by-step solution, you'll have to wait for someone else, I'm afraid.

Share this post


Link to post

Nah, that's exactly the kind of thing I asked, a step-by-step guide would be too much to ask, especially since I don't know much about decorate, so it would be question after question, driving you insane. I might as well end up doing the good ol' trial and error method. It's always good for learning this kind of things. I'll go through those links and do what I can, thanks a lot!

Share this post


Link to post

Assuming you're doing this in ZDoom (dunno how you would/if you could in other source ports), there are two methods: the aforementioned 'head actor' method used by Brutal Doom, and an ACS-based method that involves calculating at what height on the actor the shot impacted. This latter method is not used much apparently, but you can see it in action in the set of minimods available here.

Anyways, the head actor method. Two ways of doing it:
1) As previously stated, continuously spawn a short-lived actor at the height of the appropriate monster's head. This is the simpler of the two.
2) Spawn an actor that is actually a monster, place it in a master/minion relationship with its spawner using A_SpawnItemEx's SXF_SETMASTER flag, which allows you to use A_Warp to continuously move the head actor to its master through setting the pointer destination to AAPTR_MASTER, as well as allowing you access to functions such as A_DamageMaster and A_KillMaster. While this is clearly the more complicated method, it leaves you free to not have to program in, into every state of the monster, repeated instances of it spawning its head actor, since you just have one.

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
×