Add timestamps to movement packets
This commit is contained in:
parent
897e797195
commit
2239e336f5
@ -19,6 +19,11 @@ namespace Cyber.Networking.Messages {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int SyncBaseID;
|
public int SyncBaseID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Time when server received this request. Used for compensating ping.
|
||||||
|
/// </summary>
|
||||||
|
public double Timestamp;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates a MoveCreaturePkt which contains the direction of desired movement (or (0, 0, 0) for stopping)
|
/// Creates a MoveCreaturePkt which contains the direction of desired movement (or (0, 0, 0) for stopping)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -43,6 +48,7 @@ namespace Cyber.Networking.Messages {
|
|||||||
public override void Deserialize(NetworkReader reader) {
|
public override void Deserialize(NetworkReader reader) {
|
||||||
Direction = reader.ReadVector3();
|
Direction = reader.ReadVector3();
|
||||||
SyncBaseID = reader.ReadInt32();
|
SyncBaseID = reader.ReadInt32();
|
||||||
|
Timestamp = reader.ReadDouble();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -52,6 +58,7 @@ namespace Cyber.Networking.Messages {
|
|||||||
public override void Serialize(NetworkWriter writer) {
|
public override void Serialize(NetworkWriter writer) {
|
||||||
writer.Write(Direction);
|
writer.Write(Direction);
|
||||||
writer.Write(SyncBaseID);
|
writer.Write(SyncBaseID);
|
||||||
|
writer.Write(Timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -51,5 +51,15 @@ namespace Cyber.Networking {
|
|||||||
return IntArray;
|
return IntArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the current system time in seconds.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The system time in seconds.</returns>
|
||||||
|
public static double GetCurrentSystemTime() {
|
||||||
|
return DateTime.Now.ToUniversalTime().Subtract(
|
||||||
|
new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))
|
||||||
|
.TotalMilliseconds * 1.0 / 1000;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,6 +141,7 @@ namespace Cyber.Networking.Serverside {
|
|||||||
if (Player.Value.ConnectionID == msg.conn.connectionId) {
|
if (Player.Value.ConnectionID == msg.conn.connectionId) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
MoveCreature.Timestamp = NetworkHelper.GetCurrentSystemTime();
|
||||||
NetworkServer.SendToClient(Player.Value.ConnectionID, PktType.MoveCreature, MoveCreature);
|
NetworkServer.SendToClient(Player.Value.ConnectionID, PktType.MoveCreature, MoveCreature);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user