StrataSource / Engine

Issue tracker for Strata Source
47 stars 2 forks source link

Enhancement: env_shake should work if player touches the ground after the shake starts #762

Open MyGamepedia opened 1 year ago

MyGamepedia commented 1 year ago

What would this enhancement be for?

Entity

Describe your enhancement suggestion in more detail

Problem that remained from the days of GoldSource. Shaking from env_shake work if player standing on a surface, but not work if player in air (jumps, noclip, falling, other). This can cause breaks in cutscenes for example. Shaking from env_shake should start after the player hits the ground, not completely disappearing. This fix can be optional, it's can be key value or spawn flag. Also shaking not disappearing if player jump/fall, if someone will fix it - it's should be optional.

Here Half Life and Half Life: Source examples.

https://user-images.githubusercontent.com/103366204/234639710-f47f27ea-26e0-4c41-b35e-2405c4d816c1.mp4

Here P2CE.

https://user-images.githubusercontent.com/103366204/234639813-7ccd9962-4b38-46eb-ba70-11dd704ed489.mp4

Here some examples there this problem kill feels from what's going on.

https://user-images.githubusercontent.com/103366204/234640882-50f898a4-fdcf-4755-9f7c-856f5589c7fc.mp4

Noclip example.

https://user-images.githubusercontent.com/103366204/234641294-c9f5c624-4023-4de9-a063-0dabfc46a95e.mp4

To Reproduce the problem:

  1. Open this map for easy test. shake_test.zip
  2. Press the button.
  3. Jump, fall or use noclip before shake.
ENDERZOMBI102 commented 1 year ago

isn't this a duplicate of #758 ?

MyGamepedia commented 1 year ago

isn't this a duplicate of #758 ?

A bit rewrited. I've place it to enhancements, but not fully duplicate.

Trico-Everfire commented 1 year ago

I thought env_shake had a "In Air" flag for being in the air. 4: "In Air" : 0 // shakes objects even if they are not onground Does this just not apply to the player character? if so, that IS a bug, because one of the flags is no shake view, which'd imply In Air should work for both Players and Objects.

Trico-Everfire commented 1 year ago

From my tests, In Air seems to work perfect on players. I don't know when in Source's history In Air was added, or if it existed when the entity was introduced, but it seems to do what you describe you want from the entity.

Here's a video to show my findings:

https://user-images.githubusercontent.com/55441008/235312906-060c8d74-b6f9-4613-ab7a-a8b3deda483a.mp4

MyGamepedia commented 1 year ago

From my tests, In Air seems to work perfect on players. I don't know when in Source's history In Air was added, or if it existed when the entity was introduced, but it seems to do what you describe you want from the entity.

Here's a video to show my findings:

shake.mp4

Looks like it was added with HL2 or Orange Box engine version, I've not found it in J.A.C.K. Editor. Без имени-1

Trico-Everfire commented 1 year ago

Well, it is in Strata, so the enhancement can be closed.

TeamSpen210 commented 1 year ago

I think the issue mentioned is that if a shake is started while you're in the air (but the in-air flag is unset), it correctly won't start shaking. But if you land on the ground before the time has elapsed it doesn't start.

Trico-Everfire commented 1 year ago

that's intended, it at least feels intended, it's kinda the consequence of the entity not having the flag. but eh, what do I know, maybe it is a bug that landing doesn't cause the shake to activate to the player.

MyGamepedia commented 1 year ago

Well, I was just asking for a feature that would allow my players do not hack env_shake. "In Air" is good solution, but this issue can be leave, maybe someone add expected behavior.

vrad-exe commented 1 year ago

It does make sense that it should start shaking if you touch the ground after it started (as well as it should probably stop shaking if you leave the ground?)