FullSync every 1.5s and small changes

This commit is contained in:
EntenKoeniq
2021-08-15 11:33:52 +02:00
parent b9e40f8e36
commit 6566317617
5 changed files with 31 additions and 23 deletions

View File

@ -432,7 +432,7 @@ namespace CoopClient
{
MainVehicle.Velocity = VehicleVelocity + (VehiclePosition - MainVehicle.Position);
MainVehicle.Quaternion = Quaternion.Slerp(MainVehicle.Quaternion, VehicleRotation, Math.Min(1.0f, Latency < 0.5f ? 0.5f : Latency));
MainVehicle.Quaternion = Quaternion.Slerp(MainVehicle.Quaternion, VehicleRotation, Math.Min(1.5f, (Environment.TickCount - LastUpdateReceived) / (float)Latency));
VehicleStopTime = Environment.TickCount;
}

View File

@ -225,7 +225,7 @@ namespace CoopClient
private int ArtificialLagCounter;
public static EntitiesPlayer DebugSyncPed;
public static bool FullDebugSync = true;
public static int LastFullDebugSync = 0;
public static bool UseDebug = false;
private void Debug()
@ -242,7 +242,9 @@ namespace CoopClient
return;
}
if (FullDebugSync)
bool fullSync = (Environment.TickCount - LastFullDebugSync) > 1500;
if (fullSync)
{
DebugSyncPed.ModelHash = player.Model.Hash;
DebugSyncPed.Props = Util.GetPedProps(player);
@ -254,7 +256,7 @@ namespace CoopClient
if (!player.IsInVehicle())
{
flags = Util.GetPedFlags(player, FullDebugSync, true);
flags = Util.GetPedFlags(player, fullSync, true);
DebugSyncPed.Rotation = player.Rotation;
DebugSyncPed.Velocity = player.Velocity;
@ -281,7 +283,7 @@ namespace CoopClient
Vehicle veh = player.CurrentVehicle;
veh.Opacity = 75;
flags = Util.GetVehicleFlags(player, veh, FullDebugSync);
flags = Util.GetVehicleFlags(player, veh, fullSync);
int secondaryColor;
int primaryColor;
@ -317,11 +319,17 @@ namespace CoopClient
}
}
DebugSyncPed.LastUpdateReceived = Environment.TickCount;
DebugSyncPed.Latency = Environment.TickCount - ArtificialLagCounter;
int currentTimestamp = Environment.TickCount;
FullDebugSync = !FullDebugSync;
ArtificialLagCounter = Environment.TickCount;
DebugSyncPed.LastUpdateReceived = currentTimestamp;
DebugSyncPed.Latency = currentTimestamp - ArtificialLagCounter;
ArtificialLagCounter = currentTimestamp;
if (fullSync)
{
LastFullDebugSync = currentTimestamp;
}
}
}
}

View File

@ -61,7 +61,7 @@ namespace CoopClient.Menus.Sub
}
Main.DebugSyncPed = null;
Main.FullDebugSync = true;
Main.LastFullDebugSync = 0;
Main.Players.Remove("DebugKey");
}
}

View File

@ -132,7 +132,7 @@ namespace CoopClient
GTA.UI.Notification.Show("~r~Disconnected: " + reason);
// Reset all values
FullPlayerSync = true;
LastFullPlayerSync = 0;
Main.NpcsAllowed = false;
@ -502,14 +502,14 @@ namespace CoopClient
#endregion
#region -- SEND --
private bool FullPlayerSync = true;
private int LastFullPlayerSync = 0;
public void SendPlayerData()
{
Ped player = Game.Player.Character;
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
if (FullPlayerSync)
if ((Environment.TickCount - LastFullPlayerSync) > 1500)
{
if (!player.IsInVehicle())
{
@ -557,6 +557,8 @@ namespace CoopClient
Flag = Util.GetVehicleFlags(player, player.CurrentVehicle, true)
}.PacketToNetOutGoingMessage(outgoingMessage);
}
LastFullPlayerSync = Environment.TickCount;
}
else
{
@ -594,10 +596,8 @@ namespace CoopClient
}
}
Client.SendMessage(outgoingMessage, NetDeliveryMethod.UnreliableSequenced);
Client.SendMessage(outgoingMessage, NetDeliveryMethod.ReliableOrdered);
Client.FlushSendQueue();
FullPlayerSync = !FullPlayerSync;
}
public void SendNpcData(Ped npc)
@ -651,7 +651,7 @@ namespace CoopClient
}.PacketToNetOutGoingMessage(outgoingMessage);
}
Client.SendMessage(outgoingMessage, NetDeliveryMethod.Unreliable);
Client.SendMessage(outgoingMessage, NetDeliveryMethod.ReliableOrdered);
Client.FlushSendQueue();
}

View File

@ -560,7 +560,7 @@ namespace CoopServer
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
packet.PacketToNetOutGoingMessage(outgoingMessage);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableOrdered, 0);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.UnreliableSequenced, 0);
}
private static void FullSyncPlayerVeh(FullSyncPlayerVehPacket packet)
@ -575,7 +575,7 @@ namespace CoopServer
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
packet.PacketToNetOutGoingMessage(outgoingMessage);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableOrdered, 0);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.UnreliableSequenced, 0);
}
private static void LightSyncPlayer(LightSyncPlayerPacket packet)
@ -590,7 +590,7 @@ namespace CoopServer
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
packet.PacketToNetOutGoingMessage(outgoingMessage);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableOrdered, 0);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableSequenced, 0);
}
private static void LightSyncPlayerVeh(LightSyncPlayerVehPacket packet)
@ -605,7 +605,7 @@ namespace CoopServer
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
packet.PacketToNetOutGoingMessage(outgoingMessage);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableOrdered, 0);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableSequenced, 0);
}
// Send a message to targets or all players
@ -637,7 +637,7 @@ namespace CoopServer
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
packet.PacketToNetOutGoingMessage(outgoingMessage);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableSequenced, 0);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.UnreliableSequenced, 0);
}
private static void FullSyncNpcVeh(NetConnection local, FullSyncNpcVehPacket packet)
@ -650,7 +650,7 @@ namespace CoopServer
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
packet.PacketToNetOutGoingMessage(outgoingMessage);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.ReliableSequenced, 0);
MainNetServer.SendMessage(outgoingMessage, playerList, NetDeliveryMethod.UnreliableSequenced, 0);
}
#endregion
}