Fixed networking

This commit is contained in:
Alex Noir
2017-12-08 15:32:37 +03:00
parent 8788efa007
commit 286f290e57
3 changed files with 20 additions and 7 deletions

View File

@@ -213,10 +213,16 @@ namespace Barotrauma
character.AnimController.GrabLimb = character.AnimController.GrabLimb == LimbType.None ? LimbType.Torso : LimbType.None;
foreach (Limb limb in Character.Controlled.SelectedCharacter.AnimController.Limbs)
{
limb.pullJoint.Enabled = false;
}
if (GameMain.Client != null)
{
GameMain.Client.CreateEntityEvent(Character.Controlled, new object[] { NetEntityEvent.Type.Repair });
GameMain.Client.CreateEntityEvent(Character.Controlled, new object[] { NetEntityEvent.Type.Control });
}
grabHoldButton.Text = "Grabbing: " + (character.AnimController.GrabLimb == LimbType.Torso ? "Torso" : "Hands");
return true;
};

View File

@@ -17,15 +17,19 @@ namespace Barotrauma
switch ((NetEntityEvent.Type)extraData[0])
{
case NetEntityEvent.Type.InventoryState:
msg.WriteRangedInteger(0, 2, 0);
msg.WriteRangedInteger(0, 3, 0);
inventory.ClientWrite(msg, extraData);
break;
case NetEntityEvent.Type.Repair:
msg.WriteRangedInteger(0, 2, 1);
msg.WriteRangedInteger(0, 3, 1);
msg.Write(AnimController.Anim == AnimController.Animation.CPR);
break;
case NetEntityEvent.Type.Status:
msg.WriteRangedInteger(0, 2, 2);
msg.WriteRangedInteger(0, 3, 2);
break;
case NetEntityEvent.Type.Control:
msg.WriteRangedInteger(0, 3, 3);
msg.Write((int)AnimController.GrabLimb);
break;
}
}
@@ -91,7 +95,7 @@ namespace Barotrauma
bool crouching = msg.ReadBoolean();
keys[(int)InputType.Crouch].Held = crouching;
keys[(int)InputType.Crouch].SetState(false, crouching);
AnimController.GrabLimb = (LimbType)msg.ReadInt16();
AnimController.GrabLimb = (LimbType)msg.ReadInt32();
}
bool hasAttackLimb = msg.ReadBoolean();

View File

@@ -324,7 +324,7 @@ namespace Barotrauma
break;
case ClientNetObject.ENTITY_STATE:
int eventType = msg.ReadRangedInteger(0,2);
int eventType = msg.ReadRangedInteger(0,3);
switch (eventType)
{
case 0:
@@ -356,6 +356,9 @@ namespace Barotrauma
Kill(lastAttackCauseOfDeath);
}
break;
case 3:
AnimController.GrabLimb = (LimbType)msg.ReadInt32();
break;
}
break;
}
@@ -435,7 +438,7 @@ namespace Barotrauma
if (AnimController is HumanoidAnimController)
{
tempBuffer.Write(((HumanoidAnimController)AnimController).Crouching);
tempBuffer.Write((int)((HumanoidAnimController)AnimController).GrabLimb);
tempBuffer.Write((int)AnimController.GrabLimb);
}
bool hasAttackLimb = AnimController.Limbs.Any(l => l != null && l.attack != null);