nmrih / source-game

Bugs and issues reporting for NMRiH1
http://store.steampowered.com/app/224260
57 stars 25 forks source link

[public-1.10] Inconsistent shove registration #831

Closed Holycrapjimhox closed 4 years ago

Holycrapjimhox commented 6 years ago

The video speaks for itself: https://www.youtube.com/watch?v=vOmJ4uBFx10

I really don't know what any other info can be gathered about this issue, but it happens at least once in every NMRiH match I've played, and those are many. If there's anything else I can test for, leave a comment.

dysphie commented 6 years ago

There appear to be 2 separate issues here

Looks like: Schedule ZOMBIE_CHASE_ENEMY fails before every delayed shove Console output: 20180606092141_1

Schedule ZOMBIE_GRAB_ENEMY fails before every ignored shove Console output: dllhost_2018-06-06_09-45-37

Quarantine lacks proper navigation around those areas so I guess it makes it easier for those two to happen

Holycrapjimhox commented 6 years ago

Re-tested on r-8856. Shoving seems to be more consistent in general. Delayed shoves are fixed, but on some instances, when zombies are not playing any animations, shoves tend to get ignored. This usually happens when a player gets too close to a zombie to trigger an attack (also when they are standing on uneven terrain where pathing is difficult) . The usual response is for the zombie to immediately attack, but occasionally they will stop playing all animations for less than a second, and then attack. Most attempts at shoving the zombie when this occurs result in a missing shove.

Dysphie also shared some more info regarding this issue on the tester's channel: sdsdsd And here's her demo: bulli5.zip

dysphie commented 6 years ago

Yeah, I'd agree it's better now! That regression is pretty insignificant but a helpful reproducibility method. I'm not sure whether this potential fix also tackles delayed reactions to shots (pretty rare), since it also uses shove_react, maybe. I'm almost sure this doesn't fix related #1007, though.

dysphie commented 6 years ago

Adding video: https://youtu.be/mJZlUwb_WyI

dysphie commented 4 years ago

Easy repro steps for delayed shoves, using crawler: https://youtu.be/W_DSUz35YA8

felis-catus commented 4 years ago

Speculative fix added in src-r4874. (Add 'shoved' as forced interrupt condition)

Holycrapjimhox commented 4 years ago

I ran a quick test and these are the results:

• Shamblers: they seem to register every shove, on corners, on their backs, while trying to navigate tight spaces. The only time they don’t register shoves is when you shove them right as they are climbing up or down and they “space out”, idling, searching for a target.

• Runners: they behaved exactly like shamblers (phasing out when climbing up or down), with the exception that sometimes if you shove them right as they are turning to attack you (while standing still), on the side of their bodies or the back, they will ignore shoves.

• Crawlers: shoving them from the back doesn’t seem to work at all, while other shoves done at an angle sometimes failed. I couldn’t get them to phase out while climbing up or down, but it’s possible. The biggest change here is that they didn’t phase out on my while I shoved them from the front.

• Kids: they behaved exactly like shamblers (phasing out when climbing up or down). I only tested on the girl, cause the boy keeps t-posing.

Note: I used nmo_suzhou's spawn room geometry to test shoves when zombies are against columns or walls and I used the benches to force them to climb up.

Holycrapjimhox commented 4 years ago

Note: the zombies "spacing out" is exactly what Dysphie described here:

"what i did notice is that pushing a zombie while they're climbing down an object gets stuck trying to play SHOVED_REACT"

felis-catus commented 4 years ago

Fix appears to work, closing as resolved.

Holycrapjimhox commented 4 years ago

Note: according to the game's code, shoving crawlers from the back is disabled since they have angle checks for when to register a shove. Also, runners not registering shoves from behind seems to be a separate issue regarding hit registration itself, since the schedules don't fail anymore. It needs another post with repro steps.