CapsAdmin / pac3

advanced avatar customization for garrysmod
GNU General Public License v3.0
203 stars 94 forks source link

Projectiles tied to eye angles sometimes fly off in random directions even when looking directly forward down an unobstructed sightline. #879

Open Logzombie opened 4 years ago

Logzombie commented 4 years ago

Considering there's a lack of convenience when it comes to consistency here, this has just been something bugging people for a while. That, and the assumption of the aim_dir function working somewhat to fix that, yet not functioning at all for said purpose, has just lead me to believe that this could be polished up, or a healthier alternative function in the part as opposed to constantly having to work around problems just to get a somewhat functioning result.

thegrb93 commented 4 years ago

An example outfit would help with this

Logzombie commented 3 years ago

Update, this still occurs, but is very hard to get an example outfit for as it is almost entirely random for this to happen to any projectile part attached as child to an event.

Info I currently know: Related to eye-angles, worsens in low FPS lag, does not happen consistently or with a specific setup, might be multiplayer only as cannot recreate in singleplayer easily.

CapsAdmin commented 3 years ago

Does using aim part name with eye angles work?

Logzombie commented 3 years ago

Theoretically if you set the aim part to a model strapped to hitpos and ticked eye angles, it would probably work, yes. Since ticking eye angles on a parent model the projectile is strapped onto and then ticking eye angles on the projectile works just fine. Though from experience, this doesn't appear to fix the issue.

thegrb93 commented 3 years ago

If this is using the clientside globals EyeAngles() EyePos() or EyeVector(), there's some gmod issues written against those for their incorrectness.

CapsAdmin commented 3 years ago

It's not using EyeAngles (those functions use the view matrix which could differ depending on which hook you're in)

But I can kinda see why this could happen looking at the source. I'm using a function which traces a line to where you are looking. This ray is likely going to hit projectiles that are being sent.

The name "eye angles" here is misleading maybe, at least if you use glua. It's supposed to be the be where your eyesockets are focusing on. It's a bit like making a part use hitpos and then have a part use aim target on it.