Fix voice and add Server.Forward() and Server.SendToAll()

This commit is contained in:
Sardelka
2022-08-13 08:56:05 +08:00
parent f9a411833a
commit 4dc3cc5c28
4 changed files with 17 additions and 10 deletions

View File

@ -250,7 +250,7 @@ namespace RageCoop.Client
case PacketType.Voice: case PacketType.Voice:
{ {
GTA.UI.Notification.Show("VOICE RECEIVED!"); Main.QueueAction(() => GTA.UI.Notification.Show("VOICE RECEIVED!"));
} }
break; break;

View File

@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RageCoop.Client</RootNamespace> <RootNamespace>RageCoop.Client</RootNamespace>
<AssemblyName>RageCoop.Client</AssemblyName> <AssemblyName>RageCoop.Client</AssemblyName>
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic> <Deterministic>true</Deterministic>
<TargetFrameworkProfile /> <TargetFrameworkProfile />

View File

@ -10,14 +10,11 @@ namespace RageCoop.Core
public override PacketType Type => PacketType.Voice; public override PacketType Type => PacketType.Voice;
public override byte[] Serialize() public override byte[] Serialize()
{ {
var data = new List<byte>(); return Buffer;
data.AddArray(Buffer);
return data.ToArray();
} }
public override void Deserialize(byte[] array) public override void Deserialize(byte[] array)
{ {
var reader = new BitReader(array); Buffer = array;
Buffer = reader.ReadByteArray();
} }
} }
} }

View File

@ -486,9 +486,7 @@ namespace RageCoop.Server
case PacketType.Voice: case PacketType.Voice:
{ {
var msg = MainNetServer.CreateMessage(); SendToAll(data.GetPacket<Packets.Voice>());
data.GetPacket<Packets.Voice>().Pack(msg);
MainNetServer.SendMessage(msg, MainNetServer.Connections, NetDeliveryMethod.ReliableOrdered, (int)ConnectionChannel.Voice);
} }
break; break;
@ -722,5 +720,17 @@ namespace RageCoop.Server
p.Pack(outgoingMessage); p.Pack(outgoingMessage);
MainNetServer.SendMessage(outgoingMessage, client.Connection,method,(int)channel); MainNetServer.SendMessage(outgoingMessage, client.Connection,method,(int)channel);
} }
internal void Forward(Packet p, Client except, ConnectionChannel channel = ConnectionChannel.Default, NetDeliveryMethod method = NetDeliveryMethod.UnreliableSequenced)
{
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
p.Pack(outgoingMessage);
MainNetServer.SendToAll(outgoingMessage, except.Connection, method, (int)channel);
}
internal void SendToAll(Packet p, ConnectionChannel channel = ConnectionChannel.Default, NetDeliveryMethod method = NetDeliveryMethod.UnreliableSequenced)
{
NetOutgoingMessage outgoingMessage = MainNetServer.CreateMessage();
p.Pack(outgoingMessage);
MainNetServer.SendToAll(outgoingMessage, method, (int)channel);
}
} }
} }