Exemple #1
0
        /// <summary>
        /// Sends a packet in parallel to each nearby player.
        /// </summary>
        /// <param name="world">The world containing the coordinates.</param>
        /// <param name="coords">The center coordinates.</param>
        /// <param name="packet">The packet to send</param>
        internal void SendPacketToNearbyPlayers(WorldManager world, UniversalCoords coords, Packet packet, Client excludedClient = null)
        {
            Client[] nearbyClients = GetNearbyPlayersInternal(world, coords).ToArray();

            if (nearbyClients.Length == 0)
                return;

            packet.SetShared(Logger, nearbyClients.Length);

            Parallel.ForEach(nearbyClients, (client) =>
            {
                if (excludedClient != client)
                    client.SendPacket(packet);
                else
                    packet.Release();
            });
        }
Exemple #2
0
 public void Send_Sync_Packet(Packet packet)
 {
     packet.Write();
     Send_Sync(packet.GetBuffer());
     packet.Release();
 }