ZDoom / Raze

Build engine port backed by GZDoom tech. Currently supports Duke Nukem 3D, Blood, Shadow Warrior, Redneck Rampage and Powerslave/Exhumed.
696 stars 59 forks source link

[BUG] [Duke WT] Invincible Enemy #696

Open Q3BFG10K opened 2 years ago

Q3BFG10K commented 2 years ago

Win10-64, Raze 1.5.0, WT from Steam.

Load the save file (god mode is on) and fire as much as you like. The guy in front of you is totally invincible and never takes damage.

The first one took an extraordinary number of hits to kill, while this guy never dies.

I watched videos online and they both go down easily for others.

Invicible.zip

coelckers commented 2 years ago

We had this happen on occasion in the past but never were able to reliably reproduce it. So right now I have no idea what goes wrong here on occasion.

sinisterseed commented 2 years ago

Indeed, this has been a complete nightmare since the beginning. The main issue is that we've not been able to find any way to reproduce it consistently, it sometimes is there, while others it is not, but what factors are involved in triggering this bug? We're just baffled. It also seems to happen with the World Tour version exclusively.

Did you do anything unusual, or maybe even nothing at all, something as seemingly harmless as continuing from a save on a different map, died/reloaded a few times, and so on? If we could finally reproduce it at will, we may be able to fix it at last...

Q3BFG10K commented 2 years ago

I can't think of any unusual actions that caused it.

Is it possible he's stuck inside geometry, so the game thinks you're shooting at a wall? If you move around and observe his movement, he never seems to move too far from that position.

I never tried this, but is he still invincible if you load the save in eDuke?

sinisterseed commented 2 years ago

The formats differ, loading a save file from Raze into another port will not work.

It could be a possibility, I recall seeing something to that effect in an old report where a Battlelord turned invincible and was also ignoring the player's presence, but one of the times I managed to trigger it by accident, the enemy could move freely and behaved normally, while being simply unkillable.

As I said, it's a bug that leaves everyone confused as we're yet to determine the conditions which trigger its appearance.

coelckers commented 2 years ago

The main problem with all this is that it's all being controlled from the CON scripts - if they somehow managed to get into a state where certain checks don't get performed anymore, an actor will become broken.

Gaerzi commented 2 years ago

It's probably a problem in the CON script logic, like the one in Nuclear Winter where the Flying Frosty is immune to ice death but not immune to ice damage, so if he gets killed by ice damage (including from his own shots ricocheting at him...) he just becomes invulnerable. Being already dead, you can't kill him, but he still behaves like he's alive.

If this is a problem of this kind, then there's no easy fix, short of having a system to override CON code and include a fixed version... Which also means first fixing the CON code.

sinisterseed commented 2 years ago

That may, or may not be the case. The idea is that, at least to my knowledge, there never have been any reports of this issue happening with the existing ports and the original World Tour, which makes me believe it's something we may have broken somewhere all the way back when we originally added support for it, somehow.

I've seen it with freshly spawned enemies not touched by anyone or anything, but being simply invulnerable, with a chance of ignoring the player's presence, which makes me suspect this is different from the damage bug in Nuclear Winter. It's more along the lines of spawning broken as far as I could tell - and it also applies to boss-tier enemies exclusively.