Fixed vehicle sync

This commit is contained in:
EntenKoeniq
2021-07-11 22:56:48 +02:00
parent 85106cbc12
commit 49cc21b2cb
3 changed files with 32 additions and 45 deletions

View File

@ -241,7 +241,7 @@ namespace CoopClient
{ {
if (MainVehicle == null || !MainVehicle.Exists() || MainVehicle.Model.Hash != VehicleModelHash) if (MainVehicle == null || !MainVehicle.Exists() || MainVehicle.Model.Hash != VehicleModelHash)
{ {
List<Vehicle> vehs = World.GetNearbyVehicles(Character, 3f, new Model[] { VehicleModelHash }).OrderBy(v => (v.Position - Character.Position).Length()).Take(3).ToList(); List<Vehicle> vehs = World.GetNearbyVehicles(Character, 3f, new Model[] { VehicleModelHash }).OrderBy(v => (v.Position - VehiclePosition).Length()).Take(3).ToList();
bool vehFound = false; bool vehFound = false;
@ -435,6 +435,7 @@ namespace CoopClient
Character.CanRagdoll = false; Character.CanRagdoll = false;
Character.IsInvincible = true; Character.IsInvincible = true;
Character.Health = Health; Character.Health = Health;
Character.CanBeTargetted = true;
if (username != null) if (username != null)
{ {

View File

@ -511,7 +511,7 @@ namespace CoopClient
VehVelocity = npc.CurrentVehicle.Velocity.ToLVector(), VehVelocity = npc.CurrentVehicle.Velocity.ToLVector(),
VehSpeed = npc.CurrentVehicle.Speed, VehSpeed = npc.CurrentVehicle.Speed,
VehSteeringAngle = npc.CurrentVehicle.SteeringAngle, VehSteeringAngle = npc.CurrentVehicle.SteeringAngle,
Flag = Util.GetPedFlags(npc, true) Flag = Util.GetVehicleFlags(npc, npc.CurrentVehicle, true)
}.PacketToNetOutGoingMessage(outgoingMessage); }.PacketToNetOutGoingMessage(outgoingMessage);
} }

View File

@ -2,9 +2,8 @@
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading; using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Text; using System.Text;
using System.Net.Http;
using Lidgren.Network; using Lidgren.Network;
@ -22,48 +21,35 @@ namespace CoopServer
MainThread.Start(); MainThread.Start();
} }
private void Listen() private async void Listen()
{ {
try //try
{ //{
IPHostEntry host = Dns.GetHostEntry(Server.MainSettings.MasterServer); // HttpClient client = new();
IPAddress ipAddress = host.AddressList[0]; //
IPEndPoint remoteEP = new(ipAddress, 11000); // while (true)
// {
// Create a TCP/IP socket // // Encode the data string into a byte array
Socket sender = new(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); // string msg =
// "{ " +
sender.Connect(remoteEP); // "\"port\": \"" + Server.MainSettings.ServerPort + "\", " +
// "\"name\": \"" + Server.MainSettings.ServerName + "\", " +
Logging.Info("Server connected to MasterServer"); // "\"version\": \"" + Server.CurrentModVersion.Replace("_", ".") + "\", " +
// "\"players\": \"" + Server.MainNetServer.ConnectionsCount + "\", " +
while (sender.Connected) // "\"maxPlayers\": \"" + Server.MainSettings.MaxPlayers + "\", " +
{ // "\"allowlist\": \"" + Server.MainSettings.Allowlist + "\"" +
// Encode the data string into a byte array // " }";
byte[] msg = Encoding.ASCII.GetBytes( //
"{ \"method\": \"POST\", \"data\": { " + // HttpResponseMessage response = await client.PostAsync("http://localhost:8081/servers", new StringContent(msg, Encoding.UTF8, "application/json"));
"\"Port\": \"" + Server.MainSettings.ServerPort + "\", " + //
"\"Name\": \"" + Server.MainSettings.ServerName + "\", " + // // Sleep for 10s
"\"Version\": \"" + Server.CurrentModVersion.Replace("_", ".") + "\", " + // Thread.Sleep(10000);
"\"Players\": " + Server.MainNetServer.ConnectionsCount + ", " + // }
"\"MaxPlayers\": " + Server.MainSettings.MaxPlayers + ", " + //}
"\"NpcsAllowed\": \"" + Server.MainSettings.NpcsAllowed + "\" } }"); //catch (Exception ex)
//{
// Send the data // Logging.Error(ex.Message);
sender.Send(msg); //}
// Sleep for 15 seconds
Thread.Sleep(15000);
}
}
catch (SocketException se)
{
Logging.Error(se.Message);
}
catch (Exception e)
{
Logging.Error(e.Message);
}
} }
} }