This commit is contained in:
Regalis
2016-10-21 19:55:48 +03:00
parent 92b61ee816
commit b410a04a86
3 changed files with 22 additions and 19 deletions
@@ -1044,7 +1044,7 @@ namespace Barotrauma
else if (collisionsDisabled) else if (collisionsDisabled)
{ {
//set the position of the ragdoll to make sure limbs don't get stuck inside walls when re-enabling collisions //set the position of the ragdoll to make sure limbs don't get stuck inside walls when re-enabling collisions
SetPosition(MainLimb.SimPosition, true); SetPosition(collider.SimPosition, true);
UpdateCollisionCategories(); UpdateCollisionCategories();
collisionsDisabled = false; collisionsDisabled = false;
@@ -1062,16 +1062,20 @@ namespace Barotrauma
PosInfo serverPos = character.MemPos.Last(); PosInfo serverPos = character.MemPos.Last();
int localPosIndex = character.MemLocalPos.FindIndex(m => m.ID == serverPos.ID); int localPosIndex = character.MemLocalPos.FindIndex(m => m.ID == serverPos.ID);
if (localPosIndex == -1) return; if (localPosIndex > -1)
PosInfo localPos = character.MemLocalPos[localPosIndex];
if (Vector2.Distance(localPos.Position, serverPos.Position) > 0.1f)
{ {
//collider.SetTransform(collider.SimPosition + (pos.Position - remotePos), collider.Rotation); PosInfo localPos = character.MemLocalPos[localPosIndex];
collider.SetTransform(serverPos.Position, collider.Rotation);
if (Vector2.Distance(localPos.Position, serverPos.Position) > 0.1f)
{
//collider.SetTransform(collider.SimPosition + (pos.Position - remotePos), collider.Rotation);
collider.SetTransform(serverPos.Position, collider.Rotation);
// character.MemLocalPos.RemoveRange(localPosIndex, character.MemLocalPos.Count - localPosIndex);
}
} }
if (character.MemLocalPos.Count > 120) character.MemLocalPos.RemoveRange(0, character.MemLocalPos.Count - 120); if (character.MemLocalPos.Count > 120) character.MemLocalPos.RemoveRange(0, character.MemLocalPos.Count - 120);
character.MemPos.Clear(); character.MemPos.Clear();
} }
+2 -2
View File
@@ -1857,14 +1857,14 @@ namespace Barotrauma
if (this == c.Character) if (this == c.Character)
{ {
//length of the message //length of the message
msg.Write((byte)(4+4+4+4)); msg.Write((byte)(4+4+4+1));
msg.Write(true); msg.Write(true);
msg.Write((UInt32)(LastNetworkUpdateID - memInput.Count)); msg.Write((UInt32)(LastNetworkUpdateID - memInput.Count));
} }
else else
{ {
//length of the message //length of the message
msg.Write((byte)(4+4+4)); msg.Write((byte)(4+4+1));
msg.Write(false); msg.Write(false);
} }
+8 -9
View File
@@ -646,15 +646,6 @@ namespace Barotrauma.Networking
} }
} }
foreach (Character character in Character.CharacterList)
{
if (character is AICharacter) continue;
outmsg.Write((byte)ServerNetObject.CHARACTER_POSITION);
character.ServerWrite(outmsg, c);
outmsg.WritePadBits();
}
if (Item.Spawner.NetStateID > c.lastRecvEntitySpawnID) if (Item.Spawner.NetStateID > c.lastRecvEntitySpawnID)
{ {
outmsg.Write((byte)ServerNetObject.ENTITY_SPAWN); outmsg.Write((byte)ServerNetObject.ENTITY_SPAWN);
@@ -669,6 +660,14 @@ namespace Barotrauma.Networking
outmsg.WritePadBits(); outmsg.WritePadBits();
} }
foreach (Character character in Character.CharacterList)
{
if (character is AICharacter) continue;
outmsg.Write((byte)ServerNetObject.CHARACTER_POSITION);
character.ServerWrite(outmsg, c);
outmsg.WritePadBits();
}
outmsg.Write((byte)ServerNetObject.END_OF_MESSAGE); outmsg.Write((byte)ServerNetObject.END_OF_MESSAGE);
server.SendMessage(outmsg, c.Connection, NetDeliveryMethod.Unreliable); server.SendMessage(outmsg, c.Connection, NetDeliveryMethod.Unreliable);