/// <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(); }); }
public void Send_Sync_Packet(Packet packet) { packet.Write(); Send_Sync(packet.GetBuffer()); packet.Release(); }