Fixed ragdolling in multiplayer
This commit is contained in:
@@ -303,7 +303,7 @@ namespace Barotrauma
|
|||||||
private float stunTimer;
|
private float stunTimer;
|
||||||
public float Stun
|
public float Stun
|
||||||
{
|
{
|
||||||
get { return stunTimer; }
|
get { return IsRagdolled ? 1.0f : stunTimer; }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (GameMain.Client != null) return;
|
if (GameMain.Client != null) return;
|
||||||
@@ -686,7 +686,7 @@ namespace Barotrauma
|
|||||||
case InputType.Use:
|
case InputType.Use:
|
||||||
return !(dequeuedInput.HasFlag(InputNetFlags.Use)) && (prevDequeuedInput.HasFlag(InputNetFlags.Use));
|
return !(dequeuedInput.HasFlag(InputNetFlags.Use)) && (prevDequeuedInput.HasFlag(InputNetFlags.Use));
|
||||||
case InputType.Ragdoll:
|
case InputType.Ragdoll:
|
||||||
return !(dequeuedInput.HasFlag(InputType.Ragdoll)) && (prevDequeuedInput.HasFlag(InputType.Ragdoll));
|
return !(dequeuedInput.HasFlag(InputNetFlags.Ragdoll)) && (prevDequeuedInput.HasFlag(InputNetFlags.Ragdoll));
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -722,6 +722,7 @@ namespace Barotrauma
|
|||||||
case InputType.Attack:
|
case InputType.Attack:
|
||||||
return dequeuedInput.HasFlag(InputNetFlags.Attack);
|
return dequeuedInput.HasFlag(InputNetFlags.Attack);
|
||||||
case InputType.Ragdoll:
|
case InputType.Ragdoll:
|
||||||
|
if (dequeuedInput.HasFlag(InputNetFlags.Ragdoll)) DebugConsole.NewMessage("RAGDOLL", Color.Lime);
|
||||||
return dequeuedInput.HasFlag(InputNetFlags.Ragdoll);
|
return dequeuedInput.HasFlag(InputNetFlags.Ragdoll);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -1448,7 +1449,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
UpdateControlled(deltaTime, cam);
|
UpdateControlled(deltaTime, cam);
|
||||||
|
|
||||||
if (Stun > 0.0f)
|
if (stunTimer > 0.0f)
|
||||||
{
|
{
|
||||||
stunTimer -= deltaTime;
|
stunTimer -= deltaTime;
|
||||||
if (stunTimer < 0.0f && GameMain.Server != null)
|
if (stunTimer < 0.0f && GameMain.Server != null)
|
||||||
@@ -1472,7 +1473,6 @@ namespace Barotrauma
|
|||||||
if (IsRagdolled)
|
if (IsRagdolled)
|
||||||
{
|
{
|
||||||
((HumanoidAnimController)AnimController).Crouching = false;
|
((HumanoidAnimController)AnimController).Crouching = false;
|
||||||
Stun = Math.Max(0.1f, Stun);
|
|
||||||
|
|
||||||
AnimController.ResetPullJoints();
|
AnimController.ResetPullJoints();
|
||||||
selectedConstruction = null;
|
selectedConstruction = null;
|
||||||
|
|||||||
@@ -128,6 +128,12 @@ namespace Barotrauma
|
|||||||
if (!AllowInput)
|
if (!AllowInput)
|
||||||
{
|
{
|
||||||
AnimController.Frozen = false;
|
AnimController.Frozen = false;
|
||||||
|
if (memInput.Count > 0)
|
||||||
|
{
|
||||||
|
prevDequeuedInput = dequeuedInput;
|
||||||
|
dequeuedInput = memInput[memInput.Count - 1].states;
|
||||||
|
memInput.RemoveAt(memInput.Count - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (memInput.Count == 0)
|
else if (memInput.Count == 0)
|
||||||
{
|
{
|
||||||
@@ -289,20 +295,20 @@ namespace Barotrauma
|
|||||||
newInteract = msg.ReadUInt16();
|
newInteract = msg.ReadUInt16();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (AllowInput)
|
//if (AllowInput)
|
||||||
|
//{
|
||||||
|
if (NetIdUtils.IdMoreRecent((ushort)(networkUpdateID - i), LastNetworkUpdateID) && (i < 60))
|
||||||
{
|
{
|
||||||
if (NetIdUtils.IdMoreRecent((ushort)(networkUpdateID - i), LastNetworkUpdateID) && (i < 60))
|
NetInputMem newMem = new NetInputMem();
|
||||||
{
|
newMem.states = newInput;
|
||||||
NetInputMem newMem = new NetInputMem();
|
newMem.intAim = newAim;
|
||||||
newMem.states = newInput;
|
newMem.interact = newInteract;
|
||||||
newMem.intAim = newAim;
|
|
||||||
newMem.interact = newInteract;
|
|
||||||
|
|
||||||
newMem.networkUpdateID = (ushort)(networkUpdateID - i);
|
newMem.networkUpdateID = (ushort)(networkUpdateID - i);
|
||||||
|
|
||||||
memInput.Insert(i, newMem);
|
memInput.Insert(i, newMem);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NetIdUtils.IdMoreRecent(networkUpdateID, LastNetworkUpdateID))
|
if (NetIdUtils.IdMoreRecent(networkUpdateID, LastNetworkUpdateID))
|
||||||
|
|||||||
Reference in New Issue
Block a user