Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Memfis

Make monsters attack when they don't see you?

Recommended Posts

By editing REJECT or BLOCKMAP or I don't know what, can you make it so that in certain areas the monsters will keep trying to shoot at you even when you're not in their sight? For example you hide behind a door thinking that you're so clever, but the monsters just keep shooting so that when you open that door you might get a rocket in your face. Could be a fun way to make camping harder and just make the player feel uncomfortable.

Share this post


Link to post

Neither editing REJECT nor editing BLOCKMAP can achieve that effect. There's this bug, but it could hardly be exploited to affect already moving monsters.

Share this post


Link to post

I you want monsters to start attacks when the player is not visible, no, that cannot be done.

If you want a repeating attack like the Chaingunner to continue when the target gets out of sight you can do that by removing the call to A_CPosRefire and just looping the attack. Of course such an attack will go on forever and the monster wont move anymore until you do some more changes which may or may not work.

Share this post


Link to post

The engine checks line of sight by checking the BSP tree, so not really, no. Unless... you partake in linguortal-esque shenanigans??

Share this post


Link to post
Linguica said:

The engine checks line of sight by checking the BSP tree, so not really, no. Unless... you partake in linguortal-esque shenanigans??

Ultimate Doom E3M5 has a "bug" where you teleport back from the demon yard into the glowing telepad in the main yard. The cacodemon from next room will wake up as soon as you arrive, even though the door between you is shut. I think it happens because you stand straight on top of a BSP split when he wakes up. Unfortunately that will not be enough to make the monster also attack you, because he will be moved away to a safe spot by that time. Also, quite unfortunately, even Eternity "fixes" this by changing the sight algorithm to something more Heretic/ZDoomesque, unless of course it plays a demo, so you'd only have PrBoom+ as a port to play with.

Share this post


Link to post

I'm glad you brought this up, because I'm curious too. I was playing a map a looooong time ago and I'm almost positive of a situation with a shotgun guy behind "glass" or maybe some sort of self referencing sector in front of a midtexture fence. The shotgun guy continued to fire at me over and over but he kept hitting the glass. I feel like the map was the downtown map in STRAIN, but I've played and played and played that map and couldn't reproduce it. Its possible it was a different map, but I haven't been able to find it which makes me doubt it ever existed. It's possible it may have been a source port oddity, I think I was using Doomsday Engine at the time, but i don't know.

I'd like to be able to do it again though! It would be cool for a lab experiment map where the angry ill-tempered test subjects try to attack you through a glass window. Ive never been able to make it happen though.

Share this post


Link to post

Monsters also try to shoot through linedefs with the ZDoom-specific "Block bullets" / "Block projectiles" / "Block everything" flags.

Share this post


Link to post

Maybe maybe maybe you might want to try this:

1. put monsters into a closet
2. show them a voodoo doll, or just awaken them somehow
3. warp them into your room, where you want them to be
4. in DeHackEd, replace some of the codepointers from Chase to WhateverMonsterShoot. Like, if a monster has 8 Chase states (like Imp IIRC), you give him 4 Chase and 4 ImpFireOrWhateverItsCalledCantCheckRN states.
5. Due to taking away some chase states, give them a small speed increase to balance it out
6. ???
7. rocket in you're face when you open the door!!!

I didn't try doing that, that part's up to you.

Share this post


Link to post

Showing a voodoo doll to monsters will not wake them up, but putting attack codepointers among their walking frames will make them (unstoppably) shoot while walking around, indeed.

Share this post


Link to post

And if you want to make the out-of-sight attack less frequent, you can put CPosRefire or SpidRefire before the actual firing frame, instead of normally putting FaceTarget. They send the monster back into the "First moving frame", so be careful not to make it the same frame. The trick is that they won't always send the monster to that frame, it's actually based on a probability, which is different between the two ...Refire codepointers, but not 100%.

If, for other purposes, you want the transfer by CPosRefire or SpidRefire to the chasing frame to be nearly certain, just put three or four in a sequence, and the probability will skyrocket to 99.99%.

Share this post


Link to post
Linguica said:

This map demonstrates an enemy seeing you and attempting to shoot through a self-referencing sector:

http://www.doomworld.com/linguica/hax/wtf.wad

I'd like someone to take a look at this because it's kind of baffling to me. If I move even a single vertex of the self-referencing sector by 1 unit, the current effect breaks and the Cyberdemon no longer sees me / shoots at me.

Share this post


Link to post

Which single vertex did you move, and in which direction? I've tried many possibilities how to choose and move a vertex, and the Cyberdemon always woke up immediately. I've used Zennode as a node builder. Using BSP-W32 caused the player to be spawned inside the ceiling. Using ZDBSP caused the Cyberdemon to be spawned inside the ceiling.

Share this post


Link to post

That map pretty much depends on the node building algorithm so the trick isn't worth much because it cannot be controlled. It is absolutely impossible to tell up front which part of the outer sector will end up in a subsector being assigned to the self-referencing one.

Share this post


Link to post

That's pretty much impossible unless you build the nodes from hand.
Have you ever wondered why most self-referencing sectors are closely surrounded by another set of linedefs?

That's precisely done to limit the extent of any subsector that might be assigned to the inner sector.

Share this post


Link to post
scifista42 said:

Which single vertex did you move, and in which direction? I've tried many possibilities how to choose and move a vertex, and the Cyberdemon always woke up immediately. I've used Zennode as a node builder. Using BSP-W32 caused the player to be spawned inside the ceiling. Using ZDBSP caused the Cyberdemon to be spawned inside the ceiling.

Share this post


Link to post

I did the exact same thing you did, and the Cyberdemon could still see me. I've got an impression that you've moved (as the player in the game) slightly away from the start position as soon as you started your second attempt, as the scene seems to change a tiny bit immediately after starting the game. I tried to do the same, too, but the Cyberdemon could always see me anyway.

EDIT: I know what's the problem now. GZDoom Builder! You have "Edit -> Replace with Dragged Geometry" enabled, right? It seems to automatically un-self-reference the self-referencing sector after dragging the vertex. Try enabling "Merge Dragged Vertices Only" instead.

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
Sign in to follow this  
×