(7754ad698) Fixed scooters occasionally flicking around in the multiplayer. I think the issue was that clients/server would set the cursor position 60 units away from aim ref position (= upper part of the collider), but due to the inaccuracy of the ragdoll syncing, the aim ref pos is not always where the shoulder of the character is, which in laggy situations could cause the cursor position to be at the wrong side of the ragdoll.

This commit is contained in:
Joonas Rikkonen
2019-06-04 16:52:43 +03:00
parent cdc58316ed
commit aefa46eaa5
2 changed files with 2 additions and 2 deletions

View File

@@ -183,7 +183,7 @@ namespace Barotrauma
keys[(int)InputType.Attack].SetState(false, attackInput);
double aimAngle = msg.ReadUInt16() / 65535.0 * 2.0 * Math.PI;
cursorPosition = AimRefPosition + new Vector2((float)Math.Cos(aimAngle), (float)Math.Sin(aimAngle)) * 60.0f;
cursorPosition = AimRefPosition + new Vector2((float)Math.Cos(aimAngle), (float)Math.Sin(aimAngle)) * 500.0f;
TransformCursorPos();
bool ragdollInput = msg.ReadBoolean();

View File

@@ -82,7 +82,7 @@ namespace Barotrauma
dequeuedInput = memInput[memInput.Count - 1].states;
double aimAngle = ((double)memInput[memInput.Count - 1].intAim / 65535.0) * 2.0 * Math.PI;
cursorPosition = AimRefPosition + new Vector2((float)Math.Cos(aimAngle), (float)Math.Sin(aimAngle)) * 60.0f;
cursorPosition = AimRefPosition + new Vector2((float)Math.Cos(aimAngle), (float)Math.Sin(aimAngle)) * 500.0f;
//reset focus when attempting to use/select something
if (memInput[memInput.Count - 1].states.HasFlag(InputNetFlags.Use) ||