public override void Server_ReceiveMessage(int connectionID, ByteStream msgData, LLServer server) { int teamNumber = msgData.PopInt32(); string message = msgData.PopString(); var targetsList = new List <int>(); foreach (var userPair in server.NetUsers) { NetUser netUser = userPair.Value; if (netUser.teamNumber == teamNumber && netUser.connectionID != connectionID) { targetsList.Add(netUser.connectionID); } } int[] targets = targetsList.ToArray(); var byteStream = new ByteStream(); byteStream.Append((byte)NetMessageType.ChatTeamMessage); byteStream.Append(teamNumber); byteStream.Append(message); server.MulticastNetMessage(targets, server.ReliableChannel, byteStream.ToArray()); }
public override void Server_ReceiveMessage(int connectionId, ByteStream data, LLServer server) { data.Append(connectionId); // Get all teammates int[] targets = server.NetUsers.Where(x => x.Value.TeamNumber == server.NetUsers[connectionId].TeamNumber) .Select(x => x.Key) .ToArray(); server.MulticastNetMessage(targets, server.ReliableChannel, data.ToArray(), connectionId); }