More code cleanup

This commit is contained in:
sausage
2022-05-23 15:48:02 +08:00
parent 7523be02b5
commit e6332ff9d2
2 changed files with 45 additions and 98 deletions

View File

@ -13,29 +13,24 @@ namespace RageCoop.Client
{ {
public partial class Networking public partial class Networking
{ {
/*
public static void MakePlayer()
{
// Create entity for local player
Ped p = Game.Player.Character;
Main.Logger.Debug($"Creating SyncEntity for player, handle:{p.Handle}");
CharacterEntity c = new CharacterEntity(p);
Main.Characters.Add(c.ID, c);
Main.MyPlayerID=c.OwnerID=c.ID;
Main.Logger.Debug($"My player ID is:{c.ID}");
Main.MainPlayerList.SetPlayer(new PlayerData { PedID=c.ID, Username=Main.MainSettings.Username });
/// <summary>
/// Pack the packet then send to server.
/// </summary>
/// <param name="p"></param>
/// <param name="channel"></param>
/// <param name="method"></param>
public void Send(Packet p, ConnectionChannel channel = ConnectionChannel.Default,NetDeliveryMethod method=NetDeliveryMethod.UnreliableSequenced)
{
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
p.Pack(outgoingMessage);
Client.SendMessage(outgoingMessage, method, (int)channel);
} }
*/
#region -- SEND -- #region -- SEND --
public void SendPed(SyncedPed c) public void SendPed(SyncedPed c)
{ {
Ped p = c.MainPed; Ped p = c.MainPed;
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.CharacterSync;
var packet=new Packets.PedSync() var packet=new Packets.PedSync()
{ {
ID =c.ID, ID =c.ID,
@ -56,36 +51,27 @@ namespace RageCoop.Client
{ {
packet.RotationVelocity=p.RotationVelocity.ToLVector(); packet.RotationVelocity=p.RotationVelocity.ToLVector();
} }
packet.Pack(outgoingMessage); Send(packet, ConnectionChannel.CharacterSync);
Client.SendMessage(outgoingMessage, messageType, connectionChannel);
} }
public void SendPedState(SyncedPed c) public void SendPedState(SyncedPed c)
{ {
Ped p = c.MainPed; Ped p = c.MainPed;
NetOutgoingMessage outgoingMessage = Client.CreateMessage(); var packet=new Packets.PedStateSync()
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.CharacterSync;
new Packets.PedStateSync()
{ {
ID = c.ID, ID = c.ID,
OwnerID=c.OwnerID, OwnerID=c.OwnerID,
Clothes=p.GetPedClothes(), Clothes=p.GetPedClothes(),
ModelHash=p.Model.Hash, ModelHash=p.Model.Hash,
WeaponComponents=p.Weapons.Current.GetWeaponComponents(), WeaponComponents=p.Weapons.Current.GetWeaponComponents(),
}.Pack(outgoingMessage); };
Client.SendMessage(outgoingMessage, messageType, connectionChannel);
Send(packet, ConnectionChannel.CharacterSync);
} }
public void SendVehicle(SyncedVehicle v) public void SendVehicle(SyncedVehicle v)
{ {
Vehicle veh = v.MainVehicle; Vehicle veh = v.MainVehicle;
var packet = new Packets.VehicleSync()
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.VehicleSync;
new Packets.VehicleSync()
{ {
ID =v.ID, ID =v.ID,
SteeringAngle = veh.SteeringAngle, SteeringAngle = veh.SteeringAngle,
@ -95,24 +81,19 @@ namespace RageCoop.Client
RotationVelocity=veh.RotationVelocity.ToLVector(), RotationVelocity=veh.RotationVelocity.ToLVector(),
ThrottlePower = veh.ThrottlePower, ThrottlePower = veh.ThrottlePower,
BrakePower = veh.BrakePower, BrakePower = veh.BrakePower,
}.Pack(outgoingMessage); };
Client.SendMessage(outgoingMessage, messageType, connectionChannel); Send(packet,ConnectionChannel.VehicleSync);
} }
public void SendVehicleState(SyncedVehicle v) public void SendVehicleState(SyncedVehicle v)
{ {
Vehicle veh = v.MainVehicle; Vehicle veh = v.MainVehicle;
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.VehicleSync;
byte primaryColor = 0; byte primaryColor = 0;
byte secondaryColor = 0; byte secondaryColor = 0;
unsafe unsafe
{ {
Function.Call<byte>(Hash.GET_VEHICLE_COLOURS, veh, &primaryColor, &secondaryColor); Function.Call<byte>(Hash.GET_VEHICLE_COLOURS, veh, &primaryColor, &secondaryColor);
} }
new Packets.VehicleStateSync() var packet=new Packets.VehicleStateSync()
{ {
ID =v.ID, ID =v.ID,
OwnerID = v.OwnerID, OwnerID = v.OwnerID,
@ -125,70 +106,20 @@ namespace RageCoop.Client
EngineHealth=veh.EngineHealth, EngineHealth=veh.EngineHealth,
Passengers=veh.GetPassengers(), Passengers=veh.GetPassengers(),
LockStatus=veh.LockStatus, LockStatus=veh.LockStatus,
}.Pack(outgoingMessage); };
Client.SendMessage(outgoingMessage, messageType, connectionChannel); Send(packet, ConnectionChannel.VehicleSync);
} }
#region SYNC EVENTS #region SYNC EVENTS
public void Send(Packet p,ConnectionChannel channel=ConnectionChannel.Default)
{
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
p.Pack(outgoingMessage);
Client.SendMessage(outgoingMessage, messageType, (int)channel);
}
public void SendBulletShot(Vector3 start,Vector3 end,uint weapon,int ownerID) public void SendBulletShot(Vector3 start,Vector3 end,uint weapon,int ownerID)
{ {
NetOutgoingMessage outgoingMessage = Client.CreateMessage(); Send(new Packets.BulletShot()
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.SyncEvents;
new Packets.BulletShot()
{ {
StartPosition = start.ToLVector(), StartPosition = start.ToLVector(),
EndPosition = end.ToLVector(), EndPosition = end.ToLVector(),
OwnerID = ownerID, OwnerID = ownerID,
WeaponHash=weapon, WeaponHash=weapon,
}.Pack(outgoingMessage); }, ConnectionChannel.SyncEvents);
Client.SendMessage(outgoingMessage, messageType, connectionChannel);
}
public void SendOwnerChanged(int id,int newOwnerId)
{
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.SyncEvents;
new Packets.OwnerChanged()
{
ID= id,
NewOwnerID= newOwnerId,
}.Pack(outgoingMessage);
Client.SendMessage(outgoingMessage, messageType, connectionChannel);
}
public void SendEnteringVehicle(int pedId,int vehId,short seat)
{
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.SyncEvents;
new Packets.EnteringVehicle()
{
PedID=pedId,
VehicleID= vehId,
VehicleSeat=seat,
}.Pack(outgoingMessage);
Client.SendMessage(outgoingMessage, messageType, connectionChannel);
}
public void SendLeaveVehicle(int id)
{
NetOutgoingMessage outgoingMessage = Client.CreateMessage();
NetDeliveryMethod messageType = NetDeliveryMethod.UnreliableSequenced;
int connectionChannel = (byte)ConnectionChannel.SyncEvents;
new Packets.LeaveVehicle()
{
ID=id
}.Pack(outgoingMessage);
Client.SendMessage(outgoingMessage, messageType, connectionChannel);
} }
#endregion #endregion
public void SendChatMessage(string message) public void SendChatMessage(string message)

View File

@ -24,7 +24,13 @@ namespace RageCoop.Client {
public static void TriggerEnteringVehicle(SyncedPed c,SyncedVehicle veh, VehicleSeat seat) public static void TriggerEnteringVehicle(SyncedPed c,SyncedVehicle veh, VehicleSeat seat)
{ {
Main.MainNetworking.SendEnteringVehicle(c.ID,veh.ID,(short)seat); Main.MainNetworking.
Send(new Packets.EnteringVehicle()
{
PedID=c.ID,
VehicleID= veh.ID,
VehicleSeat=(short)seat,
}, ConnectionChannel.SyncEvents);
} }
public static void TriggerEnteredVehicle(SyncedPed c, SyncedVehicle veh, VehicleSeat seat) public static void TriggerEnteredVehicle(SyncedPed c, SyncedVehicle veh, VehicleSeat seat)
@ -45,7 +51,13 @@ namespace RageCoop.Client {
public static void TriggerChangeOwner(SyncedVehicle c, int newOwnerID) public static void TriggerChangeOwner(SyncedVehicle c, int newOwnerID)
{ {
Main.MainNetworking.SendOwnerChanged(c.ID,newOwnerID);
Main.MainNetworking.Send(new Packets.OwnerChanged()
{
ID= c.ID,
NewOwnerID= newOwnerID,
}, ConnectionChannel.SyncEvents);
} }
public static void TriggerBulletShot(uint hash,SyncedPed owner,Vector3 impactPosition) public static void TriggerBulletShot(uint hash,SyncedPed owner,Vector3 impactPosition)
@ -69,7 +81,11 @@ namespace RageCoop.Client {
} }
public static void TriggerLeaveVehicle(int id) public static void TriggerLeaveVehicle(int id)
{ {
Main.MainNetworking.SendLeaveVehicle(id); Main.MainNetworking.
Send(new Packets.LeaveVehicle()
{
ID=id
}, ConnectionChannel.SyncEvents);
} }
public static void TriggerVehBulletShot(uint hash, Vehicle veh) public static void TriggerVehBulletShot(uint hash, Vehicle veh)